第x篇:亚龙236 单片机实验台 程序框架及伪代码实现
亚龙236实验台是单片机项目技能竞赛设备,所以辅导也是围绕设备来进行的。
先分析一下常用模块的工作要求和状态转换:
1、4*4键盘
功能要求:及时响应操作、不能影响显示稳定。
时序要求:10ms读一次,做防抖。
2、led点阵、数码管
功能要求:显示不闪、不卡、亮度足。
时序要求:每1ms刷新一行或一位以稳定显示,不能被其它程序影响。
3、lcd1602、12864
功能要求:显示字符、图片。
时序要求:显示内容有更新时再刷新一次,慢速外设不要频繁刷。刷新时对时序有严格要求,不能被中断干扰,否则可能显示混乱。
4、机械手
功能要求:抓球球从1、2到3工位。
时序要求:每10ms探测一次是否到位,到位标志出现后(防抖)转下一状态继续等下一个到位标志。
5、其它不常用的
AD\DA 单总线温度、电平指示、步进电机……
综上:
时序相关:
每1ms刷一次数码管和点阵。
每10ms检查一次键盘和机械手的状态。
如果lcd显示内容有更新,使能刷新一次,刷完了关使能信号。
实现:
定时器定时1ms,每次中断置为数码管和点阵的使能,或者直接用1ms标记来完成工作。
每10ms检测一次键盘和机械手,输出状态标志用以散转。
如果有lcd更新,则刷新lcd。
伪代码: