详解数码管显示控制
数码管种类繁多,按外观来划分,可以分为七段数码管、米字型数码管、点阵块等。图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位共阳极数码管动态显示电路原理图
如何使用西门子PLC控制数码管显示,工程实例讲解很容易理解!
很多朋友都问我,PLC能不能像单片机一样控制数码管的显示,需要使用数组吗?
其实使用西门子PLC控制数码管非常简单,今天给大家带来一个工程实例,希望大家能够有所收获。
控制思路:西门子PLC的一个字节是8个位,而七段数码管只需要7个输出.
所以可以使用PLC的输出点控制数码管,比如使用QB0控制一个数码管,将Q0.0-Q0.6依次接到数码管的a-g端子上,下方有接线图.需要注意的是,按照下方接线图,数码管需要使用24V的,如果需要其他电压,请使用继电器过渡.
按照要求接完线后,使用西门子指令.
西门子有SEG指令,该指令是专为数码管而设计,只要把一个数字赋值给接好线的输出字节,就可以直接输出,非常方便,指令如下所示.但要求是接线必须按照下图的要求接线.否则无法使用.
下面给大家带来一个实例:
某停车场最多可停50辆车,用两位数码管显示停车数量。用出入传感器检测进出车辆数,每进一辆车停车数量增1,每出一辆车减1。场内停车数量小于45时,入口处绿灯亮,允许入场;等于和大于45时,绿灯闪烁,提醒待进车辆司机注意将满场;等于50时,红灯亮,禁止车辆入场。设计控制线路和PLC程序
接线图
程序如图
程序讲解:
输入点I0.0连接停车场进口传感器,该传感器可以使用光电开关,当有车辆进入停车场时,该输入点I0.0接通.停车计数器VW0+1.
输入点I0.1连接停车场出口传感器,当有车辆离开停车场时,该输入点I0.1接通.停车计数器VW0-1.
然后将停车计数器输出到数码管上.该值小于45时,绿灯常亮,代表该停车场停车位很富余.
该值大于45,小于50时,绿灯闪亮,代表该停车场停车位已经所剩无几,提醒驾驶人员快来停车.
该值大于等于50时,绿灯灭,红灯亮,代表该停车场停车位已满.
相关问答
单片机 如何定义 数码管 ?单片机控制数码管分两种。1、静态数码管,控制比较简单,只送段码就可以了。比如:P1=0xc0,共阳极的话,将显示02、动态数码管,控制就比较复杂一些,需要先...单...
单片机数码管 几种 显示 方式如何实现?单片机连接数码管,可以用单片机的I/O口直连,也可以通过其他驱动芯片连接。I/O直连的方式,连线简单,编程也简单,但是会占用大量的I/O口资源,故很少这...单片...
如何实现 单片机 两个 数码管 之间单独 控制 且同时 显示 ?先让你的第一个数码管显示要显示的第一个数字,其他数码管关闭;然后关闭第一个数码管显示;然后让你的第二个数码管显示要显示的第二个数字,其他数码管关闭;...
单片机 两个 数码管 如何 显示 ?通过分别控制两个数码管的数字和位置,可以实现单片机控制两个数码管进行显示。首先需要通过GPIO口控制数码管的电流,再通过PWM波来控制数码管的亮度;然后根据...
51 单片机 的共阴 数码管 怎么 显示 数字(c语言)?要让51单片机共阴数码管显示数字,只需要将单片机的P2端口输出数字对应的段码即可。以显示数字“0”为例,c语言程序如下:#include要让51单片机共阴数码管显...
单片机数码管显示 不全解决方法?1、先更换同型号规格新电池试试。电量不足会引起数显数字不全。更换新电池不能解决问题,就是显示器故障了。2、显示器基本没有维修价值,建议到衡器门市更换新...
单片机数码管 ac是共阴还是?单片机数码管AC是共阳,不是共阴。共阳数码管的阳极连接到电源正极,而阴极则连接到单片机的输出接口。在控制数码管显示数字时,单片机会通过输出接口控制相应的...
单片机数码管显示 数字怎样不闪烁?原因如下1、适当增加数码管的刷新频率2、看看程序是否有中断之类的,处理时间过长,导致刷新频率存在问题.看视频,应该属于此种问题的可能性大一些.测试方...
51 单片机 8个 数码管 初始 显示 “87654321”,然后用8个独立按键...51单片机8个数码管初始显示“87654321”,然后用8个独立按键分别控制这8个数码管,每按一个键,相对应的数码管更换显示字符,要求8只按键按完后,数码管显示“nJnU...
c语言 数码管显示 原理?数码管分共阳数码管和共阴数码管。数码管其实就是8个段的发光二极管,只点亮其中的几个段即可显示出数字或字母用来表达信息。共阳数码管:把8段LED的正极...