微机----------------LED显示接口

LED显示器的工作原理

LED显示器的主要部分是七段发光管,这七段发光段分别称为a、b、c、d、e、f、g有的产品还附带有一个小数点DP。通过7个发光段的组合,可以显示0 ~ 9 A ~ F共16个字母数字,从而实现十六进制数的显示。

LED显示器有共阳共阴两种结构。
在这里插入图片描述
共阳极结构: 数码显示端输入低电平有效,当某一段得到低电平时,则发光

例:
比如a、b、d、e、g为低电平,而其他段为高电平时,显示数字2

在这里插入图片描述



共阴极结构: 数码显示端输入高电平有效,当某一段得到高电平时,则发光

在这里插入图片描述
CPU通过8255A往LED传输七段代码,8255A的端口本身是8位的,因此,有1位悬空未用

由于LED的一个段发光时,通过的平均电流为10mA左右,所以采用共阴极LED时,阴极接地,而阳极要加驱动电路。用共阴极LED时,如驱动器输出为1,则对应的段发光。



采用专用芯片进行LED段译码

采用专用带驱动器的LED显示器段译码器,可以实现对BCD码的译码,但不能对大于9的二进制数译码。
连接:
7447有4位输入7位输出。使用时,只要将7447的输入端主机系统输出端口的某4位相连,而7447的7位输出直接与LED显示器的a~g相接,便可以实现对1位BCD码的显示。
在这里插入图片描述

软件译码法

用共阳极数码管来实现1位数字的LED显示。设要显示数字放在DATA单元中,而LEDADD为代码表首址。

DISP:
	 LEA AL,[DATA]
	 MOV BX,OFFSET LEDADD ;取LEDADD的偏移地址放入BX
	 XLAT LEDADD          ;换码指令,AL=BX+AL
	 OUT DX,AL
LEDADD DB 40H	;0的段码
	   DB 79H	;1的段码
	   DB 24H	;2的段码
	   ...
	   DB 0EH	;F的段码




静态显示与动态显示

静态显示: 就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截至。

优点:显示稳定,系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU时间,提高CPU的工作效率。

缺点:每个七段显示器都需要一个8位输出口控制。位数较多时,显示口随之增加。

❓动态显示:一位一位的轮流点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。

若显示器的位数不大于8,则控制显示器公共极的电位只需要一个8位口(扫描口,又称为位口),控制各位显示器所显示的字形也需要一个8位口(称为段口

通过位、段控制端口的共同作用才能确定哪个数码管显示什么数码
例如:
8位共阴极显示器和8255A的连接电路如图所示。这里以8255A的A端口做位口,B端口做段口。
在这里插入图片描述
对于图的8位显示器,在内存中开辟8个字节的显示缓冲器单元,分别存放8位显示器的显示数据,8255A的A端口中有一位为高电平,即8位显示器中仅有一位公共阴极为低电平,其他位为高电平,8255A的B端口输出相应位显示数据的段数据,使某一位显示一个字符,其他位为暗,依次地改变端口A输出高电平的位,8位显示器就显示出缓冲器中显示数据所确定的字符。

下面给出动态显示预存在显示缓冲区中的01234567的程序段。
设8255A的端口地址为:
                    A端口:00C0H                     B端口:00C2H
                    C端口:00C4H                     D端口:00C6H

A组B组工作于方式0A、B端口输出C端口未用
方式控制字为80H

DISBUF	DB	3FH,06H,5BH,4FH,66H,6DH,7DH,07H
DISINT:
		MOV	DX,00C6H	;控制口
		MOV AL,80H		;控制字,A、B端口工作于方式0,A,B口输出
		OUT DX,AL
DIS:
		MOV BH,80	;位选
		MOV BL,8
		MOV SI,OFFSET DISBUF
DISLOP:
		MOV AL,BH
		MOV DX,00C0H
		OUT DX,AL;向A口送位码

		MOV DX,00C2H
		MOV AL,[SI]
		OUT DX,AL;向B口送段码

		SHR BH,1
		INC SI
		CALL DL1MS	
		DEC BL
	
		JNZ DISLOP
		JMP DIS
DL1MS:
		MOV CX,022BH
WAT:
		LOOP WAT
		RET











①②③④⑤⑥⑦⑧⑨⑩



  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 电子秒表是一款非常常见的计时器设备,用于在各种比赛、运动等场合中进行时间计时。在微机原理课程设计中,使用8254芯片来设计电子秒表显示0-60s是一个典型的实践案例。 首先,我们需要了解8254芯片的基本结构和功能。8254是一种集计时、计数、中断控制等多种功能于一身的可编程计数器/计时器,它有三个独立的计数通道,每个通道可以选择不同的工作模式,以满足不同的需求。 在设计电子秒表时,我们需要将8254芯片的一个计数通道设置为定时模式,将计数周期设置为1s,即每隔1s输出一个计时信号。然后,我们可以将此信号与一个数码管显示芯片连接起来,以实现对时间的显示。 具体而言,我们可以使用常见的7数码管来显示时间,每一位数码管需要接一个控制芯片来实现显示。当我们每隔1s接收到计时信号时,我们需要对显示值进行更新: 1. 如果当前显示时间为59s,则需要将秒数归零,重置计时器; 2. 如果当前显示时间不为59s,则将秒数加1,并将其在数码管上进行显示。 此外,我们还需要设计一些操作按钮,如计时开始/暂停、清零等按钮,来方便用户对计数器进行控制。通过这些设计和调试,我们即可得到一款简单而实用的电子秒表应用。 总之,微机原理课程设计中使用8254芯片设计电子秒表是一个充满挑战性和趣味性的案例,既涉及到硬件电路设计,又涉及到程序设计,是学生们锻炼实践能力和创新能力的重要方式之一。 ### 回答2: 在微机原理课程设计中,设计一款使用8254芯片显示0-60秒的电子秒表,需要遵循以下步骤: 1. 确定硬件接口:选择使用8254芯片作为计时器,连接相应的控制引脚,将输出接口与数码显示器连接。 2. 编写程序框架:采取中断方式进行计时,设定中断间隔为1秒。在程序中定义计时器初值为0,并采用循环方式进行计数,直到达到60秒。 3. 编写计时中断处理程序:在中断处理程序中,每次中断发生时将计时器的计数值加1,并使用BCD码转换将计数值转换为数码显示器可识别的格式。 4. 编写数字显示程序:使用相应的数码显示器驱动程序,将计数值显示在数码显示器上。 5. 调试程序并优化:进行测试和调试,发现问题后进行优化,确保程序能够正常运行。 总之,设计一款使用8254芯片显示0-60秒的电子秒表需要硬件和软件两方面的技术,需要对8254芯片的特性有深入的了解,同时需要熟练掌握操作系统和编程语言,才能够完成一个稳定可靠的电子秒表。 ### 回答3: 8254是一款计数器芯片,通过编程来实现对时间的计算和控制。我们可以使用8254来设计一个电子秒表,让它可以自动计时,达到60秒自动停止并显示时间。 首先,需要将8254编程为定时器模式,并设置计数时间间隔为1秒。然后,在程序中添加一个异步时钟电路,以确保计时精度。接下来,就可以开始编写程序,以实现秒表的计时和显示功能。 具体的实现细节包括:初始化8254定时器,设置计时周期;开启定时器中断,以便能够响应定时器中断事件;在中断服务程序中累加计时器计数值,同时判断是否达到60秒时间;若达到60秒时间则停止定时器,显示时间结果;否则继续计时。 在显示方面,可以使用LED数字管或LCD显示屏等设备,通过编程控制其显示内容。在停止计时后,需要将计时结果转换为可读的格式,并显示出来,如显示为“00:00:60”表示计时器达到60秒。 总的来说,使用8254设计电子秒表可以锻炼编程思维和计算思维能力,在实现过程中需要充分考虑时序、中断、显示等方面的问题,同时需要注意代码的简洁性和可读性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值