單片機(jī)C51與CH375串口連接時(shí),我的測(cè)試程序如下: #include
#define CHECK_EXIST 0x06
void delay(void);
void main(void) { unsigned char data temp;
EA= 0; SCON= 0xd0; //′??ú1¤×÷·?ê?3 ES= 1; PCON= PCON & 0x7f; //SMOD= 0
TMOD= 0x20; //?¨ê±?÷11¤×÷·?ê?2 TH1= 0xfd; TL1= 0xfd;
IT0= 1; //ía2??D??03?ê??ˉ EX0= 1;
ET1= 0; //?¨ê±?÷1?D??1? TR1= 1; //???ˉ?¨ê±?÷1 EA= 1; TB8= 1; //·¢?íμ?ê??üá? temp= CHECK_EXIST; SBUF= temp; delay(); TB8= 0; SBUF= 0x55;
while(1){} }
void UART(void) interrupt 4 using 2 { unsigned char temp; if(RI==1) { P1= 0xaa; } }
void delay(void) { unsigned char i; i= 0x0f; while(i) { i--; } } 測(cè)試程序流程為: 1.單片機(jī)通過(guò)串口發(fā)出測(cè)試命令CHECK_EXIST 2.再發(fā)送測(cè)試數(shù)據(jù)0X55; 3.等待從CH375發(fā)來(lái)的串口測(cè)試數(shù)據(jù)0XAA;
請(qǐng)問(wèn)這樣的流程有沒(méi)錯(cuò)呢?CH375會(huì)不會(huì)先向單片機(jī)外部中斷,單片機(jī)分析中斷狀態(tài),發(fā)出讀數(shù)據(jù)命令,CH375才發(fā)來(lái)數(shù)據(jù)0xaa呢? 不過(guò),我想不會(huì)有中斷的吧,直接就是串口數(shù)據(jù)0xaa.是不是?
上面的程序有什么問(wèn)題嗎?