⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1-99按键加减(16进制).txt

📁 关于单片机中流水线处理,红绿灯转化等实验
💻 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 + -