📄 s5.asm
字号:
;FILENAME S5.ASM
;
BUZZER REG P3.4
LED REG P3.7
;
ORG 0000H
LJMP RESET
ORG 0023H
LJMP SIOISR
;
RESET MOV R0,#00H
DJNZ R0,$
CLR LED
CLR BUZZER
;
START MOV SP,#3FH
LCALL INIT_SIO
STEP1 MOV 20H,#00H
CLR F0
STEP2 SETB REN ;SET RECEIVE ENABLE
STEP3 SETB PS ;SERIAL INTERRUPT HIGHER PRIORITY
SETB ES ;ENABLE SERIAL INTERRUPT
STEP4 CLR RI ;CLEAR RI
CLR TI ;CLEAR TI
STEP5 SETB EA ;ENABLE SYSTEM INTERRUPT
;
MAIN ;MAIN ROUTINE START
INC 20H
LCALL DELAY
JNB F0,MAIN ;LOOP AGAIN
;
STOP SETB BUZZER
SJMP STOP ;DISABLE SERIAL INTERRUPT
;
SIOISR JNB RI,ISREND
MOV A,SBUF ;READ CHARACTER FROM SBUF
CLR RI
CLR TI
MOV SBUF,A ;ECHO BACK
CJNE A,#'!',ISREND
SETB F0
ISREND RETI
;
INIT_SIO
MOV TMOD,#00100000B ;TIMER 1 MODE 2
MOV TH1,#FDH ;BAUD RATE=9600 BPS
SETB TR1 ;START TIMER 1
MOV SCON,#01010000B ;ENABLE RECEIVE
RET ;1 START,8 BITDATA,1 STOP BIT
;
DELAY MOV R0,#04H
MOV R1,#00H
DLY1 DJNZ R0,$
DJNZ R1,DLY1
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -