基于单片机的电子时钟的设计毕业论文
2022-05-24 21:22:29
论文总字数:24586字
摘 要
本文介绍了基于AT89S52单片机的多功能电子钟的硬件结构和软硬件设计方法。本设计由数据显示模块、温度采集模块、时间处理模块和调整设置模块四个模块组成。系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能。温度采集选用DS18B20芯片,电子钟万年历采用直观的数字显示,数据显示采用1602A液晶显示模块,可以在LCD上同时显示年、月、日、周日、时、分、秒,还具有时间校准等功能。此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
关键字:电子钟 温度计 液晶显示
ABSTRACT
This paper introduces the based on AT89S52 multi-function electronic clock of the hardware structure and software and hardware design method. This design by data display module, temperature acquisition module, time processing module and set module four modules. With AT89S52 single-chip microcomputer system for the controller to serial clock calendar chip DS1302 record calendar and time, it can be to date and time, minutes and seconds for the time, also has a leap year compensation and other functions. Temperature gathering choose DS18B20 chip, calendar by using object digital display, data showed that the 1602 A liquid crystal display module, can be in the LCD shows at the same time year, month, day, Sunday, when, minutes and seconds, still have time calibration etc. Function. This calendar has read the convenient, direct display, functional diversity, simple circuit, low cost, and many other advantages, has a broad market prospect.
Key words:Electronic Clock thermometer LCD display
目 录
摘 要 I
ABSTRACT II
前言 1
第一章 绪论 2
1.1课题研究的背景 2
1.2课题的研究目的与意义 2
1.3课题解决的主要内容 2
第二章 系统的方案设计与论证 4
2.1单片机芯片设计与论证 5
2.2按键控制模块设计与论证 5
2.3时钟模块设计与论证 5
2.4温度采集模块设计与论证 6
2.5显示模块模块设计与论证 6
第三章 系统硬件的设计 7
3.1 AT89S52单片机 7
3.2时钟芯片DS1302接口设计与性能分析 11
3.3温度芯片DS18B20接口设计与性能分析 16
3.4 LCD显示模块 20
3.5按键模块设计 24
3.6复位电路的设计 24
第四章 系统的软件设计 26
4.1主程序流程图的设计 26
4.2 程序设计 29
第五章 系统联调 31
5.1系统的模块组成 31
5.2 功能实现 31
5.3 硬件调试 32
5.4 软件测试 33
5.5 整体调试 33
5.6 实物图 34
5.7 电子时钟的仿真 34
5.8 整机的仿真及调试 36
结 论 39
附 录 40
前言
随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。目前,单片机技术的应用产品已经走进了千家万户。电子钟的出现给人们的生活带来了诸多方便。随着现代微电子技术的迅猛发展,微型计算机(单片机)在国民经济的各个领域得到了广泛的应用。单片机以体积小、功能全、性价比高等诸多优点,在工业生产、商业办公、生活电器、通信技术、信息处理、高端武器等各个工业科技领域的应用中独占鳌头,单片机的开发生产技术如今已成为电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子版万年历顺应而生。基于单片机的电子钟结合了时钟和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。而电子钟作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LCD数码管显示的日历钟逐渐受到人们的欢迎。LCD数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。
第一章 绪论
1.1课题研究的背景
随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。目前,单片机技术的应用产品已经走进了千家万户。电子钟的出现给人们的生活带来了诸多方便。随着现代微电子技术的迅猛发展,微型计算机(单片机)在国民经济的各个领域得到了广泛的应用。单片机以体积小、功能全、性价比高等诸多优点,在工业生产、商业办公、生活电器、通信技术、信息处理、高端武器等各个工业科技领域的应用中独占鳌头,单片机的开发生产技术如今已成为电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。
单片机单芯片的微小体积和低的成本,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中,成为现代电子系统中最重要的智能化工具,于是基于单片机的醒目而时尚的电子版万年历顺应而生。基于单片机的电子钟结合了时钟和日历的功能,将其二者融为一体,在显示时间的同时还能显示日期和年、月,它主要是通过单片机来读取时钟芯片的时间、日期,然后送给显示设备显示出来。而电子钟作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。数字显示的日历钟已经越来越流行,特别是适合在家庭居室、办公室、大厅、会议室、车站和广场等使用,壁挂式LCD数码管显示的日历钟逐渐受到人们的欢迎。LCD数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可以扩展出多种功能。
随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用时间长,准确性能好。使电子钟的万年历能够直观地数字显示,并且同时显示温度和年、月、日、时、分、秒信息,还具有时间校准功能。此电路采用AT89S52单片机作为核心,它功耗小,能够在3V的低压工作,因此电压可选用3~5V电压供电。此电子钟读取、使用方便,显示清晰直观、功能实用多样、电路简洁、成本低廉等诸多优点,具有广阔的市场前景。
1.2课题的研究目的与意义
二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。电子钟的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。所以说电子钟的开发是国家之所需,社会之所需,人民之所需。
由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子钟发展并且投入市场得到广泛应用。
1.3课题解决的主要内容
本课题所研究的电子钟是单片机控制技术的一个具体应用,主要研究内容包括以下几个方面:
1.选用电子钟芯片时,应重点考虑功能实在、使用方便、单片存储、低功耗、抗断电的器件。
2.根据选用的电子钟芯片设计外围电路和单片机的接口电路。
3.在硬件设计时,结构要尽量简单实用、易于实现,使系统电路尽量简单。
4.根据硬件电路图,在开发板上完成器件的焊接。
5.根据设计的硬件电路,编写控制AT89S52芯片的单片机程序。
6.通过编程、编译、调试,把程序下载到单片机上运行,并实现本设计的功能。
7.在硬件电路和软件程序设计时,主要考虑提高人机界面的友好性,方便用户操作等因素。
第二章 系统的方案设计与论证
单片机电子钟的制作有多种方法,可供选择的器件和运用的技术也有很多种。所以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以及低廉的成本。
系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定用三个8位74LS164串行接口外接LCD显示器,RESPACK-8对单片机AT89S52进行供电,时间芯片DS1302连接单片机AT89S52。从而实现电子钟的功能。
按照系统设计的要求,初步确定系统由电源模块、时钟模块、显示模块、键盘接口模块、温度测量模块和闹钟模块共六个模块组成,电路系统构成框图如图1-1所示。
1-1 硬件电路框图
2.1单片机芯片设计与论证
方案一:
采用AT89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能用于3V的超低电压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 进行电路调试时,由于对程序的新增功能需要烧入程序或者程序的错误修改时,多次拔插芯片会对芯片造成一定的损坏。
方案二:
如果换做采用AT89S52芯片作为硬件核心,则采用Flash ROM,就可以在3V的超低电压下工作,而且能够与MCS-51系列单片机完全兼容,该芯片内部存储器为8KB ROM 存储空间。同样具有AT89S52的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。
由于AT89S52内部具有8KBROM存储芯片并且支持ISP在线编程,因此采用AT89S52作为主控芯片。
2.2按键控制模块设计与论证
方案一:采用矩阵键盘,由于按键多可实现数值的直接键入,但在系统中需要CPU不间断的对其端口扫描。
方案二:采用独立按键,查询简单,程序处理简单,可节省CPU资源。
因系统中所需按键不多,为了释放更多的CPU占有时间,操作方便,故采用方案二。
2.3时钟模块设计与论证
方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。
方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,并且精度较高,位的RAM作为数据暂存区,工作电压在2.5V~5.5V范围内,2.5V时耗电小于300nA。
由于DS1302时钟芯片计数时间精度高,而且具有闰年补偿功能等优点,故采用方案二。
2.4温度采集模块设计与论证
方案一:采用温度传感器(如热敏电阻或AD590),再经AD转换得到数字信号,精度较准,但价格昂贵,电路较复杂。
方案二:采用数字式温度传感器DS18B20,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9-12位的数字值读数方式,但准确度不高,误差最大达2度。
因为用DS18B20温度芯片,采用单总线访问,降低成本、降低制作难度且可节省单片机资源,故采用方案二。
2.5显示模块模块设计与论证
方案一:采用静态显示方法,静态显示模块的硬件制作较复杂及功耗大,要用到多个移位寄存器,但不占用端口,只需两根串口线输出。
方案二:采用动态显示方法,动态显示模块的硬件制作简单,段扫描和位扫描各占用一个端口,总需占用单片机14个端口,采用间断扫描法功耗小、硬件成本低及整个硬件系统体积相对减小。
方案三:采用LCD的方法,具有硬件制作简单可直接与单片机接口,显示内容多,功耗小,成本低等优点,LCM1602可显示32个字符,采用LCD的缺点是亮度不够。
比较以上三种方案:方案一硬件复杂体积大、功耗大;方案二硬件简单、功耗小;方案三硬件简单,显示内容多,功耗小,成本低等。本系统设计要求达到功耗小、体积小、成本低,显示信息多等要求,权衡三种方案,选择方案三。
第三章 系统硬件的设计
根据上述所确定的系统方案构想,下面进行系统硬件电路的具体设计,系统的具体设计在下面会详细介绍。
3.1 AT89S52单片机
本系统采用的是美国ATMEL公司生产的AT89S52单片机,首先我们来熟悉一下AT89S52单片机的外部引脚和内部结构。
3.1.1单片机的引脚功能
图3-1 单片机最小系统
AT89S52单片机有40个引脚。
- Vcc:电源电压 5V
- GND:接地
- P0口:P0口是一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。作为输出口时,每位能驱动8个TTL逻辑门电路,对端口写“1”可以作为高阻抗输入端用。
当访问外部数据存储器或者程序存储器的时候,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。
- P1口:P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可以驱动(吸收或者输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。在作输入口使用时,内部由于存在上拉电阻,所以某个引脚被外部信号拉低时会输出一个电流。
Flash 编程和程序校验期间,P1接收低8位地址。
- P2口:P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。在作输入口使用时,由于内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或者16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口会送出高8位地址数据。在访问8位地址的外部数据存储器(MOVX 指令)时,P2口线上的内容(即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
在Flash 编程和程序校验期间,P2也会接收低高位地址和其他控制信号。
- P3口:P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”的时候,它们被内部的上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途同时是它的第二功能,见表3-1所示:
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
表3-1 P3口的第二功能图
端口引脚 | 第二功能 |
P3.0 | RXD(串行输入口) |
P3.1 | TXD(串行输出口) |
P3.2 | INT0(外中断0) |
P3.3 | INT1(外中断1) |
P3.4 | T0(定时/计时器0外部输入) |
P3.5 | T1(定时/计时器1外部输入) |
P3.6 | WR(外部数据存储器写选通) |
P3.7 | RD(外部数据存储器读选通) |
- RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFR AUXR的DISRT0(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。
- ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存器允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过多特殊功能寄存器(SFR)区中的8EH单元的D0位置,可禁止ALE操作。该位置后,只有一条MOVX和MOVC指令ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
- PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。
- EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,则复位时内部会锁存EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上 12V的变成电压Vpp.
- XTAL1:振荡器反相放大器及内部时钟发生器的输入端。
- XTAL2:振荡器反相放大器的输出端。
AT89S52单片机内部结构
3.1.2 AT89S52单片机与MCS-51完全兼容
- 看门狗(WDT):WDT是一种需要软件控制的复位方式。WDT 是由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成的。WDT 在默认情况下无法工作;为了激活WDT,用户必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚输出一个高电平。
- 可编程串口(UART)在AT89S52中,UART 的操作与AT89S52 和AT89C52 一样。AT89S52单片机的串行通信口可以工作于同步和异步两种通信方式。当工作于异步方式时,它具有全双工的操作功能,也就是说它可以同时进行数据的发送和接收的工作。串行口内的接收器采用的是双缓冲结构,能在接收到的第一个字节从接收寄存器读走之前就开始接收第二个字节(然而倘若第二个字节接收完毕,而第一个字节仍然没被读取走,那将丢掉一个字节)。串行口的发送和接收都是要通过特殊功能寄存器中的数据缓冲寄存器SBUF进行的,可是在SBUF内部,发送寄存器和接收寄存器的物理结构是独立的。若将数据写入SBUF,数据就会被送入发送寄存器准备发送。如果执行SBUF指令,则读出的数据一定来自接收缓存器。因此,CPU对SBUF的读写,实际上是分别访问2个不同的寄存器。这2个寄存器的功能决不能混淆。
- 振荡电路:AT89S52系列单片机的内部振荡器,由一个单极反相器组成。XTAL1反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。在电路中,对电容C1和C2的值要求不是很严格,如果使用高质的晶振,则不管频率为多少,C1、C2通常都选择30pF。
- 定时/计数器:AT89S52单片机内含有2个16位的定时器/计数器。当用于定时器方式时,定时器的输入来自于内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,因此,定时器的技术频率是晶振频率的1/12,而计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中包含3种基本的寄存器:控制寄存器、方式寄存器和定时器/计数器。方式寄存器是一个8位的寄存器,用于确定定时器的工作方式,控制寄存器是一个8位的寄存器,用于控制定时器的工作状态,定时器/计数器是16位的计数器,分为高字节和低字节两部分。
- RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。这样,虽然高128字节区分与专用寄器 ,即特殊功能寄存器区的地址是重合的,但实际上它们是分开的。究竟访问哪一区,存是通过不同的寻址方式加以区分的。
- SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,它们的地址分配在80H~FFH中。虽然如此,不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不确定的。如对这些单元进行读操作,得到的是一些随机数,而写入则无效,所以在编程时不应该将数据写入这些未确定的地址单元中,特殊功能寄存器主要有累加器ACC、B寄存器、程序状态字寄存器PSW、堆栈指针SP、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF、定时器寄存器、捕捉寄存器、控制寄存器。
- 中断系统:AT89S52单片机有6个中断源,中断系统主要由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成。IP寄存器用于确定中断源的优先级别;IE寄存器用于允许或禁止中断;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。在整个中断响应过程中CPU所执行的操作步骤如下:
(1)完成当前指令的操作
(2)将PC内容压入堆栈
(3)保存当前的中断状态
(4)阻止同级的中断请求
(5)将中断程序入口地址送PC寄存器
(6)执行中断服务程序
(7)返回
3.2时钟芯片DS1302接口设计与性能分析
3.2.1DS1302性能简介
DS1302是Dallas公司生产的一种实时时钟芯片。它通过串行方式与单片机进行数据传送,能够向单片机提供包括秒、分、时、日、月、年的时间信息,而且也可以对月末日期、闰年天数自动进行调整;它还有用于主电源和备份电源的双电源引脚,在主电源关闭的情况下,也能保持时钟连续运行。另外,还能提供用于高速数据暂存的31字节的RAM。
DS1302 的电路图如下,其中Vcc1 为后备电源,VCC2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由Vcc1 或Vcc2 两者中的较大者供电。X1 和X2 是振荡源,外接32.768kHz 晶振。RST 是复位/片选线,通过把RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。只有在SCLK 为低电平时,才能将RST 置为高电平。I/O 为串行数据输入输出端(双向), SCLK 始终是输入端。DS1302与单片机的连接也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚。
请支付后下载全文,论文总字数:24586字