基于AT89C51单片机的数字钟设计.docx
- 文档编号:23318255
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:24
- 大小:470.84KB
基于AT89C51单片机的数字钟设计.docx
《基于AT89C51单片机的数字钟设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的数字钟设计.docx(24页珍藏版)》请在冰豆网上搜索。
基于AT89C51单片机的数字钟设计
自学考试毕业论文
电气工程与自动化专业
论文题目:
基于AT89C51单片机的数字钟设计
作者:
准考证号:
014208410161
指导教师:
2012年5月22日
摘要
近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本次做的数字钟是以单片机(AT89C51)为核心,结合相关的元器件(共阴极LED数码显示器、三态输出的八组总线收发器74LS245等),再配以相应的软件,达到制作简易数字钟的目的,其硬件部分难点在于元器件的选择、布局及焊接。
关键词:
单片机数字钟共阴极LED数码显示器
Abstract
Inrecentyears,withcomputersintheinfiltrationandthedevelopmentoflarge-scaleintegratedcircuits.SCMapplicationissteadilydeepening,asithasstrongfunction,smallsize,lowpowerdissipation,lowprices,reliable,easytousefeatures,itisparticularlysuitedtoandcontrolofthesystem,increasinglywidelyusedinautomaticcontrol,intelligentinstruments,gauges,dataacquisition,militaryproductsandhouseholdappliances,andotherareas,isoftenmicrocontrollerasacorecomponenttouse,Inlightofspecifichardwarearchitecture,andapplication-specificsoftwarefeaturesobjectcombinetomakeperfect.
ThefiguresdobellonSCM(AT89C51)atthecore,Combinedwiththecomponents(atotalofcathodeLEDdigitaldisplay,eightsetsof three-state output bustransceiver),andfactoringinthecorrespondingsoftware,Easytoproducedigitalclockpurposes,aspartofthehardwarecomponentsisadifficultchoice,layoutandwelding.
Keywords:
SingleChipMicrocomputerDigitalClockTotalcathodeLEDfiguresdisplay.
第一章绪论
1.1引言
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
数字钟是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
1.2本课题研究的目的和意义
本课题是基于单片机系统,通过对数字钟的研究,熟悉掌握单片机系统程序设计,实现数字钟的走时。
时间的概念自古到今都为人们所重视,能够准确的知道时间能够提高人们的工作效率学习效率,能更好的去完成规定时间内的工作,所以能随时随地的知道当前时间显得十分重要。
随着电子技术的飞速发展,现代电子产品用在每行每业,有力的推动了电子信息技术的发展。
随着单片机的出现与技术的不断完善,使得数字钟的设计变的更加的简单灵活,其功能更加的完善,计时也更加准确。
比传统的机械表有更大的优势,而且基于单片机的设计更加简单方便,能够对年、月、日、时、分、秒准确计时,可以让人们随时知道时间。
1.3本课题的国内外的研究现状
单片机的诞生于上个世纪70年代,经历了SCMMCUSOC三大阶段。
从MCS-48问世,它成为单片微型计算机跨时代的里程碑。
随着大规模集成技术的发展,单片机的性能也随之发展,高性能的单片机相继问世。
比如MCS-51、Z-8、AT89C51、AT89S51等等。
到1983年Intel公司推出MCS-96单片机,尽管功能很强,但是由于内部硬件结构不理想,市场需求不大。
已经停产。
8XC196是继MCS-96之后出现的16位的高性能单片机,具有更加强大的功能.
在今后的一段时间,单片机的发展趋势将具有以下特点:
(1)不断推出高档、高性能单片机。
(2)高技术下移,重点提高8位单片机性能。
(3)不断采用新工艺,实现低功耗,宽电压,高速度,高可靠性。
(4)日趋单片应用,应用的网络化。
(5)进一步发展成COS嵌入式系统。
数字钟作为单片机的重要应用,也会随着单片机的发展不断更新换代,向着功能更加齐全,更加智能,可靠性高,价格便宜的方向发展。
1.4本课题的主要的研究内容
做一个基于AT89C51的简易的单片机数字钟。
该数字钟有8个共阴极七段数码管,分别显示小时分钟和秒。
其显示方式为:
XX-XX-XX。
(1)掌握51单片机的系统的原理及应用,能画出电路的原理图。
(2)综合运用实验模块,用51开发设计出具有数字钟功能的单片机控制系统,使用伟福进行软件的设计。
第2章数字钟的硬件设计
2.1数字钟的功能和设计方案的选择
这次的数字钟设计中,实现数字钟的走时,给数字钟上电显示00-00-00。
方案的选择:
方案一:
基本门电路搭肩,用基本门电路来实现数字钟,电路结构复杂,不易调试。
方案二:
单片机编程,用单片机设计电路,由于使用软硬件结合的方式,所以电路结构简单。
与第一种方案比较优点的是非常明显的。
我们选择了第二种方案。
通过对8031,8051,8751等多种单片机性能的分析,最终认为89C51是最理想的电子时钟开发芯片。
8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的2764系列。
用户若想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,之后再可写入。
8051片内有4kROM,无须外接外存储器和373,更能体现“单片”的简练。
但是你编的程序你无法烧写到其ROM中,只有将程序交芯片厂代你烧写,并是一次性的,今后你和芯片厂都不能改写其内容。
8751与8051基本一样,但8751片内有4k的EPROM,用户可以将自己编写的程序写入单片机的EPROM中进行现场实验与应用,EPROM的改写同样需要用紫外线灯照射一定时间擦除后再烧写。
而AT89C51比它们更加的实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写。
且可循环擦写1000次。
数据保留时间为10年等特点,在学习单片机的过程中,我们重点学习的就是AT89C51系列单片机,所以AT89C51单片机是最好的选择。
将在下一节重点介绍AT89C51的主要特性。
2.2AT89C51单片机简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
如图2-1为AT89C51单片机实物图
图2-1AT89C51单片机实物图
如图2-2为单片机内部结构图
图2-2单片机内部结构图
2.2.1AT89C51单片机主要特性
·与MCS-51兼容
·4K字节可编程闪烁存储器
·寿命:
1000写/擦循环
·数据保留时间:
10年
·全静态工作:
0Hz-24Hz
·三级程序存储器锁定
·128*8位内部RAM
·32可编程I/O线
·两个16位定时器/计数器
·5个中断源
·可编程串行通道
·低功耗的闲置和掉电模式
·片内振荡器和时钟电路
2.2.2AT89C51单片机管脚说明
如图2-3所示为AT89C51芯片引脚图
图2-3AT89C51芯片引脚图
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口作为第八位地址接收。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表2-1所示:
表2-1P3口功能表
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
2.2.3晶振电路的设计
外接晶体引脚如图2-4所示
图2-4外接晶体管引脚
Pin19:
时钟XTAL1脚,Pin18:
时钟XTAL2脚。
XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
如图2-5为本设计的晶振电路图
电容选取的是22PF,晶振选取的是12MHZ
图2-5晶振电路
2.2.4复位电路的设计
在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的0000H处开始运行程序
复位操作不会对内部RAM有所影响。
当AT89C51通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
什么叫复位?
复位是单片机重新执行程序代码的意思。
AT89C51的复位方式可以是自动复位,也可以是手动复位。
此外,RESET/Vpd还是一复用脚,Vcc掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
如图2-6所示位单片机常用的2种复位电路。
图2-6单片机常用复位电路
如下图2-7所示数字钟设计中复位电路
图2-7复位电路图
2.3显示电路的设计
发光二极管LED是单片机应用系统中的一宗简单而常用的输出设备,其在系统中的主要作用是显示单片机的输出数据、状态等。
因而作为典型的外围器件,LED显示单元是反映系统输出和操作输入的有效器件。
LED具备数字接口可以方便的和大年纪系统连接;它的优点是价格低,寿命长,对电压电流的要求低及容易实现多路等,因而在单片机应用系统中获得了广泛的应用,所以在此设计中我首先选用了LED作为显示器件。
在实验中AT89C51单片机带负载能力有限,单片机的I/O口不能驱动8位LED数码管正常工作,我们选用了74LS245来驱动显示器。
74ls245芯片如图2-8所示:
图2-874LS245芯片
74ls245是我们常见的芯片,在这里它用来驱动LED,它是8路同相三态双向总线收发器,可以双向传送数据。
89c51的带负载能力不强,对于8位LED显示器单用单片机带载,显示器不能正常工作,这里我们选用74LS245来驱动LE显示。
74ls245还具有双向三态功能,既可以输出,也可以输入数据。
当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须介入74L245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)
*DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。
如图2-9所示为8位LED数码管
图2-98位LED数码管
数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管。
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
(1)静态显示:
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O口多,如驱动5个数码管静态显示则需要5×8=40根I/O口来驱动,故实际应用时必须增加驱动器进行驱动,如74LS164。
增加了硬体电路的复杂性。
(2)动态显示:
数码管动态显示是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位元选通控制电路,位元选通由自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位元选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位元就显示出字形,没有选通的数码管就不会亮。
透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O口,而且功耗更低。
在本设计中所采用的是共阴极LED数码显示器,显示方式为动态显示。
LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED显示器器排列形状如下图2-10所示:
图2-10LED段码
为了显示数字或符号,要为LED显示器提供代码,即字形代码。
七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。
本次数字钟用到的数字0~9及分隔符“-”的共阴极字形代码如下表2-2所示:
表2-20~9及“-”七段数码管共阴级字形代码
本次设计中的显示电路如下图2-11所示。
选用P0口通过驱动器74LS245来接显示器段码,P3口接LED显示器的位码控制。
图2-11数字钟显示电路
2.4数字钟总体电路图
如下图2-13所示:
数字钟总体电路图
第三章数字钟的软件设计
3.1主程序流程图
如下图3-1所示位主程序流程图
3.2LED显示子程序设计
如下图3-2为显示子程序流程图
显示子程序是数字钟软件中重要组成部分,当数字钟的显示需要改变时,单片机就要调出显示子程序,通过查表区段码,取位码来显示要显示的LED数码管。
3.3定时器中断子程序
如下图3-3所示为定时器中断子程序
数字钟设计中,为了实现时间的准确计数,选用的是AT89C51内部的定时/计数器。
定时计数器对单片机内部的时钟脉冲经12分频之后进行计数。
来实现定时功能。
如主频为12MHZ的时候,机器周期为1μS,从而对机器周期的计数就转换为定时,实现定时功能。
我们选用的是AT89C51的定时器0的工作方式1来完成定时功能。
方式1是16位的计数器,可计数的最大值为216=65536.可定时65536μS。
为了实现对1S中的定时,将定时器0定时50MS,计数器计数到20次时,秒加1。
第4章总结
通过两个月的学习,终于完成了单片机数字钟的工作。
并且使数字钟完成了预期的目标。
从单片机数字钟的设计过程中也找到了一些单片机开发的规律:
先了解所有元件的具体内容,从而画出其电路图,使数字钟从简易变成多功能的方式,虽没有做多功能数字钟,却知晓了其方法。
在程序编程方面,有很多不足,学习单片机编程,只有在经常的写与读的过程中才能提高。
希望能够在以后的不断深入学习中能够弥补自己的不足之处。
从这次的毕业设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,理论指导实践,在实践中对理论知识加以理解。
还要有独立思考能力和团队协作的精神,个人能力固然重要,集体的力量更是伟大的。
由于时间比较仓促,我所设计的这个数字钟非常简单,我们可以考虑在以后来改进一下,使它的功能更加完善,强大。
致谢
本次毕业设计得到导师刘益剑老师的热心指导,在这里对刘老师表示最衷心的感谢。
刘老师平易近人,对学生的设计进度和学习很关心。
在毕业设计的前期,首先给我们介绍了不少有用的资料和书籍和软件;在硬件设计等方面给予悉心的指导;在写毕业设计论文的阶段,刘老师让我们论文有进展就给他评审,不论内容字体,还是格式上的问题都一一指出。
待人平和、工作认真、治学严谨他的给我留下很深刻的印象。
不仅在毕业设计上给我及时的指导,更为我大学最后阶段的学习提出了许多宝贵的意见。
这一切都在潜移默化地影响着我,为我以后进入工作岗位树立了良好的榜样。
参考文献
[1]孙育才编著,MCS-51系列单片微型计算机及其应用,东南大学出版社,2004
[2]楼然苗,李光飞编著,单片机课程设计指导北京航空航天大学出版社2007年第一版。
[3]李群芳、肖看编著,单片机原理、接口及应用—嵌入式系统技术基础,清华大学出版社2005版。
[4]何立民编著,MCS-51单片机应用系统设计北京航空航天大学出版社,2000.
[5]丁元杰编著,单片机原理及应用机械工业出版社,2008
[6]谢自美编著,电子线路设计实验测试华中科技出版社,2006
[7]张正明、卓郑安编著,电路与电子技术北京航空航天大学出版社2004年9月
[8]李全利编著,单片机原理及应用技术北京:
高等教育出版社,2006
附录一源程序
S_SETBITP1.0
M_SETBITP1.1
H_SETBITP1.2
SECONDEQU30H
MINUTEEQU31H
HOUREQU32H
TCNTEQU34H
ORG0000H
SJMPSTART
ORG000BH
LJMPINT_T0
START:
MOVDPTR,#TABLE
MOVHOUR,#0
MOVMINUTE,#0
MOVSECOND,#0
MOVTCNT,#0
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVIE,#82H
SETBTR0
***********************************************************
INT_T0:
MOVTH0,#3CH
MOVTL0,#0B0H
INCTCNT
MOVA,TCNT
CJNEA,#20,RETUNE
INCSECOND
MOVTCNT,#0
MOVA,SECOND
CJNEA,#60,RETUNE
INCMINUTE
MOVSECOND,#0
MOVA,MINUTE
CJNEA,#60,RETUNE
INCHOUR
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 单片机 数字 设计