一、前言
在做真题时,笔者头脑一片混乱,是不知道从何开始的,直到学长给了一份官方的代码,才知道完成题目之前可以有一个比较规范的模板,模板包括了必考的三个内容:LED,按键和数码管。
二、代码写法分享
笔者这也只算是搬运工,只因为觉得官方的比自己写得要好太多。
新建一个工程时,大赛要求是以准考证号来命名,大家要多这样做,习惯一下。
SEG
之后的关闭设备函数和led显示函数都会放进seg文件去写,这俩个都是靠IO口控制的,代码风格跟之前有挺大变化,大家适应适应。
以下是seg文件模板的第二步,也是写在.c文件里。
第三步就是显示函数。写完第三步就完成了seg文件模板的撰写。(写其他代码不会再修改)
TIM
我们在写完该文件之后理应该在主函数中测试,但是因为数码管要分配进程,所以要先把定时器的模板文件写好。
第二步就是在main文件里面定义一些要用到的变量,然后在tim文件里面外部声明,放到T1_Proc函数里面每毫秒加加一次。
第三步就可以开始写Seg_Proc函数了,逻辑在之前的章节有讲。
勘误:1.忘记了加上熄灭的情况
2.tim.h文件里面这个void Timer1Init(void)忘记加分号
实验现象:
KEY
第一步就是按键的扫描部分。
第二步就是对应键值的赋值。
第三步就是在main文件里面定义变量,放进定时器加加加,再分配进程给Key_Proc函数。
第四步,撰写Key_Proc函数,并且声明和调用。
结尾
实验现象:
1.按键5按下,状态值加加并且显示在数码管上,按键按下的速度可以很快,比笔者之前写的代码的灵敏度高了非常多,这就是分配进程的好处,同时LED灯显示二进制码的加加。
2.按键4按下,直接切换状态,00和10之间切换,按住按键不会对LED有任何影响。
至此,这三个模块的模板就搬运完了,比赛时这三个.c文件基本不会改动,除了那个定时器一般会改为开中断,我们做题修改就主要在main里面的三个函数里面或者再添加相应函数来完成题目,所以快速写好此模板可以帮助我们更快开始题目的测试。所以,笔者觉得记住此模板好处多多。