微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 第6课 数码管静态显示

第6课 数码管静态显示

时间:12-01 来源:互联网 点击:

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口的作用。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top