基于单片机的电子时钟设计.docx
《基于单片机的电子时钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的电子时钟设计.docx(44页珍藏版)》请在冰豆网上搜索。
基于单片机的电子时钟设计
本科生毕业论文(设计)
基于单片机的电子时钟设计
独创性声明
本人郑重声明:
所呈交的毕业设计是本人在指导老师指导下取得的研究成果。
除了文中特别加以注释和致谢的地方外,设计中不包含其他人已经发表或撰写的研究成果。
与本研究成果相关的所有人所做出的任何贡献均已在设计中作了明确的说明并表示了谢意。
签名:
年 月 日
授权声明
本人完全了解xx学院有关保留、使用本科生毕业设计的规定,即:
有权保留并向国家有关部门或机构送交毕业设计的复印件和磁盘,允许毕业设计被查阅和借阅。
本人授权xx学院可以将毕业设计的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存、汇编设计。
本人设计中有原创性数据需要保密的部分为(如没有,请填写“无”):
签名:
年 月 日
指导教师签名:
年 月 日
摘要
本文详细介绍了51单片机应用的数据转换显示,动态扫描显示原理,单片机的定时中断原理、从而达到学习,了解单片机相关指令在各方面的应用。
电子时钟系统由AT89C51、LCD显示器、按键、二极管等部分构成,能实现日历的功能,能进行时、分、秒的显示,也具有日历计算、显示、校准、定时时间的设定、温度显示,实现三路开关定时输出等功能。
关键词:
电子时钟;单片机
ABSTRACT
Inthispaper,detailedinformationontheapplicationof51single.chipdisplaydataconversion,digitaldisplayprinciple,dynamicscanshowstheprincipleofsingle.chiptiminginterruptionprinciple,toachievethelearningandunderstandingofsingle.chipinstructioninallaspectsrelatedtotheapplication.ElectronicclocksystemconsistsofAT89C51,LCDdigitaltubes,buttons,diodesandothercomponents,toachievethefunctionofthecalendar,canbehours,minutesandsecondsdisplay.Alsohasacalendarcalculation,displayandclock,acalendarofthecalibration,setthetimefromtimetotime、temperaturedisplay,therealizationofthree.wayoutputfunctions.
Keywords:
electronicclock;SingleChipMicrocomputer
1绪论
随着现代技术的发展,尤其是数字技术的发展,用数字电路技术实现电子时钟变得越来越重要,而且贴近我们的实际生活。
在现代社会各领域中,广泛需要各种不同的定时系统,来完成定时操作功能。
用单片机实现定时控制,是当前实时控制的发展方向。
而一些定时系统只能满足特定的需要,而定时时间是由研发者根据用户需要输入到系统存储器中的,在使用中用户无法更改。
本系统采用通用单片机定时系统,具有很强的通用性,实用性.并且其定时时间可以根据需要,由用户任意更改,并且可以设定多个定时时间,极大地方便了使用者。
系统选用单片开发机。
具有体积小、电路简单、操作便捷、价格低廉、运用灵活、使用方便等特点。
系统中,定时时间到达时将相应的LED灯点亮,此功能也可变为其他功能从而应用到更广泛的领域.例如:
定时开启电源、打开阀门自动浇水等。
1.1课题研究的目的和意义
数字电子时钟是一个无处不在的电子产品,经过多年的发展技术已经相当成熟了,目前广泛应用的电子时钟大多用AT89C51单片机为核心部件制作的,可以实现对年、月、日、时、分、秒的数字显示,通过扩展可实现对电子钟所在地点的温度显示和智能闹钟功能,广泛应用于车站、医院、机场等公共场所的时间显示。
与机械钟表和3V电源半机械钟表相比,数字电子钟有时间精确、减少汞电池的使用等优点。
本课题将通过对市场上的电子时钟的研究,制作一个以AT89C51单片机为核心控制部件的数字式电子时钟,该时钟具有显示年、月、日、时、分、秒,正点报时,温度显示等功能,可以使人们在得到准确时间显示的同时提醒接下来的时间安排,方便人们的生活。
1.2电子时钟发展动态
二十一世纪的今天,最具代表性的计时产品就是电子时钟,它是近代世界钟表业界的第三次革命。
第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。
第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。
第三次革命就是单片机数码计时技术的应用(电子时钟),从原有传统指针计时的方式发展为人们日常更为熟悉的数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求。
电子时钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。
随着人们生活环境的不断改善和美化,在许多场合可以看到数字电子时钟。
在城市的主要营业场所、车站、码头等公共场所使用LCD数字电子钟已经成为一种时尚,但目前市场上各式各样的LCD数字电子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点,因此有必要对数字电子钟进行改进。
2电子时钟设计硬件结构
2.1单片机简介
2.1.1单片机的基本概念
单片机,是集CPU,ROM,RAM,计数和多种接口于一体的微控制器。
自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。
它体积小、重量轻、抗干扰能力强、环境要求不高,价格低廉、可靠性高、灵话性好、开发较为容易,广泛应用于智能生产和工业自动化上。
单片微型计算机(Single-ChipMicrocomputer),简称单片机。
就是将微处理器(CPU),存储器(存放程序或数据的ROM和RAM),总线,定时器/计数器,输入/输出接口(I/O口)和其他多种功能器件集成在一块芯片上的微型计算机。
由于单片机的重要应用领域为智能化电子产品。
2.1.2单片机的工作原理
单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用命令的形式写下来,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。
为使单片机能自动完成某一特定任务,把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。
存储器由许多存储单元(最小的存储单位)组成,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。
程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行,单片机的芯片如2-1所示。
图2-1单片机芯片
单片机是靠程序运行的,并且可以修改。
通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。
一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路是一块大PCB板,但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别,因为单片机的通过你编写的程序可以实现高智能、高效率、以及高可靠性。
由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?
很多高级的语言已经达到了可视化编程的水平为什么不用呢?
原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。
一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸,对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。
单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。
2.2AT89C51简介
AT89C51是一种4K字节闪存可编程可擦除只读存储(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C52是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,外形及引脚排列如图2-2所示。
图2-2AT89C51引脚图
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下所示:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,对外部时钟信号的脉宽无要求,但必须保证脉冲的高低电平要求的宽度。
2.3DS1302简介
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V,采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302的外形及引脚排列如图2-3所示。
图2-3DS1302引脚图
VCC1:
后备电源。
VCC2:
主电源,在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由VCC1或VCC2两者中的较大者供电。
当VCC2大于VCC1+0.2V时,VCC2给DS1302供电。
当VCC2小于VCC1时,DS1302由VCC1供电。
X1,X2:
振荡源,外接32.768kHz晶振。
RST:
复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送.RST输入有两种功能:
首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
I/O:
串行数据输入输出端(双向)。
SCLK:
输入端,只有在SCLK为低电平时,才能将RST置为高电平。
2.4温度传感器DS18B20简介
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
2.4.1DS18B20的性能特点
DS18B20的性能特点:
独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在唯一的三线上,实现多点组网功能;无须外部器件可通过数据线供电,电压范围为3.0~5.5V;零待机功耗;温度以9或12位数字量读出;用户可定义的非易失性温度报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
2.4.2DS18B20与单片机的接口电路
DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。
另一种是寄生电源供电方式。
本设计采用电源供电方式,如图2-4所示。
图2-4DS18B20采用电源供电的电路图
2.5LCD显示
显示电路选用AMPIRE128×64,其显示器LCD的引脚图如2-5所示。
图2-5LCD的引脚图
管脚一共18个。
CS1:
左半屏片选端,CS2:
右半屏片选端;V0:
液晶显示驱动电压,通过一个电位器接到VCC;RS:
数据指令选择信号,H为数据,L为指令,也叫D/I;R/W:
读写选择信号,H为读,L为写;E:
LCD使能端,R/W为L时,E信号下降沿锁存DB7-DB0;R/W为H时,E为H,DDRAM数据读到DB7-DB0。
DB0-DB7:
数据传输端口。
RST:
复位信号。
-VOUT和V0:
液晶显示驱动电压。
128×64是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。
可完成图形显示,也可以显示8×4个(16×16点阵)汉字。
2.6电子时钟的原理图
本设计主要由单片机、时钟芯片、液晶显示器和温度传感器等几部分组成。
其中时钟芯片用于显示日历、定时各种功能的实现。
通过温度传感器与单片机的连接从而显示出温度,在确定了选用AT89C51型号的单片机后,就要确定外围电路如时钟输入部分、复位部分、晶振部分、显示部分、定时部分组成,其原理图如图2-6所示。
图2-6电子时钟原理图
3电子时钟软件设计
3.1程序设计思想和相关指令介绍
本系统的主程序主要完成时间显示和定时输出判断功能。
而年月日显示和各时间单元进位,时间设定时,调定时间设定时等功能全部在中断服务程序中完成。
3.1.1计时功能的实现与中断服务程序
时间的运行依靠定时中断子程序对时钟单元数值进位调整来实现的。
计数器T0打开后,进入计时,满100毫秒后,重装定时。
中断一次,满一秒后秒进位,满60秒后即为1分钟,分钟单元进位,60分到了后,时单元进位,24小时满后,天单元进位。
这样然后根据进率,得到年、月、日、时、分、秒存储单元的值,并经译码后,通过扫描程序送LCD中显示出来,实现时钟计时功能。
累加是用指令INC来实现的。
进入中断服务程序以后,执行PUSHPSW和PUSHA将程序状态寄存器PSW的内容和累加器A中的数据保存起来,这便是所谓的保护现场.以保护现场和恢复现场时存取关键数据的存储区叫做堆栈。
在软件的控制之下,堆栈可在片内RAM中的任一区间设定,而堆栈的数据存取与一般的RAM存取又有区别,对它的操作,要遵循后进先出的原则。
3.1.2时钟误差分析
开启定时器/计数器0,使之开始计时,中断后进入中断程序。
自停止计数到计数又开始,中间执行了7条指令,也就是延迟了13个单周期共用时间26us,这样,每个中断的总时间应为为100.026ms,而原来定时是100ms,所以,也就是说每次中断定时多了26us.这样,可改变计数重装值,使每次中断定时时间为99.974ms,加上原来的7条指令所用的时间,正好100ms.计数10次得1s.这样就可得到较精确的计时秒数,然后根据进率,得到时、分的值。
3.1.3时间控制功能与比较指令
系统的另一功能就是实现对执行设备的定时开关控制,其主要控制思想是这样的:
先将执行设备开启的时间和关闭时间置入RAM某一单元,在计时主程序当中执行几条比较指令,如果当前计时时间与执行设备的设定开启时间相等,就执行一条CLR指令,将对应的那路P3置为高电位,开启;如果当前计时时间与执行设备设定的关闭时间相等,就执行SETB对应的P3置低电位,二极管截止。
实现此控制功能用到的比较指令为CJNEA,#direct,rel,其转移条件是累加器A中的值与立即数不等则转移。
3.2程序电路图
本系统的软件设计电路图主要由程序流程图、定时中断流程图、调时功能流程图等组成。
3.2.1程序流程图
程序流程图如图3-1所示。
图3-1程序流程图
3.2.2定时中断流程图
定时中断流程图如图3-2所示。
图3-2定时中断流程图
3.2.3调时功能流程图
调时功能流程图如图3-3所示。
图3-3调时功能流程图
4电子时钟软件仿真
4.1Protues介绍
Protues软件是Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前应用广泛的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者以及从事单片机教学的教师、致力于单片机开发应用的工作者的青睐。
Proteus是世界上著名的EDA工具,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的设计,是目前世界上将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器,在这次设计使用的是Keil编译器。
4.2ProteusISIS的仿真步骤
Proteus仿真时,单片机需要加载程序,加载程序为.HEX文件。
在ProteusISIS中,选中AT89C51并单击鼠标左键,对AT89C51进行设置,设置单片机时钟频率为12MHz,按照正确的文件路径加载.HEX文件,对单片机设置完毕后就可以开始仿真了。
仿真过程中如有硬件问题可在ProteusISIS中直接修改,如有软件问题可在KeiluVision2中直接修改,通过Keil与Proteus的联合调试就可以得到满意的结果。
ProteusISIS的工作界面是一种标准的Windows界面,仿真界面如下图4-1所示。
图4-1ProteusISIS仿真界面
打开Proteus程序后,进入软件的主界面。
通过左侧工具栏中的P(从库中选择元件命令)命令,在PickDevices左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,如图4-2所示。
图4-2元件选取界面
4.3KeiluVision2调试软件
KeiluVision2是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。
KeiluVision2软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,使您能在很短的时间内就能学会使用keiluVision2来开发您的单片机应用程序。
KeiluVision2的使用流程如下图4-3所示。
图4-3Keil的基本使用流程
KeiluVision软件的调试界面如下图4-4所示。
图4-4KeiluVision2程序调试界面
单片机的类型选取界面如下图4-5所示,本设计选取的是AT89C51单片机。
图4-5单片机类型选取界面
本设计利用软件KeiluVision2,在新建Keil项目时选择AT89C51单片机作为CPU,将源程序导入,在“OptionsForTarget”对话窗口中,选中“Output”选项中的“CreateHEXFile”,编译链接后就可以生成.HEX文件,此文件的选取界面如图4-6所示。
图4-6HEX文件的选取界面
4.4电子时钟仿真及其结果
当未按下任何按钮时电子时钟的仿真原理图如图4-7所示。
图4-7电子时钟的仿真原理图
当启动运行后电子时钟的仿真图如图4-8所示。
图4-8电子时钟显示结果
当按下闹铃开关及温度按钮时的仿真图如图4-9所示。
图4-9电子时钟的闹铃及温度功能显示
总结
大学五年的时光我们基本上都在学习理论知识中度过,很少有机会将这些理论知识用于实践中,而这次的毕业设计正好给了我们展示这五年学业成果的好机会。
在整个的设计过程中,实际上是自己对五年学习的总结,它不但加深了自己对理论知识的