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

📄 cymometer.asm

📁 用到Proteus软件来仿真51单片机
💻 ASM
字号:
VALUEH	EQU		20H				;暂存TH1的值
VALUEL	EQU		21H			   	;暂存TL1的值
DVALUE0	EQU		22H				;暂存计数值的BCD码
DVALUE1	EQU		23H
DVALUE2	EQU		24H
DVALUE3	EQU		25H
DVALUE4	EQU		26H
CNT		EQU		30H
KEY		EQU		P3.7
		ORG		00H
		SJMP	START
		ORG		0BH
		LJMP	INT_T0
START:	MOV		DPTR,#TABLE

		MOV		20H,#00H	 	;存储空间初始化
		MOV		21H,#00H
		MOV		22H,#00H
		MOV		23H,#00H
		MOV		24H,#00H
		MOV		25H,#00H
		MOV		26H,#00H
		MOV		30H,#00H

		MOV		TMOD,#51H		;定时器0工作在定时方式
								;定时器1工作在计数方式
		MOV		TH0,#(65536-50000)/256
		MOV		TL0,#(65536-50000)MOD 256
		MOV		TH1,#00H
		MOV		TL1,#00H
		MOV		IE,#8AH
WAIT:	JB		KEY,$
		LCALL	DELAY
		JB		KEY,$			;按键为低电平时,开始计数
		SETB	TR0
		SETB	TR1
W1:		LCALL	DISP			;显示计数值
		JNB		KEY,W1
		LJMP	START
INT_T0:	MOV		TH0,#(65536-50000)/256
		MOV		TL0,#(65536-50000)MOD 256
		INC		CNT
		MOV		A,CNT
		CJNE	A,#20,RETUNE	;是否计满1秒
		MOV		CNT,#00H
		CLR		TR0
		CLR		TR1
		MOV		VALUEL,TL1		;存放计数值
		MOV		VALUEH,TH1
		LCALL	HTOD			;将十六进制数转换为十进制数
RETUNE:	RETI
;************************
;这段程序将VALUEH/VALUEL中的16进制数转成10进制并且把5位数依次存入
;DVALUE0至DVALUE4
HTOD:	MOV		R2,VALUEH
		MOV		R3,VALUEL
		CLR		A
		MOV		R4,A
		MOV		R5,A
		MOV		R6,A
		MOV		R7,#10H
LOOP1:	CLR		C
		MOV	A,R3
		RLC	A
		MOV	R3,A
		MOV	A,R2
		RLC	A
		MOV	R2,A
		MOV	A,R6
		ADDC	A,R6
		DA	A
		MOV	R6,A
		MOV	A,R5
		ADDC	A,R5
		DA	A
		MOV	R5,A
		MOV	A,R4
		ADDC	A,R4
		DA	A
		MOV	R4,A
		DJNZ	R7,LOOP1
CZ:		MOV	R0,#DVALUE4
		MOV	A,R6
		ANL	A,#0FH
		MOV	@R0,A
		DEC	R0
		MOV	A,R6
		SWAP	A
		ANL	A,#0FH
		MOV	@R0,A
		DEC	R0
		MOV	A,R5
		ANL	A,#0FH
		MOV	@R0,A
		DEC	R0
		MOV	A,R5
		SWAP	A
		ANL	A,#0FH
		MOV	@R0,A
		DEC	R0
		MOV	A,R4
		ANL	A,#0FH
		MOV	@R0,A
		RET
;***************************
DISP:	MOV		P2,0FFH		   	;显示子程序
		CLR		P2.0
		MOV		A,DVALUE4
		MOVC	A,@A+DPTR
		MOV		P0,A
		LCALL	DELAY
		SETB	P2.0
		CLR		P2.1
		MOV		A,DVALUE3
		MOVC	A,@A+DPTR
		MOV		P0,A
		LCALL	DELAY
		SETB	P2.1
		CLR		P2.2
		MOV		A,DVALUE2
		MOVC	A,@A+DPTR
		MOV		P0,A
		LCALL	DELAY
		SETB	P2.2
		CLR		P2.3
		MOV		A,DVALUE1
		MOVC	A,@A+DPTR
		MOV		P0,A
		LCALL	DELAY
		SETB	P2.3
		CLR		P2.4
		MOV		A,DVALUE0
		MOVC	A,@A+DPTR
		MOV		P0,A
		LCALL	DELAY
		SETB	P2.4
		RET
DELAY:	MOV		R6,#10		  	;延时5毫秒
D1:		MOV		R7,#248
		DJNZ	R7,$
		DJNZ	R6,D1
		RET
TABLE: 	DB 		3FH,06H,5BH,4FH,66H
		DB		6DH,7DH,07H,7FH,6FH
		END			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -