Java教程

单片机原理与应用技术(三)———动态数码管显示汇编语言

本文主要是介绍单片机原理与应用技术(三)———动态数码管显示汇编语言,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、数码管基础知识

1.数码管结构

一般数码管通常由八段LED灯组成,又分成共阳数码管和共阴数码管(如下图所示)。共阴极数码管即为LED阴极连接在一起为公共阴极,共阳极数码光即为LED阳极连接在一起为公共阳极。以共阴极数码管为例,当某个LED阳极通入高电平时,LED灯点亮,相对应的段也就被显示出来,共阳极数码管恰好与之相反。

 

 2.数码管段码

显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码
03FHC0Hb7CH83H
106HF9Hc39HC6H
25BHA4Hd5EHA1H
34FHB0HE79H86H
466H99HF71H8EH
56DH92HP73H8CH
67DH82HU3EHC1H
707HF8HT31HCEH
87FH80Hy6EH91H
96FH90HH76H89H
A77H88HL38HC7H

3.数码管动态显示

       动态扫描显示方式的依据是利用人眼的滞留现象,只要在1秒内一个发光管亮24次以上,每次点亮时间维持2ms以上,则人眼感觉不到闪烁,宏观上仍可看到多位LED同时显示的效果。动态显示可以简化硬件、降低成本、减小功耗。具体实现时通常将所有位的段选线相应的并联在一起,由一个l/O口控制,形成段选线的多路复用。而各位的共阳极和共阴极分别由相应的I/o口控制,实现分时复用。

二、动态数码管显示实例———显示(0-999)

1.电路原理图

 二、执行代码

ORG 	0000H
MAIN:	MOV		DPTR,#LEDTAB
		MOV		R4,#0
QIAN:	
		MOV		R3,#0
BAI:		
		MOV		R2,#0
SHI:
		MOV		R1,#0	
G:	
		MOV		R0,#50	
START:			
		MOV		R7,#0DFH
		LCALL	OPEN

		SETB	P2.6		
		MOV		A,R1
		MOVC	A,@A+DPTR		
		MOV		P0,A
		LCALL	DELAY
		CLR		P2.6

		MOV		R7,#0EFH
		LCALL	OPEN
		SETB	P2.6		
		MOV		A,R2
		MOVC	A,@A+DPTR		
		MOV		P0,A
		LCALL	DELAY
		CLR		P2.6

		MOV		R7,#0FBH
		LCALL	OPEN
		SETB	P2.6	
		MOV		A,R3
		MOVC	A,@A+DPTR		
		MOV		P0,A
		LCALL	DELAY
		CLR		P2.6

		MOV		R7,#0F7H
		LCALL	OPEN
		SETB	P2.6		
		MOV		A,R4
		MOVC	A,@A+DPTR		
		MOV		P0,A
		LCALL	DELAY
		CLR		P2.6
		DJNZ	R0,START

	 	INC		R1
		CJNE	R1,#10,G

		INC		R2
		CJNE	R2,#10,SHI

		INC		R3
		CJNE	R3,#1O,BAI

		INC		R4
		CJNE	R4,#10,QIAN
		LCALL	MAIN

DELAY:	MOV 	R6,#1	
DELAY1:	MOV 	R5,#250
DELAY2:	DJNZ 	R5,DELAY2
		DJNZ	R6,DELAY1
		RET
OPEN:
		SETB 	P2.7	
		MOV		A,R7
		MOV		P0,A	
		CLR		P2.7		
		RET
		ORG 1000H		
LEDTAB:
DB	03FH,006H,05BH,04FH,066H,06DH,07DH,007H,07FH,06FH
END

这篇关于单片机原理与应用技术(三)———动态数码管显示汇编语言的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!