显示没有问题。按键检测功能正常。
5.分析与总结
此次的课外学分设计和以前的电路不一样,硬件相对较少,重要的部分是大量的程序。在硬件方面,基于自己熟练的焊接电路的技术,电路一次就焊接成功了。程序方面,开始的时候,基于老师以前的数码管动态扫描程序进行扩展,增添年、月、日、时、分、秒、星期和一些必要的变量,借用改变扫描次数将4位数码管显示扩展成8位数码管显示;由于没有太多的编程经验,一次性就写了150多行的程序才用PROTEUS软件仿真验证,致使程序出现很多错误,达不到预期要求。吸取上午的教训,一点一点的寻找并修改程序中的错误,当遇到难理解和不懂的问题时,除了找资料外,我还找同学帮忙。经过努力,程序中的错误慢慢被找出并做了修改。通过编程,深深的认识到自己的不足,和自己一些写程序喜欢一次写很多的坏习惯。以后会改正。后面成功的实现了8位数码管的静态显示,能显示时分秒星期(08183202),之后以上面的程序修改,完成了显示年月日(12022102),然后通过延时子程序达到MIAO(秒)的1S自加。且通过判断MIAO(秒)变量的变化,实现了在4045秒时显示年、月、日、星期其余时间显示时、分、秒、星期的交替显示,达到8位数码管显示完整的时间日期。后面经过丁老师的批评,修改了用延时子程序不准确MIAO(秒)加一的做法,使用定时器T0以达到精确的1S。继续完善程序功能,原计划实现三个按键的暂停修改时间和恢复功能,可是在扩展按键子程序过程中,一直未能实现按键修改时间数据的功能。而且在子程序中使用了大量LJMP语句,使程序结构混乱。再次批评下自己。并在后面对各个子程序进行了修改,也加上了PUSHPOP等保护现场的语句,使程序不易出现错误。追求完美的自己想实现按键修改时间数据的功能,在试用了不同的方法和思路对程序进行修改后,依然没能实现预期效果,在还没有焊接电路的情况下,只好放弃原计划的按键功能,将按键修改为停止、显示日期、恢复这三个功能。并在PROTEUS软件仿真验证成功。本次的编程经历让我学习到很多:写程序应该一点一点写,并进行逐步的验证和完善,在程序出现问题时,借用副本程序对程序段进行验证,从而查找程序中的错误,做出正常的修改。并且程序将各个功能分模块写,时程序的可读性了可移植性加强。在出现问题时也能很快的找出错误,对其进行修改。在焊接电路的时候,自己暴露了很多缺点,前期的布线不完美,焊接点的不美观等,我认识到自己应该对进行一些焊接电路r