锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

第6课 数码管静态显示

时间:2024-05-13 06:37:10

1、 显示原理 数码管是单片机应用系统中常用的一种显示器件,由于其价格低廉、操作简单,而被广泛的应用于各种数字显示系统中,常见的数码管如图1所示。 根据外观的不同,数码管又为分1位数码管、2位数码管、3位数码管、四位数码管等种类,如图2所示。 但不论是几位一体的数码管,其显示原理都是一样的,都是靠内部 发光来进行显示的。下面我们以1位数码管为例介绍其显示原理。 1、数码管显示的原理 数码管内部的电路如图3所示, 图3 数码管内部电路 图3中,显示一个完整的8字,需要7个小段,外加一个小数点,共8段,分别称为a段、b段、c段、d段、e段、f段、g段、dp段,每段内部都集成了一个发光二极管,此时要想让数码管显示数字,我们只需要让相对应的发光二极管发光就可以,例如要想让此数码管显示数字是1,只需要让b、c段的数码管发光,而其它段的数码管熄灭就可以了。 上图中,每个发光二极管的阳极全部引出,分别为a、b、c、d、e、f、g、dp,共8个引脚,而把所有发光二极管的阴极全部接到一起引出一个引脚w,此时我们把a、b、c、d、e、f、g、dp引脚称为数码管的段选引脚,简称段选;而把w称为位选引脚,简称位选。通过单片机让数码管显示数字,就是通过编写程序让数码管内部相应的数码管发光。 数码管根据内部接法的不同又可分为共阴极数码管和共阳极数码管两种,上图中,数码管所有的发光二极管的阴极接在一起,而阳极单独引出,我们称此数码管为共阴极数码管,而还有一种接法是把阳极接在一起,而阴单独引出,这种数码管则称之为共阳极数码管,具体在写程序时应考虑到的是哪一种数码管,共阳极数码管如图4所示。 图4 共阳极数码管 这里需要注意的是,在驱动数码管进行显示时,数码管内部的发光二极管要正常工作大概需要5mA的电流,而单片机的I/O口通常不能提供如些大的电流,此时需要上位 或者专用的驱动芯片,如7HHC573等,实验板上即采用的后者,后面会具体讲到。  因为实验板上的数码管相应引脚在和单片机相连时用到了 ,这里介绍一下存器相关的一些知识。 锁存器(Latch)是一种对 脉冲电平敏感的 存储单元,它们可以在特定输入脉冲电平作用下改变和保持状态,所谓锁存,就是把 信号暂存以维持某种电平状态。实验板上所用到的为74HC573,下面对其进行介绍。 电路 74HC573为一种数字芯片,按其封装的不同,分为直插和贴片的两种,如图6和图7所示, 图6 直插式锁存器,       图7 贴片式锁存器, 下面先介绍下74HC573的各个引脚功能和真值表,如图8所示,OE为输出使能端(低电平有效),也就是要使该芯片工作,此脚必须为低电平;1D-8D为数据输入端;1Q-8Q为数据输出端;LE为输出控制端。    图8 74HC573引脚图       图9 74HC573真值表 图9为74HC573的真值表,真值表可以直观的表示数字芯片的工作特性,也就是要正确的使用数字芯片,必须学会看真值表。在图9中,L表示低电平,H表示高电平,X表示任意电平,Z表示高阻态,即,可以为高电平,也可以为低电平,高或低由与它相连的其它电气状态决定;Q0表示上一次电平状态。 由图9真值表可以看出,当OE为高电平时,无论控制端LE和数据端为什么电平,输出Q都为高阻态,也就是电平未知,此时锁存器处于不可控的状态,而我们使用该芯片肯定是要控制它以完成相应的功能,所以实验板上两块芯片在硬件上均直接接地,相当于直接给低电平。 当OE为低电平时,LE为高时,D和Q同时为H或L;LE为低时,无论D为何种状态,Q都保持上一次的数据状态。也就是说LE为高电平时,Q端的数据随D端数据变化而变化,LE为低电平时,Q端的数据保持为LE端由高电平变为低电平之前Q端的数据状态。 在使用时,我们一般把LE端接单片机的一个引脚,而把数据输入端D接单片机的8个引脚,此时我们就可以通过单片机控制LE端电平的高低和数据端的电平状态来决定锁存器数据输出端的输出状态。 讲到这里,相信大家已经对74HC573基本了解了,锁存器的作用很多,在实验板上主要起到两个作用,一个就是解决驱动问题,这一点前面已经说过,单片机I/O口输出的电流太小,不足以驱动数码管,此时就可以利用锁锁器来实现;再一个就是节约单片机的I/O口,这一点后面会解释到。 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口的作用。
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章