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