单片机驱动数码管显示设计

时间:2013-01-15来源:网络

②静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。

前面我们学习了数码管的基础知识,现在马上来看看S51增强型实验板的数码管吧(图4),S51实验板上有5位高亮度共阳数码管DG1~DG5,可以用来做计数器(最大计数值99999)、温度显示、电子钟等显示实验,掌握数码管的静态显示驱动和动态显示驱动。

点击浏览下一页
图4

S51增强型实验板的数码管驱动原理图如下图5所示。

点击浏览下一页
图5

从原理图可以看出,S51增强型实验板中数码管的段码a,b,c,d,e,f,g,dp分别与单片机的P0.0~P0.7相连,控制数码管中显示的字形;数码管的位选通由5个PNP三极管控制,分别接到单片机的P2.0、P2.1、P2.2、P2.3、P2.4端口上,程序中通过控制P2.0~P2.4端口的输出电平就可以控制数码管的显示与关闭。如P2.0输出低电平时,三极管T1导通,+5V电源加到第一个数码管的COM端,那么第一个数码管DG1就会显示出相应的数字,显示的数字由单片机P0.0~P0.7输出段码决定,当P2.0输出高电平时,三极管T1截止,数码管DG1就不显示,从而实现数码管位选通控制。同理,当P2.1输出低电平时,则数码管DG2显示。。。

单片机驱动数码管的静态显示编程

上面我们学习了一大堆的理论知识,对数码管已经有了较全面的认识,是否跃跃欲试了呀!马上动手编一个简单的程序验证一下理论吧,现在我们编程让实验板上的第一个数码管DG1显示数字“6”,最终的实验效果见上面图4所示。

启动Keil C51单片机集成开发环境,新建一个工程,工程命名为smg1.uv2,(不懂如何建立新工程的初学者请看网页 手把手教你建立Keil工程),打开一个文本编辑窗,在文本编辑窗中输入如下代码:

;********** 下面是数码管显示"6"的程序 **********

MAIN:CLR P0.0;P0.0输出低电平,点亮数码管段码"a"
 SETBP0.1;P0.1输出高电平,熄灭数码管段码"b"
 CLR P0.2;P0.2输出低电平,点亮数码管段码"c"
 CLR P0.3;P0.3输出低电平,点亮数码管段码"d"
 CLR P0.4;P0.4输出低电平,点亮数码管段码"e"
 CLR P0.5;P0.5输出低电平,点亮数码管段码"f"
 CLR P0.6;P0.6输出低电平,点亮数码管段码"g"
 SETBP0.7;P0.7输出高电平,熄灭数码管小数点段码"dp"

 CLR P2.0;P2.0输出低电平,选通数码管DG1
 SETBP2.1;P2.1输出高电平,不选通数码管DG2
 SETBP2.2;P2.2输出高电平,不选通数码管DG3
 SETBP2.3  ;P2.3输出高电平,不选通数码管DG4
 SETBP2.4;P2.4输出高电平,不选通数码管DG5

 AJMPMAIN;跳转到开始重新进行
 END ;程序结束

注:程序中分号“;”后面的中文为每一行程序的注释,是方便我们阅读程序的,可以不输入。

上面的源程序输入完毕后,保存为"smg1.asm",然后添加到工程smg1.uv2中,最后源程序经过编译得到目标文件"smg1.hex"(见下面的图6所示),不熟悉Keil工程建立、设置及源程序编译等详细操作的初学者请参考网页 >>> 手把手教你建立Keil工程。>>>

1 2 3 4

关键词: 单片机 数码管显示

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版