<>占空比的说明

你可以理解为高低电平占总周期的百分比。也就是指电路被接通的时间占整个电路工作周期的百分比。

<>设计思路

我们先定义一个初始的占空比,然后当加速引脚信号发生变化时,占空比的值将会变大,反之减小。通过改变高电平的比例,调节电机的输出,以此达到速度的改变

<>定时器的说明

代码
在这里插入代码片 #include<reg51.h> #define uint unsigned int #define uchar unsigned
char uchar time; double count=50; //定义占空比,并初始占空比为50% sbit PWM=P2^0;
//P2^0口输出PWM sbit key_add=P3^4; //电机加速的按键 的I/O口 sbit key_dec=P3^5; //电机减速的按键
的I/O口 void delayxms(uint z); //延时 void dianji_add(); //电机加速,即增加占空比 void
dianji_dec(); //电机减速,即减少占空比 void chenglu_init(); //定时器0初始化 void main() {
chenglu_init(); delayxms(5); while(1) { dianji_add(); dianji_dec(); } } void
delayxms(uint z) //延时xms程序 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
void dianji_add() //电机加速 { if(key_add==0) { delayxms(2); //此处时间不能太长,否者会的中断产生冲突
if(key_add==0) { count+=5; //每按一次加速按键占空比加5 if(count>=80) //限定占空比上限 { count=80;
} } while(!key_add); } } void dianji_dec()//电机减速 { if(key_dec==0) {
delayxms(2); if(key_dec==0) { count-=5; //每按一次减速按键占空比减5 if(count<=20) //限定占空比下限
{ count=20; } } while(!key_dec); } } void chenglu_init() { TMOD=0x01;
//定时器0工作于方式1 TH0=(65536-10)/256; TL0=(65536-10)%256; TR0=1; ET0=1; EA=1; } void
chenglu_int() interrupt 1 { TR0=0; //设置定时器初值期间,关闭定时器 TH0=(65536-10)/256;
TL0=(65536-10)%256; TR0=1; time++; if(time<count) //count为占空比 { PWM=1; //输出高电平
} else PWM=0; if(time>=100) { time=0; } }```

技术
©2019-2020 Toolsou All rights reserved,
MyBatis 新增数据 成功 返回 自增主键ID值用C语言做很简单的飞机游戏苹果不送充填器耳机真为环保?可能还是为了赚钱吧一个名叫“讨火车”的小村子 终于把火车讨来了使用easyPOI导入Excel数据QT:清空指定文件夹内的所有文件及目录json反斜杠问题3种Python数据结构,13种创建方法,这个总结,超赞!访客手机抓取方法改主意!特斯拉开始向欧洲市场交付中国造Model 3