汇编单片机电子钟设计报告综述.docx
《汇编单片机电子钟设计报告综述.docx》由会员分享,可在线阅读,更多相关《汇编单片机电子钟设计报告综述.docx(52页珍藏版)》请在冰豆网上搜索。
汇编单片机电子钟设计报告综述
一、课程设计题目:
电子时钟
二、课程设计要求
1.根据具体设计课题的技术指标和给定条件,独立进行方案论证和电路设计,要求概念清楚、方案合理、方法正确、步骤完整;
2.查阅有关参考资料和手册,并能正确选择有关元器件和参数,对设计方案进行仿真;
3.完成预习报告,报告中要有设计方案,设计电路图,还要有仿真结果;
4.进实验室进行电路调试,边调试边修正方案;
5.撰写课程设计报告——最终的电路图、调试过程中遇到的问题和解决问题的方法。
三、进度安排
1.时间安排
序号
内容
学时安排(天)
1
方案论证和系统设计
1
2
完成电路仿真,写预习报告
1
3
电路调试
2
4
写设计总结报告与答辩
1
合计
5
设计调试地点:
电气楼410
2.执行要求
微机原理与接口技术课程成绩优秀的可以自拟题目,其余的同学都是指定题目。
每组不得超过2人,要求学生在教师的指导下,独力完成所设计的详细电路(包括计算和器件选型)。
严禁抄袭,严禁两篇设计报告雷同。
摘要
随着电子技术的迅速发展,特别是随大规模集成电路出现,给生活带来了根本性的改变,尤其是单片机技术的应用产品已经走进了千家万户。
数字电子钟的出现给人们的生活带来诸多方便。
数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。
采用LED数码管的数字显示以其亮度高、显示直观等优点被广泛应用于智能仪器及家用电器等领域。
本设计报告介绍一种以AT89S51芯片为核心,辅以必要的电路,以共阳极LED数码管作为显示器件组成6位数字显示,采用独立式按键进行时间调整的实用简易电子时钟设计,该时钟可显示时、分、秒,也可切换为年、月、日显示,更具有省电模式,可以在关闭显示的同时继续走时。
该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。
关键字:
AT89S51数字钟单片机LED数码管省电模式
Abstract
ThesystemusestheMCUhasadatedisplay,timedisplay,timeadjustment,powersavingmodesandfeaturessuchasdigitalclockbasedonmicrocontrollerAT89S51asthecorecomponentofmoderndigitaltubedisplaydynamic"date"everyminute"oftimingparedwithtraditionalmechanicalclock,ithastogoaccurate,displayanintuitivefeatures.frequentlyencounteredineverydaylifeandintheautomaticcontrolsystem,thedemandforreal-timemonitoringofthetime,thesystematthesametimemonitoring,ifreachesthepre-setthetime,makeLEDflashingprompttimehascometo.additiontheprogramalsohasaschoolfunction,abletoadjustthetimeatanytimeandatanytimeconvenienttotheexpansionextendedtootherversatileuseofthedigitalclockprogrammingMCUtheadvantageoftheflexible,easytofunctionexpansion.
Keywords:
AT89S51ElectronicclockSingle-chipLEDdigitaltubePowersavingmode
第一章绪论··········································(6)
第二章系统设计方案··································(7)
第三章仿真··········································(52)
第四章调试··········································(53)
第五章结论··········································(54)
第六章心得体会······································(54)
参考文献·············································(55)
引言
计算机尤其是以微细加工技术支持的微型计算机技术飞速发展,其应用渗透到了各行各业。
以单片机、嵌入式处理器、数字信号处理器(DSP)为核心的计算机系统,以其软硬件可裁剪、高度的实时性、高度的可靠性、功能齐全、低功耗、适应面广等诸多优点而得到极为广泛的应用。
目前计算机硬件技术向巨型化、微型化和单片机化三个方向发展。
自1975年美国德州仪器公司(TexasInstruments)第一块微型计算机芯片TMS-1000问世以来,在短短的20年间,单片机技术已发展成为计算机领域一个非常有前途的分支,它有自己的技术特征、规范和应用领域。
单片机是自动控制系统的核心部件,主要用于工业控制、智能化仪器仪表、家用电器中。
它具有体积小、性能突出可靠性高(某些方面的性能指标大大优于通用微机中央处理器)、价格低廉等一系列优点,应用领域不断扩大,除了工业控制、智能化仪表、通信、家用电器外,在智能化高档电子玩具产品中也大量采用单片机芯片作为核心控制部件,已经渗入到人们工作和生活的各个角落,有力地推动了各行业的技术改造和产品的更新换代,前景广阔。
数字钟具备单片机最小系统的基本组成,对于我们了解单片机有很大的帮助。
一绪论
1.1课题意义:
在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等,早期常用的一些时间控制单元都是用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。
小则可以用于家电控制,甚至可以用于儿童电子玩具。
它功能强大,体积小,质量轻,灵活好用,配以适当的借口芯片,可以构造各种各样、功能各异的微电子产品。
目前市场上提供的无论机械钟还是石英钟在晚上无照明的情况下都是不可见的。
要知道当前的时间,必须先开灯,故较为不便。
现在市场上也出现了一些电子钟,它以LED数码管来显示具体时间,与传统的以指针显示时间的方式不同,违背了人们传统的习惯与理念,而且这类电子钟一般是采用大型显示器件,适用于银行、车站等公共场所,且外观设计欠美观,很少进入百姓家庭。
此外,无论是机械钟、石英钟还是电子钟,都存在着共同的问题:
时间误差。
针对以上存在的问题,我们设计了一款采用LED数码管显示的电子时钟,有效克服了时钟存在的误差。
二.方案设计
2.1设计任务
1能实现显示日期的年、月、日和时间的时、分、秒,并具有时间的设置和加减功能。
2调整时间时按位闪烁功能。
3关闭显示的省电模式
2.2设计思路
以AT89S51作为核心控制、LED显示模块、控制模块作为外围电路达到设计要求。
2.3设计方案
系统由AT89S51、LED数码管、按键、发光二极管等部分构成,能实现日期及时间的调整、定时日期及时间的设定,输出等功能。
系统的功能选择由“K1”和“K2”两个功能键来完成。
短按K1可在“显示年月日”、“显示时分秒”,“省电模式”之间切换,在“年月日模式”和“时分秒”模式下可以通过长按“K1”进入设定模式,在设定模式下,短按“K1”键来增加时间,短按“K2”键来减少时间,长按“K1”键可以改变调整年、月、日或时、分、秒。
硬件框图如下所示:
六
位
数
码
管
74LS245
单
片
机
电源
P0口
字位
晶振
复位电路
74LS245
P3.0
开关X2
P2口
字形
P3.1
我们的电子钟的主控芯片用的是AT89S52,主要通过编写程序来完成走时和调时功能。
整个系统使用了两个开关,一个开关用来进行“年月日“,”时分秒“和”省电模式“之间的切换,进入调试模式和增加时间;另一个按钮用来减小时间。
三数字钟的硬件设计
3.1总电路图
P0口控制六位数码管的字位,P2口控制LED数码管的字形,P3.0、P3.1分别与K1、K2相连作为功能设置来使用。
3.2AT89S51概述及其特点
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。
空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。
同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
主要特性有:
ØAT89S51CPU与MCS-51兼容
Ø4K字节可编程FLASH存储器(寿命:
1000写/擦循环)
Ø全静态工作:
0Hz-24KHz
Ø三级程序存储器保密锁定
Ø128*8位内部RAM
Ø32条可编程I/O线
Ø两个16位定时器/计数器
Ø6个中断源
Ø可编程串行通道
Ø低功耗的闲置和掉电模式
Ø片内振荡器和时钟电路
管脚说明:
图3AT89S51引脚图
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写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)这是由于上拉的缘故。
AT89S51的新功能有:
(1)新增加很多功能,性能有了较大提升,价格基本不变,甚至比89C51更低!
(2)ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。
是一个强大易用的功能。
(3)最高工作频率为33MHz,大家都知道89C51的极限工作频率是24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。
(4)具有双工UART串行通道;内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路;双数据指示器;电源关闭标识。
(5)全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
(6)兼容性方面:
向下完全兼容51全部字系列产品。
比如8051、89C51等等早期MCS-51兼容产品。
也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89C51还是MCS-51等等),在89S51上一样可以照常运行,这就是所谓的向下兼容。
3.3T0定时器/计数器
MCS-51内有两个独立的可编程定时器/计数器,称为T0和T1.他们本质上是可预置初值的加1计数器,既可用于计数,也可用来定时。
当对从单片机引脚上输入的外部脉冲信号计数时,它是计数器;当对有固定时间间隔的内部机器周期进行计数时,它是定时器。
TO定时特性功能寄存器由TL0(低8位)和TH0(高8位)构成。
特殊功能寄存器TMOD控制定时寄存器的工作方式;TCON则用于控制定时器T0和T1的启动和停止计数,同时管理定时器TO和T1的溢出标志等。
程序开始时需对TL0和TH0进行预设初值,用指令改变TMOD和TCON的内容,以定义它们的工作方式和控制T0和T1的计数,这样定时器/计数器就会从下一条指令的第一个机器周期开始按设定的方式自动进行工作。
定时器/计数器T0工作方式1的电路逻辑结构如图4所示。
图4定时器/计数器T0工作方式1的逻辑结构
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式;另一种为外部时钟方式。
本文用的是内部时钟方式。
电路设计如图5所示。
(7)
图5单片机时钟
AT89S51单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。
在本系统时钟模块的设计中所选用的12MHz的石英振荡器,由于6MHz晶体振荡的每个定时周期为2μs,可得到2μs的精度,为让设计准确本设计中使用1次定时50ms,经过20次T0定时中断得到1s,由此设置就可以使单片机在运行时能够有条不紊。
3.4数码管动态扫描
单片机应用系统中使用较多的是7段LED数码管,本系统所用的AT89S51板中的数码管是六位七段共阴极数码管。
3.4.1LED数码管的驱动方式:
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
(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端口,而且功耗更低。
本数字钟系统将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
共阳数码管在应用时应将公共极COM接到地线+5V上,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。
当某一字段的阴极为高电平时,相应字段就不亮。
(1)共阴极数码管
(2)共阳极数码管
图7共阴极和共阳极数码管LED连接图
图88位七段数码管字型代码
3.4.2LED数码管的显示控制
在本设计中采用的是4位数码管动态扫描显示。
它将所有数码管的8个段线相应地并接在一起,并接到AT89S51的P0口,有P2口控制字形,而各位数码管的共阴极由AT89S51的P0口控制P2.0-P2.5来实现8位数码管的位输出控制。
这样,对于一组数码管动态扫描显示需要由两组信号来控制:
一组是字段输出口输出地字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出地控制信号,用来选择第几位数码管工作,称为位码。
由于各位数码管的段线并联,段码的输出对各位数码管来说是相同的。
因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,4位数码管将显示相同的字符,若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其他各位的位选线处于关闭状态。
同时,段线上输出相应位要显示字符的字型码。
这样在同一时刻,只有选通的那一位显示出字符,而其他各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。
虽然这些字符是在不同时刻出现的,而且同一时刻,只有一位显示,其他各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。
数码管不同位显示的时间间隔可以通过调整延时程序的延时长短来完成。
数码管显示的时间间隔也能够确定数码管显示时的亮度,若显示的时间间隔长,显示时数码管的亮度将亮些,若显示的时间间隔短,显示时数码管的亮度将暗些。
若显示的时间间隔过长的话,数码管显示时将产生闪烁现象。
所以,在调整显示的时间间隔时,即要考虑到显示时数码管的亮度,又要数码管显示时不产生闪烁现象。
数码管是由7个条形的LED和下方一个圆形的LED组成,这样一共有8个段线,恰好适用于8位的并行系统。
共阴极数码管的公共阴极接地,当各段阳极上的电平为“1”时,该段点亮,电平为“0”时,该段熄灭;
3.4.3本设计LED数码显示过程介绍
首先,S51芯片程序运行时,按下K1功能键,通过对P0及P2口扫描,4位数码管即显示当前的日期:
年月日(例如“130315”),日为时到24加1,当前日从1到29/30/31/32循环显示,月为日到/29/30/31/32时加1,当前月从1到12循环显示,年为月到13加1,当前年加1显示;按下K1功能键不超过1s,通过对P0及P2口扫描,4位数码管即显示当前的时间:
时分秒(例如142018)秒为加1显示。
分为秒到60后加1,当前分从00到59循环显示,时为分到60后加1,当前时从0到23循环显示。
这些都是从基本的经过20次T0定时中断(一次定时50ms)扫描得到1s,然后1秒计数60次即为1分,1分计数60此即为1时,1时计数24次即为1日,以此在数码管上输出显示。
当长按K1超过1秒时,即进入调整当前数码管显示的日期和时间。
当消除键盘抖动后所扫描到准确的按键脉冲后,数码管显示进入调整日期和时间的状态。
此时若短按K1可增加年,短按K2可减小年,长按K2可连续减小年,若长按K1超过0.5秒,则可以对月进行调整,以此类推可对日进行调整。
当前可调整的是哪两位,这两位就会不断地闪烁,而其他的一直在显示。
调整完日后长按K1超过0.5秒即可退出调整时间模式。
由于每次调整日期的时候会关闭定时器T0,所以此时应按下K1不超过1秒切换到时间显示,用上述方法对时间进行修正即可准确运行。
若在时间显示模式下按下K1不超过1秒,可切换到省电模式,定时器不会关闭,走时正常而数码管关闭不显示。
省电模式下按下K1即可唤醒数码管并进入日期显示模式。
3.5按键扫描电路
3.5.1按键扫描原理
当程序完成初始化后,电子钟的程序会在不同的程序段对P3.0和P3.1两个输入口进行循环的扫描,如果按键没有按下,P3.0和P3.1会保持高电平,如果开关按下,则该口电平会被拉低。
当检测到电平的变化时,程序会进行判断来选择相应的分支结构继续执行。
3.5.2按键工作方式
按键的开关状态通过一定的电路转换为高、低电平状态。
按键闭合过程在相应的I/O端口形成一个负脉冲。
闭合和释放过程都要经过一定的过程才能达到稳定,这一过程是处于高、低电平之间的一种不稳定状态,称为抖动。
抖动持续时间的长短常与开关的机械特性有关,一般在5-10ms之间。
为了避免CPU多次处理按键的一次闭合,应采用措施消除抖动。
本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生相互影响。
对按键的判断与处理模块是电子钟程序设计的核心,主要是接收“按键扫描模块”传递过来的值,对不同的按键能够结合当前的状态做出不同的处理与反馈,并且对各个状态从属分类。
3.5.3按键定义
本电子钟为了节约资源采用了两个按键进行控制,分别是K1和K2键。
在日期显示模式下:
短按K1可切换到时间显示模式,长按K1可切换到日期调整模式。
在日期调整模式下:
短按K1可增加日期,长按K1可切换调整年或月或日最后退出日期调整模式。
短按K2可减小日期,长按K2可连续减小时间。
在时间显示模式下:
短按K1可切换到省电模式,长按K1可切换到时间调整模式。
在时间调整模式下:
短按K1可增加时间,长按K1可以切换调整时或分或秒最后退出时间调整模式。
短按K2可减小时间,长按K2可连续减小时间。
在省电模式下:
按下K1可切换到日期显示模式。
3.6复位电路
AT89S51单片机的复位是由外部的复位电路来实现的。
复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,在每个机器周期的S5P2,斯密特触发器的输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
上电复位:
上电复位电路时一种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。
上电复位是指在给系统上电时,复位电路通过电容