目录1基于单片机的数字钟设计..................................................11.1设计的背景意义.........................................................11.2设计的现状.............................................................11.3毕业设计要求...........................................................11.4毕业设计目的..........................................................12设计方案的论证..........................................................22.1主控器件的选择........................................................22.2计时方案的选择........................................................23AT89C51简介.............................................................23.1主要特性..............................................................33.2管脚说明..............................................................33.3振荡器特性............................................................43.4芯片擦除..............................................................53.5键盘检测原理..........................................................53.6单片机中断与定时器/计数器简介.........................................74电路设计................................................................94.1单片机最小系统........................................................94.2LED显示电路.........................................................114.3键盘与AT89C51的连接电路.............................................135软件设计...............................................................135.1设计的思路............................................................135.2系统软件设计流程图...................................................136结束语.................................................................17主要参考文献:...........................................................18附录A....................................................................19附录B....................................................................20致谢.....................................................................24211基于单片机的数字钟设计1.1设计的背景意义20世纪末,电子技术获得了飞速发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间,忘记要做的事情,当事情不是很重要的时候,这种忘记无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。1.2设计的现状目前,单片机在朝着高性能和多品种的方向发展的同时也进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛地使用。数字钟是采用数字电路实现对时、分、秒,数字显示的计时装置,广泛用于个人家庭,车站,码头、办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大地方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、校时自动打铃、时间程序自动控制、定是广播、自动启闭路灯、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用有着非常现实的意义。1.3毕业设计要求(1)掌握AT89C51实验开发系统中的实验模块原理,利用Proteus画出电路原理图;(2)使用C语言进行程序编写,利用Keil进行程序的调试;(3)利用LED数码管进行时分秒的显示;(4)设计三个功能键,分别为调节时、调节分和调节秒键;(6)写出完整的设计任务书:课题的名称、系统的功能、硬件原理图、软件框图、程序清单、参考资料;1.4毕业设计目的(1)巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决工业控制的能力;(2)培养针对课题需要,选择和查阅有关手册、图表及文献资料的自学能力,提高组成系统、编程、调试的动手能力;(4)掌握Proteus及Keil软件的使用;2(3)通过对课题设计方案的分析、选择、比较、熟悉单片机用系统开发、研制的过程,软硬件设计的方法、内容及步骤;2设计方案的论证2.1主控器件的选择51系列单片机技术成熟,资源丰富,使用灵活,足够满足需要,是最好的选择,但由于万年历功能由程序实现,程序算法较复杂,而且需控制液晶屏幕,字库占用很大存储空间,因此在单片机的选择上应采用Flash存储器较大的单片机,Atmel公司的AT89C51可以满足要求。2.2计时方案的选择用单片机的定时中断,可实现精确计时,完全可以满足数字钟的要求,如使用专用的时钟芯片,增加成本,使硬件繁琐,降低了系统的稳定性,故选择用单片机计时器计时。3AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。单片机内部结构图为如图1[1]。图1:单片机内部结构图33.1主要特性·与MCS-51兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24Hz·低功耗的闲置和掉电模式·片内振荡器和时钟电路3.2管脚说明VCC:供电电压GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数存储器,它可以被定义为数据/地址的第8位。在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的一些特殊功能口,如下表1所示。表1:P3口的其他特殊功能口管脚备选功能P3.0RXD串行输入口P3.1TXD串行输出口P3.2/INT0外部中断0P3.3/INT1外部中断14P3.4T0记时器0外部输入P3.5T1记时器1外部输入P3.6/WR外部数据存储器写选通P3.7/RD外部数据存储器读选通P3口同时为闪烁编程和编程校验接收一些控制信号。P0,P1,P2,P3口引脚图为如图2所示。图2:单片机引脚图RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出[4]。3.3振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。53.4芯片擦除整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有