0000-9999bcd.txt

来自「单片机显示0000-9999的源代码」· 文本 代码 · 共 158 行

TXT
158
字号
CURR_HIGH_NUM   EQU 30H
CURR_LOW_NUM	EQU 31H
	org	0000h
	jmp	main
	org	0030H
main:
	mov	p0,#0FFH
	mov	p1,#0FFH
	mov	p2,#0FFH
	mov	p3,#0FFH	;chushihua
	
	mov 	CURR_HIGH_NUM,#00H
	mov	CURR_LOW_NUM,#00H
	clr	p3.3

main_LOOP:
	jb	p2.7,KEY_2	;ceship2.7shifouwei1,wei1tiaozhuan
	call	DELAY
	call	NUM_ADD
	jmp	NEXT_LOOP
	
KEY_2:
	jb	p2.6,NEXT_LOOP	;ceship2.6shifouwei1,wei1tiaozhuan
	call	DELAY
	call	NUM_SUB
	jmp	NEXT_LOOP

NEXT_LOOP:
	call	DISPLAY_NUM
	jmp	main_LOOP
	ret


DISPLAY_NUM:
	mov 	a,CURR_LOW_NUM
	anl	a,#0FH
	mov 	dptr,#TAB_LED
	movc	a,@a+dptr

	mov 	p0,a
	mov	p2,#11111011B
	call	DELAY_DISP
	
	mov	a,CURR_LOW_NUM
	swap	a
	anl	a,#0FH
	mov	dptr,#TAB_LED
	movc	a,@a+dptr

	mov	p0,a
	mov	p2,#11110111B
	call	DELAY_DISP

	mov 	a,CURR_HIGH_NUM
	anl	a,#0FH
	mov 	dptr,#TAB_LED
	movc	a,@a+dptr

	mov 	p0,a
	mov	p2,#11101111B
	call	DELAY_DISP

	mov 	a,CURR_HIGH_NUM
	swap	a
	anl	a,#0FH
	mov 	dptr,#TAB_LED
	movc	a,@a+dptr

	mov 	p0,a
	mov	p2,#11011111B
	call	DELAY_DISP
	ret

NUM_ADD:
	mov	a,CURR_LOW_NUM
	add	a,#01H
	clr	c
	da	a
	mov	CURR_LOW_NUM,a
	
	mov	a,CURR_HIGH_NUM
	addc	a,#00H
	da	a
	mov	CURR_HIGH_NUM,a
	
	ret
NUM_SUB:
	mov	a,CURR_LOW_NUM
	jz	NUM_LOW_SUB_99
	anl	a,#0FH
	cjne	a,#00H,NUM_LOW_SUB_1
	mov	a,CURR_LOW_NUM
	;clr	c
	;subb	a,#10H
	;add	a,#09H
	subb	a,#07H
	jmp	NUM_LOW_SUB_EXIT
	
NUM_LOW_SUB_1:
	mov	a,CURR_LOW_NUM
	clr	c
 	subb	a,#01H
	jmp	NUM_LOW_SUB_EXIT
	
NUM_LOW_SUB_99:
	mov	a,#99H
NUM_HIGH_SUB:
	mov	a,CURR_HIGH_NUM
	jz	NUM_HIGH_SUB_99
	anl	a,#0FH
	cjne	a,#00H,NUM_HIGH_SUB_1
	mov	a,CURR_HIGH_NUM
	;clr	c
	;subb	a,#10H
	;add	a,#09H
	subb	a,#07H
	jmp	NUM_HIGH_SUB_EXIT
	
NUM_HIGH_SUB_1:
	mov	a,CURR_HIGH_NUM
  	subb	a,#01H
	jmp	NUM_HIGH_SUB_EXIT
	
NUM_HIGH_SUB_99:
	mov	a,#99H
	
NUM_HIGH_SUB_EXIT:
	mov	CURR_HIGH_NUM,a		
	
NUM_LOW_SUB_EXIT:
	mov	CURR_LOW_NUM,a

	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,#20
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 + =
减小字号Ctrl + -
显示快捷键?