代码在压缩文件
仿真只需按照代码中的接口连接舵机
单片机源程序如下:
-
- #include <reg52.h> //头文件
- #define uchar unsigned char //宏定义无符号字符型
- #define uint unsigned int //宏定义无符号整型
- uint b; //中断值
- uint N=0; //占空比计数值
- uint X=8; //初始角度值 (取值范2~15)
- uchar key_up;
- uchar key_down;
- /*************************************************************************/
- sbit P2_2=P2^2;//角度加
- sbit P2_3=P2^3;//角度减
- sbit PWM=P1^0;//PWM输出 (舵机控制端)
- /*************************************************************************/
- void get_key(void)//按/韬?
- {
- while(P2_2==0)//按键加计数标志
- {key_up=1;
- }
- while(P2_3==0)//按键减计数标志
- {key_down=1;
- }
- }
- /*************************************************************************/
- void timer0( ) interrupt 1 //定时器0工作方式1
- {
- TH0=0xff; //重装计数初值
- TL0=0x38; //重装计数初值
- b++;
- get_key();
- if (key_up==1)
- {
- if(X!=15)//判断是否计数到9999
- {
- X=X+1;//加一
- key_up=0;
- }
- }
- if (key_down==1)
- {
- if(X!=2)//判断是否计数到0
- {
- X=X-1;//减一
- key_down=0;
- }
- }
- }
- /*************************************************************************/
- void main()
- {
- TMOD=0X01; //定时器中断0
- TH0=0xff; //重装计数初值
- TL0=0x38; //重装计数初值
- EA=1; //开CPU中断
- ET0=1; //开T/C0中断
- TR0=1;
- while(1) //无限循环
- {
- PWM=1; //输出PWM正
- while(1)
- {
- b=0;
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
keil.rar
(24.38 KB, 下载次数: 35)
|