(完整版)基于单片机的智能时钟设计毕业论文设计

武汉科技大学中南分校本科毕业设计(论文)

题目:基于单片机的智能时钟设

学院:信息工程学院

专业:自动化

学号:

学生姓名:周恒昆

指导教师:韩建中

二○一○年十一月二十四日

摘要

本系统设计是基于ATMEL公司的AT89C51单片机开发平台实现一种高精度,智能化的时钟系统。AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,采AT89C51单片机为控制核心,由单片机控制数码管的显示,,修改设置时间采用操作方便的键盘,整点报时系统使用无源蜂鸣器,通过调节输入方波的占功比,达到美妙旋律的声音实现报时的功能,整个系统设计比较完善,有显示时间日期、整点报时、时间日期调节设置的功能,除些之外还介绍了51单片机和汇编程序一些经验和方法,以便将51单片机的汇编程序经过局部的修改就可以移植到单片机上,实现不同的功能,节约重新开发的时间。最后总结了一些关于在做基于单片机的智能时钟所遇到的问题和困难,以及将AT89C51单片机与工业标准的MCS-51的各方面性能进行了比较,其最大的特点是只读存储器可以反复擦除,精简版本高效微控制器AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,也是它应用较为广泛的原因。

关键词:AT89C51单片机;数码管;蜂鸣器

Intelligent design based on single chip clockMeter

Zhouhengkun

Abstract

The system design is based on ATMEL Corporation AT89C51 microcontroller development platform to achieve a , intelligent

clock system.

AT89C51 is a flash with 4K bytes of erasable programmable read only memory (FPEROM-Flash Programmable and Erasable Read Only Memory),

low voltage, addition to those introduced in addition to 51

single-chip and assembly procedures and methods of some experience,

so that after 51 MCU assembler can be transferred to local changes

to the microcontroller, to achieve different functions, saving development time again. Concludes with a summary about doing

intelligent microcontroller-based clock problems and

difficulties encountered, and the AT89C51 microcontroller with

industry-standard MCS-51 performance in all aspects were compared,

the biggest feature is read-only memory can be repeated rubbing

In addition, efficiently streamlined version of the

microcontroller AT89C51 microcontroller for many embedded control

system provides a , but also because it is widely used.

Key words: AT89C51 microcontroller; digital; buzzer

前言 (1)

第1章 Proteus软件简介 (2)

第2章方案论证与设计 (3)

2.1数字时钟方案 (3)

2.2数码管显示方案 (3)

第3章硬件系统设计 (4)

3.1系统框图与说明 (4)

3.2模块设计 (4)

3.2.1电源部分 (4)

3.2.2复位电路 (5)

3.3.3晶振电路 (5)

3.3.4单片机系统电路 (6)

3.3.5数码管显示驱动电路 (7)

3.3.6整点报时电路设计 (9)

3.3.7按钮设置电路 (9)

4.1用Proteus软件设计智能时钟的仿真电路 (10)

4.2电路图绘制 (11)

第5章软件系统设计 (15)

5.1主程序设计 (15)

5.1.1中断程序流程图 (15)

5.1.2时分秒按键判断和调时设置流程 (17)

5.1.3年、月、日按键判断和调时设置流程图 (18)

5.1.4显示时分秒子程序流程图 (19)

5.1.5显示年月日子程序流程图 (20)

5.2源程序 (21)

第6章程序编写调试及智能时钟系统调试与仿真 (32)

6.1程序汇编软件Keil简介及操作方法 (32)

6.2时钟系统仿真 (37)

6.3时钟系统调试 (38)

第7章总结 (41)

致谢 (41)

参考文献 (42)

前言

随着科学技术的发展和电子技术产业结构调整,单片机开始迅速发展,由于家用电器逐渐普及,市场对于智能时钟控制系统的需求也越来越大。单片机以其芯片集成度高、处理功能强、可靠性高等优点,成功应用于工业自动化、智能仪器仪表、家电产品等领域。

近些年,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显示器可以用液晶显示技术和数码管显示技术。

单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件设计和软件编程设计两个方面,其调试过程一般分为软件调试、硬件测试、系统调试,通常不用制作具体的电路板用单片机系统的虚拟仿真软件Proteus 实现仿真功能。

本文所述智能时钟设计主要指时钟显示、时间设置、整点报时等控制系统。本文采用AT89C51型单片机为核心实现智能时钟控制,至所以选择AT89C51型单片机而没有选择其他单片机主要原因在于AT89C51型单片机进入市场时间早、总线开放、仿真开发设备多、芯片及其开发设备价格低廉、速度较快、电磁兼容性较好的。AT89C51单片机与工业标准的MCS-51

的各方面性能比较,其最大的特点是只读存储器可以反复擦除,是一种精简版本高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

第1章 Proteus软件简介

Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。可以实现数字电路,模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和pcb设计等功能,是目前唯一能够对各种处理器进行实时仿真和测试的EDA工具,微控制器系统相关仿真需建立编译和调试环境,一般可供选择的有Keil C51uVision和Wave6000软件,虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PICDsPIC33、AVR、ARM、8086和MSP430等芯片,同时支持PLM、汇编和C语言的程序设计。操作界面轻松易学,在调试程序和软件仿真方面有很强大的功能。通过动态器件实时看到运行后的输入、输出的效果,所以Proteus为我们建立了完备的电子设计开发环境。

第2章方案论证与设计

2.1数字时钟方案

数字时钟是本设计的最主要的部分。根据需要,可利用两种方案实现。

方案一:本方案采用Dallas公司的专用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。

方案二:本方案完全用软件仿真实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。

基于硬件的考虑,本设计采用方案二完成数字时钟的功能

2.2数码管显示方案

方案一:静态显示,静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,

直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制,静态显示时较小的电流能获得较高的亮度,且字符不闪烁。缺点是硬件电路比较复杂,成本较高。

方案二:动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。调整参数可以实现较高稳定度的显示。动态显示节省了IO口,降低了能耗。

从节省IO口和降低能耗出发,本设计采用方案二。

第3章硬件系统设计

3.1系统框图与说明

3.2模块设计

3.2.1电源部分

图3-2

如图3-2所示,从外部引入4.5V的直流电,为单片机、复位电路提供电源。

3.2.2复位电路

图3-3

如图3-3所示,复位电路主要由型号为1N4148的二极管,型号为

10UF16V的电解电容,型号为104的瓷片电容,10K的电阻以及按键S1构成,S1接芯片的相应引脚RST,当开关按下时引脚RST为高电平1,断开时引脚为低电平0。

3.3.3晶振电路

C1,C2在是电时帮助晶振起振

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL1应不接。有余输入至内部时钟信号要通过一个二分频触发

器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

3.3.4单片机系统电路

单片机型号及引脚功能

如图2所示,AT89C51有40引脚,双列直插(DIP)封装,所用引脚功能如下:

1.VCC ——运行时加+5V

2.GND ——接地

3.XTAL1 ——振荡器反相放大器及内部时钟发生器的输入端

4.XTAL2 ——振荡器反相放大器的输出端

5.RST ——复位输入,高电平有效,在晶振工作时,在RST引

脚上作用2个机器周期以上的高电平,将使单片机复位。WDT溢出

将使该引脚输出高电平,设置SFT AUXR的DISRTO位(地址8EH)

可打开或关闭该功能。DISRTO位缺省为RESET输出高电平打开状

态。

6.EAVPP ——片外程序存储器访问允许信号。欲使CPU仅访问外部

程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地),如果EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的

指令。

7.P1口,P2口——P1,P2是一组带内部上拉电阻的8位双向IO口。

运行时通过P1口控制驱动电路的工作,将数据送到数码管,显示

相应的段码,为了达到减少功耗或满足端口对最大电流的限制,应

加上一限流电阻。P2.0——P2.7口控制数码管的位选,使六个数码

管轮流显示数据,等于0时位选三极管导通,等于1 时位选三极管

截止。

8.无自锁开关——(S2-P3.7)开关接相应引脚P3.7,当开关按下

时,相应引脚为低电平0,断开时引脚为高电平1。

3.3.5数码管显示驱动电路

数码管点亮条件:段选和位选,结合下图

图3-4

图3-5

图3-5为位选电路,PNP型三极管的集电极接数码管的公共端,当P2口对应的引脚输出低电平时三极管导通,对应的数码管显示数据。这样,在同一时刻,多位LED中只有选通的那1位显示出字符,而其他5位则是熄灭的。同样,在下一时刻,只让下一位的位选线处于选通状态,而其他个位的位选线处于关闭状态,在段码线上输出将要显示字符的段码,则同一时刻,只有选通位显示出相应的字符,而其他各位则是熄灭的。如此循环下去,就可以使各位显示出将要显示的字符。虽然这些字符是在不同时刻出现的,而在同一时刻,只有一位显示,其他各位熄灭,但由于LED的余辉和人眼的视觉暂留作用,只要每位显示间隔足够短,则可以造成多位同时亮的假象,达到同时显示的效果。

