——从进赛场开始讲
-
新建工程(增加头文件地址,模块分类文件夹,各有4个)
-
创建stc_config.h(放冲突定义,俩个主头文件,三个数据类型)
——编译一下
-
编写数码管
-
H文件(放冲突,一个变量,一个函数)
-
C文件(三个变量,一个函数,一个定时器)
★注意extern
- 4个宏定义
-
-
在主函数进行测试
- 初始化LED,继电器
- 测试数码管
——编译,烧录到板子测试
——发试题了
-
分析试题
-
过一遍大致的功能(了解一下大概考什么内容)
-
用笔在纸上分析整个状态机结构(状态机结构推荐按照大界面功能来分类)
★先态,事件功能,跳转条件,次态(最好图和表都写出来)
-
-
构建按键模块
-
KeyScan()(先写一个就测试)
-
如果是矩阵键盘,写了一个就可以开始测试
-
测试的时候可以构建软件定时器
——如何排除BUG,
先让定时器不起作用,在主循环里反复执行,排除定时器的bug
在返回值前面加一个赋值,看是否是模块卡机。如果有输出,模块的逻辑出了问题
-
-
测试完成后,再把所有所需的按键写出来再测试一次。
——完成输入输出的构建。 时间过去一个小时
-
-
完成成剩余模块。(看试卷的最开始的框图确定)
- 把考试提供的驱动移动到工程里并检查一遍
- 单片机核心头文件的替换
- 检查引脚是否正确
- 检查延时函数是否正确
- 完成功能函数
- 注意初始化,完成读取函数和写入函数
- 注意数据处理
——每完成一个模块做一次测试
-
重新审视刚刚写的状态机表,构建状态机框架
-
增加系统状态变量以及系统宏定义。
-
编写状态轮询程序
-
编写状态CH文件
★一般来讲,在事件功能中,分为逻辑以及界面,逻辑可能和跳转条件粘合在一起,而界面是独立存在的
- 可以先写界面和跳转函数
- 可以先完成一个状态下的所有事件功能再完成跳转逻辑
- 抛弃一些太过复杂的功能
-
- 把考试提供的驱动移动到工程里并检查一遍