<>占空比的说明

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

<>设计思路

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

<>定时器的说明

代码
在这里插入代码片 #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,
JVM概述VUE+Canvas 实现桌面弹球消砖块小游戏javascript事件(零基础详解)Pikachu漏洞练习平台明解c/c++程序的内存模型--内存四区python实现vlookup_干货一:怎么在python里面实现vlookupswift 5.0 创建一个获取验证码的按钮,实现倒计时效果首期500亿,成立新部门,腾讯准备做什么?关于蓝桥杯大赛,你应该了解的那些事!解决Selenium ActionChains拖动元素无效