单片机系统架构

news2024/11/25 14:31:36

单片机系统架构

单片机概述

  1. 微型计算机的组成

微处理器、存储器加上I/O接口电路组成微型计算机。各部分通过地址总线(AB)、数据总线(DB)和控制总线(CB)相连。

  1. 微型计算机的应用形态

​ 从应用形态上,微机可以分成三种:

  • 多板机(系统机)
    • ​ 系统机(桌面应用)属于通用计算机,主要应用于数据处理、办公自动化及辅助设计。
  • 单板机
  • 单片机单芯片微型计算机
    • 单片机(嵌入式应用)属于专用计算机,主要应用于智能仪表、智能传感器、智能家电、智能办公设备、汽车及军事电子设备等应用系统。

单片机体积小、价格低、可靠性高,其非凡的嵌入式应用形态对于满足嵌入式应用需求具有独特的优势。

  1. 单片机的特点及应用领域

    1. 单片机的特点
      • 控制性能和可靠性高
      • 体积小、价格低、易于产品化
    2. 单片机的应用领域
      • 智能仪器仪表
      • 机电一体化产品
      • 实时工业控制
      • 分布式系统的前端模块
      • 家用电器
  2. 单片机应用系统开发简介

    1. 单片机应用系统的开发

      • 正确无误的硬件设计和良好的软件功能设计是一个实用的单片机应用系统的设计目标。完成这一目标的过程称为单片机应用系统的开发。

      • 单片机作为一片集成了微型计算机基本部件的集成电路芯片,与通用微机相比,它自身没有开发功能,必须借助开发机(一种特殊的计算机系统)来完成如下任务:

        • 排除应用系统的硬件故障和软件错误
        • 程序固化到内部或外部程序存储器芯片中
      • 指令的表示形式

        • 指令是让单片机执行某种操作的命令。在单片机中,指令按一定的顺序以二进制码的形式存放于程序存储器中。为了书写、输入和显示方便,人们通常将二进制的机器码写成十六进制形式。
      • 汇编或编译

        符号指令要转换成计算机所能执行的机器码并存入计算机的程序存储器中,这种转换称为汇编。常用的汇编方法有三种:

        • 手工汇编
        • 利用开发机的驻留汇编程序进行汇编
        • 交叉汇编
        • 现在人们还可以常常采用高级语言(如C51)进行单片机应用程序的设计。这种方法具有周期短、移植和修改方便的优点,适合于较为复杂系统的开发。
    2. 单片机应用系统传统开发方式

      • 利用独立型仿真器开发

      • 利用非独立型仿真器开发

        ​

51单片机系统内核

51 单片机内核

1.8051是51系统单片机中的典型产品,8051单片机主要参数及功能如下:

·8 位 CPU
·4kbytes 程序存储器(ROM) (52 为 8K)
·128bytes 的数据存储器(RAM) (52 有 256bytes 的 RAM)
·32 条 I/O 口线
·111 条指令,大部分为单字节指令
·21 个专用寄存器
·2 个可编程定时/计数器
·5 个中断源,2 个优先级(52 有 6 个)

  • 可以通过SFR中的IP来设置中断优先级别,默认最高级别是外部中断0,最低级别是串口中断。如果将两个中断优先级都设为最高,则按照默认的较高优先级来执行。程序在执行较低优先级中断子程序的时候能够响应更高级别的中断,但是在执行高优先级中断子程序的时候不能响应同级别或更低级别的中断。

·一个全双工串行通信口
·外部数据存储器寻址空间为 64kB
·外部程序存储器寻址空间为 64kB
·逻辑操作位寻址功能
·双列直插 40PinDIP 封装
·单一+5V 电源供电
CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄
存器;

RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示
的数据;
ROM:用以存放程序、一些原始数据和表格;
I/O 口:四个 8 位并行 I/O 口,既可用作输入,也可用作输出
T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在计数模式;
五个中断源的中断控制系统;
一个全双工 UART(通用异步接收发送器)的串行 I/O 口,用于实现单片机之
间或单片机与微机之间的串行通信;
片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率
为 6M—12M。

其内部结构图如下所示:

image-20220901164057949

总线(BUS)是单片机各部件之间传送信息的公共通道。单片机中有内部总
线和外部总线两类,内部总线是 CPU 内部之间的连线,外部总线是指 CPU 与其它
部件之间的连线;外部总线有三种: 数据总线 DB(Data Bus),地址总线 AB
(Address Bus)和控制总线 CBControl Bus)

单片机的主要封装

image-20220901171227057

image-20220901171247520

51单片机内部结构

CPU结构

  • 单片机的定义

​ 单片机是单片微型计算机的简称,把各种功能部件包括中央处理器(CPU)、只读存储器(ROM)、随机读写存储器(RAM)、输入输出(I/O)单元、定时器/计数器以及串行口等集成在一块芯片上构成的微型计算机。

  • 51单片机的CPU结构

    • MCS-51系列的8051单片机内部结构如图

​ 中央处理器(CPU)是整个单片机的核心部件,实现了运算器和控制器的功能。主要由算术逻辑单元、定时控制部件和专用寄存器三部分电路组成。

  1. 算术逻辑单元(ALU)
  • 8位的ALU,可对4位、8位、16位数据进行操作。
  • ALU由一个加法器、两个8位暂存器和布尔处理器组成。
  • 程序可控制累加器A、寄存器B和寄存器组R0-R7控制ALU完成算术和逻辑运算。
  1. 定时控制部件
  • 组成:定时控制逻辑、指令寄存器和振荡器组成。

  • 作用:控制指令的执行

第一步**取指**:指令寄存器IR:存放程序存储器中取出的指令。

第二步**译码**:指令译码器通过定时控制逻辑对指令寄存器中的指令译码。

第三步**执行**:在振荡器配合下产生执行指令所需的时钟脉冲,从而完成指令的执行。

​ 3. 专用寄存器组

​ 用于指示当前要执行指令的内存地址、存放操作数和指示指令执行后的状态。

  • 程序计数器PC,16位。

​ PC是程序的字节地址计数器,PC内容为将要执行的指令地址。改变PC内容,改变执行的流向。它由两个8位计数器PCH、PCL组成。PC可对64KB的ROM直接寻址,也可对89C51片内RAM寻址 。

  • 累加器ACC,8位。

​ 用于向ALU提供操作数,许多运算的结果也存放在累加器中,是应用最频繁的寄存器。

  • 寄存器B,8位。

​ 主要用于乘、除法运算。也可以作为RAM的一个单元使用。

image-20220907090910101

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0g1HuYSZ-1688020120378)(D:/typora-user-images/image-20221110231810501.png)]

  • 在内部数据存储器中,工作寄存器的内存单元为1FH-00H+1即为31-0+1=32个,共分为0~3四个寄存器区域,每个区域有8个寄存器
    -image-20220907091619440
    堆栈指针SP,8位。它总是指向栈顶。

  • 堆栈操作遵循“先进后出、后进先出”的原则。

  • SP原先指向栈底。入栈操作时,SP先加1,数据再压入SP指向的单元。出栈操作时, 先将SP指向的单元的数据弹出,然后,SP再减1,这时SP指向的单元是新的栈顶。可见,80C51单片机的堆栈区是向地址增大的方向生成的。

  • 堆栈的作用:断点保护现场保护

数据指针DPTR,16位。
用来存放16位的地址。由两个8位的寄存器DPHDPL组成。间接寻址或变址寻址可访问片外的64KB范围的RAMROM数据。
### 存储器结构

image-20220907093032502

2

13

1321312412ww

431241kljlkj

612312sdasda

7123123fasg

51单片机单片机工作时序

  • 时钟电路

    • 根据硬件电路的不同,单片机的时钟连接方式可以分为内部时钟外部时钟方式。

      内部振荡方式:MCS-51单片机片内有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲。

      外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内,接XTAL2引脚,XTAL1引脚接地。

      内部时钟 外部时钟

