久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機串口控制舵機,出現詭異問題。大佬幫看看?
[打印本頁]
作者:
完后余生9375
時間:
2020-3-29 14:48
標題:
51單片機串口控制舵機,出現詭異問題。大佬幫看看?
用串口控制舵機的時候會出現一下情況。
1.發出90度指令后,會自動回到45度。
2.發送指令偶爾不聽使喚。不響應。
3.發送太快舵機就再也不轉了。
哪個大佬幫忙看看?
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
//變量
uchar buf;
uchar sending = 0;
uint cmd = 1;//串口收到的命令是否已經處理
//L298N控制電機
sbit IN1 = P1^1;
sbit IN2 = P1^2;
//舵機控制
sbit SG_PWM=P1^0;
uchar count=0;
uchar cycle_count = 0;
uchar PWM_count=2; //1--0度,2--45度,3--90度,4--135度,5--180度
//esp8266控制
uchar START_MORE_CONN[] = "AT+CIPMUX=1\r\n";
uchar START_SERVER[] = "AT+CIPSERVER=1,8080\r\n";
uchar SEND_DATA[] = "AT+CIPSEND=0,10\r\n";
//申明函數
void delay(uint);
void send(uchar);
void initUart(void);
void initTimer(void);
void sendc(uchar*);
void espData(uchar);
void espDatas(uchar*);
void main(void)
{
EA=1;
TMOD=0x21;
//初始化串口
initUart();
//打開定時器
initTimer();
//開啟esp8266服務
delay(5000);
sendc(START_MORE_CONN);
delay(2000);
sendc(START_MORE_CONN);
delay(2000);
sendc(START_SERVER);
while(1){
if(cycle_count == 8){
if(cmd == 0){
count = 0;
switch(buf){
case 0x31:
PWM_count = 1;
break;
case 0x32:
PWM_count = 2;
break;
case 0x33:
PWM_count = 3;
break;
}
cmd = 1;
}
cycle_count = 0;
}
}
}
//初始化串口 9600
void initUart(void){
SCON=0x50;
PCON=0x00;
ES = 1;
TL1=0xfd;
TH1=0xfd;
TR1=1;
sending = 0;
}
void initTimer(void){
TH0=0Xfe;
TL0=0X33; //計數初值設置為0.5ms
ET0=1; //打開定時器0的中斷
TR0=1; //打開定時器0
}
//發送一個字節的數據,形參d即為待發送數據。
void send(uchar d)
{
sending=1; //設置發送標志
SBUF=d; //將數據寫入到串口緩沖
while(!TI);
TI = 0;
sending = 0; //等待發送完畢
}
//發送字符串uchar a[]='哈哈哈哈';
void sendc(uchar * pd)
{
while((*pd)!='\0') //發送字符串,直到遇到0才結束
{
send(*pd); //發送一個字符
pd++; //移動到下一個字符
}
}
/**
* 延時函數
**/
void delay(uint i)
{
uint x,y;
for(x = i; x > 0; x--)
for(y = 120; y > 0 ; y--);
}
/**
* esp8266數據反饋
*
*/
void espData(uchar d){
delay(100);
sendc(SEND_DATA);
delay(300);
send(d);
}
void espDatas(uchar* d){
delay(100);
sendc(SEND_DATA);
delay(300);
sendc(d);
}
/*********************************************************
串口接收
*********************************************************/
void serial() interrupt 4
{
//收到數據
if(RI){
RI=0; //清中斷請求
buf = SBUF;
if(buf == 0x31 || buf == 0x32 || buf == 0x33 && cmd == 1){
cmd = 0;
}
}
}
/*********************************************************
定時器0接收
*********************************************************/
void timer() interrupt 1
{
TR0=0;
TH0=0Xfe;
TL0=0X33; //重新賦計數初值為0.5ms
if(count<=PWM_count)
{
SG_PWM=1;
}
else
{
SG_PWM=0;
}
count++;
if(count>=40)
{
count=0;
cycle_count++;
}
TR0=1;
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
成人激情免费视频
|
亚洲综合激情
|
国产91丝袜在线播放
|
欧美一级片在线
|
国产日韩欧美一区
|
亚洲一区二区三区在线播放
|
亚洲风情在线观看
|
四虎在线观看
|
黄色一级大片在线免费看产
|
精品久久久久一区二区国产
|
久久久噜噜噜久久中文字幕色伊伊
|
中文字幕二区
|
日韩一级黄色毛片
|
亚洲精品一
|
久久亚洲一区二区三区四区
|
黄色福利
|
日韩欧美亚洲
|
午夜激情一区
|
成人国产一区二区三区精品麻豆
|
北条麻妃一区二区三区在线视频
|
99综合网
|
九九热在线免费视频
|
欧美日韩视频在线播放
|
成人精品一区二区三区中文字幕
|
日韩av在线不卡
|
精品不卡
|
久国产
|
精品国产久
|
中文字幕视频一区二区
|
一级a性色生活片久久毛片 午夜精品在线观看
|
欧美a∨
|
亚洲精品一区二区三区在线
|
国产高清自拍视频在线观看
|
99久热
|
亚洲小视频在线观看
|
97精品国产97久久久久久免费
|
99久久国产
|
久久久激情
|
日本三级在线网站
|
看黄在线
|
国产精品99久久久久久动医院
|