新闻中心

EEPW首页>嵌入式系统>设计应用> 第6课 数码管静态显示

第6课 数码管静态显示

作者: 时间:2016-12-01 来源:网络 收藏
2数码管静态显示
明白了显示原理后,我们就可以对数码管进行操作了,让我们先看看一下实验板的原理图。
实验板上的数码管为两个3位一体的数码管,共同组成一个6位8段共阳极数码管,
相同段的发光二极管阴极全部接在一起,引出8个引脚abcdefgdp,分别接到锁存器的数据输出口,而锁存器74hc573的数据输入口直接接到单片机P1口的8信引脚,注意此时P0口同时接了10K的上拉电阻;每一位数码管内部发光二极管阳极接在一起,然后分别引出6个脚w1w2w3w4w5w6,并能过锁存器74hc573接到了单片机P1口的6个脚。两个锁存器的锁存端分别与单片机的P2^6和P2^7相连。
也就是这六位数码管“段选”全部连在一起,而“位选”是可以独立控制的,我们可通过控制位选信号而选择让哪几个数码管发光,具体显示的内容可以通过段选信号进行,但由于所有段选是全部连在一起的,送入所在数码管的段选信号必定相同,所以位选选通的数码管上显示的数字始终一样,数码管的这种显示方式称为静态显示。
下面我们就写一个简单的程序让第一个数码管显示一个8字。先来分析如下:让第一个数码管显示8字,那么别的数码管的位选就要关闭,即只打开第一个数码管的位选。在操作时,我从头先给U2数码管的锁存端一个高电平,然后将数据从单片机的口P0直接送出到锁存器的U2的数据输出端,然后再关闭U2锁存器。由于实验板上的数码管为共阳极,所以位选选通时为高电平,位选关闭时为低电平。即只有W1端对应的数据为1,其它的都为0,因此P0口呆输出的数据0x01;(二进制为0000 0001)。位选确定后,再确定段选,要显示8,那么只有h段为0,其余段为1,所以用操作U2的方法一样操作U1,让U1数据输出端输出0x7f(二进制为0111 1111)
程序:单片机显示8
#include
#define uint unsigned int
#define uchar unsigned char
sbit duan=P2^6;
sbit wei=P2^7;
void main()//第一个数码管显示8
{
while(1)
{
duan=1;
P0=0x7f;
duan=0;
wei=1;
P0=0xfe;
wei=0;
while(1);
}
}
下面先下载到实验板上看现象。
通过上面的现象我们实现了数码管静态显示的功能,这里大家家可能已经知道,程序中段用了单片机的8个引脚,而位用到了单片机的6个引脚,按理说我们一共需要14个引脚,而因为锁存器的原因,实际上我们只用到了P1口8个脚就实现了,这就是上面讲的锁存器的第二个作用,使用锁存器可以达到节约单片机的I/O口的作用。

上一页 1 2 3 下一页

评论


技术专区

关闭