📄 串口的接收发送程序.txt
字号:
CURR_NUM EQU 30H ;HEX
org 0000H
jmp MAIN
org 0023H
ljmp INTERRRUPTE_SERIAL
;****************************************************
org 0030H
MAIN:
mov p0,#0FFH
mov p1,#0FFH
mov p2,#0FFH
mov P3,#0FFH
/*intialize serial*/
mov TMOD,#20H ;set T1 made
;9600 for 11.0592
mov TH1,#0FDH
mov TL1,#0FDH
mov SCON,#50H ;Enable receive
setb ES ;Enable interrupte
setb TR1 ;start T1
;all interrupte
setb EA
mov CURR_NUM,#00H ;Intialize the var
clr p3.3 ;clear the common line
MAIN_LOOP:
jb p2.7,KEY_2
call DELAY
call MUN_ADD
call SEND_NUMBER
jmp NEXT_LOOP
KEY_2:
jb p2.6,NEXT_LOOP
call DELAY
call MUN_SUB
call SEND_NUMBER
jmp NEXT_LOOP
NEXT_LOOP:
call DISPLAY_NUM
jmp MAIN_LOOP
ret
;************************************************************
DISPLAY_NUM:
mov a,CURR_NUM
mov b,#0AH
div ab
mov R0,a
mov a,b
mov dptr,#TAB_LED
movc a,@a+dptr
mov p0,a
mov p2,#11111011B
call DELAY_DISP
mov a,R0
mov dptr,#TAB_LED
movc a,@a+dptr
mov p0,a
mov p2,#11110111B
call DELAY_DISP
ret
;***********************************************************
SEND_NUMBER:
mov SBUF,CURR_NUM
jnb TI,$
clr TI
ret
;**************************************************************
INTERRRUPTE_SERIAL:
;NO date tob receive ,then exit
jnb RI,INTERRRUPTE_SERIAL_EXIT
clr RI
mov CURR_NUM,SBUF
INTERRRUPTE_SERIAL_EXIT:
reti
;**************************************************************
MUN_ADD:
mov a,CURR_NUM
cjne a,#99,INC_NUM
mov CURR_NUM,#00H
jmp NUM_ADD_EXIT
INC_NUM:
inc CURR_NUM
jmp NUM_ADD_EXIT
NUM_ADD_EXIT:
ret
;**************************************************************
MUN_SUB:
;Get privice value
mov a,CURR_NUM
jz NUM_SUB_99
MUN_SUB_1:
dec CURR_NUM
jmp NUM_SUB_TEXT
NUM_SUB_99:
mov CURR_NUM,#99
jmp NUM_SUB_TEXT
NUM_SUB_TEXT:
ret
;*************************************************************
DELAY:
mov R7,#200
DELAY_LOOP:
mov R6,#200
djnz R6,$
mov R6,#200
djnz R6,$
djnz R7,DELAY_LOOP
ret
;*************************************************************
DELAY_DISP:
mov R7,#10
DELAY_DISP_LOOP:
mov R6,#200
djnz R6,$
mov R6,#200
djnz R6,$
djnz R7,DELAY_DISP_LOOP
ret
;*************************************************************
TAB_LED: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;***********************************************************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -