📄 1-99按键加减(16进制).txt
字号:
CURR_NUM EQU 30H ;HEX
org 0000H
jmp MAIN
;*******************************************
org 0030H ;Start program from 0030H
MAIN:
mov P0,#0FFH ;Initialize the port
mov P1,#0FFH
mov P2,#0FFH
mov P3,#0FFH
mov CURR_NUM,#00H ;Initilize the var
clr P3.3 ;Clear the common line
MAIN_LOOP:
jb P2.7,KEY_2 ;Wait for key down,ADD
call DELAY
call NUM_ADD
jmp NEXT_LOOP
KEY_2:
jb P2.6,NEXT_LOOP ;Wait for key down,SUB
call DELAY
call NUM_SUB
jmp NEXT_LOOP
NEXT_LOOP:
call DISPLAY_NUM
jmp MAIN_LOOP
ret
;****************************************************
DISPLAY_NUM:
;A<-A/B,
mov a,CURR_NUM
mov b,#0Ah ;(b)=10
div ab
mov r0,a
;Display the low value
mov a,b
mov dptr,#TAB_LED
movc a,@a+dptr
mov P0,a ;Display the number
mov P2,#11111011B
call DELAY_DISP
;Display the high value
mov a,r0
mov dptr,#TAB_LED
movc a,@a+dptr
mov P0,a ;Display the number
mov P2,#11110111B
call DELAY_DISP
ret
;****************************************************
NUM_ADD:
mov a,CURR_NUM
cjne a,#99,INC_NUM ;Warning:only 99,not 99H
;If CURR_NUM=099,then reset CURR_NUM
mov a,#00H
jmp NUM_ADD_EXIT
INC_NUM:
;Simple add 1
mov a,CURR_NUM
inc a
NUM_ADD_EXIT:
mov CURR_NUM,a
ret
;****************************************************
NUM_SUB:
;Get previos value
mov a,CURR_NUM
jz NUM_SUB_99
NUM_SUB_1:
;Simple sub 1
mov a,CURR_NUM
dec a
jmp NUM_SUB_EXIT
NUM_SUB_99:
;If CURR_NUM=0 then CURR_NUM=99 after sub
mov a,#99 ;Warning:only 99,not 99H
NUM_SUB_EXIT:
mov CURR_NUM,a
ret
;****************************************************
DELAY:
mov r7,#250
DELAY_LOOP:
mov r6,#100
djnz r6,$
mov r6,#100
djnz r6,$
djnz r7,DELAY_LOOP
ret
;****************************************************
DELAY_DISP:
mov r7,#20
DELAY_DISP_LOOP:
mov r6,#200
djnz r6,$
mov r6,#200
djnz r6,$
djnz r7,DELAY_DISP_LOOP
ret
;****************************************************
;****************************************************
;LED code
TAB_LED:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;****************************************************
END
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -