51单片机程序:按键控制舵机角度

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#includereg52.hunsignedcharcount;//0.5ms次数标识sbitpwm=P2^7;//PWM信号输出sbitjia=P2^4;//角度增加按键检测IO口sbitjan=P2^5;//角度减少按键检测IO口unsignedcharjd=5;//角度标识voiddelay(unsignedchari)//延时{unsignedcharj,k;for(j=i;j0;j--)for(k=125;k0;k--);}voidTime0_Init()//定时器初始化{TMOD=0x01;//定时器0工作在方式1IE=0x82;TH0=0xfe;TL0=0x33;//11.0592MZ晶振,0.5msTR0=1;//定时器开始}voidTime0_Int()interrupt1//中断程序{TH0=0xfe;//重新赋值TL0=0x33;if(countjd)//判断0.5ms次数是否小于角度标识pwm=1;//确实小于,PWM输出高电平elsepwm=0;//大于则输出低电平count=(count+1);//0.5ms次数加1count=count%40;//次数始终保持为40即保持周期为20ms}voidkeyscan()//按键扫描{if(jia==0)//角度增加按键是否按下{delay(10);//按下延时,消抖if(jia==0)//确实按下{jd++;//角度标识加1count=0;//按键按下则20ms周期从新开始if(jd==6)jd=5;//已经是180度,则保持while(jia==0);//等待按键放开}}if(jan==0)//角度减小按键是否按下{delay(10);if(jan==0){jd--;//角度标识减1count=0;if(jd==0)jd=1;//已经是0度,则保持while(jan==0);}}}voidmain(){count=0;Time0_Init();while(1){keyscan();//按键扫描}}

1 / 2
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功