但无法产生南北和东西显示时间差为10s的结果。Р解决方案:再增加使用两个寄存器R4和R5分别寄存南北和东西向的时间显示中间值,R1只用于每个状态的计数!Р问题②:编辑显示子程序过程中,需要将相应的R4或R5里的中间值个十位分别显示在相应方向的计时器上。Р解决方案:通过一段时间的思考最后选择如果将十进制数转化为十六进制数,个位转化为十六进制的低四位,十位转化为十六进制的高四位。然后先屏蔽高四位,利用屏蔽后的值查表取得个位的时间字型码,输出给相应方向的个位。然后再对该十六进制数高低位转换,再屏蔽高四位,利用屏蔽后的值查表取得十位的时间字形码,输出给相应方向的十位。Р问题③:因为项目拥有8个完全不同的状态,在选择中断方法时遇到很大难题,耽误了项目进程。Р解决方案:通过对该项目的分析,总结出虽然项目的八个状态时间和红绿灯状态截然不同,但是每个状态都有自己的独立时间,同时也可以对每个状态进行独立的输出,这样就需要对每个状态设置相应的标志位,通过判断每个状态的标志位,在中断计算和显示时就进入相应的状态。Р问题④:无法完成项目扩展功能,即外部中断完成后无法回到相应的中断点。Р此功能由于设计较多中间参数,暂无法实现中断过程中的保护现场和恢复现场,正在寻求解决方案。Р六设计总结Р通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过收获却是很大的。Р在本项目中的设计过程中,遇到了很多的问题,在刚开始的第一天一直在考虑整个程序的设计方法,以及对于如此多的截然不同的状态,一时无法找到好的办法来实现每个状态的准确显示。所以,第一天我一直处于分析整个项目过程,对每个状态进行分析和每个状态之间共用值的联系和相互之间的影响。