📄 m1int.asm
字号:
;FILE: M1INT.ASM
;
;THIS PROGRAM RECEIVES A VALUE ENTERING INTO THE SERIAL PORT PIN RXD AND PUTS
;THE DATA OUT TO PORT 1
;
;
;DETAILS:
;
;THE PROGRAM IS DESIGNED TO BE IN A CONTINUOUS NEVER ENDING LOOP UNTIL A BYTE OF DATA HAS BEEN
;COMPLETELY RECEIVED. THE LOOP IS EXITED BECAUSE OF THE OCCURANCE OF A SERIAL INTERRUPT. AFTER
;THE INTERRUPT HAS BEEN SERVICED, THE PROGRAM GOES BACK INTO IT'S ENDLESS LOOP UNTIL ANOTHER
;INTERRUPT OCCURS
;
;
PCON EQU 87H ;DEFINE PCON REGISTER LOCATION
;
ORG 00H
;
JMP MAIN
;
ORG 023H ;STARTING ADDRESS OF SERIAL INTERRUPT
JMP SERIAL_INT
;
MAIN: MOV SCON, #50H ;SET UP SERIAL PORT FOR MODE 0 WITH RECEIVE ENABLED
MOV TMOD, #20H ;SET UP TIMER 1 AS AUTO-RELOAD 8-BIT TIMER
MOV TH1, #0DDH ;BAUD RATE EQUALS 2400 BAUD AT 16MhZ
MOV PCON, #80H ;SET THE DOUBLE BAUD RATE BIT
MOV IE, #81H
MOV TCON, #40H ;START TIMER 1
CLR RI ;ENSURE THAT THE RECEIVE INTERRUPT FLAG IS CLEAR
LOOP: JMP LOOP ;ENDLESS LOOP (UNLESS INTERRUPT OCCURS)
;
SERIAL_INT: ;SERIAL INTERRUPT ROUTINE
CLR RI ;CLEAR THE RI BIT (SINCE WE KNOW THAT WAS THE BIT THAT CAUSED THE
; INTERUPT)
MOV P1, SBUF ;MOVE THE RECEIVED DATA OUT TO PORT ONE
RETI ;EXIT THE SERIAL INTERRUPT ROUTINE
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -