物理机电学院课程设计报告课程名称:单片机课程设计系部:电子与电气工程系专业班级:学生姓名:指导教师:完成时间:2009年5月22日报告成绩:评阅意见:评阅教师日期摘要:数字电子时钟电路设计系统,以AT89C51单片机为控制核心,由键盘显示、定时闹铃、LED共阴极数码管和LED灯显示等功能模块组成。基于题目基本要求,本系统对时间显示和定时报警进行了重点设计。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了要求的基本功能,而且有一定的创新功能。关键字:单片机AT89C51共阴极LED数码显示器AbstractThisdigitalelectronicclockcircuitdesignsystem,basedonchipmicrocomputerAT89C51,iscomposedbythefollowingfunctionalmodules:keyboarddisplaying,timingalarmg.commoncathodeLEDdigitaltube,LEDlightsdisplay,andsoon.Accordingtothebasicrequirementsofthesubject,thesystemstressesontherealizationofTimedisplayandregularlyreporttothepolice.Thedesignachievedalltherequiredbasictechnicalindexes.Furthermore,adoptingtheideaofhardware-to-software,mostofthosefunctionsarerealizedbysoftwares,whichmakestheelectrocircuitmoreconciseandthesystemmorestable.Keywords:chipmicrocomputerAT89C51CommoncathodeLEDdigitaldisplay目录一、前言………………………………………………..…....1二、总体方案设计………………………………………..…..1三、系统硬件设计………………………………………..…..2(1)输入部分………………………………………..…….....21电源模块……………………………………………………………….22按键模块……………………………………………………………….5(2)输出部分………………………………………....……...31显示模块……………………………………………………………….32闹铃模块……………………………………………………………….43LED灯显示模块……………………………………………………….4(3)电路相关参数……………………………………....……...41LED数码显示器………………………………………………………..42集成器件CD4511……………………………………………………….53集成器件74LS138……………………………………………………..5四、系统软件设计………………………………………..…..6主程序流程图…………………………………………………………….7五、系统调试……………………………………………..…..91系统功能……………………………………………………………….92时钟精度分析………………………………………………………....9六、系统设计总结………………………………………..…..9七、参考文献………………………………………….…....10附录……………………………………………………………111)系统原理图……………………………………………......................................112)系统实物图……………………………………………......................................123)系统PCB图……………………………………………....................................124)源程序…………………………………………………......................................13-1-一、前言本文通过对一个能实现按键开关可调整时、分、秒,且具有加密功能、定时报警的24小时制的时间系统的设计学习,详细介绍了51单片机应用中的定时中断原理、数码管显示原理、动态扫描显示原理等,进一步学习、应用单片机C语言系统的实现了各种功能。从而使自身明白使用单片机汇编语言和C语言之间的效率、整体性问题。系统由AT89C51、独立式按键、二极管、LED数码管、蜂鸣器等部分构成,能实现24小时制时、分、秒的时钟显示,能实现时钟简单的加密功能。同时也可进行时、分、秒的校准、定时报警和LED二极管流水灯显示。本系统主要是和实际生活的数字钟结合起来,可用1功能键进行加密,进入时间校准等。可用3个带有不同按键分别对时钟的时、分、秒进行校准。每个按键伴有不同的声响以示区别。文章后附有本次课程设计系统电路原理图及源程序,以供读者参考。二、总体方案设计因为手头有SP01A学习板,所以想通过SP01A学习板实现该设计,如果有时间,再自行设计PCB,制作出来。本次设计根据实验要求设计数字时钟。可利用如下两种方案实现。方案一:本方案采用美国DALLAS公司的专用时钟芯片DS1302。该芯片主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。其内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。方案二:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息,并通过程序控制扫描输出显示数据。利用定时器0与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。鉴于以上两种方案,虽然时钟芯片DS1302具有更多的优点,由于实验硬件的因素,现有的硬件缺少DS1302,为不影响实验进度,本设计采用方案二完成数字时钟的功能。根据题目要求设计的总体框图,如图1—1所示:-2-复位系统6位LED数码管显示电路列驱动8路LED流水灯单片机控制器AT89C51按键开关蜂鸣器图1—1单片机数字钟硬件系统的总体设计框图三、系统硬件设计(1)、输入部分:1.电源模块方案一:采用干电池作为单片机数字钟的电源,由于调试时间较长,使用干电池需经常更换电池,不符合节约型社会的要求。并且需要有一个硬件将3节电池串联在一起以产生足够的电压,若如此,将造成携带不方便。方案二:采用200W/5V直流稳压电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠。但稳压电源我们不能自备,若要调试系统,只能到实验室才能做。方案三:采用普通的USB线连接微型计算机作为系统电源,虽然功率上可以满足稍大于系统需要,但同样不需要更换电源,并且比直流稳压电源更轻便,可随时使用、调试系统。基于以上分析,由于本次设计系统都是软硬件想结合,所以要采用微机设备,有足够的USB接口供我们使用,所以我们决定采用方案三-3-2.按键模块键盘是人与单片机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间为20ms(ms021984040*2us*248).方案一:采用独立式键盘。独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。但当所需按键数量多,会占用过多的I/O口线。方案二:采用矩阵键盘。因为单片机的I/O口有限,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口线。但必须将行线、列线信号配合起来作适当处理,才能确定闭合键的位置。基于以上分析,我们选用方案一,因为本次设计中仅用到4个按键。独立式按键键盘有利于PCB的作图。(2)、输出部分:1、显示模块显示模块是本次单片机课程设计最核心的部分。方案一:采用LCD1602。LCD1602为工业字符型液晶,能够同时显示16x02即32个字符。其采用标准的16脚接口,该液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,所以可分容易的实现数字钟数码显示。方案二:采用LED共阴极数码管。共阴数码管在应用时将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。基于以上分析,我们考虑到现实经济因素,所以选择了方案二。对于6路共阴极数码管数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类:方案一:静态显示驱动。就是每一个数码管显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,直到要显示新的数据时,再发送新的字形码,因此,使用这种办法单片机中CPU的占用较小。但对于静态显示方式,所需的数据锁存装置很多,引线多而复杂,且可靠性也较低。方案二:动态显示驱动。通过单片机对数码管位选通COM端电路的控制,只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控-4-显示,这就是动态驱动。动态显示可以大幅度地降低硬件成本和电源的功耗,因为某一时刻只有一个数码管工作,也就是所谓的分时显示,故显示所需要的硬件电路可分时复用。动态显示方式,可以避免静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证显示后的数据稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式,复用的程度不是无限增加的,因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短,发光的亮度等因素.我们通过实验发现,当扫描刷新频率(发光二极管的停闪频率)为50Hz,发光二极管导通时间≥1ms时,显示亮度较好,无闪烁感.。鉴于上述的方案分析,我们采用方案二2、闹铃模块方案一:采用语音芯片ISD1110闹铃。ISD1110具有多种采样率对应,多种录放时间,可以利用振荡电阻自已决定采样率。操作简单,灵活。音质好,适应电压范围广。可先对录放音设备录入一段音乐或其他报时方式,当到设定时间时,单片机控制录放音设备放音。方案二:采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出低电平,蜂鸣器响铃。采用蜂鸣器闹铃结构简单,只需要单路信号控制,发出的闹铃声音可以根据响和不响的不同的软件延时时间来控制,当然也能发出音乐声音。基于两种方案分析,虽然语音芯片ISD1110具备更多优点,但鉴于经济因素,我们本次设计还是决定采用方案二。当然如果在大型比赛的话,还是偏向于采用方案一的。3、LED灯显示模块采用LED灯可以方便的用不同的流水方式或