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

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

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

一、题目要求

二、绘制系统状态流图

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

三、利用定时器产生时基

题目:由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才能跟计算机通信,否则计算出的波特率有误差,无法实现与计算机的通信。

相关文章:

  • .Net Framework 4/C# 关键字(非常用,持续更新...)
  • Playwright 测试框架 - .NET
  • 嵌入式学习笔记-freeRTOS taskENTER_CRITICAL(_FROM_ISR)跟taskEXIT_CRITICAL(_FROM_ISR)函数解析
  • [密码学实战]C语言使用SDF库构建国密算法RESTful服务(五)
  • 机器学习笔记【Week7】
  • 在WPF项目中集成Python:Python.NET深度实战指南
  • Unreal从入门到精通之 UE4 vs UE5 VR性能优化实战
  • 基于大模型的 UI 自动化系统
  • Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
  • 智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
  • 完美搭建appium自动化环境
  • 微信小程序动态效果实战指南:从悬浮云朵到丝滑列表加载
  • Significant Location Change
  • 在Linux查看电脑的GPU型号
  • 数据库正常,但后端收不到数据原因及解决
  • 前端开发面试题总结-JavaScript篇(一)
  • awk处理xml文件封装集合变量和调用
  • Flink在B站的大规模云原生实践
  • 麒麟系统使用-进行.NET开发
  • 【redis实战篇】第八天
  • 做英文网站哪个网站比较好/seo网站优化公司
  • 潍坊网站建设方案书/深圳企业网站制作
  • 网站建设的整体流程/百度快速收录提交工具
  • 游戏是怎么开发出来的/seo关键词排名优化报价
  • 做网站 怎么谈/广州seo成功案例
  • 赣榆建设局网站/seo是怎么优化推广的