首先声明,以下只是我的个人想法,具体可行性和实现,还需要经过很过拷问
开始了
在做单片机开发的时候,特别是中小型的系统中,常常是 输入-》处理-》输出
即是根据不同的输入来处理,然后生成不输出
那么是不是可以这样来弄
首先,定义我们关注的状态
一个状态的定义大概如下所示
状态一:
P1==0XF0
P2==0X00
P3_2=0
状态二:
P1==0XF0
P2==0X00
P3_2=1
这是我们关注的两个状态
然后定义两个状态对应的处理函数
STATE1()
{
code……
}
STATE2()
{
code……
}
然后在定义一个默认状态函数
STATE0()
{
CODE……;
}
将两个状态和状态对应的函数交给框架(系统)
然后启动框架(系统)
框架就能够根据当前的状态来执行对应的状态函数
我们就不用关系程序运行到那里了
只要把状态确定好
把状态对应的函数处理好
以上是昨天的想法
刚才终于把这个框架的原型写出来了
虽然简单点
但是功能按照我预期的实现了
当然也还待很多很多的进一步改进 比如状态优先级,状态的互斥,状态的继承等等~~~
如果这个小小的想法可行
希望高手们都能够站出来,为我们的开源开发框架做贡献~~
以下是keil 51 的【51单片机C语言】代码:
本文介绍了一种基于51单片机的状态机框架实现思路,通过定义不同状态及对应处理函数,实现了简单的系统控制逻辑。该框架可以根据当前状态执行相应的功能,简化了程序流程控制。
1万+

被折叠的 条评论
为什么被折叠?