image-20220908104332324

  • 机器周期及指令周期

​ T状态周期=2T振荡周期,T机器周期=6T状态=12T振荡=12*1/fosc fosc为晶振频率

​ 12MHZ晶振的机器周期=12÷12000000=0.000001秒=1微秒

单片机复位后的状态

单片机复位后,PSW为0切记,当前工作寄存器为0组。

堆栈指针SP重新指向栈底07H,P0~P3=FFH -的高阻态(既可输入也可以输出),其他都为0。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/702683.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python数据可视化-日期折线图画法

引入 什么是折线图: 折线图是排列在工作表的列或行中的数据可以绘制到折线图中。折线图可以显示随时间(根据常用比例设置)而变化的连续数据,因此非常适用于显示在相等时间间隔下数据的趋势。 在折线图中,类别数…

【vue】- 简易版筛选组件可展开/收起

仅做记录&#xff0c;未整理格式 css部分未完全&#xff0c;每个筛选条件为固定宽度 实现效果 单行筛选条件时不触发更多按钮&#xff0c;且做占位处理 多行筛选条件时默认收起 同时设定最大/最小宽度并监听该组件宽度变化 filter.vue组件 <template><div :cla…

c#调用c++ dll,Release版本内存访问错误

最近遇到个比较经典的案例&#xff0c;在c#中调用yara进行文件检测&#xff0c;yara是c编写的一个非常强大库&#xff0c;github有个大佬用c#对其进行了封装&#xff0c;使其能在跨平台下&#xff0c;只需编译yara的so或dll就能直接跑。但总是在Release版本下时不时就崩溃&…

Hadoop 组成

4 Hadoop 优势(4 高) 1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,也不会导致数据的丢失。 2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。 3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务…

低代码平台在ERP软件中的作用

很多人认为 低代码开发平台的出现颠覆了传统的软件开发模式&#xff0c;对软件开发行业造成冲击&#xff0c;其实低代码开发平台的出现只是提高了软件开发的效率&#xff0c;并不是要颠覆软件开发的模式。低代码平台在erp软件开发中的作用还是比较明显的。下面一起来了解一下相…

Postman Mock快速入门

目录 前言&#xff1a; 1.Mock简介 1.1 Mock定义 1.2 Mock目的 1.3 Mock意义 1.4 Mock服务 2. Postman 创建Mock服务 2.1 创建Mock服务 2.2 Postman创建Mock服务 2.2.1 Postman 创建Mock服务器参数 2.2.2 Postman创建Mock步骤 3.访问Postman Mock服务 前言&#xf…

css基础知识十三:怎么理解回流跟重绘?什么场景下会触发?

一、是什么 在HTML中&#xff0c;每个元素都可以理解成一个盒子&#xff0c;在浏览器解析过程中&#xff0c;会涉及到回流与重绘&#xff1a; 回流&#xff1a;布局引擎会根据各种样式计算每个盒子在页面上的大小与位置重绘&#xff1a;当计算好盒模型的位置、大小及其他属性…

MySQL-SQL全部锁详解(下)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a; 小刘主页 ♥️努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️学习两年总结出的运维经验&#xff0c;以及思科模拟器全套网络实验教程。专栏&#xf…

老PM,到底在牛什么?

早上好&#xff0c;我是老原。 “成长为一名优秀的项目经理。”相信这是每一个刚入行的项目经理都会立的flag。 对于项目经理来说&#xff0c;这是一个能力和经验并重的岗位&#xff0c;你应该也经常听人说&#xff0c;这项目经理是一个越老越吃香的职业。 就拿我自己来说&a…

【java】HashMap扩容机制详解

文章目录 JDK1.7下的扩容机制JDK1.8下的扩容机制 JDK1.7下的扩容机制 JDK1.7下的resize()方法是这样的&#xff1a; void resize(int newCapacity) { Entry[] oldTable table; int oldCapacity oldTable.length; if (oldCapacity MAXIMUM_CAPACITY) { threshold Integer.…

零样本视频生成无压力,基于飞桨框架实现Text2Video-Zero核心代码及依赖库

项目背景 继 AI 绘画之后&#xff0c;短视频行业正迎来 AI 智能创作的新浪潮。AI 智能创作正在各个方面为创作者和用户带来新的体验和价值。AI 动漫视频、AI 瞬息宇宙、AI 视频风格化等诸多创作功能不仅为视频内容创作提供了全新灵感&#xff0c;而且大大降低了用户创作的门槛…

SpringMVC原理分析 | 数据处理:ModelAndView

&#x1f497;wei_shuo的个人主页 &#x1f4ab;wei_shuo的学习社区 &#x1f310;Hello World &#xff01; 重定向和转发 ModelAndView 设置ModelAndView对象&#xff0c;根据view的名称、视图解析器跳转到指定的页面 页面&#xff1a;{视图解析器前缀} viewName {视图解析器…

git常用命令之命令集

15. 命令集 场景1. 构造1个文件的10个commit 命令作用for i in {1..10}; do date >> 66.txt && git add . && git commit -sm "update"; done自证 场景2. 构造10个文件 命令作用for i in {1..10}; do date >> "file_$i.log&quo…

Quiz 7: Files | Python for Everybody 配套练习_解题记录

文章目录 课程简介Quiz 7: Files 单选题&#xff08;1-10&#xff09;编程题Exercise 7.2 课程简介 Python for Everybody 零基础程序设计&#xff08;Python 入门&#xff09; This course aims to teach everyone the basics of programming computers using Python. 本课程…

项目——学生信息管理系统1

目录 创建项目 1. 修改Eclipse的编码为UTF-8,具体参考给的文档 1.1 设置代码自动保存 2. 创建Java项目 分包 添加数据库驱动jar包依赖 复制数据库驱动jar包到lib目录下 添加依赖 创建登陆页面 在 org.xingyun.view 包下创建 LoginFrm 选择 WindowBuilder下的 Swing D…

oracle 重复启动监听程序故障

又是一起 oracle 无法连接问题&#xff0c;检查配置都是正常的。 原来是碰到一个oralce的bugl了。 还真就是这个问题&#xff0c;子进程一kill掉&#xff0c;就恢复了。

微服务实战项目-学成在线-课程发布模块

学成在线-课程发布模块 1 模块需求分析 1.1 模块介绍 课程信息编辑完毕即可发布课程&#xff0c;发布课程相当于一个确认操作&#xff0c;课程发布后学习者在网站可以搜索到课程&#xff0c;然后查看课程的详细信息&#xff0c;进一步选课、支付、在线学习。 下边是课程编辑…

视频解说小程序看点小程序搭建上线,流量主对接实现广告收益

什么是视频解说小程序&#xff1f; 影视剪辑和解说&#xff0c;我们都知道有这类的抖音号&#xff0c;这时候就用到我们小程序了&#xff0c;流量主产生了收益。把视频解说上传到小程序&#xff0c;设置为广告观看&#xff0c;这样引导用户去小程序看&#xff0c;就产生一个广告…

(一)等值线 (Spatial Analyst)

等值线 (Spatial Analyst) 1.摘要 根据栅格表面创建等值线(等值线图)的线要素类。 等值线是用于连接各类等值点(如高程、温度、降雨量、污染或大气压力)的线。线的分布显示表面值的变化方式。值的变化量越小,线的间距就越大。值上升或下降得越快,线的间距就越小。 2.…

基于单片机的厨房安全监测

功能介绍 以STM32单片机作为主控系统&#xff1b; OLED液晶显示当前检测的气体浓度&#xff0c;温度&#xff0c;是否有火等信息&#xff1b; 按键可以设置温度上限、可燃气体浓度上限&#xff1b; 当温度超过我们设置自动开启风扇进行降温&#xff1b; 当检测到天然气泄露后蜂…