📄 uart_8.asm
字号:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; UART_8 FOR EPM7128SLC84-15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RESET BIT P1.0
TDEMPTY BIT P1.1
CS BIT P2.5
WR BIT P3.6
RD BIT P3.7
LED BIT P3.2
TXDF BIT 01H
RXDF BIT 02H
DATATX EQU 40H
DATARX EQU 41H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
ORG 0000H
LJMP START
ORG 0013H
LJMP INT1
ORG 0023H
LJMP COM
START: CLR CS
CLR RESET
SETB RESET
MOV SP,#60H
MOV TMOD,#21H
MOV TH1,#0FAH
MOV TL1,#0FAH
MOV PCON,#80H
MOV SCON,#70H
CLR RD
SETB RD
SETB CS
SETB TR1
SETB ET1
SETB ES
SETB EX1
SETB EA
SETB RESET
CLR TXDF
CLR RXDF
MOV P0,#9CH ;24MHz/156/16, baudrate = 9600
CLR WR
SETB WR
CLR CS
LOOP: JNB TXDF,LOOP_0
CLR TXDF
NOBAUD: MOV P0,DATATX
CLR WR
SETB WR
JNB TDEMPTY,$
LJMP LOOP_0
LOOP_0: JNB RXDF,LOOP
MOV A,DATARX
CJNE A,DATATX,LEDL
LOOP_1: MOV SBUF,DATARX
JNB TI,$
CLR TI
LJMP EX
LEDL: CLR LED
LJMP LOOP_1
EX: CLR RXDF
LJMP LOOP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
COM: JB RI,COM_1
RETI
COM_1: PUSH ACC ;COM0接收 DATA0--DATA1--SYSCOMM
PUSH PSW
CLR RI
MOV DATATX,SBUF
OUT: SETB TXDF
POP PSW
POP ACC
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INT1: PUSH ACC
PUSH PSW
CLR RD
MOV P0,#0FFH
MOV A,P0
SETB RD
MOV DATARX,A
SETB RXDF
POP PSW
POP ACC
RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY100:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV R5,#0B4H
MOV R6,#00H
DELAY00:
DJNZ R6,$
DJNZ R5,DELAY00
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -