当前位置:文档之家› 万年历数码管显示设计及键盘控制设计final

万年历数码管显示设计及键盘控制设计final

万年历数码管显示及其键盘控制设计组长:康智勇组员:王辉王玉王天龙付晓蓉2008年08月08日目录前言 (3)一、总体方案设计(方案的对比) (4)二.单元模块设计(设计细节) (5)(一)烧写板 (5)(二) 单片机最小系统板 (7)(三) 4-16译码器驱动数码管控制板 (12)(四) 数码管显示板 (13)(五) 键盘控制板 (14)(六) DS12C887功能板 (14)三、系统功能说明(结果说明) (20)四、设计总结(心得体会) (20)五、改进方案: (21)附录: (22)【参考文献】: (22)【电路原理图】: (23)【程序清单】: (28)【流程图】: (47)【键盘使用说明】 (49)前言目前,计算机技术的发展分为两大分支:通用计算机系统与嵌入式计算机系统。

嵌入式计算机系统是面向测控对象嵌入到应用系统中的计算机系统的统称,而单片机则是一种经典的嵌入式系统。

从广义上讲,将微型计算机的主要功能部件集中在一块单芯片上的微型计算机称为单片机,这一类计算机又称为微控制器MCU(Micro Control Unit)。

由于单片机集成度高、体积小、功能强、速度快、功耗低、抗干扰能力强等优点,它在智能仪器、工业测控、日常生活及家电中等得到了广泛的应用。

万年历的数码管显示及键盘控制就是单片机的开发过程中的一个经典的应用。

在国内市场中存在着很多种不同厂家生产的不同类型的单片机,在本次设计中我们选用Atmel公司MCS-51系列兼容单片机中的AT89S51单片机。

AT89S51单片机是一个低功耗高性能CMOS 8位单片机,40个引脚,片内含4KB Flash ROM和128B ROM,32个外部双向输入输出(I/O)接口,同时内含两个外中断口,两个16为可编程定时计数器,两个全双工串行通信口,它的最大的一个特点就是支持在线更新程序(In System Programmable,ISP)功能。

本设计中除了选用了单片机进行显示和键盘控制外,还需要一个主要的芯片就是美国DALLAS公司的新型时钟日历芯片DS12C887。

DS12C887是一个能够自动产生世纪、年、月、日、时、分、秒等时间信息,而且DS12C887中自带有锂电池,外部掉电时,其内部时间信息还能够保持10年之久,因此各种设备、家电、仪器、工业控制系统中,可以很容易地用DS12C887来组成时间获取单元,以实现各种时间的获取。

本次设计中正是利用它的这一性能来获取准确的时间信息。

本次设计中需要硬件和软件两方面的结合。

在硬件方面,需要准备烧写板、单片机最小系统板、4-16译码器驱动数码管控制板、数码管显示板、键盘控制板、DS12C887功能板等硬件;在软件选择了Protel Technology公司开发的具有PDM 功能的强大的EDA综合设计环境Protel 99SE来进行原理图设计、PCB(印刷电路板)设计,选择了Keil Software公司推出的Keil C51的集编译器、汇编器、实时操作、项目管理器、调试器于一体的集成开发环境uVision3。

本次设计的成功离不开本组组员在实习期间的不懈努力,在必要情况下的加班加点。

在整个设计过程中,本组组员本着认真负责的精神,本着“没有最好,只有更好”的原则,采取“团结一致、分工合作”的措施,终于成功的设计出了万年历的数码管显示及键盘控制。

当然,本次设计中我们也遇到了很多的问题,本次设计的成功离不开本组组员的共同努力,更离不开老师和师兄及其他组员等的帮忙,在此本组组员衷心的感谢周庆国老师、赵庆林老师、王绍伟老师、刘钰力师兄、姚琪师兄等,谢谢你们不厌其烦地给予我们帮助。

时间过得很快,实习将近尾声,但是本次实习中的收获、经历及组员间建立起来的友谊将在本组组员的脑海中留下抹不去的青春的痕迹。

一、总体方案设计(方案的对比)本方案以A T89S51单片机为主控芯片,,由时间控制芯片12C887来产生精确的时间输出。

用八段数码管来显示时间(年、月、日、星期、时、分、秒),具体思想如下:首先准备好烧写板、单片机最小系统板、数码管显示板、键盘控制板、DS12C887功能板、4-16译码器驱动数码管控制板等硬件,并写好所要用的软件;其次用PC机和烧写板把PC机上已经写好的程序通过烧写板写到单片机AT89S51上;第三、连接好其它的硬件电路,使用已经写进了程序的AT89S51芯片对单片机及DS12C887初始化,初始化完成后时间整个系统就开始正常工作,AT89S51单片机通过端口P0读DS12C887上的时间,然后通过写端口P1将读到的时间实时在15个七段数码管上显示(包括年、月、日、星期、时、分、秒,其中年用四位十进制数表示);当键盘有按键,需要对时间进行调整时,则单片机将立即进入中断,置中断标志位后出中断,通过主程序中检查标志位判断是否进入时间调整模块程序,当标志位为高电平时,工作进入调整时间模块,调整结束后直接跳出调整程序,在此过程中15个七段数码管一直进行着实时扫描输出,保证了操作的实时性与可靠性。

通过单片机AT89S51的P0端口将调整好的时间写到DS12C887芯片上,然后DS12C887将从调整后的时间开始进入正常的工作状态,同时A T89S51单片机再次通过端口P0读DS12C887上的时间,然后通过写端口P1将读到的时间实时在15个七段数码管上显示;或者当单片机复位时,整体系统又开始从初始化后的时间开始显示。

在设计工程中,我们考虑过其他方案有:1、以凌阳61精简板作为主控制芯片,但考虑价格方面以及更好的锻炼自己的实际动手能力,我们放弃了以凌阳61精简板作为主控芯片的方案;在程序编写过程中,由于程序大于了demo版uVision3允许范围,所以我们决定使用AT89S52,但在通过Runtime版uVision2编译成功后顺利下载入AT89S51所以我们重新选择了已有芯片,最终成功完成了我们的实习设计。

2、在时间产生方面,我们考虑过以A T89S51单片机中的定时器来产生时间,但是由于AT89S51单片机用的是12MHz的频率,要产生1s的时间进位需加一些其他的C语句,这样会产生微小的时间偏差。

虽然在短时间内我们可能看不出什么问题,但是在长时间运行时会造成时间的不准确,故我们放弃了以AT89S51单片机内部产生时间的方案。

3、在键盘按键方面,我们考虑过使用行列扫描以及反转法扫描的方式进行按键识别。

在此种情况下,我们设想使用0-9十个数字键、一个终端进入键和复位键共12键对时间进行调试。

但是考虑到这种方式需要的按键太多,我们最终选择了六键控制方式,此时不需要对键盘进行行列扫描以及大规模阵列式键盘控制,提高了设计的实用性降低了元件成本。

4、在键盘控制和数码管显示时间方面,我们最初考虑的是使用芯片8279。

8279是可编程的键盘、显示接口芯片,它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。

8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64B RAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。

该芯片能自动消抖并具有双键锁定保护功能。

显示RAM容量为16*8,即显示器最大配置可达16位LED数码显示。

正如上所说,由于我们没有选择行列扫描的按键识别方式,同时考虑到设计成本问题,故我们放弃了这种想法。

二.单元模块设计(设计细节)(一)烧写板烧写板的使用前提及使用时与AT89S51单片机的连接情况见“单片机最小系统板”。

组成烧写板器件介绍(1)DB25并口DB25并口的管脚图如下:(2) 8D触发器HD74HC373P8D触发器HD74HC373P是一个三态输出的8D透明锁存器,它的管脚图如下:HD74HC373P各引脚定义如下:D0-D7 数据输入端OE 三态允许控制端(低电平有效)LE 锁存允许端O0-O7 输出端HD74HC373P各引脚功能具体应用介绍:HD74HC373P的输出脚O0-O7可直接与总线连接;当OE为低电平时,O0-O7为正常逻辑状态,可用来驱动负载或总线;当OE为高电平时,O0-O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响;当LE 为高电平时,O随数据D而变;当LE为低电平时,O被锁存在已建立的数据电平;当LE端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善400mV。

2. 具体设计烧写板的主要组成原件就是上面提到的DB25并口、8D触发器HD74HC373P,还需要单片机最小系统板中的A T89S51单片机的配合。

烧写板的使用前提及怎么与单片机最小系统板配合见“单片机最小系统”模块设计细节。

烧写板的的具体设计如下:(1)烧写板单片机与最小系统板的连接:将8D触发器HD74HC373P的Vcc脚(PIN20)与AT89S51单片机的Vcc 脚(PIN40)连接——此为HD74HC373P与AT89S51单片机的电源高电平连接口。

将8D触发器HD74HC373P的GND脚(PIN10)、OE脚(PIN1)及PC机的DB25并口的PIN18、PIN25与AT89S51单片机的Vss脚(PIN20)连接——DB25并口的PIN18、PIN25本为信号地端;HD74HC373P的PIN10本为接地端;HD74HC373P的OE脚接低电平是为了让O0-O7在整个工作过程中为正常逻辑状态。

将8D触发器HD74HC373P的O3脚(PIN9)与A T89S51单片机的RST(PIN9)连接;将AT89S51单片机的P1.5(PIN6)、1.6(PIN7)、1.7脚(PIN8)分别与8D 触发器HD74HC373P的O0脚(PIN2)、D1脚(PIN4)、O2(PIN6)对应连接;(2)另外的连接将DB2的PIN1与HD74HC373P的PIN7连接;将DB2的PIN14与HD74HC373P的PIN3连接;将DB2的PIN15与HD74HC373P的PIN5连接;将DB2的PIN16与HD74HC373P的PIN8连接;在电路中接入了三个电容,目的在于减少干扰。

上面设计的总体思路是:将PC机上的程序由DB25并口通过8D触发器HD74HC373P写到AT89S51单片机上.。

如果数据传输正确,则由AT89S51单片机传一个反馈信息由DB25并口到PC机,说明传输正确;如果数据传输出错,则由AT89S51单片机传一个反馈信息由DB25并口到PC机,说明出错,我们需要重新传输。

在这个结构中8D触发器HD74HC373P用来锁存地址和数据。

该项目的核心是8051单片机,它是可编程硬件,通过软件读入单片机,再由单片机写出到硬件,实现设计功能。

因此,烧写板的设计便是为了使单片机读入不同的程序,实现不同的功能。

相关主题