面向状态的嵌入式开发框架初探【51单片机版】

本文介绍了一种基于51单片机的状态机框架实现思路,通过定义不同状态及对应处理函数,实现了简单的系统控制逻辑。该框架可以根据当前状态执行相应的功能,简化了程序流程控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

 

首先声明,以下只是我的个人想法,具体可行性和实现,还需要经过很过拷问

开始了

 

在做单片机开发的时候,特别是中小型的系统中,常常是  输入-》处理-》输出

即是根据不同的输入来处理,然后生成不输出

那么是不是可以这样来弄

首先,定义我们关注的状态

一个状态的定义大概如下所示

状态一:

 P1==0XF0

 P2==0X00

 P3_2=0

状态二:

 P1==0XF0

 P2==0X00

 P3_2=1

 

这是我们关注的两个状态

然后定义两个状态对应的处理函数

STATE1()

{

  code……

}

 

STATE2()

{

  code……

}

然后在定义一个默认状态函数

STATE0()

{

CODE……;

}

将两个状态和状态对应的函数交给框架(系统)

然后启动框架(系统)

框架就能够根据当前的状态来执行对应的状态函数

我们就不用关系程序运行到那里了

只要把状态确定好

把状态对应的函数处理好

 

以上是昨天的想法

刚才终于把这个框架的原型写出来了

虽然简单点

但是功能按照我预期的实现了

 

当然也还待很多很多的进一步改进 比如状态优先级,状态的互斥,状态的继承等等~~~

如果这个小小的想法可行

希望高手们都能够站出来,为我们的开源开发框架做贡献~~

以下是keil 51 的【51单片机C语言】代码:

  

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值