標題:
如何用單片機串口發(fā)送字符控制舵機
[打印本頁]
作者:
藍琪
時間:
2018-10-29 22:21
標題:
如何用單片機串口發(fā)送字符控制舵機
寫了個用51單片機串口發(fā)送字符控制舵機的程序,發(fā)送0左轉(zhuǎn)動90°,發(fā)送1右轉(zhuǎn)動90°。我想要改為發(fā)送0左轉(zhuǎn)動90°,延時1s后歸位,同理發(fā)送1也一樣,請問怎么改?
下面的是兩段主要程序:
void Com_Int(void) interrupt 4
{
if(RI == 1) //當硬件接收到一個數(shù)據(jù)時,RI會置位
{
cmd = SBUF; //這里接收到的是16進制
RI = 0;
SBUF = cmd;
}
switch(cmd)
{
case 0:
SG1_count = 25;
break;
case 1:
SG1_count = 5;
break;
default: break;
}
if (TI) //字節(jié)發(fā)送完畢
{
TI = 0; //手動清零發(fā)送中斷標志位
} //TI清零
}
/*********************************
函數(shù):Time0Int()
參數(shù):無
返回:無
說明:定時器0中斷函數(shù)。用于處理PWM的信號。
**********************************/
void Time0Int(void) interrupt 1 using 1
{
if(count <= SG1_count) //控制占空比左右
{
//如果count的計數(shù)小于(5-25)也就是0.5ms-2.5ms則這段小t周期持續(xù)高電平。產(chǎn)生方波
SG1_PWM = 1;
}
else
{
SG1_PWM = 0;
}
count++;
if (count >= 200) //T = 20ms則定時器計數(shù)變量清0
{
count = 0;
}
}
作者:
xuyaqi
時間:
2018-10-30 08:39
發(fā)送 左90°后 延時1秒 再發(fā) 右90°歸位,同理發(fā)送 右90°后 延時1秒 再發(fā) 左90°歸位。
作者:
yousunny
時間:
2018-10-30 09:15
switch(cmd)
{
case 0:
SG1_count = 25;
flag1=1;
break;
case 1:
SG1_count = 5;
flag2=1;
break;
default: break;
}
加上一個標志位然后在主循環(huán)中掃描這個標志位,按照這個思路試試
作者:
333ff
時間:
2018-10-30 15:00
可以試試
作者:
285983552
時間:
2018-10-30 15:24
左90°后 延時1秒 再發(fā) 右90°歸位,同理發(fā)送 右90°后 延時1秒 再發(fā) 左90°歸位。
作者:
在菩提樹下噓噓
時間:
2018-10-30 16:38
厲害厲害
作者:
zhangaibinlesli
時間:
2018-10-30 19:16
很好現(xiàn)在正急需
作者:
zhangaibinlesli
時間:
2018-10-30 19:16
現(xiàn)在正急需這個
作者:
kxl
時間:
2018-10-30 19:55
可以試試
作者:
zhang3350552
時間:
2018-10-30 20:07
學習學習
作者:
愛愛愛
時間:
2018-10-30 22:13
電腦上位機發(fā)送字符給單片機 單片機進行處理命令 然后在串口中斷里面判斷接受到的字符 接受到什么字符 單片機執(zhí)行什么操作
作者:
perfect12345678
時間:
2018-10-30 23:15
上位機
作者:
藍琪
時間:
2018-11-1 16:42
yousunny 發(fā)表于 2018-10-30 09:15
switch(cmd)
{
case 0:
試了下,還是不行,但還是謝謝了,換了個思路做
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1