当前位置: 首页 > ai >正文

【单片机期末】单片机系统设计

主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图

一、题目要求

二、绘制系统状态流图

题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。

三、利用定时器产生时基

题目:由Timer1定时器中断产生1ms时基,在1ms时基基础上产生10ms,100ms,500ms和1s的时基。

1.编写Timer1的中断服务程序

(要仔细看清题目要求是用 Timer0 还是 Timer1 )

2.编写系统时基实现程序

四、定义系统的状态变量

系统状态字不同,代表系统处于不同的状态。不要轻易浪费资源。

题目:根据上述描述定义系统的状态变量,状态时间变了、各种状态变量、按键变量以及按键功能敞亮定义,例#define xx_State 0x01

1.系统状态变量声明

2.状态时间变量声明

3.系统状态常量定义

(实际考察对于宏定义的理解以及应用)

4.按键相关变量定义

5.按键常量定义

五、定义各个状态函数

题目:定义各个状态函数,例void Fun_xxState(void){}//xx状态函数,函数声明需完整,注释清楚,函数具体实现内容不需要编写,根据自己定义的函数编写系统状态机控制函数Fun_SysState

六、编写系统【空闲】状态函数

题目:编写完整的系统【空闲】状态函数,添加注释

七、编写系统【分编辑】状态函数

题目:编写完整的系统【分编辑】状态函数,添加注释

八、部分示例代码

1.主程序

2.系统状态机

3.系统上电程序

(系统状态每10ms调用一次 → 3s = 3 * 100)

4.系统关机程序

5.系统工作程序

按键宏定义

 6.系统显示函数

7.系统暂停程序 

这些函数中全都是对系统变量的操作,而系统的变量以什么样的形式去显示是在其他环节完成的,例如通过串行口发送出去。

8.串行口初始化

【注意】在proteus中做仿真时,需要将51单片机的时钟频率改为11.0596MHz才能跟计算机通信,否则计算出的波特率有误差,无法实现与计算机的通信。

http://www.xdnf.cn/news/12353.html

相关文章:

  • 车载诊断架构 --- ZEVonUDS(J1979-3)简介第一篇
  • 从 Revit 到 3DTiles:GISBox RVT 切片器如何让建筑图元在 Web 端展示
  • AudioRelay 0.27.5 手机充当电脑音响
  • 数据通信 PoE 交换机解决方案
  • 基于springboot的校园社团信息系统的设计与实现
  • 智慧水务发展迅猛:从物联网架构到AIoT系统的跨越式升级
  • JavaWeb笔记
  • ant-design4.xx实现数字输入框; 某些输入法数字需要连续输入两次才显示
  • MyBatis 核心标签使用场景及用法详解
  • Java中的this()和super()详解
  • 前端脱敏展示姓名、手机号、邮箱
  • 行为型设计模式之Chain of Responsibility(责任链)
  • 基于JWT+SpringSecurity整合一个单点认证授权机制
  • 低内聚高耦合的衡量指标
  • DTS 数据迁移
  • 在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
  • 【Python-Day 23】Python 模块化编程实战:创建、导入及 sys.path 深度解析
  • 青少年编程与数学 01-011 系统软件简介 06 Android操作系统
  • 相机Camera日志分析之二十七:高通相机Camx 基于预览1帧的process_capture_result二级日志分析详解
  • AOP实现Restful接口操作日志入表方案
  • 事件监听 ——CAD C#二次开发
  • ES6——数组扩展之Set数组
  • 接口限频算法:漏桶算法、令牌桶算法、滑动窗口算法
  • 小黑一层层削苹果皮式大模型应用探索:langchain中智能体思考和执行工具的demo
  • 深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
  • 鸿蒙开发——如何修改模拟器的显示图标/标题
  • 车牌识别技术解决方案
  • day46打卡
  • 如何防止服务器被用于僵尸网络(Botnet)攻击 ?
  • 进一步探究synchronized