单片机实验----控制单只数码管静态显示
知识点:
- 数码管的原理
- 学习段选、位选和断码、位码的含义
- 单片机控制数码管显示的方法
- 静态显示
运行效果: 如图
代码如下:
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为“位选桥”,它与数码管的公共端相连接,通过它的数据为位码
,控制哪知数码管显示。
最后一个知识点:静态显示
在标题中,提到静态显示,那么什么是静态显示呢?有动态显示吗?
动态显示是有的。
数码管正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示所需要的数字或者字符。
数码管的驱动方式
有来两种:静态显示驱动和动态显示驱动。
这里我们来介绍一下静态显示驱动:
- 所谓静态显示驱动,就是每个数码管的每一段码都单独占用单片机的一个I/O口,用于笔画段的编码形成。
- 要显示新的数据室,在通过I/O口传入新的段码。
- 优点:程序简单,显示度高。
- 缺点:数码管数量过多的时候,不适用,应为单片机没有那么多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-