迅维网

查看: 3288|回复: 4
打印 上一主题 下一主题

[原创]基于状态机的AVR单片机控制器

[复制链接]
跳转到指定楼层
1#
发表于 2011-9-7 09:19:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 浙江杭州 来自 浙江杭州

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
  遇到一个小项目,需要按以下时序控制各设备动作。通过对其整个控制过程的深入了解,画出状态流程,各状态所需最小控制时间,最后用定时器时标和状态机编程思想较好的解决了该控制器的逻辑框架。使设备控制更“智能”,控制更缜密,解决了人为操作错误造成的控制混乱。

时序图:


  从图可看到有三路输入,2路键盘输入,一路开关量输入。输出有8路。除了跟踪开关量的变化外,还要允许两个键盘在不同时间段干预,因此控制分支比较多,状态的转换多。

状态分析:

状态一:待机。所有输出=0,等待按键或开关量出现高电平。(按键识别最小要求10-20ms)
 |
 |
状态二:延时去抖动(60-100ms)
 |
 |
状态三:OUT输出高,设备1启动。同时监测是否有按键按下。(需要时间量10ms-1S)
 |
 |
。。。。。。。。(略)

实现电路(部分):

输入电路:



输出电路:


程序:(部分)













2#
发表于 2011-9-7 10:32:28 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
实物图:






回复 支持 反对

使用道具 举报

3#
发表于 2011-9-7 10:48:50 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
开发调试环境:
CVAVR(编译器)+AVR Studio 4(仿真)+AVRISP(在线下载烧录)

回复 支持 反对

使用道具 举报

4#
发表于 2011-9-11 09:50:17 | 只看该作者 来自: 浙江杭州 来自 浙江杭州
逻辑关系貌似很简单的哦!

回复 支持 反对

使用道具 举报

5#
发表于 2011-12-21 09:50:15 | 只看该作者 来自: 广东 来自 广东
这个东西有几个地方的逻辑关系是不容易处理好的。

1、按键的及时响应(20ms)
2、模拟按键按下和断开(100-500ms)
3、主程序的执行顺序不被上述事件打乱。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复