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

📄 计数器.asm

📁 一中非常实用的单片机做的10000位计数器,可代替传统的专用计数器,可嵌入到其它系统使用.
💻 ASM
字号:
	;计数器(计数到10000)
	;四位数码管,按键加一减一清零数显程序(P3.2为加一键,P3.3为减一键,计数器清零)
LOOP:	TEMP	EQU	22H	;计数器寄存器
	TEMP1	EQU	23H	;计数器寄存器
	;******	;
	;主程序	;
	;******	;
	MOV	TEMP,#100	;初始化计数器
	MOV	TEMP1,#100	;初始化计数器
GO:	SETB	P3.2	;置P3.2为加1键
	SETB	P3.3	;置P3.3为减1键
	JNB	P3.2,K1	;P3.2=0表明按键S1按下(加1键)
	JNB	P3.3,K2	;P3.3=0表明按键S2按下(减1键)
	JNB	P3.4,K1	;自动加1
	JNB	P3.5,LOOP	;计数器清零
	ACALL	TV	;显示
	LJMP	GO	;返回
K1:	JNB	P3.2,X1	;等待P3.2释放
	ACALL	TV	;显示延时
	INC	TEMP	;加1
	MOV	A,TEMP
	CJNE	A,#200,N1	;未到200中跳回
	MOV	TEMP,#100	;加到200复位100	;
	INC	TEMP1	;计数到100后百位加1
	MOV	A,TEMP1	;
N1:	LJMP	GO	;返回
X1:	ACALL	TV	;等待P33释放延时
	LJMP	K1
K2:	JNB	P3.3,X2	;等待P3.3释放
	ACALL	TV	;显示延时
	DEC	TEMP	;减1
	MOV	A,TEMP
	CJNE	A,#0,N2	;未到0中跳回
	MOV	TEMP,#100	;减到0复位100
N2:	LJMP	GO	;返回
X2:	ACALL	TV	;等待P34释放延时
	LJMP	K2
	;**********	;
	;显示子程序	;
	;**********	;
TV:	MOV	A,TEMP
	MOV	B,#100	;100进制
	DIV	AB
	MOV	19H,A	;百位放在19H
	MOV	A,B
	MOV	B,#10	;10进制
	DIV	AB
	MOV	20H,A	;十位放在20H
	MOV	21H,B	;个位放在21H
	MOV	DPTR,#W8	;指定查表启始地址
	MOV	A,TEMP1
	MOV	B,#100	;100进制
	DIV	AB
	MOV	24H,A	;百位放在24H
	MOV	A,B
	MOV	B,#10	;10进制
	DIV	AB
	MOV	25H,A	;百位放在25H
	MOV	26H,B	;千位放在26H
	MOV	DPTR,#W8	;指定查表启始地址
	MOV	R0,#4	;显示4个50次(可以调整显示时间快慢)
W9:	MOV	R1,#10	;50次(可以调整显示时间快慢)
W10:	MOV	A,21H	;取个位数
	MOVC	A,@A+DPTR	;查个位数的7段代码
	MOV	P0,A	;送出个位的7段代码
	CLR	P2.5	;打开个位显示
	ACALL	W13	;显示延时
	SETB	P2.5	;关闭个位显示
	MOV	A,20H	;取十位数
	MOVC	A,@A+DPTR	;查十位数的7段代码
	MOV	P0,A	;送出十位的7段代码
	CLR	P2.4	;打开十位显示
	ACALL	W13	;显示延时
	SETB	P2.4	;关闭十位显示
	MOV	A,26H	;取百位数
	MOVC	A,@A+DPTR	;查百位数的7段代码
	MOV	P0,A	;送出百位的7段代码
	CLR	P2.3	;打开百位显示
	ACALL	W13	;显示延时
	SETB	P2.3	;关闭百位显示
	MOV	A,25H	;取百位数
	MOVC	A,@A+DPTR	;查百位数的7段代码
	MOV	P0,A	;送出百位的7段代码
	CLR	P2.2	;打开千位显示
	ACALL	W13	;显示延时
	SETB	P2.2	;关闭千位显示
	DJNZ	R1,W10	;50次没完循环
	DJNZ	R0,W9	;4个50次没完循环
	RET
	;********	;
	;显示延时	;
	;********	;
W13:	MOV	R7,#70
	DJNZ	R7,$
	NOP
	RET
	;7段数码管各划的数字排列表
W8:	DB	0C0H,0F9H,0A4H,0B0H,99H,92H,82H,F8H,80H,90H
	;0	1	2	3	4	5	6	7	8	9
	END

⌨️ 快捷键说明

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