图3-4(a)图为数码管的引脚图,每位的段码线(a,b,c,d,e,f,g,dp)分别与1个8位的锁存器输出相连,由AT89S51控制组合0-9十个数据,如令其显示1则b,c引脚(即2,3引脚)送高电平,此时数码管显示1。由于各位的段码线并联,8位IO口输出段码对各个显示位来说都是相同的。

当数码管正常工作时必须接上拉电阻,数码管点亮一般要5~10mA的

电流,po输出电流不到1mA,同时上拉电阻起到一个限流的作用。

在多位LED显示时,为了简化电路,降低成本,节省系统资源,将所有的N位段选码并联在一起,由一片74HC595控制(见图2)。由于所有LED 的段选码皆由一个74HC595并行输出口控制,因此,在每一瞬间,N位LED 会显示相同的字符。想要每位显示不同的字符,就必须采用扫描的方法,即在每一瞬间只使用一位显示字符。在此瞬间,74HC595并行输出口输出相应字符段选码,而位选则控制IO口在该显示位送入选通电平,以保证该位显示相应字符。如此轮流,使每位分时显示该位应显示字符。由于74HC595具有锁存功能,而且串行输入段选码需要一定时间,因此,不需要延时,即可形成视觉暂留效果。

3.3.6整点报时电路设计

本电路采用无源蜂鸣器作为发声报时的声源,对P1.7口延时翻转电平产生驱动波形对蜂鸣器进行驱动。通过改变延时时间进而改方波的占功比可以得到驱动蜂鸣器的方波信号。这样蜂鸣器报时时就可以听到不同音调的报时声。

3.3.7按钮设置电路

按键按下时,由于抖动的问题,用延时的方法去除抖动,解决方案如下:

第4章原理图

4.1用Proteus软件设计智能时钟的仿真电路

关于Proteus工作界面

Proteus软件在第一章1.2节已做详细介绍,下面介绍一下Proteus 的编辑环境:

启动Proteus IsIs,进入工作界面,如图4-1-1,包括标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择器窗口、图形编辑口。下面我会用photoshop将其工作界面详细介绍如下:

图4-1-1 Proteus的工作界面

4.2电路图绘制

1)新建文件:打开Proteus,点击File,在弹出的菜单中选择New

design,在弹出的窗口中选择DEFAULT,如图4-2-1

图4-2-1

2)选择所需元器件:根据设计要求,点击对象选择按钮Pick Devices,在Keywords中输入所需元器件名,进行搜索查找,在Results栏列表项中,双击所需元器件,就可以将所选元器件添加到左则的元器件列表区,然后在列表区用鼠标单击左键,这样就可把所选元器件放入图形编辑窗口。如在Keywords中输入AT89C51,在Results栏双击它,就可将AT89C51添加到对象选择窗口,如图4-2-2,然后用同样的方法将所需元器件全部加入到图形编辑窗口。如图4-2-3,点击绘图工具栏中的添加电源和接地符

号。

图4-2-2

本次设计所需用到的元器件如下:

①AT89C51 单片机

②7SEG-MPX8-CC-BLUE 八位八段共阴数码管

③SOUNDER 蜂鸣器

④CAP CAPACITOR电容

⑤BUTTON 按键

⑥CRYSTAL 晶振

⑦RES 3WATT3K3电阻

⑧Power 电源

⑨Ground 接地

图4-2-3

3)对整个元器件进行合理布局,进行连线,连接时当鼠标靠近一个的引脚时,跟着鼠标的指针就会出现一个X提示符,点击鼠标左键即可画线,遇到需要拐弯时点击一下即可,在终点再点击确认就可画出一段导线,

重复上述工作进行连线,原理图的绘制就完成了,如图4-2-4。

图4-2-4

4)对重复使用的元器件进行标注,在一些重要器件旁边附加文字说明(点击,在绘图区单击鼠标左键,会弹出一对话框,在String中输入相应的文字,设定Height和Global Style,可以完成其属性的设置),检查

无误后,便完成了整个电路图的绘制,如图4-2-5。

相关文档
最新文档