您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 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();//按键扫描}}
本文标题:51单片机程序:按键控制舵机角度
链接地址:https://www.777doc.com/doc-1849142 .html