资源简介
用STC12C5A60S2控制直流电机,PWM控制转速,按键s1、s2控制加速减速
因只控制一路电机所以只用到一路PWM,若用到两路则打开另一路即可
代码片段和文件信息
/**************************************************************
用STC12C5A60S2控制直流电机,PWM控制转速,按键s1、s2控制加速减速
因只控制一路电机所以只用到一路PWM,若用到两路则打开另一路即可
***************************************************************/
#include //头文件
sbit s1 = P2^3;//加速控制
sbit s2 = P3^7;//减速控制
unsigned int z;
//*********************//延时程序
void delay_ms(unsigned int time)
{
int xy;
for(x=time;x>0;x--)
for(y=115;y>0;y--);//229
}
//******************************
//******************PWM初始化程序
void PWM_init (void)
{
CMOD=0x02; //设置PCA定时器
CL=0x00;
CH=0x00;
CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式(0100 0010)
CCAP0L=0x00; //设置PWM0初始值与CCAP0H相同
CCAP0H=0x00; // PWM0初始时为0
CCAPM1=0x42; //PWM1设置PCA工作方式为PWM方式(使用时删除//)
CCAP1L=0x00; //设置PWM1初始值与CCAP0H相同
CCAP1H=0x00; // PWM1初始时为0
CR=1; //启动PCA定时器
}
//******************************
/**********************************************************************************************/
/*********************************************************************************************
函数名:PWM0占空比设置函数
调 用:PWM0_set();
参 数:0x00~0xFF(亦可用0~255)
返回值:无
结 果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平
备 注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可
/**********************************************************************************************/
void PWM0_set (unsigned char a)//PWM0是IO口P1.3
{
CCAP0L= a; //设置值直接写入CCAP0L
CCAP0H= a; //设置值直接写入CCAP0H
}
/*
void PWM1_set (unsigned char a)//PWM0是IO口P1.4
{
CCAP1L= a; //设置值直接写入CCAP1L
CCAP1H= a; //设置值直接写入CCAP1H
}*/
/**********************************************************************************************/
void main ()
{
PWM_init(); //PWM初始化
PWM0_set (0);
PWM0_set (z);
z=250;
while(1)
{
PWM0_set (z);// PWM信号输出
//delay_ms(500);
if(s2==0)
{
delay_ms(50);
if(s2==0)
{
while(s2==0);//等待按键松开
if((z+5)<250)
{
z+=5;
}
PWM0_set (z);
}
}
if(s1==0)
{
delay_ms(50);
if(s1==0)
{
while(s1 == 0);//等待按键松开
if(z>=5)
{
z-=5;
}
PWM0_set(z);
}
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2409 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\main.c
文件 5586 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\main.LST
文件 3913 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\main.OBJ
文件 3458 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM
文件 613 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM.hex
文件 39 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM.lnp
文件 5693 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM.M51
文件 971 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM.opt.bak
文件 379 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM.plg
文件 2100 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM.Uv2.bak
文件 73137 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM.uvopt
文件 13226 2019-01-17 12:14 STC12C5A60S2内部PWM-DA程序\PWM.uvproj
文件 1134 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM_Opt.Bak
文件 0 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\PWM_Uv2.Bak
文件 17800 2019-01-17 12:13 STC12C5A60S2内部PWM-DA程序\STC12C5A60S2.h
目录 0 2019-01-17 12:14 STC12C5A60S2内部PWM-DA程序
----------- --------- ---------- ----- ----
130458 16
- 上一篇:一款实用的万能倍投计算器
- 下一篇:IP数据报的校验和算法
相关资源
- 基于51单片机pwm控制的呼吸灯程序
- 单片机PWM控制花样彩灯
- 用51单片机产生PWM控制直流小电机
- 滞环SVPWM控制
- STC单片机舵机PWM控制教程源码,教程
- 基于CC2530单路PWM控制程序
- 直流电机PWM控制proteus仿真图
- 3路、4路红外循迹智能小车程序
- PWM控制舵机
- SVPWM控制和MTPA控制
- T型三电平逆变器加SPWM控制仿真
- 基于51 单片机直流电机pwm控制
- 直流电机的PWM控制 基于VHDL语言,详细
- STM32F103C8T6 PWM控制SG90舵机
- SPWM控制全数字单相变频器设计实现
- 分享自己搭的单相整流器的单极性P
- stm32使用pwm按键控制led灯强度
- 在CPLD上实现数字PWM控制(Verilog HDL语
- 基于SG3525的单极性SPWM控制电路
- 基于mega16的输出多路pwm控制舵机的程
- 直流电机PWM控制实验
- proteus仿真PWM控制电动机
- 51 PWM控制电机程序,带红外解码
- STM32的TIM定时器PWM控制指示灯亮度((
评论
共有 条评论