一、系统缺点及注意点:
这两天自己做了一个奥运倒计时,这是我第一次完全靠自己作出来的。在做的时候遇到一些困难,也有有一些收获。个人感觉如果在代码实现之前不进行规划设计,而只是凭空想一下实流程,到代码实现的时候会比较累,做出来的东西也有缺陷,而且各个状态之间的转换也有些乱,代码实现也有些费劲。
在实现系统的时候,存在的缺陷和一些考虑:
①检测键盘有无键按下时,采用状态机来实现。如有键按下,根据按下的键,转入相应的状态。在显示数据时,根据当前 状态,显示相应数据。
②在键盘10内无键按下时,转入正常状态显示。在按下确定键时,离上次键按下是否<=10s;若否,则不对时间重新设置。
③当设置的标志位满足条件时,应将其清零或转为相应的值。如设置当前时间时,10s之内没有按下确定键,则应将状态设置为1。
④对当前时间和设置的时间应分离,保证没有按#确定时,时间能正常显示。
⑤time_to_buffer(void)函数,非通用的,只能对一些特定格式的时间进行处理。
⑥此系统最多只能倒计时99天,应采用AVR-51板,只有8个LED数码管,倒计天数只有两位。
⑦对日期设置时,最后两位日期显示有缺陷。
当月份为2时,日期的十数位a(即从右到左第二个),最大值应为2;若a为2,日期的个数位b(即从右到左第一个),平年最大值为8,闰年最大值为9。
当月份为4,6,9,11时,日期的十数位a(即从右到左第二个)值为3时,末尾只能为0;若为其他月份,日期的十数位a(即从右到左第二个)值为3时,末尾为0或1。
⑧在代码实现的时候,对可以单独出来的模块,应该放在单独的文件里,便于代码重用。
二、进一步:
在以后进行系统的设计时,我觉得应该这样做:
①文档说明:说明要实现哪些功能,这个系统如何工作。
②设计出系统工作的时序图、协作图
③写出系统用到的全局变量
④用伪代码说明整个系统
⑤对各个功能模块用代码实现
代码在我上传的资料中