ImageVerifierCode 换一换
格式:DOCX , 页数:52 ,大小:1.71MB ,
资源ID:3347795      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3347795.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机设计LED显示电子钟毕业论文.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机设计LED显示电子钟毕业论文.docx

1、基于单片机设计LED显示电子钟毕业论文基于单片机设计LED显示电子钟毕业论文目 次 1 引言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上1。 单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点2。因此,它应用广泛前景美好,它的实用性大大地提高了我对毕业设计的兴趣。在我国,单片机的开发应用已有15年左右,已经形成一支庞大的技术开发队伍,为我国单片机应用积累了丰富的经验。随着电子

2、技术、计算机芯片技术和微电子技术的飞速发展促进了单片机技术一日千里的变化3。随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。来自英国Labcenter Electronics公司的Proteus软件很好地

3、诠释了利用现代EDA工具方便快捷开发单片机系统的优势。它包括PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN两大组成部分,在PC机上就能实现原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证以及形成PCB文件的完整嵌入式系统设计与研发过程。单片机系统作为一种典型的嵌入式系统,其系统设计包括硬件电路设计和软件编程设计两个方面, 其调试过程一般分为软件调试、硬件测试、系统调试3个过程。如果采用单片机系统的虚拟仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。数字钟是采用数字电路实现对时,分,秒,

4、数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。数字钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便4。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究数字

5、钟及扩大其应用,有着非常现实的意义。电子钟在工业控制和日常生活中是很重要的,它不仅可以用于计时、提醒又可用于对机器的控制,在自动化的过程中必然有电子钟的参与,因此电子钟的应用会越来越广泛。而且向着精确、低功耗、多功能发展。基于单片机设计的数字钟精确度较高, 因为在程序的执行过程中, 任何指令都不影响定时器的正常计数,即便程序很长也不会影响中断的时间。从而,使数字钟的精度仅仅取决于单片机的产生机器周期电路和定时器硬件电路的精确度。另外,程序较为简洁,具有可靠性和较好的可读性。如果我们想将它应用于实时控制之中,只要对上述程序和硬件电路稍加修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产

6、中去。数字电子钟的设计方法有多种,例如,可用中小规模集成电路组成电子钟, 也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟还可以利用单片机来实现电子钟等等。这些方法都各有特点, 其中,利用单片机实现的电子钟具有编程灵活, 便于功能扩充, 精确度高等特点5。基于以上分析,在此次设计中,我选择的是利用单片机制作电子钟。电子钟的设计本身包括程序的设计和硬件电路的设计6。我的思路是,先进行电路的整体设计,再根据电路进行编程,在编程的过程中,对电路进行微调,以更好地配合程序。在设计完成后,进行程序调试,调试软件选择MedWin,调试成功后,再根据电路图画出仿真图,将软件装入单片机芯片

7、,利用Proteus软件进行仿真,仿真中的错误通过改正程序中的逻辑错误和电路中的设计不当进行排除,这个过程是很艰难的但也是很重要的。若仿真可以实现,则硬件电路的实现就可以有条不紊地进行。 2 整体设计思路这部分主要介绍工作安排和整体设计的思想。工作过程规划如下:图2.1 整体设计思路针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51 单片机是一款低功耗,高性能CMOS8位单片机,片含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构7。这样,既能做到经济合理又能实

8、现预期的功能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。本电子钟设计主要是依照图2.1中的流程做出来的,时间分配比较均匀。首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。这是前期准备工作。第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。第三部分是软件部分:先学习理解汇编语言

9、的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。第五部分是软件仿真部分:软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。第六部分是硬件实现部分:连接电路并导入程序检查电路,若与设计的完全一样一般能实现想要的功能。最后进行功能扩展,本设计加进了日期显示与调整功能。 3 主要元件的使用方法下面就本次设计中用到的主要元件的所有功能进行简单的介绍,包括AT89C51单片机、74LS07芯片、以及数码管的特性和用法。3.1 AT89C51单片机8:该单片机功能强

10、大,不仅能满足设计的需要,也可以在设计要求的基础上进行一些扩展。单片机的结构如下:图3.1.1 单片机引脚图在使用时VCC接电源电压,GND接地。P0,P1,P2,P3可作为输入或输出端口,RST是复位输入,接复位电路。XTAL1和XTAL2接复位电路。这些可以在硬件设计部分体现出来。3.2 7407驱动器9:7407是集电极开路六正相高压驱动器,1入2出,3进4出,5进6出,9进8出,11进10出,13进12出,7接地,14接高电平。7407引脚图:图3.2.1 7407引脚图7407逻辑图:图3.2.2 7407逻辑图3.3数码管:图3.3.1 数码管使用共阴极数码管时将6个数码管按相同功

11、能连接起来,3与8相连,当选通端所接管脚为低电平时该数码管选通。单片机的P2口作为选通端,连接各数码管的3、8引脚轮流显示,连接时要加7407和上拉电阻。单片机的P1口作为功能段,通高电平的引脚会使相应段亮起,同样的也要与7407和电阻连接使用。4 电路设计4.1整体设计此次设计主要是应用单片机来设计电子时钟,硬件部分主要分以下电路模块:显示电路用六个数码管分别显示小时(年份)、分钟(月份)和秒(日),通过动态扫描进行显示,从而避免了译码器的使用,使电路更加简单。单片机采用AT89C51系列,这种单片机应用简单,适合电子钟设计。电路的总体设计框架如下:图4.1.1 电路模块图4.2 分块设计这

12、部分介绍各模块电路的设计方法和成果,主要分为:输入部分、输出部分、复位和晶振电路。42.1 输入部分在电子钟的输入部分,设置相应的置数功能,通过外部设备的输入,如按键,实现时间的修改10-11。除此之外,调整闹铃、定时、日期时也需要按键进行输入。在选用输入端口时,将P3引脚与按键相连进行输入12。设计的输入部分如下:图4.2.1 输入部分各按键功能在后面的部分将会介绍到42.2 输出部分(显示电路)该部分电路图如下所示:图4.2.2 显示部分在实际电路中采用单个数码管相连进行显示,先把数码管的1、2、4、5、6、7、9、10对应相连,然后把各晶体管的3和8引脚各自相连,P1.6P1.0分别接a

13、g,P2作为选通端P2.0P2.5分别从左到右接各数码管的3、8端。采用动态显示, 即一位一位地轮流点亮各位显示器18,因此P2.0P2.5轮流置0。持续时间为1ms,这点在程序部分还会讲到。42.3 晶振与复位电路:图4.2.3 晶振与复位电路5 程序设计5.1程序思路图5.1.1 程序设计思路结合电路,程序的总体思路是17:1、点复位键后,进行时间显示,从0时0分0秒开始。2、按下按键1时,进行调时,此时按下4调整时,按下5调整分,若2秒钟未按键,则不再等待,恢复走时,持续按键时大约0.3秒步进1,下同。3、按下2键时进行闹铃调整,用4、5键分别调时和分,此时只有前四位进行显示,即闹铃功能

14、精确到分,2秒钟无按键则返回时间显示,时间到达闹铃所定时间时P0.7输出高电平,蜂鸣器响,按下按键2或3时蜂鸣器停止。4、按3键时进行定时的设定,同样,分别通过4、5调整分和秒,若两秒未按键则不进行定时,设定之后再次按下3键则进行倒计时,倒计时时间未到时若按下1键则进行时间显示;若倒计时时间到则P0.7为高电平,蜂鸣器响。定时的最大值为59分59秒。在程序设计时,尽量改进算法,算法的改进可以使相对误差减小12,或者可以使占用空间减小14。另外,分块的设计思想要贯穿始终,整个程序较为繁杂,某些程序段会反复用到,因此采取的方法是写出多个程序段,通过跳转指令进行调用。5.2程序设计步骤在程序设计过程

15、中,我遇到了很多困难,这部分也是让我学到很多东西的地方。首先,我学习了定时器的相关知识,计数器的使用是很重要的组成部分15,在这个设计中选择计数器T0。T0的工作方式有:方式0:不推荐方式1:16位计数器,常用方式2:自动重装初值的8位定时/计数器方式3:T0相当于两个独立的8位定时/计数器此程序采用方式1,方式1的定时时间t为t=(216-M)*12/fosc。其中M为定时器初值,fosc为12MHz,若M为0则t=65536*12/2*106=65.536ms。因此可取50ms为计时单位16,初值M应为50*10-3*106=216-M。M=15536=11110010110000=3CB

16、0。即定时器初值为TH0=03CH,TL0=0B0H。定时器中断20次为一秒,这部分在中断程序中用到。其次,我参看了文献中的设计思路,做到胸有成竹后再进行具体的程序书写工作。认真学习了教科书中关于汇编语言编程的问题,熟悉了汇编语言的编程方法和语法习惯。第三步就是进行具体的程序编写工作。5.3程序的主要模块5.3.1延迟程序在动态扫描时,必然用到延迟程序,这里使用延迟1ms的程序,此程序需要反复调用。此段程序是很简单的,但就是在这段简单的程序上,也会出现问题,若用D_1MS:MOV R7,#500DJNZ R7,$RET则会出现警告,因为R7是8位寄存器,所能存储的最大值应为255,所以应改为:

17、D_1MS:MOV R7,#2D_5:MOV R2,#250DJNZ R2,$DJNZ R7,D_5RET5.3.2 中断服务子程序:中断服务程序中,总体思路是:由于初值是3CB0H,所以装满定时器需要50ms的时间,从而20次中断为一秒,一秒之后,判断是否到60秒,若不到则秒加一,然后返回,若到,则秒赋值为0,分加一,依次类推。包括日期显示的功能也是如此。另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄存器,需要时将其进行显示。基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0之后,秒赋值为59,分减一,直到分为0。再显示走时部分。流程框图如下:图5

18、.3.1 中断程序思路5.3.3 主程序主程序主要对按键进行扫描,以及判断定时和闹铃时间是否已到,若到则调用声音程序,该段程序如下:MAIN:JNB P3.0,DATETZ;按下0键时,显示日期并可对日期进行调整JNB P3.1,ZSTZ1;按下1键时,显示时间,并可调时JNB P3.2,NLTZ1;按下2键进行闹铃设置JNB P3.3,DSTZ;按下3键进行定时设置ACALL DISP;MOV A, HOUR;SUBB A, 38H;JZ FEN;AJMP DSPD2;FEN:MOV A, MINUTE;SUBB A, 37H;JZ SHENGYIN1;DSPD2:MOV A, R4;JZ

19、S_PD;AJMP MAIN;S_PD:MOV A, R3;JZ SHENGYIN1;AJMP MAIN;5.3.4显示程序6个晶体管轮流进行显示,分别显示1ms,这依赖的是人们视觉的惰性,该段程序如下:DISP:;走时的显示程序,包括调时时的显示MOV DPTR,#LEDTABMOV A,SECONDMOV B,#10DIV AB;A存十位B存个位MOVC A,A+DPTRMOV P1,ACLR SEC_SACALL D_1MS;显示秒十位SETB SEC_SMOV A,BMOVC A,A+DPTRMOV P1,ACLR SEC_GACALL D_1MS;显示秒个位SETB SEC_G以此类

20、推,进行时和分的显示RET另外,调闹铃和定时时间、进行日期显示时,有各自的显示程序,但不能成为独立子程序,分别柔和在闹铃、定时、和日期程序中。5.3.5 闹铃程序和定时程序这两段程序分别包含了各自的显示、调整程序。程序思路是对照,走时部分的程序,进行编写,包括显示程序,与显示时间的程序是相似的,闹铃和定时的调整程序与走时调整程序相似。5.4程序调试程序写完以后必须进行调试,以验证程序是否正确。在程序调试时,出现了很多问题,比如跳转距离过长、打错字母、逻辑有错等,发现问题后,利用两天时间进行了改正,但即使编译通过,最后也不一定能够实现功能。以为程序的调试只能检查出语法错误,而不能检查出逻辑的错误

21、。要真正把程序写对,要通过仿真发现并且改正错误。6 功能仿真这部分工作可能遇到的困难是很多的,程序庞大很可能出现各种问题。在仿真工作中,首先要对仿真软件有足够的了解并能够正确熟练地运用6.1 软件介绍在这部分工作中用到了medwin3和Proteus两个软件,其中Medwin3用来编译程序并生成hex文件,装入Proteus仿真图的芯片中,通过仿真结果一步步进行调整最后达到预期的功能。6.1.1PROTEUSPROTEUS软件是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,可以实现数字电路、模拟电路及微控制器系统与外设的混合电路系统的电路仿真、软件仿真、系统协同仿真和PCB设计等功能,是

22、目前唯一能够对各种处理器进行实时仿真、调试与测试的EDA工具。微控制器系统相关的仿真需建立编译和调试环境,可选择MedWin V3 软件。该软件支持众多不同公司的芯片,集编辑、编译和程序仿真等于一体,同时还支汇编和C语言的程序设计。Proteus的界面友好易学,在调试程序、软件仿真方面有很强大的功能。 其革命性的功能是:将电路仿真和微处理器仿真进行协同,直接在基于原理图的虚拟原型上进行处理器编程调试,并进行功能验证,通过动态器件如电机、LED、LCD、开关等,实时看到运行后的输入、输出的效果。Proteus为我们建立了完备的电子设计开发环境。6.1.2MedWinMedWin可以用来编写汇编语

23、言程序并进行编译、产生代码并装入仿真器以便于仿真,在输出文件夹中会产生hex文件,将该hex文件导入仿真图的单片机芯片中即可进行仿真。使用时点击“项目管理新建项目”就可以建立编程的平台,然后选择项目管理中的新建文件就可以建立asm文件,在这个文件中可以进行程序的编写,程序编写完毕后可点击“项目管理编译汇编”看其是否有错,有错时,在下面的窗口会提示出错的行以及错误原因。改正无误后可产生代码并装入,将hex文件导入单片机中即可进行仿真6.2仿真过程:通常在仿真过程中会遇到很大的麻烦。在程序汇编通过之后程序不一定是正确的,比如我刚开始进行仿真时数码管并不进行显示,结果发现应该是置零的置一了,应该置一

24、的置零了。改正之后发现虽然走时程序正常了,但是调时中出现了大量的问题,更不要说闹铃和定时程序了。在整个毕业设计的过程中程序的修改贯穿始终,在修改的过程中一定要条理清晰,认真细心。6.2.1仿真图的绘制在使用Proteus进行仿真时,仿真图不用画出数码管驱动程序,其他部分与设计的硬件图相仿。绘制结果如下:图6.2.1 仿真图6.2.2功能的实现在绘制仿真图之后,要向单片机装入程序,从而使单片机开始工作并带动整个电路工作,装入过程为:点击单片机,选择所编译程序的输出hex文件,确定即可。此时单片机会按照程序所设定的功能进行工作,在仿真过程中会遇到各种问题,在第九章会具体讲到。这里列出仿真结果:(1

25、)走时仿真:图6.2.2 走时状态下的仿真结果(2)闹钟设定的仿真:图6.2.3 闹铃仿真结果可见所定闹钟时间为10点15分。(3)定时钟倒计时的仿真:图6.2.3 倒计时仿真可见,倒计时进行到3分3秒。7 实际电路的实现在仿真无误后,开始进行实际电路的搭接。搭接时先不用芯片实物,而用仿真器替代。按照电路图,先把数码管按照对应的管脚连接起来,然后接驱动电路等,接好之后把程序装入仿真器,通电运行,再对电路进行调试。在根据电路图搭接好各个器件后,一个很重要的问题就是检查各器件是否完全工作。下面介绍检验方法:导线看似不用太费力气去检验,但一个成功的实验需要前期充分的准备,比如在我的实验过程中,由于导

26、线繁多,而且使用旧导线进行实际电路的连接,所以就出现了导线不通的情况,因此验证过程中不要放过小问题。数码管的检测:拆除89C51芯片,先分别给芯片P2对应的导线加低电平,再分别给P1对应的导线加高电平,使每个数码管的每一笔段都能亮。若出错,先检查电路的连接再换一下器件试试,对于此电路问题出在7407的连接方法的问题比较大。这部分需要重点验证。随后,按下复位键看9引脚是否为低电平,是则没有错误。通过以上工作,硬件仿真无误后,可以用单片机芯片代替仿真器进行最后的实现工作,用easyPRO80B编程器将程序下载到芯片中,具体步骤为:先进行擦除,然后查空,查空无误后打开所需的hex文件,然后进行编程、

