这是我第二次写第六届国赛的题目。主要的感受就是出题人的意图模糊不清,所以我压根不明白出题人到底想要哪一种现象。比如,题目中提到空载时数码管不显示,但后面又说要在空载的时候显示界面3…实在是矛盾。。。当然,诸如此类的bug还有不少,出题人也没有明确表示对应的细节。话说到这,现在我以自己的认知重新做这套题目。
首先,附上该题的真题和完整代码,完全开源免费,请自行食用!
https://download.csdn.net/download/qq_44629819/18900804?spm=1001.2014.3001.5501
这届赛题很常规,并没有什么突出的亮点,毕竟逻辑很混乱,所以我只能用很多if去完成这道题。
现在,我把这届赛题觉得有意义的点说一下:
1、LED灯及数码管闪烁
if(machine_bit)
{
led4_count++;
if(led4_count>=1001) led4_count=0;
if(led4_count<=500) {led_choose2=4;}
else if(led4_count<=1000) {led_choose2=0;}
}
else
{led4_count=0;led_choose2=0;}
这样写的目的是让led4在1-500计数值中点亮,在501-1000计数值中熄灭。必须注意代码if(led4_count>=1001) led4_count=0;
这行代码必须写在最前面。并且需要注意“>”和">="等符号的区别。
2、EEPROM底层代码
在我写EEPROM底层代码时,我忽略的在代码IIC_Stop();
的前面添加IIC_WaitAck();
导致我EEPROM操作一直实现不了。。。。
OK,就此结束