详解数码管显示控制
数码管种类繁多,按外观来划分,可以分为七段数码管、米字型数码管、点阵块等。图8-5所示为各种不同形状的数码管。
图8-5 各种不同形状的数码管
LED数码管结构与工作原理
单片机系统中常用的是七段数码管,它由8个发光二极管(以下简称字段)构成,如图8-6(a)图所示(注:由于小数点字段不常用,所以一般称为七段),通过不同的组合可以显示数字0~9、字符A~F、H、L、P、U、符号“-”及小数点“.”。
根据发光二极管物理连接的不同,七段数码管可以分为共阴极和共阳极两种结构。共阴极型数码管如图8-6(b)所示,所有字段的阴极均连接低电平,因此在使用共阴极数码时,需要在相应字段上加高电平,才会使其发光。共阳极数码管如图8-6(c)所示,所有字段的阳极均连接高电平,在使用时,需要在相应字段上加低电平。
图8-6 7段数码管结构
LED数码管字型编码
在单片机与数码管组成的应用系统中,一般将单片机的一个并口与数码管的8个段控制引脚连接,且按照口线位的顺序由低到高与a、b、c、d、e、f、g、h连接,这样,若要显示不同字符,只需应用单片机的口线输出相应的控制的电平就可以实现。向口线送的数据就是LED的字型编码。共阴和共阳的字型编码如表8-2所示。
表8-2 共阴和共阳的字型编码表
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态显式和动态显式两类。
LED数码管静态显示
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口线进行驱动,或者使用如BCD码、二–十进位解码器解码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口较多,如驱动5个数码管静态显示则需要5×8=40根I/O口线来驱动,而1个89S51单片机可用的I/O口线才32个。
2位共阳极数码管的静态显示电路如图8-7所示。
图8-7 2位共阳极数码管的静态显示电路原理图
显示数字12的C51程序如下:
LED数码管动态显示
数码管动态显示是单片机中应用最为广泛的显示方式,动态驱动是将所有数码管的8个同名端“a,b,c,d,e,f,g,h”连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制。
当单片机输出字形码时,所有数码管都接收到相同的字形码,究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制。通过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示,不会有闪烁感,动态显示的效果和静态显示相同,并且能够节省大量的I/O口线,降低功耗。
2位共阳极数码管动态显示电路如图8-8所示。
显示数字12的C51程序如下:
图8-8 2位共阳极数码管动态显示电路原理图
单片机实例:六位显示数码管时钟((附闹钟设置,源码,原理图)
从左到右的开关控制分别为:秒设置、分设置、时设置、进入时间设置(设置时间需要按一下这个再按前面3个按键设置)、闹钟设置(通过前面3个按键设置)、保存设置(设置完成后按下保存并退出)。
时钟可以显示到秒位
数码管用的是共阴,共阳的话加三极管闲麻烦,没加。数码管a~g接的P0口,没用10K排阻上拉,试了下觉得亮度太低了,就都换成了2K的作为上拉。
有兴趣的可以给加上温度传感器,可以显示温度(我这里面就没加了)初学单片机没多久,欢迎大佬指导。材料如下:89C52*1 4位数码管*1+2位数码管*1(当然如果有六位的也可以直接用,找不到其他数码管了就这么混搭了) 有源蜂鸣器*1(试过无源,但时间计算过于占用资源导致发声不是很完美,大佬可以改一下) 轻触开关*7(1个用于复位,其余六个用于设置) + 自锁开关*1 电池*1 + 5V稳压*1
单 片 机 时 钟 源 码 程 序--戳可见--->51单片机六位显示数码管时钟实例(带闹钟设置,源码,原理图)相关问答
单片机数码管 小数点的 显示 ?以下是我的回答,单片机数码管小数点的显示可以通过以下步骤实现:首先,需要了解数码管的工作原理。数码管是由多个LED段组成的,通过控制各个段的亮灭来显示不...
为何程序烧进 单片机 后 数码管 只亮中间-ZOL问答你能确定数码管是共阴的吗?如果真的确定,那你程序中的段码可是共阳数码管的段码,刚好相反,应该显示是要显示0,中间一横不亮,可是段码反了,就变成只亮中间一横了...
普中 单片机数码管 动态 显示 实验,为什么最后一位数码管总是不亮?首先硬件上检查有没有问题,比如说管子本身有没问题,再次看你程序,比如说驱动口错了或者程序跑飞了,或者扫描时间不正确导致首先硬件上检查有没有问题,比如说...
单片机 中 数码管显示 时位控和 段 控的信号怎么输进来?显示分静态/动态2种,动态需定时循环刷新位控码和段码,静态时不用段码一般由2种方式驱动,一种是并口直接驱动或者并口加锁存器驱动,一种是串口转并口驱动这...
AT89C51 单片机 让 数码管 轮流 显示 两位不同数的程序是什么?LED数码管是单片机应用系统中最常用的显示器件之一。在单片机系统中通常使用七段数码管。数码管的显示分为动态显示和静态显示。所谓静态显示是指数码管显示对应...
c语言 数码管显示 原理?数码管分共阳数码管和共阴数码管。数码管其实就是8个段的发光二极管,只点亮其中的几个段即可显示出数字或字母用来表达信息。共阳数码管:把8段LED的正极...
单片机 直接点亮 数码管 需要译码器吗?就看你用的单片机提供的驱动电流是不是足够驱动数码管,好像51的不行,所以要加三极管放大,avr的话是可以直接驱动的用于驱动数码管的话,就用七段显示译码器,...
在mc s51系列 单片机 应用系统中led 数码管显示 电路通常有什么显示方式?在51系列单片机的应用系统中,LED数码管通常采用共阳扫描显示方式,选择单片机的一个8位IO口,作为数码管的段驱动,也就是a、b……dp段驱动,每段都需串联限流电...
3位 数码管 引脚图,与 单片机 的接法!如何区分共阴共阳?如果有电路图,你可以参考电路图。至于是共阴或共阳,你可以用代码来测试一下,让连接数码管的IO输出高电平或低电平。大部分单片机的数码管都是共阳极的,因为单...
如何实现 单片机 两个 数码管 之间单独控制且同时 显示 ?先让你的第一个数码管显示要显示的第一个数字,其他数码管关闭;然后关闭第一个数码管显示;然后让你的第二个数码管显示要显示的第二个数字,其他数码管关闭;...