實驗要求:AT89S52串行通信口工作在方式1,8位UART方式,允許接收,9600bps。在PC機上運行串口調試軟件。編程實現:單片機接收PC機發送的數據并回送給PC機顯示,可同時送LED顯示;
//This program is copyed on the internet;
//I even don't know the author ;here I thank him
//The dare
;打開任意串口調試軟件
;打開對應的串口,可以在設備管理器中看到
;設置波特率為9600,8個數據位,1個停止位,無奇偶校驗
;在發送欄輸入任意數字或者字符串,點擊發送,接收區能接收到相同的信息
;發送格式與接收格式必須相同,如都是字符或者都是十六進制格式
ORG 0000H
AJMP MAIN
ORG 0023H //串口中斷程序的入口地址
AJMP RECEIVE //跳轉到接收中斷入口
ORG 0030H
MAIN: MOV TMOD,#20H //T1工作方式2
MOV TH1,#0FDH ;波特率9600
MOV SCON,#50H ;傳口工作方式1,允許中斷接受
SETB EA ;打開總中斷
SETB ES ;打開串口中斷
SETB TR1 ;打開定時器1
AJMP $
RECEIVE:
CLR RI
MOV A,SBUF //串口接收數據
MOV R0,A
MOV SBUF,A //將接收的數據再傳送給計算機
JNB TI,$
CLR TI
MOV A,R0
MOV P1,A //送LED顯示
RETI
END