基于51单片机的电子时钟设计与实现2djsn.docx
河南工业职业技术学院毕业论文摘要单片机自自20世世纪700年代问问世以来来,以其其极高的的性能价价格比,受受到人们们的重视视和关注注,应用用很广、发展很很快。单单片机体体积小、重量轻轻、抗干扰扰能力强强、环境要要求不高高、价格低低廉、可靠性性高、灵活性性好、开发较较为容易易。由于于具有上上述优点点,在我我国,单单片机已已广泛地地应用在在工业自自动化控控制、自动检检测、智能仪仪器仪表表、家用电电器、电力电电子、机电一一体化设设备等各各个方面面,而551单片片机是各各单片机机中最为为典型和和最有代代表性的的一种。这这次毕业业设计通通过对它它的学习习、应用,以以AT889S551芯片片为核心心,辅以以必要的的电路,设设计了一一个简易易的电子子时钟,它它由4.5V直直流电源源供电,通通过数码码管能够够准确显显示时间间,调整整时间,从从而到达达学习、设计、开发软软、硬件的的能力。电子时钟钟是采用用数字电电路实现现对“时”、“分”、“秒”数字显显示的计计时装置置。电子子时钟的的精度、稳稳定度远远远超过过老式机机械钟。在在这次设设计中,我我们采用用LEDD数码管管显示时时、分、秒秒,以224小时时计时方方式,根根据数码码管动态态显示原原理来进进行显示示,用112MHHz的晶晶振产生生振荡脉脉冲,定定时器计计数。在在此次设设计中,电电路具有有显示时时间的其其本功能能,还可可以实现现对时间间的调整整。电子子时钟是是其小巧巧,价格格低廉,走走时精度度高,使使用方便便,功能能多,便便于集成成化而受受广大消消费的喜喜爱,因因此得到到了广泛泛的使用用。关键词:单片机; AAT899S511ABSTTRACCTSincce tthe 19770 ss chhip sinnce thee addvennt, witth iits higgh ccostt peerfoormaancee annd aatteentiion by peooplee annd aatteentiion, itt iss wiidelly uusedd annd ffastt deevellopmmentt. SSCM smaall vollumee, llighht wweigght, sttronng aantii-jaammiing cappabiilitty, envviroonmeentaal ddemaand is nott hiigh, loow ccostt, hhighh reeliaabillityy, fflexxibiilitty iis ggoodd, ddeveeloppmennt mmoree eaasy. Beecauuse of thee abbovee feeatuuress, iin oour couuntrry, thee miicrooconntroolleer iis wwideely useed iin iinduustrriall auutommatiion conntrool, auttomaaticc deetecctioon, inttellligeent insstruumennt aand appparaatuss, hhoussehoold apppliaancees, powwer eleectrroniics, meechaaniccal andd ellecttriccal equuipmmentt, aand othher asppectts, andd 511 SCCM iis tthe mosst ttypiicall chhip andd moost reppressenttatiive onee. TThe graaduaatioon ddesiign thrrouggh tto iits stuudy, apppliicattionn too ATT89SS51 chiips as thee coore, wiith thee neecesssarry ccirccuitt, ddesiign of a ssimpple eleectrroniic cclocck, it by 4.55 V dc powwer suppplyy, tthrooughh thhe eelecctroonicc tuube cann shhow timme, adjjustt thhe ttimee, tthuss too leearnningg, tthe dessignn, tthe devveloopmeent of sofftwaare andd haardwwaree inn thhe aabillityy.Elecctroonicc Cllockk iss a eleectrroniic ccirccuitt immpleemenntattionn off thhe ""wheen", "ssub"", ""seccondds" Thee fiigurres shoow tthe timmingg deevicce. Eleectrroniic cclocck ppreccisiion, sttabiilitty, farr moore thaan tthe oldd meechaaniccal cloock. Inn thhis dessignn, wwe uuse LEDD ellecttronnic dissplaay hhourrs, minnutees, seccondds, to 24-houur ttimee moode, acccorrdinng tto eelecctroonicc coontrrol theeoryy too dyynammic dissplaay tto ddispplayy, uuse thee 122MHzz crrysttal osccilllatiion pullse, thhe ttimeer ccounnt. In thiis ddesiign, thhe ccirccuitt haas aa diispllay timme oof tthe thiis ffuncctioon, youu caan aalsoo reealiize thee tiime adjjusttmennt. Eleectrroniic cclocck iis iits commpacct, loww coost, trraveel ttimee annd hhighh prreciisioon, eassy tto uuse, feeatuuress annd mmoree, eeasyy innteggrattionn annd lloveed bby tthe genneraal cconssumeer, so widdelyy ussed.Key worrds: Singgle-chiip mmicrrocoompuuterr ; ATT89SS51目录1 绪论论11.1电电子时钟钟的背景景11.2电电子时钟钟的意义义21.3电电子时钟钟的应用用22 整体体设计方方案32.1单单片机的的选择332.1.1多功功能32.1.2高效效率和高高性能442.1.3低电电压和低低功耗442.1.4低价价格52.2单单片机电电子时钟钟功能确确定52.3 LEDD显示模模块72.4按按键模块块73 PCCB原理理图与仿仿真图993.1 PCBB原理图图93.2仿仿真图1104 程序序设计1115 结论论286 参考考文献3307 致谢谢31531 绪论论1.1电电子时钟钟的背景景20世纪纪末,电电子技术术获得了了飞速的的发展,在在其推动动下,现现代电子子产品几几乎渗透透了社会会的各个个领域,有有力地推推动了社社会生产产力的发发展和社社会信息息化程度度的提高高,同时时也使现现代电子子产品性性能进一一步提高高,产品品更新换换代的节节奏也越越来越快快。 时时间对人人们来说说总是那那么宝贵贵,工作作的忙碌碌性和繁繁杂性容容易使人人忘记当当前的时时间。忘忘记了要要做的事事情,当当事情不不是很重重要的时时候,这这种遗忘忘无伤大大雅。但但是,一一旦重要要事情,一一时的耽耽误可能能酿成大大祸。目前,单单片机正正朝着高高性能和和多品种种方向发发展趋势势将是进进一步向向着CMMOS化化、低功功耗、小小体积、大大容量、高高性能、低低价格和和外围电电路内装装化等几几个方面面发展。下下面是单单片机的的主要发发展趋势势。单片片机应用用的重要要意义还还在于,它它从根本本上改变变了传统统的控制制系统设设计思想想和设计计方法。从从前必须须由模拟拟电路或或数字电电路实现现的大部部分功能能,现在在已能用用单片机机通过软软件方法法来实现现了。这这种软件件代替硬硬件的控控制技术术也称为为微控制制技术,是是传统控控制技术术的一次次革命。单片机模模块中最最常见的的是电子子时钟,电电子时钟钟是一种种用数字字电路技技术实现现时、分分、秒计计时的装装置,与与机械式式时钟相相比具有有更高的的准确性性和直观观性,且且无机械械装置,具具有更更更长的使使用寿命命,因此此得到了了广泛的的使用。1.2电电子时钟钟的意义义电子时钟钟是采用用数字电电路实现现对.时时,分,秒.数数字显示示的计时时装置,广泛用用于个人人家庭,车站, 码头头办公室室等公共共场所,成为人人们日常常生活中中不可少少的必需需品,由由于数字字集成电电路的发发展和石石英晶体体振荡器器的广泛泛应用,使得电电子时钟钟的精度度,远远远超过老老式钟表表, 钟钟表的数数字化给给人们生生产生活活带来了了极大的的方便,而而且大大大地扩展展了钟表表原先的的报时功功能。诸诸如定时时自动报报警、按按时自动动打铃、时时间程序序自动控控制、定定时广播播、自动动起闭路路灯、定定时开关关烘箱、通通断动力力设备、甚甚至各种种定时电电气的自自动启用用等,所所有这些些,都是是以钟表表数字化化为基础础的。因因此,研研究电子子时钟及及扩大其其应用,有有着非常常现实的的意义。1.3电电子时钟钟的应用用电子时钟钟已成为为人们日日常生活活中:必必不可少少的必需需品,广广泛用于于个人家家庭以及及车站、码码头、剧剧场、办办公室等等公共场场所,给给人们的的生活、学学习、工工作、娱娱乐带来来极大的的方便。由由于数字字集成电电路技术术的发展展和采用用了先进进的石英英技术,使使电子时时钟具有有走时准准确、性性能稳定定、携带带方便等等优点,它它还用于于计时、自自动报时时及自动动控制等等各个领领域。 2 整体体设计方方案2.1单单片机的的选择单片机微微型计算算机是微微型计算算机的一一个重要要分支,也也是颇具具生命力力的机种种。单片片机微型型计算机机简称单单片机,特特别适用用于控制制领域,故故又称为为微控制制器。通常,单单片机由由单块集集成电路路芯片构构成,内内部包含含有计算算机的基基本功能能部件:中央处处理器、存存储器和和I/OO接口电电路等。因因此,单单片机只只需要和和适当的的软件及及外部设设备相结结合,便便可成为为一个单单片机控控制系统统。单片机经经过1、22、3、33代的发发展,正正朝着多多功能、高高性能、低低电压、低低功耗、低低价格、大大存储容容量、强强I/OO功能及及较好的的结构兼兼容性方方向发展展。其发发展趋势势不外乎乎以下几几个方面面:2.1.1多功功能单片机中中尽可能能地把所所需要的的存储器器和I/O口都都集成在在一块芯芯片上,使使得单片片机可以以实现更更多的功功能。比比如A/D、PPWM、PPCA(可可编程计计数器阵阵列)、WWDT(监监视定时时器-看家家狗)、高高速I/O口及及计数器器的捕获获/比较较逻辑等等。有的单片片机针对对某一个个应用领领域,集集成了相相关的控控制设备备,以减减少应用用系统的的芯片数数量。例例如,有有的芯片片以511内核为为核心,集集成了UUSB控控制器、SSMARRT CCARDD接口、MMP3解解码器、CCAN或或者I*I*CC总线控控制器等等,LEED、LLCD或或VFDD显示驱驱动器也也开始集集成在88位单片片机中。2.1.2高效效率和高高性能为了提高高执行速速度和执执行效率率,单片片机开始始使用RRISCC、流水水线和DDSP的的设计技技术,使使单片机机的性能能有了明明显的提提高,表表现为:单片机机的时钟钟频率得得到提高高;同样样频率的的单片机机运行效效率也有有了很大大的提升升;由于于集成度度的提高高,单片片机的寻寻址能力力、片内内ROMM(FLLASHH)和RRAM的的容量都都突破了了以往的的数量和和限制。由于系统统资源和和系统复复杂程度度的增加加,开始始使用高高级语言言(如CC语言)来来开发单单片机的的程序。使使用高级级语言可可以降低低开发 难度,缩缩短开发发周期,增增强软件件的可读读性和可可移植性性,便于于改进和和扩充功功能。2.1.3低电电压和低低功耗单片机的的嵌入式式应用决决定了低低电压和和低功耗耗的特性性十分重重要。由由于CMMOS等等工艺的的大量采采用,很很多单片片机可以以在更低低的电压压下工作作(1.2V或或0.99V),功功耗已经经降低到到uA级级。这些些特性使使得单片片机系统统可以在在更小电电源的支支持下工工作更长长的时间间。2.1.4低价价格单片机应应用面广广,使用用数量大大,带来来的直接接好处就就是成本本的降低低。目前前世界各各大公司司为了提提高竞争争力,在在提高单单片机性性能的同同时,十十分注意意降低其其产品的的价格。2.2单单片机电电子时钟钟功能确确定单片机电子时钟计 时 功 能计 时 调 整定 时 显 示定 时 调 整定 时 闹 铃计 时 显 示图2.11时钟整整体布局局图所需元器器件如表表2.11所示。表2.11电子元元件列表表序号名称数量序号名称数量1AT899S5111片92.7KK电阻7只212M晶晶振1个10104瓷瓷片电容容4只3共阳数码码管4只1130P瓷瓷片电容容2只4PN管8855007只12200电阻1只574LSS24441片13560电阻8只6蜂鸣器1个1410K电电阻12只7微动按键键5个15100电阻4只810UFF电容1只单片机电电子时钟钟,是利利用单片片机技术术实现计计时、时时间显示示、时间间调整、定定时调整整、闹铃铃等功能能。项目目完成过过程中使使用了外外部中断断技术、定定时器中中断技术术、键盘盘查询及及动态显显示技术术。2.3 LEDD显示模模块图2.22七段共共阳极数数码管七段共阳阳极数码码管及功功能如图图1所示示:如图图1所示示数码管管为共阳阳极数码码管,其其3脚和和8脚均均接电源源正极,而而共阴极极数码管管的3脚脚和8脚脚均接电电源负极极。其端端口所标标数据与与数码管管显示条条处所标标对应,当当端口接接入高电电平时,相相应共阳阳极数码码管的显显示条即即点亮。2.4按按键模块块矩阵式键键盘(也也称行列列式键盘盘)适用用于按键键数目较较多的场场合,它它由行线线和列线线组成。按按键位于于行列的的交点上上。一个个3*33的行列列结构可可以构成成一个有有9个按按键的键键盘。同同理,一一个4*4的行行列结构构结构可可以构成成一个116键的的键盘。独立式按按键就是是各按键键相互独独立,每每个按键键各接入入一根输输入线,一一根输入入线上的的案件工工作状态态不会影影响其他他输入线线上的工工作状态态。因此此,通过过检测输输入线的的电平状状态可以以很容易易判断哪哪个按键键按下了了。独立立式按键键电路配配置灵活活,软件件简单。但但每个按按键需要要占用一一个输入入口线,在在按键数数量较多多时,需需要较多多的输入入口线且且电路结结构复杂杂,故此此种键盘盘适用于于按键较较少或操操作速度度较高的的场合。由于此种种系统中中共有启启动两条条生产线线的“启动11”键和“启动22”键、分分选择键键、秒选选择键、时时间设置置加、时时间设置置减、时时间设置置键、确确定键。只只有这88个就键键,比较较简单。所所以就采采用独立立式按键键接口电电路。3 PCCB原理理图与仿仿真图3.1 PCBB原理图图图3.11时钟PPCB图图3.2仿仿真图图3.22时钟仿仿真图4 程序序设计#inccludde ""regg51.h"#deffinee uccharr unnsiggnedd chhar#deffinee uiint unssignned intt#deffinee smmplaay PP2sbitt smm1ouut=PP000;sbitt smm2ouut=PP011;sbitt smm3ouut=PP022;sbitt smm4ouut=PP033;sbitt sppeakk=P004;sbitt adddtiime=P34;sbitt suubtiime=P35;sbitt slled11=P113;sbitt slled22=P114;uchaar codee taabsmm=0xx03,0x99F,00x255,0xx0D,0x999,00x499,0xx41,0x11F,00x011,0xx09;uchaar codee taabdss=0xx02,0x99E,00x244,0xx0C,0x998,00x488,0xx40,0x11E,00x000,0xx08;uchaar ddataamd,dattamgg,daatahhd,ddataahg;uchaar dddattamdd,dddataamg,ddaatahhd,dddattahgg;uchaar ggethhourr,geetmiin;uchaar ssecddataa=0xx00;uchaar tt1nuum=110;uchaar tt0nuum1=10;uchaar tt0nuum2=2;uchaar ffsellectt=0;bit flaagpllay;bit flaagfllashh;bit flaagsppk=00;voidd dllysyys() uccharr i,j,kk; foor(ii=0;i<550;ii+) forr(j=0;jj<1000;jj+) ffor(k=00;k<<1000;k+);voidd dllypllay() uccharr i,j; foor(ii=0;i<110;ii+) forr(j=0;jj<1000;jj+);voidd dllyinnt() uccharr i,j; foor(ii=0;i<2200;i+) forr(j=0;jj<2000;jj+);voidd maain() uuchaar cchgii=0; uuchaar cchkkkey=10; PP0=PP1=PP2=PP3=00xfff; ddlyssys(); ddataamd=9; ddataamg=5; ddataahd=3; ddataahg=2; dddattamdd=0; dddattamgg=0; dddattahdd=0; dddattahgg=0; fflaggplaay=00; fflaggflaash=0; EEA=EEX0=EX11=ETT0=EES=IIT0=IT11=1; TTMODD=0xx21; SSCONN=0xx50; TTH1=0xee6; TTL1=0xee6; TTH0=0x33c; TTL0=0xbb0; TTR0=1; TTR1=1; ssledd1=ssledd2=00;whille(11) cchgii=0; wwhille(fflaggplaay=0) smm1ouut=ssm2oout=sm33outt=smm4ouut=11; smpplayy=taabsmmdaatammd; iff(fsseleect=2) sm11outt=fllagfflassh; elsse sm11outt=0; dlyyplaay(); sm11outt=smm2ouut=ssm3oout=sm44outt=1; smpplayy=taabsmmdaatammg; if(fseelecct=2) sm22outt=fllagfflassh; elsse sm22outt=0; dlyyplaay(); sm11outt=smm2ouut=ssm3oout=sm44outt=1; smpplayy=taabsmmdaatahhd; if(fseelecct=1) sm33outt=fllagfflassh; elsse sm33outt=0; dlyyplaay(); sm11outt=smm2ouut=ssm3oout=sm44outt=1; smpplayy=taabsmmdaatahhg; if(fseelecct=1) sm44outt=fllagfflassh; elsse sm44outt=0; dlyyplaay(); iff(fsseleect=2) TTR0=0; cchkkkey-; iif(cchkkkey=0) cchkkkey=10; iif(aaddttimee=00) dattamdd+; iff(daatammd=10) dattamdd=0; daatammg+; if(dattamgg=66) daatammg=00;if(ssubttimee=00) dattamdd-; if(dattamdd=2255) ddataamd=9; dattamgg-; if(dattamgg=2255) ddataamg=5; if(fseelecct=1) TTR0=0; cchkkkey-; iif(cchkkkey=0) cchkkkey=10; iif(aaddttimee=00) dattahdd+; iff(ddataahg!=2) &&& (ddataahd=100) ddataahd=0; daatahhg+;if(dattahgg=22) &&& (dattahdd=44) ddataahd=0; daatahhg=00; if(ssubttimee=00) dattahdd-; if(dattahdd=2255) ddataahd=9; ddataahg-; iff(daatahhg=2555) ddataahg=2; dattahdd=3; if(flaagsppk=1) iif(adddtimme=0)|(ssubttimee=00) fllagsspk=0; sppeakk=sspeaak; eelsee sppeakk=1; whiile(flaagpllay) smm1ouut=ssm2oout=sm33outt=smm4ouut=11; smpplayy=taabdssdddataamd; if(fseelecct=2) sm11outt=fllagfflassh; elsse sm11outt=0; dlyyplaay(); sm11outt=smm2ouut=ssm3oout=sm44outt=1; smpplayy=taabdssdddataamg; if(fseelecct=2) sm22outt=fllagfflassh; elsse sm22outt=0; dlyyplaay(); sm11outt=smm2ouut=ssm3oout=sm44outt=1; smpplayy=taabdssdddataahd; if(fseelecct=1) sm33outt=fllagfflassh; elsse sm33outt=0; dlyyplaay(); sm11outt=smm2ouut=ssm3oout=sm44outt=1; smpplayy=taabdssdddataahg; if(fseelecct=1) sm44outt=fllagfflassh; elsse sm44outt=0; dlyyplaay(); iff(fsseleect=2) cchkkkey-; iif(cchkkkey=0) cchkkkey=10; iif(aaddttimee=00) ddaatammd+; iff(dddataamd=100) ddaatammd=00; dddataamg+; if(ddaatammg=6) dddataamg=0;if(ssubttimee=00) ddaatammd-; if(ddaatammd=2555) dddattamdd=9; ddaatammg-; if(ddaatammg=2555) dddattamgg=5; if(fseelecct=1) cchkkkey-; iif(cchkkkey=0) cchkkkey=10; iif(aaddttimee=00) ddaatahhd+; iff(dddattahgg!=22) &&& (ddaatahhd=10) dddattahdd=0; dddataahg+;if(ddaatahhg=2) && (dddataahd=4) dddattahdd=0; dddataahg=0; if(ssubttimee=00) ddaatahhd-; if(ddaatahhd=2555) dddattahdd=9; dddattahgg-; iff(dddataahg=2555) dddattahgg=2; ddaatahhd=33; if(fseelecct=0) chggi+; if(chggi=2555) fflaggplaay=00; cchgii=0; if(flaagsppk=1) iif(adddtimme=0)|(ssubttimee=00) fllagsspk=0; sppeakk=sspeaak; eelsee sppeakk=1; voidd innt0zzd() innterrruppt 00 iif(fflaggspkk=11) fllagsspk=0; elsse fflaggplaay=flaagpllay; ffsellectt=0; ddlyiint(); IIE0=0; voidd innt1zzd() innterrruppt 22 iif(fflaggspkk=11) fllagsspk=0;elsee ffsellectt+; ffsellectt %= 3; iif(ffsellectt!=00) TMOOD=00x111; TTH1=0x33c; TTL1=0xbb0; EET1=1; EES=00; TTR1=1; eelsee TTMODD=0xx21; TTH1=0xee6; TTL1=0xee6; EET1=0; EES=11; TTR1=1; TR00=1; ddlyiint(); IIE1=0; voidd t00zd() iinteerruupt 1 TTH0=0x33c; TTL0=0xbb0; tt0nuum1-; iif(tt0nuum1=0) t00numm1=110; sleed1=slled11; sleed2=slled22; t0nnum22-; iif(tt0nuum2=0) tt0nuum2=2; seecdaata+; iif(ssecddataa=660) seecdaata=0; ddataamd+; iif(ddataamd=100) dattamdd=0; ddataamg+; iif(ddataamg=6) ddataamg=0; daatahhd+; if(daatahhg!=2) && (daatahhd=10) ddataahd=0; daatahhg+; if(daatahhg=2) && (daatahhd=4) daatahhd=00; dattahgg=0; if(ddaatahhg!=0)|(dddattahdd!=00)|(dddataamg!=0)|(ddaatammd!=0) if(daatahhg=ddaatahhg) && (dattahdd=dddattahdd)&&& (dattamgg=dddattamgg)&&& (dattamdd=dddattamdd) flaagsppk=11; ellse flaagsppk=00; voidd t11zd() iinteerruupt 3 TTH1=0x33c; TTL1=0xbb0; tt1nuum-; iif(tt1nuum=0) t11numm=100; flaagfllashh=fflaggflaash;