|
1、利用單片機(jī)的串口用查詢方式發(fā)送英文字符的 ASCII 碼,波特率為 9600,可以在示波器上正確顯示時(shí)序波形。
2、 在 PC 機(jī)上通過串口調(diào)試軟件發(fā)送英文字符,單片機(jī)端通過中斷方式接收并應(yīng)答相同的字符。
在發(fā)送時(shí),采用查詢方式,因?yàn)榘l(fā)送時(shí)是 CPU 主動(dòng)的行為,一般不需要額外的使用中斷,但是在接受時(shí),CPU 處于被動(dòng)狀態(tài),如果不適用中斷,需要 CPU 一直處于查詢狀態(tài),才能確保每個(gè)數(shù)據(jù)都被接受,比較浪費(fèi)資源,這時(shí)采用中斷的方式是一種比較好的選擇
中斷接收 -------------脫機(jī)運(yùn)行
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP INTT0
ORG 0100H
MAIN: MOV TMOD,#20H ;方式 2 計(jì)時(shí)
MOV TH1, #0FDH ;波特率 9600
MOV TL1, #0FDH
MOV SCON, #50H ;方式 1 串口通信,允許接收
MOV PCON, #00H
MOV 8EH,#00H;
SETB TR1 ;開始計(jì)時(shí)
SETB ES ;允許串行口中斷
SETB EA ;允許 CPU 中斷
SJMP $
INTT0:
CLR RI ;接收數(shù)據(jù)完畢,中斷標(biāo)志位復(fù)位
MOV A,SBUF ;讀取接收數(shù)據(jù)
MOV SBUF,A ;應(yīng)答相同數(shù)據(jù)
LOOP: JNB TI,LOOP ;等待一幀數(shù)據(jù)發(fā)送結(jié)束
CLR TI ;發(fā)送數(shù)據(jù)完畢,中斷標(biāo)志位復(fù)位
RETI ;中斷返回
END
查詢發(fā)送
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV TMOD,#20H ;設(shè)置定時(shí)器 T1 為方式 2
MOV TH1, #0FDH ;設(shè)置波特率 9600
MOV TL1, #0FDH
MOV SCON, #50H ;設(shè)置串口為方式 1
MOV PCON, #00H
SETB TR1 ;定時(shí)器 1 開始計(jì)數(shù)
LOOP: MOV SBUF, #41H ;開始發(fā)送數(shù)據(jù)
SEND: ;查詢發(fā)送中斷標(biāo)志位 TI
JBC TI, LOOP ;若完成,再次發(fā)送
AJMP SEND ;若非,則繼續(xù)查詢
END
|
評(píng)分
-
查看全部評(píng)分
|