《单片机原理及应用实验》
题目: 动态数码显示技术
院(系) 信息科学与工程学院
专业通信工程。
届别2012级。
班级1 班。
学号。姓名。
任课老师。摘要: 本设计利用51单片机为核心,实现数码管的动态显示。
通过检测按键状态来分别连续显示数字和字母。硬件电路采用单片机开发板中的锁存器74hc573和4位数码管,软件部分使用常用的单片机程序编译器keil c51和烧写软件stc-isp,分别用汇编语言实现了了主程序、延时程序和数字/字母显示子程序,算法实现简单,流程明确,具有较好的扩展性。整个系统经过不断调试,最终实现预期的设计要求。
关键词:51单片机 74hc573 4位数码管汇编。
利用数码管动态显示技术,使用开关控制数码管的显示状态,当开关接高电平时,显示“54321”字样,当开关接低电平时,显示“nihao”字样。通过简单修改程序,可以实现流水灯效果或者移动数字和字母显示的位置。
本设计的目的在于连续显示5个数字或者字母,显示的方法为动态显示技术,利用51单片机和数码管可以容易实现设计要求。需要解决的问题是如何利用好单片机的i/o口和片内资源、数码管动态显示的方法、控制按键信号的方式(包括按键终端和高低电平状态监测方式)。
方案一:采用51单片机 + 5个数码管。
图1 单片机驱动一个数码管显示电路。
如图1所示,采用每个数码管接i/o口的方式,因为数码管的段选信号需要占用8个端口,所以采用这种方式,一个单片机最多也只能接4个数码管,而且无法利用端口获得按键信息,获得高低电平信号来控制显示状态,需要添加一块单片机才可以满足系统要求。次方案成本高,资源利用率低,效率低下。
方案二:采用51单片机 + 4位数码管 + 译码器 + 锁存器。
图2 译码器+锁存器的数码管动态显示。
如图2所示,采用4位数码管,采用译码器74hc138控制数码管的位选,增强驱动能力的同时还可以节省单片机的端口,只需要3个i/o口就可以利用译码功能实现8位数码管的位选信号控制。74hc573是锁存器,保存数码管的段选信号,直接用单片机的p0端口控制即可。
方案三:采用51单片机 + 4位数码管 + 2个锁存器。
a)锁存器电路。
b)4位数码管电路。
图3 (a)、(b)锁存器动态数码显示电路。
如图3所示,采用4位数码管,利用2个锁存器作为数码管的位选和段选信号,由于锁存器74hc573可以利用使能端口控制输出口的信号,只要p1口就可以控制2个锁存器,比方案二进一步提高i/o口的利用率。
方案总结:通过三个方案的对比,发现利用方案三可以最大化利用硬件资源,而且软件实现也比较简单。所以本设计采用方案三。
1)四位数码管的定义。
四位数码管是一种半导体发光器件,其基本单元是发光二极管。能显示4个数码管叫四位数码管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。
2)4位数码管的驱动方式。
1、静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的i/o端口进行驱动,或者使用如bcd码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用i/o端口多,如驱动5个数码管静态显示则需要5×8=40根i/o端口来驱动,要知道一个89s51单片机可用的i/o端口才32个呢:
),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
2、数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a, b, c, d, e, f, g, dp"的同名端连在一起,另外为每个数码管的公共极com增加位选通控制电路。位选通由各自独立的i/o线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通com端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的com端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的i/o端口,而且功耗更低。
hc573和74ls373原理一样,8数据锁存器。主要用于数码管、按键等等的控制。
2. 高阻态:就是输出既不是高电平,也不是低电平,而是高阻抗的状态;在这种状态下,可以多个芯片并联输出;但是,这些芯片中只能有一个处于非高阻态状态,否则会将芯片烧毁;
3. 数据锁存:当输入的数据消失时,在芯片的输出端,数据仍然保持。
真值表:第四行:当oe=1是,无论dn、le为何,输出端为高阻态;
第三行:当oe=0、le=0时,输出端保持不变;
第二行第一行:当oe=0、le=1时,输出端数据等于输入端数据。
本设计采用单片机开发板hy510,硬件资源如图4所示。
图4 开发板。
编译器:keil c51 v 8.09
烧写器:stc-isp v 4.99 + ch340 usb烧写器。
本设计采用keil c51进行程序的调试和编译,利用烧写器stc-isp进行烧写。
图5 stc-isp烧写器界面。
图6 主程序流程图。
图7 数字/字母显示子程序。
1)程序起始地址。
51单片机的程序空间的0000h、0003h、000bh、0013h、001bh、0023h分别为复位、外部中断0、定时/计数器0、外部中断1、定时/计数器1和串行口的中断入口地址。如果程序不用中断,可以让程序从0000h开始一直连续编下去。
2)位选和段选信号的切换。
利用锁存器74hc573的锁存功能,程序先将控制段选信号的锁存器的使能端打开,此时锁存器输出端等于由p1口输出的段选信号,每个数码管都能收到这个段选信号,但是由于需要动态显示,所以需要利用位选信号来决定点亮哪个数码管。因为位选和段选信号都是由p1口送出,所以在送出位选信号给另一个锁存器之前,需要先将段选的锁存器锁住,无论p1口为什么信号,段选锁存器输出都保存不变。然后将位选锁存器使能打开,由p1口送出位选信号,位选锁存器输出就能与p1口的信号,8个数码管就可以根据位选信号决定哪个数码管点亮。
见附录1系统设计的最终效果要达到数码管动态显示,数字的显示顺序正确,显示的稳定性良好,不能出现抖动等现象。
1. 利用烧写器将程序烧写到单片机开发板中;
2. 打开开发板电源,观察数码管是否从左到右稳定显示数字“54321”;
3. 按下开发板上的开关s20,观察数码管是否立即显示“nihao”,跳变过程是否快速,显示是否稳定;
4. 松开按键,数码管又能重新显示“54321”;
图8 上电显示54321
图9 按住按键显示字母nihao
实验结果显示,系统设计符合课程设计的要求,动态显示结果正确、稳定。
1] 贺哲荣, 甄旭。 mcs-51系列单片机实用编程88例。 中国电力出版社,2011.2
2] 张友德, 涂时亮, 赵志英。 单片微型机原理、应用与实验:a51版。 复旦大学出版社,2012.3
3] 张友德, 涂时亮, 赵志英。 单片微型机原理、应用与实验:c51版。 复旦大学出版社,2010.12
4] 赵建领, 崔昭霞。 精通51单片机开发技术与应用实例。 电子工业出版社,2012.6
附录1程序开始。
org 0000h复位后起始执行地址。
main:jb p3.0, skip_disp_num如果按键没有按下,则p3.0口的电平为高电平,调用数字显示子程序。
jnb p3.0, skip2_disp_char ;如果按键按下,则p3.0口的电平为低电平,调用字母显示子程序。
skip_disp_num:
lcall disp_num
ajmp main跳转至主程序循环。
skip2_disp_char:
lcall disp_char
ajmp main跳转至主程序循环。
延时。delay:
mov r3, #
d_loop1:
mov r4, #
djnz r4, $
djnz r3, d_loop1
ret显示数字。
disp_num:
;送5setb p2.0将p2.0都置1;打开段选,锁存器输出等于输入。
mov p1, #0x92; ;p1送段选。
clr p2.0将p2.0都置0;锁住段选信号。
setb p2.1打开位选。
mov p1, #0x01; ;p1送位选。
clr p2.1锁住位选。
acall delay; ;延时10ms
;送4setb p2.0打开段选。
mov p1, #0x99; ;p1送段选。
clr p2.0锁住段选信号。
单片机课程设计报告
单片机系统课程设计报告。专业 电气技术。学生姓名 朱海李威张杰。学号。指导教师 陈高燕。完成日期 2014 年 7 月 5 日。目录。1 设计任务和性能指标 1 1.1设计任务 1 2 设计方案 1 2.1方案论证 2 2.2总体设计框图 2 3 系统硬件设计 4 3.1红外线解码电路设计 4 3....
单片机课程设计报告
韶关学院。课程设计说明书 设计题目 基于单片机控制的智能交通灯设计。课程名称 微机原理与应用实训。学生姓名 学号。院系 物理与机电工程学院汽车系。专业班级 12机械制造及其自动化 5班。指导教师姓名及职称 谢杰讲师。陈锦儒助理实验师。起止时间 2015 年 3 月 2015 年 5 月。课程设计评分...
单片机课程设计报告
南京工程学院。课程设计说明书 题目实时钟芯片pcf8563的应用 课程名称单片机原理及应用a 院 系 部 中心 通信工程学院。专业电子信息工程 传感网 班级。学生姓名。学号。设计地点信息楼 c 210 指导教师。设计起止时间 2013年12月23日至 2013年12月27日。一 摘要1 二 课程设计...