資源簡介
通過單片機的串口發送控制數據 控制舵機的轉向

代碼片段和文件信息
#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
評論
共有 條評論