一、概述
常用单片机软件架构大体分三种:
1. 前后台顺序执行程序
2. 时间片轮询法
3. 操作系统

二、前后台顺序执行程序
所谓的前台,就是主动去判断处理某个事务,这个是主循环里要做的事,也就是你代码主要要写的。所谓的后台,指的是:中断,也就是不需要你的CPU去判别,就会自动进入某一种状态,你在这个状态下做你要做的事就可以了。主要结构:mian - while - 中断。

个人觉得,这种方式写程序思路必须清晰,写出的程序容易按顺序读懂。一般用于小型、固定功能的项目较为适合。

三、时间片轮询法
时间片轮询法的本质是利用定时器分频切换任务,能灵活地添加任务(新功能)到项目中,且不用占用像系统那么多的代码空间。其设计过程如下:

四、操作系统
列如:UCOSII、FreeRTOS等等。个人认为,相较其余两种架构,使用系统架构方式的优势在于能任务之间能灵活切换、实时监测芯片CPU等信息,但所需芯片内存较大。其任务切换原理主要结合不同芯片中断而定。列如:STM32利用Pend、SVN中断异常处理任务切换。

单片机学习05_单片机软件架构相关推荐

  1. 单片机sleep函数的头文件_单片机学习day8—单片机IO扩展

    74HC165芯片-并转串 74HC165中文资料.pdf 267.6K · 百度网盘 8位移位寄存器(并行输入,互补串行输出) 时钟输入端 CLK,CLK INK (上升沿有效) A-H 并行数据输 ...

  2. 单片机定时器实验两位倒计时秒表_单片机学习「1」 初始51单片机

    问题1:什么是单片机? 采用集成电路技术,将CPU(具有处理数据能力的中央处理器).RAM(随机存储器,类比电脑里的内存条).ROM(程序存储器,类比电脑硬盘).多种I/O口(类比电脑的各种接口,不过 ...

  3. 硬件信息修改大师_零成本学习之单片机硬件开发(1)

    从今天开始给大家逐步讲解单片机编程,有兴趣的小伙伴们,可以关注本课程,完全免费 本人从事从2004年大学毕业开始从事开发工作,先后做过单片机开发.ucOSII开发.手机开发.android APP开发 ...

  4. C51单片机学习思维导图

    C51单片机学习总结: ​​​​​​​​​​​​​​​​​​ 图片链接 由于原稿丢失,只有图片链接

  5. 【蓝桥杯】单片机学习(7)——UART串口通信

    UART串口通信 一.基础知识介绍 1.通信方式的分类 2.RS232通信接口 3.UART模块介绍 (1)串口控制寄存器SCON(可位寻址) (2)电源控制寄存器PCON(不可位寻址) (3)辅助寄 ...

  6. 51单片机c语言学习感想,学习51单片机心得体会

    在这里给大家分享一下学习51单片机心得体会: 1.我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础. 2.对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此.库只是一个 ...

  7. 如何自己学习51单片机

    第1章 如何学习单片机 在错误的道路上日夜兼程,最终也无法成功,方法和思路绝对是最重要的.一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇.但是,今天在这里作者可以很负责 ...

  8. 单片机学习记录:流水灯

    单片机学习记录 记录自己在学习单片机中的一些点滴 主要学习对象为51单片机,记录下单片机的一些简单的基础实验过程(持续更新) 文章目录 单片机学习记录 硬件部分 开发环境 LED灯左右往返循环 实验代 ...

  9. 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础

    上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...

  10. 从零开始的MSP430单片机学习(一)

    从零开始的MSP430单片机学习(一) 图片有些缺失,原链接:从零开始的MSP430单片机学习(一) 写在前面 单片机学习本身是一个了解学习一个技术的过程,学习的过程中不应该拘泥于某一款,而是要了解学 ...

最新文章

  1. TortoiseSVN使用详细步骤(一)
  2. uniapp处理IOS底部横条安全区域
  3. 区块链软件公司:区块链运用在金融上运用的优点有哪些?
  4. mysql pt-kill_percona-toolkit之pt-kill 杀掉mysql查询或连接的方法
  5. scale 和 transform-origin 实现线条从左侧进入,右侧离开效果
  6. Hawtio和Apache JClouds
  7. SCN风波又起,2019年6月之前Oracle必须升级吗?
  8. Android 常见adb命令
  9. 再一次站在捆绑销售风口的携程该何去何从?
  10. centos 安装mysql5.6.12_CentOS6.4+MySQL-5.6.12 安装详解
  11. DropdownList获取ID方法
  12. 微信域名防封、域名检测接口api、域名跳转技术、360防拦截揭秘(二)------传统防封的弊端
  13. 公鸡每只值5文钱,母鸡每只值3文钱,而三只小鸡值一文钱。用100文钱买100只鸡,问:公鸡,母鸡,小鸡各有多少只?
  14. arduino智能浇花系统_智能自浇花系统
  15. Photoshop学习(二):换色
  16. html流程svg动画,12款基于SVG的HTML5应用和动画
  17. 在线数据库管理工具 web-db mongodb
  18. 灵活的Vue组件——原来这么简单
  19. 阿里巴巴字体图标使用
  20. 十进制小数转为二进制小数

热门文章

  1. Windows 系统彻底卸载 SQL Server 通用方法
  2. 2010-6-15 Linux 学习笔记
  3. Android学习资料网站搜集
  4. simscape做一个简单倒立摆
  5. Python编写微信打飞机小游戏(四)
  6. 服务器内网怎么更新微软补丁,架WSUS服务器 内网自动打补丁
  7. YUI Compressor 进行js/css文件混淆压缩
  8. SaaS服务商盘点之ERP篇
  9. 成功 Root ------ 红米note3
  10. linux常用下载工具