单片机实验----控制单只数码管静态显示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/mylovewanzi/article/details/82986806

单片机实验----控制单只数码管静态显示


知识点:

  1. 数码管的原理
  2. 学习段选、位选和断码、位码的含义
  3. 单片机控制数码管显示的方法
  4. 静态显示

运行效果: 如图
效果

代码如下:

		ORG 0000H
		LJMP MAIN
		ORG 30H
;..................................................
;						主程序
;..................................................
;........段选数据.........
MAIN:  	MOV 	P0,#10110000B			;将显示‘3’的段选数据传入P0口
		CLR	  	P1.0					;选中u2段选芯片
		CLR   	P1.2					;时序引脚CLK为低电平,为接受数据准备
		SETB  	P1.2					;时序为上跳沿,即将数据传给u2
		SETB  	P1.0					;关闭u2,使u2不能再接收其他数据
;........位选数据.........
		MOV   	P0,#11111110B			;将位选数据传入P0口,选择第一个数码管显示
		CLR   	P1.1					;选中u3位选芯片
		CLR   	P1.2					;时序引脚CLK为低电平,为接受数据准备
		SETB  	P1.2					;时序为上跳沿,即将数据传给u3
		SETB  	P1.1					;关闭u3,使u3不能再接收其他数据
		LJMP  	MAIN
		END

电路图:
多只数码管电路图

数码管显示数字3原理:
由图可以看出显示数字3,需要a,b,c,d,g段发光二极管发光。
对应的,即P0.0,P0.1,P0.2,P0.3,P0.6要为低电平(二极管发光),其余为高电平(二极管熄灭)。
所以P0口的数据为10110000B

看完图,问题基于来了,u2,u3是什么呢?
在单片机控制但只数码管的电路图中,u2,u3是两个D触发器,在这里它们的作用是将单片机传来的数据信号按照要求传送锁存

那么问题又来了,什么是D触发器呢?什么是传送锁存呢?

触发器是一个具有记忆功能的,具有两个稳定状态的信息存储器件,是构成多种时序电路的最基本逻辑单元,也是数字逻辑电路中一种重要的单元电路。
在数字系统和计算机中有着广泛的应用。触发器具有两个稳定状态,即"0"和"1",在一定的外界信号作用下,可以从一个稳定状态翻转到另一个稳定状态。
触发器有集成触发器和门电路组成的触发器。触发方式有电平触发和边沿触发两种。
D触发器在时钟脉冲CP的前沿(正跳变0→1)发生翻转,触发器的次态取决于CP的脉冲上升沿到来之前D端的状态,即次态=D。因此,它具有置0、置1两种功能。由于在
CP=1期间电路具有维持阻塞作用,所以在CP=1期间,D端的数据状态变化,不会影响触发器的输出状态。
D触发器应用很广,可用做数字信号的寄存,移位寄存,分频和波形发生器等。更多信息

在本例中,
u2是段选触发器,实现控制数码管每段的现实;
u3是位选触发器,他控制数码管公共引脚与电源正极的连接状态,从而选哪只数码工作(有多只数码管的时候)。

单片机的P0口同时连接了u2,u3的输入口D0-D7,担负着数据传输的任务。
P1.0和P1.1分别连接u2,u3的控制Ē,这两个脚分别取名CS1和CS2,他们的作用是选择u2,u3的工作状态。
P1.2同时连接了u2和u3的时钟引脚CLK,为触发器提供所需的触发脉冲(时序脉冲)。

单片机不与数码管直接连接,而是中间再连接上触发器,来间接控制数码管。

那么触发器是如何控制数码管的呢?

由上面的分析,我们知道,触发器的信号有两个,分别是Ē和CKL,只有当Ē=0和CKL上升沿到来时,触发器才工作,其他情况都不工作。

可以将触发器比作成一座“桥”,连接着单片机和数码管,数据从“桥”上过,在“桥”连接单片机的那头有一个“管理员”,他就是Ē,管理员Ē的工作是接收数据,并判是否让断数据通过“桥”。

在电路图中有两个触发器,那么意味着有两座桥。
u2为“段选桥”,它与数码管的个笔画段连接,通过它的数据称为段码,控制着数码管的显示。
u3为“位选桥”,它与数码管的公共端相连接,通过它的数据为位码,控制哪知数码管显示。

最后一个知识点:静态显示

在标题中,提到静态显示,那么什么是静态显示呢?有动态显示吗?

动态显示是有的。
数码管正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示所需要的数字或者字符。
数码管的驱动方式有来两种:静态显示驱动和动态显示驱动。

这里我们来介绍一下静态显示驱动:

  1. 所谓静态显示驱动,就是每个数码管的每一段码都单独占用单片机的一个I/O口,用于笔画段的编码形成。
  2. 要显示新的数据室,在通过I/O口传入新的段码。
  3. 优点:程序简单,显示度高。
  4. 缺点:数码管数量过多的时候,不适用,应为单片机没有那么多I/O口(总共32个)。

上面是控制多只数码管,下面在附上一个控制单只数码管的电路图和源码:

单只数码管电路图

代码如下:

		ORG 	0000H
		LJMP 	MAIN
		ORG 	30H
MAIN:  	CLR  	P1.0
		MOV 	P0,#10110000B			;将显示‘3’的段选数据传入P0口
		LJMP  	MAIN
		END

时间:2018年10月9日19:42:13


-END-

猜你喜欢

转载自blog.csdn.net/mylovewanzi/article/details/82986806