欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機(jī)串口通信如何發(fā)送一連串的數(shù)據(jù),我的為什么只能收到第一個(gè)0xfe
[打印本頁]
作者:
hax
時(shí)間:
2020-5-27 16:24
標(biāo)題:
51單片機(jī)串口通信如何發(fā)送一連串的數(shù)據(jù),我的為什么只能收到第一個(gè)0xfe
#include<reg51.h>
unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //流水燈控制碼
sbit key=P3^2;
void send(unsigned char dat) //數(shù)據(jù)發(fā)送程序
{
SBUF=dat; //將要發(fā)送的數(shù)據(jù)存入發(fā)送緩沖器中
while(TI==0); //若發(fā)送中斷標(biāo)志位沒有置1(正在發(fā)送數(shù)據(jù)),就等待
TI=0; //若發(fā)送完成,TI自動(dòng)置1,這里把它清零
}
void delay(void) //延時(shí)函數(shù)
{
unsigned char m,n;
for(m=0;m<2000;m++) //延時(shí)約50ms
for(n=0;n<250;n++);
}
void main(void)
{
unsigned char i;
TMOD=0x20; //定時(shí)器T1工作于方式2(可自動(dòng)重裝的8位定時(shí)器)
SCON=0x40; //串口工作方式1,不允許接收
PCON=0x00; //波特率不倍增
TH1=0xfd; //波特率為2400b/s
TL1=0xfd;
TR1=1; //啟動(dòng)定時(shí)器T1(T1作波特率的發(fā)生器)
EA=1;
ET1=1;
while(1)
{
if(key==0)
{
for(i=0;i<8;i++) //一共8位的流水燈控制碼
{
send(tab[i]); //發(fā)送數(shù)據(jù)
delay(); //每50ms發(fā)送一次數(shù)據(jù)
}
}
}
}
作者:
wulin
時(shí)間:
2020-5-27 16:24
延時(shí)函數(shù)寫錯(cuò)了,for(m=0;m<2000;m++),m最大只能加到255,for循環(huán)永遠(yuǎn)出不去,串口發(fā)送一次就卡死在delay();這里了。
作者:
along123321
時(shí)間:
2020-5-27 20:59
你沒有寫中斷函數(shù),把中斷打開干嘛? 是不是你中斷函數(shù)沒有放上來,程序卡在中斷函數(shù)里面了
作者:
f556
時(shí)間:
2020-5-27 21:37
最后delay(); 時(shí)間太短,建議500ms以上試試。
delay(void)寫的不好,要改進(jìn)
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1