找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1129|回复: 0
打印 上一主题 下一主题
收起左侧

单片机控制舵机

[复制链接]
跳转到指定楼层
楼主
ID:351110 发表于 2018-6-13 15:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.  #include <reg52.h>  
2.  unsigned char count;            //0.5ms次数标识  
3.  sbit pwm=P1^0;              //信号输出  
4.  sbit jia=P1^1;              //角度增加按键  
5.  sbit jan=P1^2;              //角度减小按键  
6.  char jd;                    //角度标识  
7.  void delay(unsigned int i)  
8.  {  
9.      unsigned int j,k;  
10.     for(j=i;j>0;j--)  
11.         for(k=125;k>0;k--);  
12. }  
13. void Time0_init()           //定时器初始化  
14. {  
15.     TMOD=0x01;  
16.     IE=0x82;  
17.     TH0=0xff;  
18.     TL0=0x19;               //12晶振,0.25ms  
19.     TR0=1;                 //定时器开始  
20. }  
21. void Time0_int() interrupt 1            //中断程序  
22. {  
23.     TH0=0xff;  
24.     TL0=0x19;  
25.     if(count<jd) //输出count个高电平  
26.         pwm=1;  
27.     else  
28.     pwm=0;    //其余输出低电平  
29.     count++;  
30.     count=count%40;  //时钟保持40个count 即20ms  
31. }  
32. void keyscan()              //按键扫描  
33. {  
34.     if(jia==0)              //角度增加键是否按下  
35.     {  
36.         delay(50);          //按下延时,消抖  
37.         if(jia==0)  
38.         {  
39.             jd++;           //角度标识加1  
40.             count=0;        //按键按下,则20ms周期重新开始  
41.             if(jd==50)  
42.                 jd=9;            //已经是180°则保持  
43.                 while(jia==0);   //等待按键放开  
44.         }  
45.     }  
46.     if(jan==0)                   //角度减小键是否按下  
47.     {  
48.         delay(10);  
49.         if(jd==0);  
50.         {  
51.             jd--;                //角度标识减1  
52.             count=0;  
53.             if(jd==0)  
54.                 jd=1;  
55.             while(jan==0);  
56.         }  
57.     }  
58. }  
59.   
60. void main()  
61. {  
62.     jd=1;  
63.     count=0;  
64.     Time0_init();  
65.     while(1)  
66.     {  
67.         keyscan();  
68. //      display();  
69.     }  
70. }  


评分

参与人数 1黑币 +9 收起 理由
螺旋丸 + 9

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表