资源简介
通过单片机的串口发送控制数据 控制舵机的转向
代码片段和文件信息
#include
#define uchar unsigned char
uchar count;
sbit pwm=P0^0; //PWM信号输出口
uchar jia=1; //角度增加按键检测I/O口
uchar jan=1; //角度减少按键检测I/O口
uchar jd; //角度标识
uchar a;
uchar i;
uchar flag;
void delay(uchar z)
{
uchar xy;
for(x=125;x>0;x--)
for(y=z;y>0;y--);
}
void Com_Init()
{
TMOD=0x21; //T1工作于方式1
TH1=0xfd; //设置波特率为9600
TL1=0xfd;
TR1=1; //启动T1
REN=1; //允许串行口接收
SM0=0; //串口工作方式1
SM1=1;
EA=1; //开放所有中断
ES=1; //允许串行口中断
}
void Time0_Init() //定时器初始化
{
// TMOD=0x01; //定时器0工作在方式1
IE=0x82;
TH0=0xff;
TL0=0xa3; //11.0592MHz晶振,0.1ms
TR0=1; //定时器开始
}
void Time0_Int() interrupt 1
{
TH0=0xff;
TL0=0xa3;
if(count pwm=1; //确实小于,pwm输出高电平
else
pwm=0; //大于则输出低电平
count=(count+1); //0.5ms次数加1
count=count%40; //次数始终保持为40即保持周期为20ms
}
void main()
{
jd=12;
count=0;
Time0_Init();
Com_Init();
while(1)
{
if(flag==4)
{
do
{
if(flag != 4)
break;
jd=5;
count=0;
delay(500);
for(i=1;i<=14;i++)
{
if(flag != 4)
break;
jd++;
count=0;
if(jd==20)
jd=19; //已经是180度,则保持
delay(500);
if(i==14)
{
for(i=1;i<=14;i++)
{
if(flag != 4)
break;
jd--;
count=0;
if(jd==4)
jd=5; //已经是0度,则保持
delay(500);
}
}
}
}while(flag!=4);
}
}
}
void ser() interrupt 4
{
if(RI==0) return;
ES=0; //关闭口中断
RI=0; //清除口接收标志位
a=SBUF; //读取字符
flag=a;
ES=1; //允许串口中断
P2 = ~P2;
if(flag==1)
{
jd++;
count=0; //按键按下 则20ms周期从新开始
if(jd==20)
jd=19; //已经是180度,则保持
}
if(flag==2)
{
jd--;
count=0;
if(jd==4)
jd=5; //已经是0度,则保持
}
if(flag==3)
{
jd=12;
count=0;
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7199 2010-08-29 23:32 串口控制舵机\串口控制舵机.LST
文件 2099 2010-08-30 00:10 串口控制舵机\串口控制舵机.c
文件 1348 2010-08-29 23:32 串口控制舵机\串口控制舵机.hex
文件 41 2010-08-29 23:32 串口控制舵机\串口控制舵机.lnp
文件 6232 2010-08-29 23:32 串口控制舵机\串口控制舵机.OBJ
文件 8462 2010-08-29 23:32 串口控制舵机\串口控制舵机.M51
文件 996 2010-08-30 00:10 串口控制舵机\串口控制舵机.Opt
文件 5404 2010-08-29 23:32 串口控制舵机\串口控制舵机
文件 199 2010-08-30 00:10 串口控制舵机\串口控制舵机.plg
文件 2160 2010-08-27 00:34 串口控制舵机\串口控制舵机.Uv2
文件 0 2010-08-26 09:53 串口控制舵机\串口控制舵机_Uv2.Bak
....... 994 2010-08-29 23:34 串口控制舵机\串口控制舵机_Opt.Bak
目录 0 2010-08-29 19:52 串口控制舵机
----------- --------- ---------- ----- ----
35134 13
相关资源
- 基于P89C51单片机的多路数据采集系统
- Virtex-6 UART控制器
- STM32马达控制软件介绍及开发套件的使
- 基于51单片机的电器定时开关C程序
- 数控直流电流源打包的
- 采用labview 实现水箱的PID控制,界面美
- 51单片机做的音乐播放仿真+工程
- 51单片机控制乒乓球游戏
- 西门子s7_200PLC发电机励磁控制程序含
- avr IAR 控制步进电机正反快慢转
- 51单片机多个超声波测距
- 80c51单片机4位数码管计算器设计
- 步进电机驱动代码TB6600+57BYG250B+51单片
- HC06蓝牙模块控制小灯开关例程
- 电磁循迹 (2).zip
- GPS导航系统仿真源代码+仿真文件+虚拟
- 基于51单片机bmp180测气压温度实测可用
- 基于单片机的智能盆栽设计
- 智能控制 刘金琨教材源码
- 微程序控制的访存系统设计
- 51单片机-双机串行通信注释版
- zw_离散PID控制器.zip
- 51单片机红外通信
- 基于的PLC控制自动售货机
- 基于51单片机的红外循迹小车
- 最优控制理论与系统胡寿松版部分习
- 8086 8个开关控制8个LED
- 微机原理课程设计——交通灯控制系
- 基于51单片机的自动化灌溉系统程序
- 2020美赛专用模板-替换成控制号.zip
评论
共有 条评论