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

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

一、题目要求

二、绘制系统状态流图

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

三、利用定时器产生时基

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

相关推荐
FreakStudio6 天前
W55MH32L-EVB 上手测评:硬件 TCP/IP 加持的以太网单片机,MicroPython 零门槛开发
python·单片机·嵌入式·大学生·面向对象·并行计算·电子diy·电子计算机
LinXunFeng7 天前
Obsidian - 使用 Share Note 分享笔记并自部署
前端·笔记·github
通信小呆呆11 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick11 天前
自动对焦学习-3
人工智能·学习·计算机视觉
✎ ﹏梦醒͜ღ҉繁华落℘11 天前
单片机基础知识---stm32单片机的优先级
stm32·单片机·mongodb
Daisy Lee11 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
Alsn8611 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
YM52e11 天前
买菜计算器小应用 - HarmonyOS ArkUI 开发实战-PC版本
学习·华为·harmonyos·鸿蒙·鸿蒙系统
小雨下雨的雨11 天前
HarmonyOS ArkUI训练营入门-组件掌握系列-Animation 动画效果实现-PC版本
学习·华为·harmonyos·鸿蒙
u1521096484911 天前
S.S.Audio PRO A2音频隔离器
嵌入式硬件·音视频·实时音视频·视频编解码·视频