51单片机实例讲解,数码管显示数字“5555”程序
利用单片机及某些数字电路块的结合,可以实现静态字符的显示。本例是利用74LS164八位移位寄存器(串入、并出)与单片机串行口结合,使数码管静态显示数字“5555”。
(1)数码管显示数字“5555”硬件电路(见图20)。图20 显示字符“5555”接线原理图
在图20的电路中,74LS164的相关引脚与数码管的a、b、c、d、e、f、g引脚相连接,并且74LS164为串行输入、并行输出,所以L4LS164串行输入的数据与数码管对应字符的关系见表7。
表7 L4LS164串行输入的数据与数码管对应字符的关系表
(2)数码管显示数字“5555”硬件电路元器件(见表8)。表8 数码管显示数字“5555”硬件电路元器件表
(3)数码管显示数字“5555”程序流程图(见图21)。
图21 显示数字“5555”程序流程图
(4)数码管显示数字“5555”程序。
详解数码管显示控制
数码管种类繁多,按外观来划分,可以分为七段数码管、米字型数码管、点阵块等。图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位共阳极数码管动态显示电路原理图
相关问答
单片机编程 :开机后 数码管显示 26,同时LED2和LED6采用闪烁方式点亮,亮灭各0.8秒?如果要求精确延时0.8秒,就应该使用定时器。如果要求精确延时0.8秒,就应该使用定时器。
51 单片机编程 制作电子钟时间问题.后两位 数码管显示 到59后,直...[最佳回答]ucharsec=0,min=0,tnum;把它放到主函数里面看看,并且tnum=0
51 单片机 LED灯点亮的c语言 编程 方法?/*程序详细功能介绍:*利用取表的方法,使端口P0做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。*在用表格进行程序设计的时候,要用以下的.../*...
单片机编程 和""一般编程""区别?如果你是想学计算机软件开发的话,就不要去理会什么单片机编程了。但如果你是想学电子产品开发(嵌入式系统开发),那么单片机编程就是基础了。电脑和单片机的...
新琦 数码 中文 编程 适合 单片机 吗?新琦数码中文编程不适合单片机新琦数码中文编程软件,采用先进的“图示化和全中文”的编程语言,它使得软件编程变的异常简单和不可思议的高效。但除了汇编和C...
如何用 单片机 口识别110v或220v?很简单。通过传感器或电阻分压的方式取得电压信号,经过隔离后得到3V左右(对于5V单片机)的信号电压,接入单片机的端口,编程将此端口初始化为低电平,此后实...
code正确使用方法?在单片机使用C语言进行编程的时候,经常使用到code。code是keilC51(也就是说,在其它的编译器中可能是其它形式,例如IAR中的CODE)里面的关键字,一般用于定义...
线路板焊接好后怎么写程序 ?就是 单片机 已经焊好之后 好不好...就是单片机已经焊好之后好不好能把程序弄进去。需要具体方法讨论回答(4)什么单片机?51可以有isp或者串口pic得用icd他那是51的,可以在线编程!平时都是...
单片机 能否用中文编写?不能。1,现在的单片机内部结构设计全是外国人设计的,编程语言也是外国人发明的。2,最初设计就是英语,要想用中文编写那之前的这一切就要全部推倒重来。《51...
单片机 为什么还在用C语言 编程 ?单片机为什么还在用C语言编程?答案是:C语言是最适合单片机编程的高级语言。这个问题的意思应该是:现在有很多很好用的高级语言,如java,python,VC等等,为...单片...