基于来电显示信号的电子时钟设计【毕业设计+开题报告+文献综述】

基于来电显示信号的电子时钟设计【毕业设计+开题报告+文献综述】

ID:437872

大小:2.54 MB

页数:56页

时间:2017-08-02

上传者:U-944
基于来电显示信号的电子时钟设计【毕业设计+开题报告+文献综述】_第1页
基于来电显示信号的电子时钟设计【毕业设计+开题报告+文献综述】_第2页
基于来电显示信号的电子时钟设计【毕业设计+开题报告+文献综述】_第3页
基于来电显示信号的电子时钟设计【毕业设计+开题报告+文献综述】_第4页
基于来电显示信号的电子时钟设计【毕业设计+开题报告+文献综述】_第5页
资源描述:

《基于来电显示信号的电子时钟设计【毕业设计+开题报告+文献综述】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科毕业设计文献综述电子信息工程基于来电显示信号的电子时钟设计前言:本人课程设计的题目为《基于来电显示信号的电子时钟设计》,在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便[1]。由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。尽管目前市场上已有现成的数字钟集成电路芯片出售,价格便宜、使用也方便,但鉴于单片机的定时器功能也可以完成数字钟电路的设计,因此进行数字钟的设计是必要的。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来培养我们的综合分析和设计电路,写程序、调试电路的能力。基于来电显示信号的数字时钟使得时间更加精准,通过对来电显示信号的接收以及提取,就能自动对电子时钟进行校准,更加方便,更适合在一些工矿、企业、学校等需要准确时间的地方使用。主题:诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。因此,研究基于来电显示信号的电子时钟,有着非常现实的意义。它可以对年、月、日、周日、时、分、秒进行计时,对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、时、分、秒等信息,最主要的是它还能接受来电显示信号中的时间信号进行自我校对,使得精确性打打提高[2]。本设计以单片机STC89C54和STC89C58为控制核心,由实时时钟模块、FSK信号发生模块、解码芯片HT9032等构成。其中实时时钟采用DS12887可实现年月日时分秒等时间信息的采集[5],FSK信号发生模块、解码芯片HT9032可以解调来电显示信号[7],提取出时间信息,提供给时钟以作校时。10 本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、实时时钟模块、来电显示信号解码模块、信号采集模块等。1、单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机、时钟电路、复位电路等组成。2、时时钟芯片采用带RAM的时钟芯片DS12887。该芯片可以进行时分秒的计数,具有100年日历,可编程接口,还具有报警功能和掉电保存功能,并且可以对其方便的进行程序控制,完全能满足设计的要求[3]。3、来电显示信号解码模块主要采用FSK解码芯片HT9032实现。4、信号采集模块主要由单片机STC89C54来完成。未来发展趋势:从单片机电子时钟近年的发展趋势来看,正朝着多层次用户、多品种、多规格、高精度、小体积、低能耗等方面发展,在这种趋势下,时钟的数字化,智能化已经成为现代数字时钟的研究方向。[3]带有时钟功能的电子产品和电子设备进年来广泛地出现在国内外市场中。例如奥运会倒计时显示屏、铁路安全显示屏、生产线看板、体育比赛记时屏、大型室外高亮度时钟等,这类产品覆盖银行、医院、地铁车站、体育运动、电视台、监控系统、高大建筑物等行业。[4]作为一种人机接口方式,语音比LCD,鼠标键盘等设备更易于使用。而在设计里加上语音提示、音乐或者其他语音功能,还使得设计显得既人性化又有趣,不但能提高开发者的兴趣和积极性,同时也能让设计作品与众不同,从而得到了各界领域的广泛应用所以对语音的研究有很大的实际意义。总结:通过以上文献综述,不难发现:该电子时钟具有读取方便、显示直观、功能多样、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。近些年我国也开始重视对电子钟的开发与设计,让更多的电子时钟能够走进人民生活,跟多人能够应用到功能强大,精度高的电子时钟。但是仍然存在很多问题。中国电子钟产业发展出现的问题中,许多情况不容乐观,如产业结构不合理、产业集中于劳动力密集型产品;技术密集型产品明显落后于发达工业国家;生产要素决定性作用正在削弱;产业能源消耗大、产出率低、环境污染严重、对自然资源破坏力大;企业总体规模偏小、技术创新能力薄弱、管理水平落后等。10 中国电子钟产业发展研究报告阐述了世界电子钟产业的发展历程,分析了中国电子钟产业发展现状与差距,开创性地提出了“新型电子钟产业”及替代品产业概念,在此基础上,从四个维度即“以人为本”、“科技创新”、“环境友好”和“面向未来”准确地界定了“新型电子钟产业”及替代产品的内涵。根据“新型电子钟产业”及替代品的评价体系和量化指标体系[6],从全新的角度对中国电子钟产业发展进行了推演和精准预测,在此基础上,对中国的行政区划和四大都市圈的电子钟产业发展进行了全面的研究。[参考文献][1]曹克橙.单片机原理及应用[M],第二版.北京:机械工业出版社,2009.01:12-23[2]俊逸,盛秋林,张铮等.单片机原理及应用[M],北京:清华大学出版社,2001:56-73[3]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:高等教育出版社,2000:16-34[4]阎石.数字电子技术基础[M].北京:高等教育出版社,1998:46-67[5]徐宏亮,艾学忠等.实现多功能电子时钟设计[J].吉林化工学院学报,2001,33(4):62-67[6]丁元杰.单片微机原理及应用.第二版[M].北京:机械工业出版社,2001:45-67[7]何桂丽,林善希.中国来电显示标准[S].北京标准出版社,1998:3-1210 本科毕业设计基于来电显示信号的电子时钟设计10 摘要在我们日常生活中随时随地都可以看到很多使用来电显示器的装置。但是,如果我们将时针拨回到半个世纪以前,那时具有现在感觉的显示器可谓少之又少。近年来,随着广播通信技术的发展和社会信息化的不断推进,新的信息显示装置不断涌现,与半导体技术一样,对于现代社会来说,来电显示技术也是一项不可缺少的重要技术。同时,在当代繁忙的工作与生活中,时间对于我们每一个人来说都有非常密切的关系,每个人都受到时间的影响。为了更好的利用我们自己的时间,我们必须对时间有一个度量,因此产生了钟表。从刚开始的机械式钟表到现在普遍用到的数字式钟表,数字钟已成为人们日常生活中的必需品。为了解决时钟的走时累计误差需要人工调整的麻烦,本系统能自动接收一定的时钟数据信号自动调整好时间日期的显示。本系统以单片机STC89C54和STC89C58为控制核心,由实时时钟模块、FSK信号发生模块、解码芯片HT9032等构成。其中实时时钟采用DS12887可实现年、月、日、时、分、秒等时间信息的采集,FSK信号发生模块、解码芯片HT9032可以解调来电显示信号,提取出时间信息,提供给时钟以作校时。由于DS12887内部采用的是晶振,因此受到温度,自身晶振精度的影响,走时会产生一个固定的时差,不大于1分钟/月,因此需要一个信号来校准,来电显示信号中的时间信号是来自GPS传送的,在用来电显示信号校时的时候,尽管FSK解码时会有一定的时间,但这时间比较固定,可在时钟显示时加上去,因此相对而言比较精准。并且如今我国电话的普及率比较高,在家里通过来电显示信号校时比较方便,也容易实现。通过此次设计,了解到基于来电显示信号的电子时钟最难的就是来电显示信号的解调以及信号的传输。本设计反应了基于来电显示信号的电子时钟设计在实际应用中所要面临的问题以及探讨了解决这些问题的相关方法。关键词:单片机;FSK;CID芯片;时钟芯片10 ABSTRACTInourdailylifecanbeseenanytime,anywhereusingthephonedisplaysalotofdevicesandsettings.However,ifwedialbacktheclocktoanerahalfacenturyago,whenthedisplayhasbeenverylittlesensenow.Inrecentyears,withtheradiocommunicationstechnologyandinformationsocietyprogresses,newinformationemergingdisplaydevices,andsemiconductortechnologies,formodernsociety,calldisplaytechnologyisalsoanindispensabletechnology.Meanwhile,inthecontemporarylifeofthebusywork,time,andeachofushasaverycloserelationship,everyoneisaffectedbytime.Inordertomakebetteruseofourowntime,wemusthaveameasureoftime,resultinginaclock.Fromthebeginningofthemechanicalwatchestodigitalisnowwidelyusedinwatches,digitalclockhasbecomeessentialtodailylifenecessities.Toaddressthecumulativeerrorwhentheclockneedstogothetroubleofmanualadjustments,thesystemcanautomaticallyreceivecertaindatasignalsautomaticallyadjusttheclocktimeanddatedisplay.SCMSTC89C52thedesignforthecontrolofthecore,thereal-timeclockmodule,FSKsignalmodule,decoderchipHT9032andotheraccessories.DS12887realtimeclockwhichcanbeachievedbyyear,month,day,hourandothertimeinformationcollection,FSKsignalmodule,decoderchipHT9032CallerIDsignalcanbedemodulatedtoextractthetimeinformationprovidedtotheclockfortiming.TheDS12887isusedwithinthecrystal,sobythetemperature,itscrystalprecision,traveltimewillhaveafixedtimedifference,lessthan1minute/month,andthereforerequiresasignaltothecalibration,thetimesignalcallersignaltransmittedfromtheGPS,thesignalcallerinschoolbythetimewhen,althoughtherewillbesomeFSKdecodingtime,butthistime,relativelyfixed,canbeaddedtotheclockdisplay,itisrelativelyaccurate.AndnowthetelephonepenetrationrateinChinaisrelativelyhigh,athomewhentheschoolthroughtheCallerIDsignalismoreconvenient,butalsoeasytoimplement.Withthisdesign,understandthesignalbasedonCallerIDistheelectronicclockisthemostuniquecallerIDsignaldemodulationandsignaltransmission.ThedesignreflectstheCallerIDsignalbasedontheelectronicclockinthepracticalapplicationofdesignproblemstobefacedandtoexplorethesolutionstotheseproblemsrelatedmethods.Keywords:SCM;FSK;CIDchips;Clockchip10 10 目录前言1第1章绪论31.1系统框架设计总方案31.2系统组成方案41.2.1来电显示格式方案41.2.2FSK制式解码方案41.2.3数字时钟方案4第2章系统主要硬件电路设计62.1实现CID的基本方法62.2CID硬件设计92.2.1主机硬件原理及应用92.2.2STC89系列高性能单片机及应用92.3CID消息帧格式及技术要求102.3.1单数据消息格式112.3.2复合数据消息格式112.3.3数据定义122.3.4差错检查132.4来电显示器的工作原理142.5时钟硬件功能描述142.6时钟电路硬件设计152.6.1键盘模块152.6.2显示模块152.6.3复位电路模块162.6.4时钟芯片模块172.6.5主控模块17第3章系统软件设计1910 3.1授时主程序193.2来电显示信号接收软件设计图203.3时钟模块软件设计图21第4章制作调试过程224.1PCB板制作224.2元器件焊接224.3电路调试224.4硬件结构组装224.5软件系统编写调试22结论23致谢23[参考文献]24附录A基于来电显示信号电子时钟的实物图24附录B系统软件程序2510 10 56 前言钟表现已普及千家万户,连挂红领巾的小学童的手腕上也戴起了亮晶晶的电子手表。但远古之时,人们计时是毛估估的,昼看日头,夜观星月,日出而作,日落而息。三千多年前,我国祖先最早发明了用土和石片刻制成的“土圭”与“日规”两种计时器,成为世界上最早发明计时器的国家之一。到了铜器时代,计时器又有了新的发展,用青铜制的“漏壶”取代了“土圭”与“日规”。东汉元初四年张衡发明了世界第一架“水运浑象”。14世纪在欧洲的英、法等国的高大建筑物上出现了报时钟,钟的动力来源于用绳索悬挂重锤,利用地心引力产生的重力作用。15世纪末、16世纪初出现了铁制发条,使钟有了新的动力来源,也为钟的小型化创造了条件。随着钟表业的不断发展,钟表产品也在不断更新换代。石英电子钟表是70年代兴起来的新型钟表产品,与机械表相比,它走时更为准确,功能更多,制作的成本电低。瑞士等国相继推出了一批新颖奇特的钟表新产品,如瑞士菲利浦公司生产的光电钟,可将光源转换成电能作能源的电子表。日本研制成具有录音、放音等功能的数字手表,还有翻译手表、电视手表等。英国的无声闹声,到了预定钟点,产生振动叫醒人,可供耳聋者使用。还有声控照明钟、气温钟、火警闹钟等。钟表世界如今是算得上日新月异的了。在所有电子系统中,时钟相当于心脏,时钟的性能和稳定性直通常接决定着整个系统的性能。因此,时间信号的准确与否,直接关系到人们的日常生活、工业生产和社会发展.人们对时间精度的要求也越来越高.系统时钟需要可靠,精确的时序参考,通常所用的就是晶体。常见的时钟源主要有晶体振荡器模块(XO)和锁相环(PLL)合成器。对于晶体振荡器和PLL合成器这两种主要的系统时钟源而言,它们各有其优势,典型的系统晶振时钟源通常使用的是石英晶体振荡器,它的优势包括噪声低和结构简单,并且可为客户提供精确的定制频率等方面;可是,它也有着明显的缺点,比如只能有晶体来决定其频率,一般情况是特定晶体被制成客户所需的振荡器,由此导致交货周期较长、生产成本高,最重要的是不利于客户加快产品上市时间,难以获得非标准的频率。而且其稳定性也不是很好。与晶体振荡器相比,PLL合成器是一种更加复杂的系统时钟源。其中,如果单从PLL来讲,它通常由电荷泵、相频检测器(PFD)、压控振荡器(VCO)和低通滤波器(LPF)等组成。而通用的PLL合成器时钟产生器一般需要外部晶体以及放大反向器,并再通过完全集成的PLL和逻辑电路来完成[5]。大多数的高精度计时工具都使用了石英晶体振荡器,由于石英表、电子钟、石英钟都采用了石英技术,因此走时精度高、使用方便、稳定性好、不需要经常调校。数字式电子钟的计时使用集成电路,译码器电路代替机械式传动,用LED显示器代替指针显示时间,减小了计时误差,这种时钟具有时、分、秒显示时间的功能,还可以进行时、分、秒的校对,片选的灵活性好。专门的时钟芯片还可以提供高精度的准确时间。目前在授时领域,常采用的授时方式具体有如下几种。(1)脉冲对时也称硬对时,是利用脉冲的准时沿(上升沿或下降沿)来校准被授时设备。脉冲对时的优点是授时精度高、适应性强,使用无源接点时:缺点是只可以校准到秒(用1PPS),并且其数据必需要人工进行预置。(2)串口报文对时也称软对时,将一组时间数据(年、月、日、时、分、秒)56 按照一定的格式(速率和顺序等),然后通过串行通信接口发送给被授时装置,被授时装置利用这组数据预置其内部时钟。串口报文对时的优点是数据全面、不需要人工预置;缺点是授时精度低、报文的格式需要授时和被授时装置双方约定。(3)时间编码方式对时为了解决前2种对时方式的矛盾,在实际应用中常采取2种对时方式结合的方法,即串口+脉冲。时间编码方式对时的优点是数据全面、对时精度高、不需要人工预置;缺点是编码相对复杂,需要传送2个信号。(4)网络方式对时网络方式对时的优点是基于现有网络、物理实现方便;缺点是高精度补偿算法复杂。本设计以单片机STC89C54和STC89C58为控制核心,由实时时钟模块、FSK信号发生模块、解码芯片HT9032等构成。其中实时时钟采用DS12887可实现年月日时分秒等时间信息的采集,FSK信号发生模块、解码芯片HT9032可以解调来电显示信号,提取出时间信息,提供给时钟以作校时。本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、实时时钟模块、来电显示信号解码模块、信号采集模块等。1.单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机、时钟电路、复位电路等组成。2.时时钟芯片采用带RAM的时钟芯片DS12887。该芯片具有100年日历,可以进行时分秒的计数,可编程接口,还具有报警功能和掉电保存功能,并且可以对其方便的进行程序控制,完全能满足设计的要求。3.来电显示信号解码模块主要采用FSK解码芯片HT9032实现。4.信号采集模块主要由单片机STC89C54来完成。未来发展趋势:从单片机电子时钟近年的发展趋势来看,正朝着多层次用户、多品种、多规格、高精度、小体积、低能耗等方面发展,在这种趋势下,时钟的数字化,智能化已经成为现代数字时钟的研究方向。带有时钟功能的电子产品和电子设备进年来广泛地出现在国内外市场中。例如奥运会倒计时显示屏、铁路安全显示屏、生产线看板、体育比赛记时屏、大型室外高亮度时钟等,这类产品覆盖银行、医院、地铁车站、体育运动、电视台、监控系统、高大建筑物等行业。作为一种人机接口方式,语音比LCD,鼠标键盘等设备更易于使用。而在设计里加上语音提示、音乐或者其他语音功能,还使得设计显得既人性化又有趣,不但能提高开发者的兴趣和积极性,同时也能让设计作品与众不同,从而得到了各界领域的广泛应用所以对语音的研究有很大的实际意义[4]。结论:通过以上文献综述,不难发现:该电子时钟具有读取方便、显示直观、功能多样、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。近些年我国也开始重视对电子钟的开发与设计,让更多的电子时钟能够走进人民生活,跟多人能够应用到功能强大,精度高的电子时钟。但是仍然存在很多问题。中国电子钟产业发展出现的问题中,许多情况不容乐观,如产业结构不合理、产业集中于劳动力密集型产品;技术密集型产品明显落后于发达工业国家;生产要素决定性作用正在削弱;产业能源消耗大、产出率低、环境污染严重、对自然资源破坏力大;企业总体规模偏小、技术创新能力薄弱、管理水平落后等。56 中国电子钟产业发展研究报告阐述了世界电子钟产业的发展历程,分析了中国电子钟产业发展现状与差距,开创性地提出了“新型电子钟产业”及替代品产业概念,在此基础上,从四个维度即“以人为本”、“科技创新”、“环境友好”和“面向未来”准确地界定了“新型电子钟产业”及替代产品的内涵。根据“新型电子钟产业”及替代品的评价体系和量化指标体系,从全新的角度对中国电子钟产业发展进行了推演和精准预测,在此基础上,对中国的行政区划和四大都市圈的电子钟产业发展进行了全面的研究。56 第1章绪论1.1系统框架设计总方案键盘输入与控制STC89C58STC89C54HT9032FSK解码芯片LCD1602电话线水晶母头市电输入电源滤波变压器降压稳压滤波74LS164DS12887实时时钟芯片数码管显示图1.1基于来电显示信号的电子时钟设计总框图本时钟的基本设计思想是接受一个来电显示信号,通过FSK解码,获取其中的时间数据信号,然后对时钟进行校时,使其可以自动调整好时间日期的显示,能达到误差在1分钟之内1.2系统组成方案1.2.1来电显示格式方案美国贝尔通信研究所最先采用语音频带数据通信的调制与解调技术,利用连续的频移键控(即FSK)方式传送主叫用户的姓名,呼叫日期和时间等信息.56 后来部分欧洲国家则采用双音多频(即DTMF)方式传送.从而形成了目前来电显示的FSK和DTMF两种制式。FSK制式采用相位连续二进制频移键控的编码方法,将呼叫识别信息转换成FSK编码传输.其特点是传输格式较复杂,但传送信息多,除电话号码外,还能传送时间,日期及姓名等信息.(2)DTMF制式利用双音多频信号传送电话号码.其特点是传输格式简单,传送信息少,只能传送电话号码。由于此次设计需要的时间信号,所以选择使用FSK制式。1.2.2FSK制式解码方案对于FSK的解码,主要有基于锁相解调、专用电路和基于DSP的3种解调方式。基于专用电路的解调方式实用简单、成本低廉、性能可靠,比较适合小型来电显示机的设计。绝大部分来电显示产品都采用此种方式。锁相环解码方式基于硬件FSK解调,一般通信解调电路都采用这种方式,其优点是灵敏度很高,尤其在信噪比低的情况下性能突出,缺点是电路相对来说比较复杂,调试不便,而且对于大部分数字锁相环集成电路,当VCO工作在高频(>6MHz)时受温度影响很大,一定要加个温度补偿电路方才可以正常工作。基于DSP的解码是纯软件解调方式,优点是设计灵活,修改方便,但是相对于专用电路解调方式来说成本过高,在信噪比差的情况下,算法要做相应的调整。所以此次设计主要由HT9032和单片机STC89C54组成。1.2.3数字时钟方案在设计电子时钟电路时,有两个可选方案:方案一:电子时钟不设本机时间电路,完全依赖来电显示信号模块发出的时间信息,接收到后显示出来。方案二:电子时钟具有本机时钟的电路,当接收到来电显示信号后,校正本机时钟集成电路数据。第一个方案太过依赖于来电显示信号,如果没有来电显示信号进来,电子时钟将无法正常工作。方案二可以让时钟有自己的时间系统,在没有来电显示信号的时候也可以进行计时。考虑到授时时钟的稳定性,选用第二方案。电子时钟的本机时钟电路也有两种方案可选:方案一:可直接用软件实现数字时钟,在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。方案二:也可以使用时钟芯片DS12887A。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/56 年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间[12]。DS12887还有以下几个特点:l可作为IBMAT计算机的时钟和日历l与MC146818B和DS1287的管脚兼容l在没有外部电源的情况下可工作10年l自带晶体振荡器及电池l可计算到2100年前的秒、分、小时、星期、日期、月、年七种日历信息并带闰年补偿l用二进制码或BCD码代表日历和闹钟信息l有12和24小时两种制式,12小时制时有AM和PM提示l可选用夏令时模式l可以应用于MOTOROLA和INTEL两种总线基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能现在市场上成熟的单片机应用非常多,有AT89系列的和STC89系列,此次设计选用的是STC89C58芯片做为驱动数字电子时钟电路的处理器。选择STC89C58芯片作为驱动数字电子时钟的处理器,主要出于STC89C54单片机主要有以下几个特点[1]:l高抗静电(ESD保护)l高速:1个时钟/机器周期,RISC型8051内核,速度比普通8051快12倍l轻松过4KV快速脉冲干扰(EFT测试)l宽电压,不怕电源抖动宽电压:5.5~3.4V,l宽温度范围,-40℃~85℃lI/O口经过特殊处理l单片机内部的电源供电系统经过特殊处理低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)l工作频率:0~35MHz,相当于普通8051:0~420MHzl单片机内部的时钟电路经过特殊处理时钟:外部晶体或内部RC振荡器可选,在ISP下载编程用户程序时设置12K/10K/8K/6K/4K/2K字节片内Flash程序存储器,擦写次数10万次以上l单片机内部的复位电路经过特殊处理l单片机内部的看门狗电路经过特殊处理l全双工异步串行口(UART),兼容普通8051的串口。在接收到来电显示信号后,经过单片机的处理,将时间信号显示在数码管上,考虑到课题的要求,于是在软件实现和编写上增加显示农历时间和星期几。56 第2章系统主要硬件电路设计2.1实现CID的基本方法实现CID的基本方法是发端交换机将主叫号码等通过局间信令系统(例如NO.7信令系统)传送给终端交换机,终端交换机将主叫识别信息以移频键控FSK的方式送给被叫用户终端设备如图2.1。主叫用户发端交换机终端交换机被叫用户图2.1CID传送方法示意主叫号码信息常采用频移键控(FSK)方式,在被叫用户挂机(On-Hook)或摘机通信状态下传送。终端交换机将主叫识别信息送给被叫用户终端设备在下述两种状态下进行:一种是用户终端挂机状态,另一种是用户终端通话状态[9]。①挂机状态下的数据传送挂机状态下的传送方法是终端交换机将主叫识别信息在第一次振铃和第二次振铃间隔期间送给被叫用户终端设备。在一次呼叫中若被叫用户申请了CID业务,则终端交换机向该被叫用户传送主叫识别信息数据。传送时序如图2.2所示数据传送(C)第二次振铃(E)第一次振铃(A)图2.2主叫识别信息数据传送的时序56 符号时间值A铃流B0.5~1.5s第一次振铃结束与数据传送开始之间的时间间隔C≤2.9s传送数据的时间包括信道占用信号ChannelSeizureSignal和标志信号MarkSingleD200ms数据传送结束与第二次振铃开始之间的时间隔E1s铃流B+C+D应≤3.6s各时段可根据具体情况定。在数据传送前或过程中,如果用户摘机,则传送停止且呼叫处理正常进行。我国规定:铃流源为25HZ。振铃为5秒断续(即一秒送4秒停)。②通话状态下的数据传送通话状态下的传送方法是指当具有CAllID功能的用户乙已经与用户甲处在通话状态下,第三方面用户丙呼叫用户乙时,在用户乙终端设备上显示用户丙的识别信息。在此状态下,必须以“呼叫等待(callwaiting)”业务作为CID业务前提,如图2.3所示。甲乙CID发送交换机丙发送交换机终端交换机图2.3通话状态下传送在接受来话时用户作为被叫可以要求提供CID业务,也可以不要求提供此业务。a、在通话状态下传送数据,一开始交换机屏蔽与对话端的话音通路,然后将提示序列向被叫用户传送。提示序列由电话终端提示信号(CAS)和用户提示音(SAS)组成。电话终端提示信号(CAS)是用来提示电话终端准备接收数据。用户提示音(SAS)的作用是提示用户有新等待的呼叫,可采用呼叫等待音。b、为防止近端干扰,电话终端收到CAS信号后就将送受话器静音,然后将数据接收器连接到用户线上,最后用应答(ACK)信号响应以通知交换机已准备好。c、ACK信号传送到交换机后,数据传送开始。交换机将消息发送给电话终端,在数据传送一结束后就马上恢复与对话端的话音通路,同时将话机的话音通路恢复,通话状态数据传送的信号顺序如图2.4所示:56 图2.4通话状态数据传送顺序d、在通话状态下传送提示序列和数据期间,交换机应以至少50dB的损耗阻塞与对端的话音传送,防止这些信号到达远端。e、乙用户所在的交换机若一查出乙用户的一个瞬断flash信号或用户挂机,则停止数据传送,并按正常接续处理。f、若交换机查出用户丙或用户甲挂机,则继续数据传送。若用户乙在15s内未对新插入的呼叫进行响应,交换机将释放新的呼叫。2.2CID硬件设计2.2.1主机硬件原理及应用此设计的来电显示器,能够产生符合国际和Bell202标准的FSK码标准序列信号,其硬件主要由HT9032单片机、FSK信号发生模块、LCD存储器等构成。其电路框图如图2.5:56 放大器选频放大器选频放大器FSK解调器CPU及译码器LCD显示器控制部分图2.5来电显示框图2.2.2STC89系列高性能单片机及应用STC89系列单片机是MCS-51系列单片机的派生产品。它们在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051为pin-to-pin兼容[2]。STC89系列单片机高速(最高时钟频率90MHz),低功耗,在系统/在应用可编程(ISP,IAP),不占用户资源STC89C54是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容[3]。STC89C54具体介绍如下:①主电源引脚(2根)VCC(Pin40):电源输入,接+5V电源GND(Pin20):接地线②外接晶振引脚(2根)XTAL1(Pin19):片内振荡电路的输入端XTAL2(Pin20):片内振荡电路的输出端③控制引脚(4根)RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。ALE/PROG(Pin30):地址锁存允许信号PSEN(Pin29):外部存储器读选通信号EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。④可编程输入/输出引脚(32根)STC89C54单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。56 PO口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7STC89C54主要功能如表2.6所示。表2.6STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写FlashROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能2.3CID消息帧格式及技术要求符合国际式Bell202标准的电话主叫识别信息数据的格式有两种:单数据消息格式(singledate,messagetormat)和复合数据消息格式(multipledate,messagetormat)。2.3.1单数据消息格式消息头和消息体组成了单数据消息格式,消息类型和消息长度组成了消息头,它们均为8比特字,消息的特征可通过消息类型的值来识别。后面所跟的消息字的长度可通过消息长度来指明,而且消息体包括交换机需传给终端用户的信息,消息体可容纳1~255个8比特的消息字,每个字可用8比特带校验位的七位编码字符集。2.3.2复合数据消息格式和单数据格式相同,消息体和消息头组成了复合数据消息格式。不同的是,复合数据的消息体是一个或者多个小的消息,称为参数消息,组成参数消息同样具有参数体和参数头。参数头包括参数长度和参数类型,它们都为比特字。后续参数字可用参数类型值来识别,参数体中参数字的数目可用参数长度来指明。在复合数据信息格式中,不同特片产生的不同消息允许在同一个帧中传送[10]。56 标志信号、信道占用信号、数据信息和校验字组成了一个完整的消息帧。当电话终端准备接收时,可用数据标志信号和信道占用信号来提示;差错检查可用校验字来作。①标志信号。在挂机状态下,程控交换机向用户发送主叫信息时要先发送的第二个标志信号,由180个标志位(逻辑“1”)组成。在通话状态下,此信号不发送。②信道占用信号。这是发送主叫信息时要首先发出的头标志,由一组300个连续的“0”和“1”交替地组成。其第一个位为“0”,最后一个位为“1”。在通话状态下,此信号不发送。③标志位。程控交换机根据线路使用情况随机插入的标志位,由0~10个逻辑“1”组成。图2.7单数据和复合数据消息格式56 ④数据字。主叫信息,每个数据字之前先要行一次“0”作起始位,在最后加一位“1”作结束位,每个数字的最低位先发送。最后,实际每个字为10位,即1PXXXXXXX0,其中的P为奇偶校验位。当电话主叫信息数据被传送时,首先发送信道占用信号,然后发送标志信号,最后连续发送数据字。根据数据传送情况,一些标志位被间隔地插入。一般标志位可以加在如下字的传送之间:a.消息长度字与第一个参考数字或消息字之间;b.消息类型字与消息长度之间;c.参考长度字与第一个参考字之间;d.参数类型字与相应的参数长度字之间;e.最后一个参考字或消息字与校验字之间;f.最后一个参数字与下一个参数类型字之间。2.3.3数据定义(1)消息类型字消息类型字的值(16进制数表示)从00~FF可定义256种不同特征的消息,见表2.8。表2.8消息类型定义值含义数据消息类型00000100主叫号码传送信息单数据格式10000000呼叫建立复合数据格式其它备用备用(2)消息长度字消息长度字为消息体中消息字的数目,用16进制表示,值为00~FF。(3)参数类型字参数类型字的值(16进制数表示)从00~FF可定义256种不同特征的参数,见表2.9。表2.9参数类型定义值含义00000001呼叫时间00000010主叫号码00000100无主叫号码00000111主叫姓名56 00001000无主叫姓名其它备用(5)消息字和参数字单数据消息格式消息字有以下各项:a)主叫号码(如果允许显示);b)如果不允许显示主叫号码,将传送字符“P”;c)当终端交换机无法得到主叫号码时,将传送字符“O”;d)日期,时间(月,日,时,分)共8个字节;单数据消息格式消息按消息类型(如:04H)、消息字、消息长度、月、日、时、分、主叫号码(或“O”或“P”)顺序排列组成;复合数据消息格式参数字有以下各项:a)主叫姓名;b)无主叫姓名,用字符“P”或”O”表示;c)无主叫号码,用字符“P”或“O”表示;d)日期,时间(月,日,时,分)共8个字符;e)主叫号码;复合数据消息格式消息体一般按消息类型(如:80H)、参数消息(日期、时间)、消息长度、参数消息(主叫姓名或“O”或“P”)、参数消息(主叫号码,或“O”或“P”)的顺序排列组成。所有的参数字和消息字都有奇偶校验位(即比特位7)采用奇校验的方式。2.3.4差错检查通过一定的算法发送器计算出消息的校验字然后附加到消息后面,接收器在收到消息帧后重新计算出校验字然后与收到的校验字相比较。如果两值相同则消息正确收到,校验字的算法是将消息数据(即消息长度字和消息数据字,单数据格式的消息类型字;所有的参数类型字,复合数据格式的消息类型字消息长度字,所有的参数长度字和所有的参数数据字)按256的模式和取补来得到校验字。来电显示信号在第1声振铃和第2声振铃之间发送,所以一般检测到振铃时开始接收来电显示信息。2.4来电显示器的工作原理本设计采用H0ltek公司生产的FSK解码芯片HT9032。HT9032是用来接收物理层主叫识别信息的低功耗CMOS集成芯片。它满足CCITTV.231200b/sFSK数据传输标准和Bell202,而且还能检测载波和振铃。电话线通过接口电路接到HT9032的RING、TIP、RDETl和RDET2引脚。当有振铃信号到来时,HT9032下降沿被触发。HT9032在第1次和第256 次振铃之间,将逻辑“1”=(1200±12)Hz、“O”=(2200±22)Hz,传输速率为1200b/s的FSK信号解调成串行异步二进制数据。当检测到有效载波信号进来时,下降沿被触发。如果DOUTC脚只输出主叫识别信号;DOUT脚输出标志信号(由180个<挂机状态下>或80个<通话状态下>标志位<逻辑1>组成,即持续的高电平),信道占用信号(由一组300个连续的O和1交替组成,第1位为0,最后1位为1,在通话状态下信道占用信号不发送),以及主叫识别信号的所有信号。STC89C54的外部中断接到1HT9032的引脚,如果有振铃信号,外部中断1被触发。STC89C54的外部中断O接HT9032的引脚,如果检测到有效解调后的主叫识别信号,外部中断0被触发。STC89C54的串行接地引脚接HT9032的DOUTC引脚。如果检测到有效载波信号和振铃,串口中断便被打开,解调的FSK信号被接收,得到来电信息。将被HT9032解调出的FSK基带信号送入STC89C54的捕获中断,信号传送速率为1200b/s,所以将ST89C54波特率设定为1200b/s,并利用串口对信号进行采集,从而得到O、1比特流。将其按10位合成字节信息,每个字节起始位为1,结束位为O,中间8位为信息。最后根据主叫识别的单数据消息格式提取所需的消息字,得到来电日期,然后信息显示在LCD显示屏上。2.5时钟硬件功能描述此数字钟利用单片机STC89C58和时钟芯片DS12887设计完成。数字钟能够完成24小时制计时以及实现日历(农历以及阴历两种格式)的功能。用户可以通过按键调整实现时钟校时,也可以通过接收来电显示信号来进行自动校时。2.6时钟电路硬件设计2.6.1键盘模块56 该时钟还具有用户自动调校模式,用户可以根据需要自动调校时间。所以在硬件设计时需要加入按键模块,用来满足用户调校的要求。所以在设计电路是需要加入按键模块。图2.10键盘显示电路图2.6.2显示模块一个良好的显示模块对一个系统十分的重要,显示模块将用来显示所有的操作结果和计时结果。同时显示模块提供了良好的人机交互平台。常用的显示模式有点阵显示、LED8段数码管显示和液晶显示。液晶显示屏(LCD)具有轻薄短小、无辐射、低耗电量危险、影象稳定不闪烁以及平面直角显示等优势,画面效果好,可视面积大,分辨率高,抗干扰能力强等特点。但同时液晶有着偏高的成本。在使用时,如果有静电干扰,则易将液晶的显示芯片烧坏。鉴于LED8段数码管比较容易实现,成本也比较低的特点,最终确定使用共阴极数码管来显示[8]。本系统显示模块由三块74LS164芯片和十个0.5寸的两位一体八段数码管以及两块0.8寸的两位一体八段数码管组成。74LS164用来驱动数码管以及控制位选。单片机应用系统中大量使用的LED,最常用的是七段LED,7段实际上是a,b,c,d,e,f,g7个发光二极管。当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。在该设计电路中,加入了3片74L164作为选码输出用,可以驱动24位,由p1口输出段码。同时鉴于单片机输出端口的电流不足以驱动LED数码显示管的显示,故加入了三极管作为放大之用,使之能够有足够大的电流驱动LED数码显示管[11]。2.6.3复位电路模块56 图2.11复位电路单片机为了防止系统运行稳定的因素产生,特别是射频干扰和震荡电源稳定性因素产生的干扰,在出于以上因素的考虑设计出复位电路。复位电路主要的功能是是整个系统初始化,在每次上电时系统自动初始化,系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号,但有时为了可靠期间,电源稳定后还要经一定的延时才撤销复位信号,这样可以防止电源开关或电源插头的结合和愤慨过程中引起的抖动而影响复位。还有就是如果在程序运行的过程中程序没有响应或者需要进行一次初始化,这是可以通过按复位开关来实现需要的有效操作[7]。2.6.4时钟芯片模块图2.12DS12887时钟硬件电路图时钟模块采用采用带RAM的时钟芯片DS12887。该芯片可以进行时分秒的计数,具有100年日历,可编程接口,还具有报警功能和掉电保存功能,并且可以对其方便的进行程序控制,能很好的符合要求。其电路如图2.12所示。56 2.6.5主控模块图2.13单片机最小系统CPU选用STC89C58对整个系统进行控制:1)它将DS12887数据接受并输出到LED,实现时间的显示;2)根据键盘输入调用相应键处理子程序,实现时间的调整;3)接收STC89C54输入的数据,进行一定的转换,然后输出到LED显示器显示出来。DS12887是为了时钟的自走模式通过以下方式与STC89C58相连。主控模块的核心组成部分是单片机STC89C58,它的工作是所有操作任务的调控与分派。STC89C58内部有一个高增益反相放大器用来构成振荡器,此放大器的输入端和输出端分别是引脚XTALl和XTAL2。可以由内部方式产生或外部方式产生时钟。内部方式的时钟电路如图2.13(a)所示,外接定时元件在XTALl和XTAL2引脚上,内部振荡器就会产生自激振荡。定时元件通常采用电容和石英晶体组成的并联谐振回路。可以在1.2~12MHz之间选择晶体振荡频率,在5~30pF之间选择电容值,电容值的大小可对频率起微调的作用。外部方式的时钟电路如图2.13(b)所示,XTALl接地,XTAL2接外部振荡器。对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。图2.14中电容C6和C7以及外接晶体构成并联谐振电路,它们起快速起、振稳定振荡频率的作用,晶振频率选6MHz,其值均为30P左右。其中TXD是串行输出口,RXD是串行输入口。当来电显示信号由FSK解码芯片HT9032解调出时间信号后,通过STC89C54的TXD引脚传输到时钟部分STC89C58的RXD引脚,从而实现来电显示时间信号对时钟的校时功能[6]56 XTAL1XTAL2XTAL1XTAL2外部振荡器(a)内部方式时钟电路(b)外部方式时钟电路图2.14时钟电路56 第3章系统软件设计3.1授时主程序授时器的主要作用就是将来电显示信号中的时间信号通过FSK解码提取出来,然后通过串口传输给将信号发送出去,其设计主程序如图2.15所示。,准备初始化开启中断显示时钟有无来电显示信号?发送来电显示信号来电显示信号模块待机模式读取来电显示信号图2.15授时主程序软件流程图56 3.2来电显示信号接收软件设计图来电显示信号通过电话线进来,然后将FSK信号解调成串行异步二进制数据,接着传送到STC89C54进行处理,最终将来电显示信号中的时间、主叫号码这些信息通过液晶显示屏显示出来。软件设计流程如图2.16.开始系统初始化开中断有无来电显示信号?接受来电信息数据处理来电信息数据显示来电信息图2.16来电显示信号接收软件设计图56 3.3时钟模块软件设计图时钟模块由时钟芯片提供时间信号,单片机处理信号然后传送到显示管显示时间。如果有来电显示信号进来,时间相差大于1分钟的话则进行自我校准。软件设计流程如图2.17.准备初始化来电显示信号接收模块来电显示信号接收模块是否有信号进来?写DS12887读DS12887数码显示刷新时间相差是否大于1分钟?图2.17时钟模块软件设计图56 56 第4章制作调试过程4.1PCB板制作PCB板的制作在电工电子实验室完成。首先,根据设计好的电路原理图使用Protel99绘制PCB图;其次,将设计好的PCB图打印出来,经过热转印将PCB电路图印制在覆铜板上;接着,将覆铜板放在浓盐酸加双氧水的溶解液里腐蚀;最后,将腐蚀好的电路板进行钻孔,涂上松香水晾干,等待焊接元器件。4.2元器件焊接根据电路原理图确定所需的电子元器件清单,将各元器件按PCB位置放好进行焊接。电路板焊接好以后,首先要做的是检查电路板是否存在短接,虚焊等情况。对坏掉的地方进行修补。4.3电路调试电路调试这一环节很重要,硬件电路的调试成功是软件系统能够运行的前提。在电路板通上电以前一定要确保电路的正确性,尤其是不能出现电源短路的情况。否则,电路有被烧坏的危险。硬件调试时,首先要根据电路原理图,对重要的信号节点,数据线进行测量,确保得到的值是符合原本设计要求的。4.4硬件结构组装硬件结构组装也是一个相当重要的步骤。因为整个系统使用的都是各个模块,如果连接的不好,会对信号才生一定的干扰。所以硬件搭建的要尽量避免信号的相互干扰。电路板的安装要尽量使导线容易布置4.5软件系统编写调试若把硬件比作人的躯干,那么系统软件就可以看做是人的大脑。没有一个灵活的大脑,躯干也就变得僵硬而无法进行很好的工作。当硬件电路设计、制作完成之后,整个系统的优越与否就由软件的性能来决定了。软件的设计首先是要按照要求完成所需的功能,接着就是在完成功能的基础上进行不断的改进。软件还可以解决一些开发后续中发现的硬件漏洞与不足。因此,一个好的软件系统将是一个系统最终成功的保证。56 软件系统调试时就需要不断地进行模拟试验,记录每次的试验数据,对数据进行分析之后再修改软件,通过不断的调试,系统将逐渐变得完善。56 结论本文详细介绍了基于来电显示信号的电子时钟设计,该系统以STC89C54/58为系统控制处理器,FSK解码芯片HT9032用来解调来电显示信号,通过STC89C54处理以及提取其中的时间信号,传输到时钟电路中,达到电子时钟自动校时的功能,最终,电子时钟将能够显示日期和时、分、秒。本文介绍了该系统各组成模块的电路原理和设计思路,并叙述了系统发放过程中的软件以及各种调试、测试。综合来看,基于来电显示信号的电子时钟系统分为硬件和软件两部分。其中硬件部分是来电显示信号的学习,电子实时时钟电路和显示电路的学习。软件部分主要是来电显示信号的解调。56 [参考文献][1]阎石.数字电子技术基础[M].北京:高等教育出版社,1998:46-67[2]蔡美琴.MCS-51系列单片机系统及其应用[M].北京:高等教育出版社,2000:16-34[3]孙俊逸,盛秋林,张铮等.单片机原理及应用[M],北京:清华大学出版社,2001:56-73[4]曹克橙.单片机原理及应用[M],第二版.北京:机械工业出版社,2009.01:12-23[5]徐宏亮,艾学忠等.实现多功能电子时钟设计[J].吉林化工学院学报,2001,33(4):62-67[6]丁元杰.单片微机原理及应用.第二版[M].北京:机械工业出版社,2001:45-67[7]潘新民.王燕芳.微型计算机控制技术[M].北京:高等教育出版社,2004:78-93[8]马忠梅.单片机的C语言应用程序设计[M].北京:北京北航出版社,2003:35-65[9]唐舜饶.实用电话原理及维修技术[M].电子科技大学出版社,2003:23-45[10]何桂丽,林善希.中国来电显示标准[S].北京标准出版社,1998:3-12[11]纪宗南.单片机外围器件实用手册[M].北京:北京航空航天大学出版社,2000:34-67[12]彭小军.用单片机实现电子时钟[J].新余高专学报,2004,23(2):25-32[13]PetovelloMG,LachapelleG.EstimationofclockstabilityusingGPS[J].GPSSolutions,2000,4(1):21-33.[14]NordicSinglechip433/868/915MHZTransceivernRF905datasheet,2004.7(3):25-37.56 附录A基于来电显示信号电子时钟的实物图图A1基于来电显示信号的电子时钟设计总图图A2主控制电路56 图A3副控制电路56 附录B系统软件程序/***********************************************************************************----------------------------------文件信息----------------------------------****文件名:时钟程序****创建人:BUILDBYHOUYULONG****创建日期:2011年03月16日****描述:实现基于来电显示信号授时的时钟,采用时钟芯片DS12887计时间,也可实现****手动校时和整点校时,还具备工业定时微控制器功能。****可嵌入标准C编译器、KEIL等****版本:v2.1********★〓〓★****★〓〓★************************************************************************************--------------------------------历史版本信息--------------------------------****创建人:HOUYULONG****版本:v1.0****日 期:2010年11月30日****描 述:实现基于来电显示信号授时的时钟,采用时钟芯片DS12887计时间,也可实现****手动校时和整点校时,还具备工业定时微控制器功能。****************************************************************************************--------------------------------当前版本修订--------------------------------****修改人:HOUYULONG****版本:v1.5****日 期:2011年03月9日****描 述:修改数码管显示余辉,闪烁问题,增加看门狗程序,EEPROM功能****注意:修改定时年*********************************************************************************/#include#include#include56 #defineucharunsignedchar#defineuintunsignedintsbitKEY_S=P0^0;//定时设置sbitKEY_1=P0^1;//设置选择键,右移------->sbitKEY6=P0^2;sbitKEY1=P0^3;//设置选择键,左移动<-----sbitKEY2=P0^4;//加键sbitKEY3=P0^5;//减键sbitDS_as=P3^1;sbitDS_cs=P3^5;sbitKEY4=P0^6;//确定键sbitKEY5=P0^7;//整点校时键sbitDS_rw=P3^6;sbitDS_ds=P3^7;sbitDAT=P3^2;//74LS164的数据端sbitCLK=P3^3;//74LS164的CP端sbitP34=P3^4;ucharserial_counter;//串行计数器intset=0;//键值uchars_set=0,time_s=0,key=0,key_6=0;//方波计数器ucharshan_flag=1,time_flag=1;//闪烁标志位;计时停止/开始标志位ucharbdataserial_byte=0;//串行口标志位定义在位寻址区字sbitSflag=serial_byte^0;//串行接收头部标志,8个都定义在'serial_byte'内,$GPZDA,*sbitGflag=serial_byte^1;sbitPflag=serial_byte^2;sbitZflag=serial_byte^3;sbitDflag=serial_byte^4;sbitAflag=serial_byte^5;sbitDHflag=serial_byte^6;sbitENDflag=serial_byte^7;unsignedcharidataserial_buff[30]={0};//串行口缓冲区,用于存放接收到的GPS信息ucharDATA[9]={0,30,12,6,1,1,11,0,2};//数码管显示缓冲区,存放秒,分,时,星期,日,月年uchard[4]={0,0,0,0};//阴历显示缓冲区,存放阴历日,月,年ucharidatatime[9]={0,0,0,0,0,0,0,0,2};ucharidatatime_on[9]={0,0,0,0,0,0,0,0,0};ucharidatatime_off[9]={0,0,0,0,0,0,0,0,0};ucharidatatime_on1[9]={0,0,0,0,0,0,0,0,0};ucharidatatime_off1[9]={0,0,0,0,0,0,0,0,0};/*IAP有关功能寄存器*/56 sfrISP_DATA=0xE2;sfrISP_ADDRH=0xE3;sfrISP_ADDRL=0xE4;sfrISP_CMD=0xE5;sfrISP_TRIG=0xE6;sfrISP_CONTR=0xE7;//----------------------------定义常量#defineENABLE_ISP0x83//晶振<12MHz//----------------------------flash存储的起始地址#defineDATA_FLASH_START_ADDRESS0x8000//stc12c2054aducharidatatime_buf[9]={0,0,0,0,0,0,0,0,0};uchardispcode[]={0xC0,//00xF9,//10xA4,//20xB0,//30x99,//40x92,//50x82,//60xF8,//70x80,//80x90,//90xBF,//-0xFF//不亮};//共阳数码管字型表/*公历年对应的农历数据,每年三字节,格式第一字节BIT7-4位表示闰月月份,值为0为无闰月,BIT3-0对应农历第1-4月的大小第二字节BIT7-0对应农历第5-12月大小,第三字节BIT7表示农历第13个月大小月份对应的位为1表示本农历月大(30天),为0表示小(29天)第三字节BIT6-5表示春节的公历月份,BIT4-0表示春节的公历日期*/ucharcodeyear_code[]={0x04,0xAe,0x53,/*/19010*/0x0A,0x57,0x48,/*/19023*/0x55,0x26,0xBd,/*/19036*/0x0d,0x26,0x50,/*/19049*/0x0d,0x95,0x44,/*/190512*/0x46,0xAA,0xB9,/*/190615*/0x05,0x6A,0x4d,/*/190718*/56 0x09,0xAd,0x42,/*/190821*/0x24,0xAe,0xB6,/*/1909*/0x04,0xAe,0x4A,/*/1910*/0x6A,0x4d,0xBe,/*/1911*/0x0A,0x4d,0x52,/*/1912*/0x0d,0x25,0x46,/*/1913*/0x5d,0x52,0xBA,/*/1914*/0x0B,0x54,0x4e,/*/1915*/0x0d,0x6A,0x43,/*/1916*/0x29,0x6d,0x37,/*/1917*/0x09,0x5B,0x4B,/*/1918*/0x74,0x9B,0xC1,/*/1919*/0x04,0x97,0x54,/*/1920*/0x0A,0x4B,0x48,/*/1921*/0x5B,0x25,0xBC,/*/1922*/0x06,0xA5,0x50,/*/1923*/0x06,0xd4,0x45,/*/1924*/0x4A,0xdA,0xB8,/*/1925*/0x02,0xB6,0x4d,/*/1926*/0x09,0x57,0x42,/*/1927*/0x24,0x97,0xB7,/*/1928*/0x04,0x97,0x4A,/*/1929*/0x66,0x4B,0x3e,/*/1930*/0x0d,0x4A,0x51,/*/1931*/0x0e,0xA5,0x46,/*/1932*/0x56,0xd4,0xBA,/*/1933*/0x05,0xAd,0x4e,/*/1934*/0x02,0xB6,0x44,/*/1935*/0x39,0x37,0x38,/*/1936*/0x09,0x2e,0x4B,/*/1937*/0x7C,0x96,0xBf,/*/1938*/0x0C,0x95,0x53,/*/1939*/0x0d,0x4A,0x48,/*/1940*/0x6d,0xA5,0x3B,/*/1941*/0x0B,0x55,0x4f,/*/1942*/0x05,0x6A,0x45,/*/1943*/0x4A,0xAd,0xB9,/*/1944*/0x02,0x5d,0x4d,/*/1945*/0x09,0x2d,0x42,/*/1946*/0x2C,0x95,0xB6,/*/1947*/0x0A,0x95,0x4A,/*/1948*/0x7B,0x4A,0xBd,/*/1949*/0x06,0xCA,0x51,/*/1950*/0x0B,0x55,0x46,/*/1951*/56 0x55,0x5A,0xBB,/*/1952*/0x04,0xdA,0x4e,/*/1953*/0x0A,0x5B,0x43,/*/1954*/0x35,0x2B,0xB8,/*/1955*/0x05,0x2B,0x4C,/*/1956*/0x8A,0x95,0x3f,/*/1957*/0x0e,0x95,0x52,/*/1958*/0x06,0xAA,0x48,/*/1959*/0x7A,0xd5,0x3C,/*/1960*/0x0A,0xB5,0x4f,/*/1961*/0x04,0xB6,0x45,/*/1962*/0x4A,0x57,0x39,/*/1963*/0x0A,0x57,0x4d,/*/1964*/0x05,0x26,0x42,/*/1965*/0x3e,0x93,0x35,/*/1966*/0x0d,0x95,0x49,/*/1967*/0x75,0xAA,0xBe,/*/1968*/0x05,0x6A,0x51,/*/1969*/0x09,0x6d,0x46,/*/1970*/0x54,0xAe,0xBB,/*/1971*/0x04,0xAd,0x4f,/*/1972*/0x0A,0x4d,0x43,/*/1973*/0x4d,0x26,0xB7,/*/1974*/0x0d,0x25,0x4B,/*/1975*/0x8d,0x52,0xBf,/*/1976*/0x0B,0x54,0x52,/*/1977*/0x0B,0x6A,0x47,/*/1978*/0x69,0x6d,0x3C,/*/1979*/0x09,0x5B,0x50,/*/1980*/0x04,0x9B,0x45,/*/1981*/0x4A,0x4B,0xB9,/*/1982*/0x0A,0x4B,0x4d,/*/1983*/0xAB,0x25,0xC2,/*/1984*/0x06,0xA5,0x54,/*/1985*/0x06,0xd4,0x49,/*/1986*/0x6A,0xdA,0x3d,/*/1987*/0x0A,0xB6,0x51,/*/1988*/0x09,0x37,0x46,/*/1989*/0x54,0x97,0xBB,/*/1990*/0x04,0x97,0x4f,/*/1991*/0x06,0x4B,0x44,/*/1992*/0x36,0xA5,0x37,/*/1993*/0x0e,0xA5,0x4A,/*/1994*/0x86,0xB2,0xBf,/*/1995*/56 0x05,0xAC,0x53,/*/1996*/0x0A,0xB6,0x47,/*/1997*/0x59,0x36,0xBC,/*/1998*/0x09,0x2e,0x50,/*/1999294*/0x0C,0x96,0x45,/*/2000297*/0x4d,0x4A,0xB8,/*/2001*/0x0d,0x4A,0x4C,/*/2002*/0x0d,0xA5,0x41,/*/2003*/0x25,0xAA,0xB6,/*/2004*/0x05,0x6A,0x49,/*/2005*/0x7A,0xAd,0xBd,/*/2006*/0x02,0x5d,0x52,/*/2007*/0x09,0x2d,0x47,/*/2008*/0x5C,0x95,0xBA,/*/2009*/0x0A,0x95,0x4e,/*/2010*/0x0B,0x4A,0x43,/*/2011*/0x4B,0x55,0x37,/*/2012*/0x0A,0xd5,0x4A,/*/2013*/0x95,0x5A,0xBf,/*/2014*/0x04,0xBA,0x53,/*/2015*/0x0A,0x5B,0x48,/*/2016*/0x65,0x2B,0xBC,/*/2017*/0x05,0x2B,0x50,/*/2018*/0x0A,0x93,0x45,/*/2019*/0x47,0x4A,0xB9,/*/2020*/0x06,0xAA,0x4C,/*/2021*/0x0A,0xd5,0x41,/*/2022*/0x24,0xdA,0xB6,/*/2023*/0x04,0xB6,0x4A,/*/2024*/0x69,0x57,0x3d,/*/2025*/0x0A,0x4e,0x51,/*/2026*/0x0d,0x26,0x46,/*/2027*/0x5e,0x93,0x3A,/*/2028*/0x0d,0x53,0x4d,/*/2029*/0x05,0xAA,0x43,/*/2030*/0x36,0xB5,0x37,/*/2031*/0x09,0x6d,0x4B,/*/2032*/0xB4,0xAe,0xBf,/*/2033*/0x04,0xAd,0x53,/*/2034*/0x0A,0x4d,0x48,/*/2035*/0x6d,0x25,0xBC,/*/2036*/0x0d,0x25,0x4f,/*/2037*/0x0d,0x52,0x44,/*/2038*/0x5d,0xAA,0x38,/*/2039*/56 0x0B,0x5A,0x4C,/*/2040*/0x05,0x6d,0x41,/*/2041*/0x24,0xAd,0xB6,/*/2042*/0x04,0x9B,0x4A,/*/2043*/0x7A,0x4B,0xBe,/*/2044*/0x0A,0x4B,0x51,/*/2045*/0x0A,0xA5,0x46,/*/2046*/0x5B,0x52,0xBA,/*/2047*/0x06,0xd2,0x4e,/*/2048*/0x0A,0xdA,0x42,/*/2049*/0x35,0x5B,0x37,/*/2050*/0x09,0x37,0x4B,/*/2051*/0x84,0x97,0xC1,/*/2052*/0x04,0x97,0x53,/*/2053*/0x06,0x4B,0x48,/*/2054*/0x66,0xA5,0x3C,/*/2055*/0x0e,0xA5,0x4f,/*/2056*/0x06,0xB2,0x44,/*/2057*/0x4A,0xB6,0x38,/*/2058*/0x0A,0xAe,0x4C,/*/2059*/0x09,0x2e,0x42,/*/2060*/0x3C,0x97,0x35,/*/2061*/0x0C,0x96,0x49,/*/2062*/0x7d,0x4A,0xBd,/*/2063*/0x0d,0x4A,0x51,/*/2064*/0x0d,0xA5,0x45,/*/2065*/0x55,0xAA,0xBA,/*/2066*/0x05,0x6A,0x4e,/*/2067*/0x0A,0x6d,0x43,/*/2068*/0x45,0x2e,0xB7,/*/2069*/0x05,0x2d,0x4B,/*/2070*/0x8A,0x95,0xBf,/*/2071*/0x0A,0x95,0x53,/*/2072*/0x0B,0x4A,0x47,/*/2073*/0x6B,0x55,0x3B,/*/2074*/0x0A,0xd5,0x4f,/*/2075*/0x05,0x5A,0x45,/*/2076*/0x4A,0x5d,0x38,/*/2077*/0x0A,0x5B,0x4C,/*/2078*/0x05,0x2B,0x42,/*/2079*/0x3A,0x93,0xB6,/*/2080*/0x06,0x93,0x49,/*/2081*/0x77,0x29,0xBd,/*/2082*/0x06,0xAA,0x51,/*/2083*/56 0x0A,0xd5,0x46,/*/2084*/0x54,0xdA,0xBA,/*/2085*/0x04,0xB6,0x4e,/*/2086*/0x0A,0x57,0x43,/*/2087*/0x45,0x27,0x38,/*/2088*/0x0d,0x26,0x4A,/*/2089*/0x8e,0x93,0x3e,/*/2090*/0x0d,0x52,0x52,/*/2091*/0x0d,0xAA,0x47,/*/2092*/0x66,0xB5,0x3B,/*/2093*/0x05,0x6d,0x4f,/*/2094*/0x04,0xAe,0x45,/*/2095*/0x4A,0x4e,0xB9,/*/2096*/0x0A,0x4d,0x4C,/*/2097*/0x0d,0x15,0x41,/*/2098*/0x2d,0x92,0xB5,/*/2099*/};/*月份数据表*/ucharcodeday_code1[9]={0x0,0x1f,0x3b,0x5a,0x78,0x97,0xb5,0xd4,0xf3};ucharcodeday_code2[3]={0x111,0x130,0x14e};ucharset_S,set_M,set_H,set_D,set_MT,set_Y,set_Z;uintIndex=0x01;//位选bitdisp_flag=0;//接收GPS信号完成标志位/////////////////////////////////////////////////////////////////////////延时程序,延时m*0.5毫秒///////////////////////////////////////////////////////////////////////voiddelay(intm){unsignedinti;unsignedintj;for(i=0;i23){hour=hour-24;//当大于24时,减去24day=serial_buff[10]*10+(serial_buff[11]+1);//当大于24时,北京时间为第二天凌晨,日期+1serial_buff[10]=day/10;serial_buff[11]=day%10;//回存到缓冲区}serial_buff[0]=hour/10;serial_buff[1]=hour%10;}/////////////////////////////////////////////////////////////////////////////将接收到的ASCII转换为BCD码////////////////////////////////////////////////////////////////////////////voidASCII2BCD(void){uchari;for(i=0;i<30;i++)//接收的数据全部转换{if((serial_buff[i]>=48)&&(serial_buff[i]<=57)){//接收到的是数字,转换为BCD码。BCD码=ASCII码-48serial_buff[i]=serial_buff[i]-48;}}}56 //---------------------------------------------------//功能:读一字节;调用前需打开IAP功能//入口:uintaddress=页地址0~512,为了提高处理速度,最好用0~256的范围//出口://设计://------------------------------------------------------ucharByte_Read(uintaddress){uchardatach;ISP_CONTR=ENABLE_ISP;//打开IAP功能,设置Flash操作等待时间ISP_CMD=0x01;//选择读AP模式//--------------------------address=DATA_FLASH_START_ADDRESS+address;ISP_ADDRH=(uchar)(address>>8);//填页地址ISP_ADDRL=(uchar)(address);//填页地址EA=0;ISP_TRIG=0x46;//出发ISP处理器ISP_TRIG=0xB9;_nop_();ch=ISP_DATA;//保存数据EA=1;//------------------------在处理器完成之前,CUP将暂停//------------------------关闭IAP功能,清与ISP有关的特殊功能寄存器ISP_CONTR=0;ISP_CMD=0;ISP_TRIG=0;//send_char_com(ch+0x30);return(ch);}//------------------------------------------------------//功能:擦除扇区//入口:uintaddress=页地址0~512,为了提高处理速度,最好用0~256的范围//出口://设计://------------------------------------------------------56 voidSector_Erase(uintaddress){ISP_CONTR=ENABLE_ISP;//打开IAP功能,设置Flash操作等待时间ISP_CMD=0x03;//选择页擦除模式//--------------------------address=DATA_FLASH_START_ADDRESS+address;ISP_ADDRH=(uchar)(address>>8);//填页地址ISP_ADDRL=(uchar)(address);//填页地址EA=0;ISP_TRIG=0x46;//出发ISP处理器ISP_TRIG=0xB9;_nop_();EA=1;//------------------------关闭IAP功能,清与ISP有关的特殊功能寄存器ISP_CONTR=0;ISP_CMD=0;ISP_TRIG=0;}//------------------------------------------------------//功能:字节编程,写//入口:uintaddress=页地址0~512,为了提高处理速度,//最好用0~256的范围;ucharch=要写的数据//出口://设计://------------------------------------------------------voidByte_Program(uintaddress,ucharch){//Sector_Erase(address);ISP_CONTR=ENABLE_ISP;//打开IAP功能,设置Flash操作等待时间ISP_CMD=0x02;//选择字节编程模式//--------------------------address=DATA_FLASH_START_ADDRESS+address;ISP_ADDRH=(uchar)(address>>8);//填页地址ISP_ADDRL=(uchar)(address);//填页地址ISP_DATA=ch;56 EA=0;ISP_TRIG=0x46;//出发ISP处理器ISP_TRIG=0xB9;_nop_();EA=1;//------------------------关闭IAP功能,清与ISP有关的特殊功能寄存器ISP_CONTR=0;ISP_CMD=0;ISP_TRIG=0;}//------------------------------------------------------//功能:字节编程,写字符串//入口:uintaddress=页地址0~512,为了提高处理速度,//最好用0~256的范围;ucharch=要写的数据//len=字符串的长度//出口://设计://------------------------------------------------------voidMorebyte_Program(uintaddress,uchar*ch,ucharlen){uchark=0;Sector_Erase(address);do{Byte_Program(address,*(ch+k));address++;k++;}while(k

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