欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
求大神指點(diǎn) 單片機(jī)串口通訊和步進(jìn)電機(jī)控制失敗
[打印本頁(yè)]
作者:
心有天下
時(shí)間:
2024-1-25 12:13
標(biāo)題:
求大神指點(diǎn) 單片機(jī)串口通訊和步進(jìn)電機(jī)控制失敗
我最近在搞51單片機(jī)串口通訊和42步進(jìn)電機(jī)控制,但是始終無法解決雙定時(shí)器問題。 使用的是89c52芯片+步進(jìn)電機(jī)驅(qū)動(dòng)+42步進(jìn)電機(jī),我苦惱的是,單獨(dú)使用串口通訊功能沒有,單獨(dú)控制42步進(jìn)電機(jī)也沒有問題,但是結(jié)合在一起,就不行了。
求大神指點(diǎn)。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit shi_neng=P1^0; // 使能控制位
sbit fang_xiang=P1^1;// 旋轉(zhuǎn)方向控制位
sbit mai_chong=P1^2; // 脈沖控制位
sbit qi_dong=P2^0;// 啟動(dòng)按鈕
sbit ting_zhi=P2^1;//停止按鈕
sbit zheng_zhuan=P2^2;//正轉(zhuǎn)按鈕
sbit dg5=P1^5;
sbit dg6=P1^6;
sbit beep = P2^3;//蜂鳴器接口
uchar num,p1;//發(fā)送暫存變量
unsigned int m,f,s,pp,sa,xa,xb;
unsigned int p2;
void delay(uint i)//延時(shí)函數(shù)
{
uchar j,k;
for(j=0;j<i;j++)
for(k=0;k<50;k++);
}
void UART_init()
{
SCON=0X50;
TMOD = 0x20; //T1工作模式2 8位自動(dòng)重裝
TH1 = 0xfd;
TL1 = 0xfd; //比特率9600
TR1 = 1; //啟動(dòng)T1定時(shí)器
SM0 = 0;
SM1 = 1; //串口工作方式1 10位異步
REN = 1; //串口允許接收
EA = 1; //開總中斷
ES = 1; //串口中斷打開
}
void djzf(uint x)
{
if(x==1)
{
shi_neng=0; // 使能控制位
fang_xiang=1;// 旋轉(zhuǎn)方向控制位
dg5=0;
dg6=1;
}
if(x==2)
{shi_neng=0; // 使能控制位
fang_xiang=0;// 旋轉(zhuǎn)方向控制位
dg5=1;
dg6=0;
}
if(x==3)
{shi_neng=1; // 使能控制位
fang_xiang=0;// 旋轉(zhuǎn)方向控制位
dg5=1;
dg6=1;
}
}
void main()
{
unsigned int p3;
UART_init(); //串口初始化
p3=p2;
switch (p2)
{
case 1:djzf(1);
case 2:djzf(2);
case 3:djzf(3);
break;
}
while(1);
{
mai_chong=1; //輸出時(shí)鐘脈沖
delay(3);
mai_chong=0;
delay(3);
}
}
void UART() interrupt 4
{
if(RI) //檢測(cè)是否接收完成
{
num = SBUF; //num 取出接收緩存器的值
p2=(int)num;
beep = 0;
delay(100);
beep = 1;//蜂鳴器發(fā)出滴提示音
num++;//把接收的數(shù)據(jù)加1并發(fā)送
RI = 0;
SBUF = num;
EA=0;
while(!TI);
TI = 0;
}
}
作者:
心有天下
時(shí)間:
2024-1-25 12:16
我分析的原因是,如果開串口通訊,那么T1是自動(dòng)控制,T0不工作,我需要T0來產(chǎn)生驅(qū)動(dòng)頻率,但是采用TMOD=0X03后仍然不行,T0和T1始終無法實(shí)現(xiàn)同時(shí)工作,所以導(dǎo)致我無法實(shí)現(xiàn)通過串口控制步進(jìn)電機(jī)
作者:
Hephaestus
時(shí)間:
2024-1-25 16:10
就不應(yīng)該用51來搞這一套。
2010年我接一個(gè)步進(jìn)電機(jī)為核心的項(xiàng)目,想用STM32,一查定時(shí)器只有16位太沒有誠(chéng)意了,果斷換成LPC1756
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1