27、校验。这时程序载入了芯片中,就可以实现相应的功能了。实验结果如下:图7.1 走时显示实物图这里要说的是,软件仿真成功和硬件电路实现之间是有很大差别的,在做软件仿真时,没有驱动的问题,没有芯片和器件质量的问题,也没有电线导电的问题,没有工作条件的问题,但在实际电路中这些因素都要考虑。常常会出现这种情况:软件仿真实现了,但实际电路没有任何功能。在电子钟硬件实现过程中,就出现了很多问题,有引脚接错的问题,也有插线松动或电线不通的问题,这些问题都是需要耐心和细心认真解决的。 8 日历功能的实现在加入其它功能时,我想到了很多可能达到的功能,比如加入备用电源、夜间亮灯功能、多个闹铃的功能、显示日期功能等。

28、然后我进行了理论上的验证,加入备用电源可避免因停电而造成的电路全部失灵20,21,但受到实验条件的影响未选择对这个功能进行实现。夜间亮灯功能对程序要求不高,但在电路中要加入传感器,把光的照度测出来后,低于某一值时,灯亮,从而使得夜间时也能看到时间显示,虽然程序简单,但由于要加入传感器,容易受到干扰,各项工作投入时间较长,考虑到时间有限,也没有采纳这个方案。闹铃的功能和日期的功能的实现都是比较容易的,做了权衡之后我选择了后者,因为日期功能主要涉及算法和程序的跳转、调用等,更能加深对单片机的认识和理解。在设计的开始阶段,我主要考虑了日期的逻辑算法19。首先,要考虑年份是不是闰年,闰年的判断方法是:

29、将年份除以100,若能整除,则将年份除以400,若还能整除,则为闰年,若不能,则为平年;若不能被100整除,则判断是否能被4整除,若能,则为闰年,若不能则为平年。只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判断是不是2月,若是则在相应的年中进行日期的增加,若不是则转入平时的月份。其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月为每月30天。在电路方面有两种方法:(1)可以增加6个数码管用来显示日期,但这样显然电路更复杂;(2)用按键的输入决定6个数码管显示日期还是时间,这种情况下,只需加一个按键即可,不用增加数码管。最终的按键控制为:按下1键时,显示日期,并且用4

30、、5、6键分别调整年、月、日;按下2键时,进行走时和时间调整;3键位闹铃键;4键为定时键。这样实现功能的好处是:(1)电路简单,若同时显示日期和时间,则需要的引脚很多,需要加入译码器对引脚进行扩展。采用按键决定显示时间或日期的方法避免了这个问题;(2)节约空间,节约成本。程序思路如下:图8.1 扩展部分思路由于在前面的工作中积累了较多的经验,对汇编语言已经相当熟悉,因此在实现日历功能时,程序设计显得相当容易。按键如图8.2所示,按键功能如下:按下按键1时,显示日期并且允许对日期进行调整;按下按键2时,显示时间并且允许对时间进行调整;按下按键3时,显示闹钟所设定的时间并允许通过5、6键对闹钟进行

31、设定;按下按键4时,显示定时功能所设定的时间并允许对其进行设定,再次按下时,开始倒计时过程,并进行倒计时过程的显示,在显示日期时,该键可对年份进行调整;按键5、6可对时间显示时的时、分或日期显示时的月、日进行调整。按键形式:图8.2 按键图示实验成果如下:图8.2 日期显示实物图图中显示的日期为10年5月27日。9 电子钟设计中遇到的问题及其解决方法在电子钟设计中程序比较长,遇到了各种各样的问题,比如跳转距离过长出现语法错误。因此修改程序的时间很长,有语法错误,也有仿真时功能无法实现的问题,在此不能一一说明,只能对个别问题加以阐述。由于在走时调整、闹铃调整及定时设定时,按下键时每0.2秒步进1,这就需要每0.2秒对按键输入进行一次扫描,因此开始时,我用的是延迟0.2秒再返回按键扫描程序的方法,但是可以想到,进行单纯的延迟时,不会有显示,在仿真时功能没有实现。后来我采用的是反复调用若干次显示程序以实现延迟,较好地解决了这个问题。虽然现在回过头来发现这个问题很简单,但当时是百思不得其解。我从中学到:任何简单的事情都会有出错的可能,有些时候人的思路中的一些错误是自己难以发现的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1