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

📄 计数器.lst

📁 一中非常实用的单片机做的10000位计数器,可代替传统的专用计数器,可嵌入到其它系统使用.
💻 LST
字号:
  安徽工程科技学院    计算机科学与工程系    谢永宁

        		 1		;计数器(计数到10000)
        		 2		;四位数码管,按键加一减一清零数显程序(P3.2为加一键,P3.3为减一键,计数器清零)
        	       	 3	LOOP:	TEMP	EQU	22H	;计数器寄存器
        	       	 4		TEMP1	EQU	23H	;计数器寄存器
        		 5		;******	;
        		 6		;主程序	;
        		 7		;******	;
  0000  752264	 	 8		MOV	TEMP,#100	;初始化计数器
  0003  752364	 	 9		MOV	TEMP1,#100	;初始化计数器
  0006  D2B2	   	 10	GO:	SETB	P3.2	;置P3.2为加1键
  0008  D2B3	   	 11		SETB	P3.3	;置P3.3为减1键
  000A  30B20E	 	 12		JNB	P3.2,K1	;P3.2=0表明按键S1按下(加1键)
  000D  30B326	 	 13		JNB	P3.3,K2	;P3.3=0表明按键S2按下(减1键)
  0010  30B408	 	 14		JNB	P3.4,K1	;自动加1
  0013  30B5EA	 	 15		JNB	P3.5,LOOP	;计数器清零
  0016  114D	   	 16		ACALL	TV	;显示
  0018  020006	 	 17		LJMP	GO	;返回
  001B  30B213	 	 18	K1:	JNB	P3.2,X1	;等待P3.2释放
  001E  114D	   	 19		ACALL	TV	;显示延时
  0020  0522	   	 20		INC	TEMP	;加1
  0022  E522	   	 21		MOV	A,TEMP
  0024  B4C807	 	 22		CJNE	A,#200,N1	;未到200中跳回
  0027  752264	 	 23		MOV	TEMP,#100	;加到200复位100	;
  002A  0523	   	 24		INC	TEMP1	;计数到100后百位加1
  002C  E523	   	 25		MOV	A,TEMP1	;
  002E  020006	 	 26	N1:	LJMP	GO	;返回
  0031  114D	   	 27	X1:	ACALL	TV	;等待P33释放延时
  0033  02001B	 	 28		LJMP	K1
  0036  30B30F	 	 29	K2:	JNB	P3.3,X2	;等待P3.3释放
  0039  114D	   	 30		ACALL	TV	;显示延时
  003B  1522	   	 31		DEC	TEMP	;减1
  003D  E522	   	 32		MOV	A,TEMP
  003F  B40003	 	 33		CJNE	A,#0,N2	;未到0中跳回
  0042  752264	 	 34		MOV	TEMP,#100	;减到0复位100
  0045  020006	 	 35	N2:	LJMP	GO	;返回
  0048  114D	   	 36	X2:	ACALL	TV	;等待P34释放延时
  004A  020036	 	 37		LJMP	K2
        		 38		;**********	;
        		 39		;显示子程序	;
        		 40		;**********	;
  004D  E522	   	 41	TV:	MOV	A,TEMP
  004F  75F064	 	 42		MOV	B,#100	;100进制
  0052  84	     	 43		DIV	AB
  0053  F519	   	 44		MOV	19H,A	;百位放在19H
  0055  E5F0	   	 45		MOV	A,B
  0057  75F00A	 	 46		MOV	B,#10	;10进制
  005A  84	     	 47		DIV	AB
  005B  F520	   	 48		MOV	20H,A	;十位放在20H
  005D  85F021	 	 49		MOV	21H,B	;个位放在21H
  0060  9000B4	 	 50		MOV	DPTR,#W8	;指定查表启始地址
  0063  E523	   	 51		MOV	A,TEMP1
  0065  75F064	 	 52		MOV	B,#100	;100进制
  0068  84	     	 53		DIV	AB
  0069  F524	   	 54		MOV	24H,A	;百位放在24H
  006B  E5F0	   	 55		MOV	A,B
  006D  75F00A	 	 56		MOV	B,#10	;10进制
  0070  84	     	 57		DIV	AB
  0071  F525	   	 58		MOV	25H,A	;百位放在25H
  0073  85F026	 	 59		MOV	26H,B	;千位放在26H
  0076  9000B4	 	 60		MOV	DPTR,#W8	;指定查表启始地址
  0079  7804	   	 61		MOV	R0,#4	;显示4个50次(可以调整显示时间快慢)
  007B  790A	   	 62	W9:	MOV	R1,#10	;50次(可以调整显示时间快慢)
  007D  E521	   	 63	W10:	MOV	A,21H	;取个位数
  007F  93	     	 64		MOVC	A,@A+DPTR	;查个位数的7段代码
  0080  F580	   	 65		MOV	P0,A	;送出个位的7段代码
  0082  C2A5	   	 66		CLR	P2.5	;打开个位显示
  0084  11AE	   	 67		ACALL	W13	;显示延时
  0086  D2A5	   	 68		SETB	P2.5	;关闭个位显示
  0088  E520	   	 69		MOV	A,20H	;取十位数
  008A  93	     	 70		MOVC	A,@A+DPTR	;查十位数的7段代码
  008B  F580	   	 71		MOV	P0,A	;送出十位的7段代码
  008D  C2A4	   	 72		CLR	P2.4	;打开十位显示
  008F  11AE	   	 73		ACALL	W13	;显示延时
  0091  D2A4	   	 74		SETB	P2.4	;关闭十位显示
  0093  E526	   	 75		MOV	A,26H	;取百位数
  0095  93	     	 76		MOVC	A,@A+DPTR	;查百位数的7段代码
  0096  F580	   	 77		MOV	P0,A	;送出百位的7段代码
  0098  C2A3	   	 78		CLR	P2.3	;打开百位显示
  009A  11AE	   	 79		ACALL	W13	;显示延时
  009C  D2A3	   	 80		SETB	P2.3	;关闭百位显示
  009E  E525	   	 81		MOV	A,25H	;取百位数
  00A0  93	     	 82		MOVC	A,@A+DPTR	;查百位数的7段代码
  00A1  F580	   	 83		MOV	P0,A	;送出百位的7段代码
  00A3  C2A2	   	 84		CLR	P2.2	;打开千位显示
  00A5  11AE	   	 85		ACALL	W13	;显示延时
  00A7  D2A2	   	 86		SETB	P2.2	;关闭千位显示
  00A9  D9D2	   	 87		DJNZ	R1,W10	;50次没完循环
  00AB  D8CE	   	 88		DJNZ	R0,W9	;4个50次没完循环
  00AD  22	     	 89		RET
        		 90		;********	;
        		 91		;显示延时	;
        		 92		;********	;
  00AE  7F46	   	 93	W13:	MOV	R7,#70
  00B0  DFFE	   	 94		DJNZ	R7,$
  00B2  00	     	 95		NOP
  00B3  22	     	 96		RET
        		 97		;7段数码管各划的数字排列表
  00B4  C0F9A4B0	 98	W8:	DB	0C0H,0F9H,0A4H,0B0H,99H,92H,82H,F8H,80H,90H
  00B8  999282F8
  00BC  8090    
        		 99		;0	1	2	3	4	5	6	7	8	9
        		       	 100		END


  程序中使用的标号如下:

  LOOP	0000
  GO	0006
  K1	001B
  N1	002E
  X1	0031
  K2	0036
  N2	0045
  X2	0048
  TV	004D
  W9	007B
  W10	007D
  W13	00AE
  W8	00B4

⌨️ 快捷键说明

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