单片机基础知识

目录

微型计算机基本结构

总线

片内总线和片外总线

数据总线地址总线与控制总线

系统总线和IO总线

微处理器的内部结构

内部寄存器

通用寄存器

指针和变址寄存器

段寄存器

控制寄存器

标志寄存器

存储器的基本结构

存储器的分类

IO接口的功能

外部设备与CPU之间的数据传送方式

单片机

单片机基本介绍

单片机的特点

单片机的命名规则

51子系列单片机特点

MCS-51系列单片机

基本组成

内部结构

中央处理器

控制部件

存储器结构

程序存储器的6个特殊的地址

数据存储器

片内数据存储器

片外数据存储器

输入输出接口

P0口

P1口

P2口

P3口

外部引脚

控制线

主电源引脚

外接晶体引脚

片外总线结构

单片机的工作方式

复位方式

单片机的时序

微型计算机基本结构

前言:微型计算机由中央处理器、存储器、输入、输出设备和系统总线等组成。

注意:具体理解请见计算机组成原理。

总线

含义:总线是将各大基本部件按照一定得方式连接起来就构成了硬件系统,为各部件提供服务的公共信息传送线路。他能够分时的发送和接收各种部件的信息,是计算机系统各部件之间传输地址、数据和控制信息的公共通道,CPU通过总线实现读取指令,并实现与内存、外设之间的数据交换,在CPU、内存与外设确定的情况下,总线的速度是制约计算机整体性能的关键。

片内总线和片外总线

  • 片内总线:CPU内部的寄存器、算数逻辑部件、控制部件以及总线接口部件之间的公共信息通道
  • 片外总线:泛指CPU与外部器件之间的公共信息通道。我们通常所说的总线就是指片外总线

数据总线地址总线与控制总线

  • 数据总线:用于在各个部件/设备之间传输数据信息

  • 地址总线:用于CPU与存储器、IO接口设备之间传输地址信息

  • 控制总线:用于CPU与存储器、IO接口之间传输控制和状态信息 

系统总线和IO总线

  • 系统总线:CPU连接其他高速功能(如存储器)的总线

  • IO总线: 中低速IO设备之间相互连接的总线

微处理器的内部结构

前言:微处理器由运算器、控制器、寄存器组和片内总线组成。

注意:

  • 运算器和控制器在计算机组成原理有讲,这里就不再赘述;而操作单片机主要是操作寄存器,这里主要讲一下寄存器相关。
  • ALU一次性最多能够处理多少位数据,那么该单片机就是几位。

内部寄存器

通用寄存器

  • AX:累加寄存器,是算术运算时使用的主要寄存器,所有外部设备的输入输出指令只能使用AL或AX作为数据寄存器
  • BX:基址寄存器,可以用作数据寄存器,在访问存储寄存器时,可以存放被读写存储单元的地址,是具有双重功能的寄存器
  • CX:计数寄存器,可以用作数据寄存器,在字符串操作、循环操作和移位操作时用作计数器
  • DX:数据寄存器,它可以用作数据寄存器,在乘除法中作为辅助累加器,在输入输出操作中存放接口的地址

指针和变址寄存器

前言:主要用于存放操作数的偏移地址(即操作数的段内地址)

  • SP:堆栈指针寄存器,在堆栈操作中存放栈顶的偏移地址
  • BP:基址指针寄存器,常用作堆栈区基址地址寄存器
  • SI:源变址寄存器,主要用于在字符串操作中存放原操作数的偏移地址
  • DI:目的变址寄存器,主要用于字符串操作中存放目的操作数的偏移地址

段寄存器

前言:主要用于存放段的基址(即段的起始地址的高16位)。

  • CS:代码段段寄存器,代码段用于存放程序代码。CS中存放当前正在执行的代码段的段基址
  • DS:数据段段寄存器,数据段用于存放当前使用的数据,DS中存放当前数据段的段基址
  • SS:堆栈段段寄存器,堆栈段是内存中一段特殊的存储区,SS中存放堆栈段的段基址
  • ES:附加数据段段基址,程序需要第二个数据段时,可以使用ES存放该数据段的段基址

控制寄存器

  • IP:指令指针寄存器是一个16位的寄存器,IP存放下一条要执行的指令的偏移地址
  • FLAGS:标志寄存器共有9个标志位,其中6个为状态标志位,3个为控制标志位

标志寄存器

前言:在单片机中若要运行一些数据的话肯定会涉及到+-*/等操作,这就涉及到标志寄存器功能

  • C:进位标志位
  • P:奇偶标志位
  • A:半加标志位
  • Z:零标志位
  • S:符号标志位
  • T:陷阱标志位(单步标志位)
  • I:中断允许标志位
  • D:方向标志位
  • O:溢出标志位

存储器的基本结构

前言:半导体存储器主要由地址译码器、存储矩阵、控制逻辑和三态双向缓冲器等部分组成。

注意:地址译码器主要用于判断地址总线的电平的不同状态来确定要给RAM中哪个字节存储数据

存储器的分类

  • 随机读写存储器:RAM(掉电以后数据直接丢失,类似内存)
  • 只读存储器:ROM(掉电以后数据是不丢失的,类似固态硬盘)

IO接口的功能

  • 数据的寄存和缓冲
  • 信号的转换
  • 设备选择功能
  • 外设的控制和监测
  • 中断或DMA管理功能
  • 可编程功能

外部设备与CPU之间的数据传送方式

  • 无条件传送方式
  • 查询传送方式
  • 中断传送方式

单片机

含义:单片机属于微型计算机的一种,是把微型计算机中的微处理器、存储器、IO接口,定时器/计数器、串行接口、中断系统等电路集成在一块集成电路芯片上形成微型计算机。因而被称为单片微型计算机,简称单片机。 

单片机基本介绍

  • 单片机英文Micro Controller Unit,简称MCU
  • 单片机内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能
  • 单片机的任务是:信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机和LED等)的控制
  • 单片机和计算机相比,单片机是一个袖珍版的计算机,一个芯片就能构成完整的计算机系统。但是在性能上与计算机相差甚远,但单片机成本低,体积小,结构简单,在生活和工业控制领域有很大作用
  • 单片机的适用领域已经十分广泛,如智能仪表,实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上单片机就能起到使产品升级换代的功效(智能洗衣机)。

单片机的特点

  1. 在存储结构上单片机采用哈佛结构。ROM和RAM是严格分开的,ROM称为程序存储器,只存放程序,固定常数和数据表格。RAM则数据存储器,用作工作区和存放数据
  2. 在芯片引脚上,大部分采用时分复用技术
  3. 在内部资源访问上,通过特殊功能寄存器(SFR)的方式
  4. 在指令系统上,采用,面向控制的指令系统
  5. 内部一般都集成一个全双工的串行接口
  6. 单片机有很强的外部扩展能力

注意:51单片机为80年代intel开发的8051单片机内核的统称,就是因为这个8051有个51,所以,凡事以8051内核一样的单片机都统称为51系列单片机。

单片机的命名规则

51子系列单片机特点

  • 8位CPU
  • 片内带有振荡器,频率范围为1.2——12MHz
  • 片内带有128字节的数据存储器
  • 片内带有4K的程序存储器
  • 程序存储器的寻址空间为64K字节
  • 片外数据存储器的寻址空概念为64K字节
  • 128个用户位寻址空间

MCS-51系列单片机

基本组成

内部结构

中央处理器

前言:运算部件以算数逻辑单元ALU为核心,包含累加器ACC(简称A)、B寄存器、暂存器、标志寄存器PSW等许多部件,他能实现算数运算、逻辑运算、位运算、数据传输等处理。

注意:标志寄存器是一位8位寄存器,它用于保存指令执行结果的状态,以供程序查询和判别。

  • C(PSW.7):进位标志位
  • AC(PSW.6):辅助进位标志位
  • F0(PSW.5):用户标志位
  • RS1、RS0(PSW.4、PSW.3):寄存器组选择位
  • OV(PSW.2):溢出标志位
  •  P(PSW.1):奇偶标志位;若累加器A中1的个数为奇数,则P置位;若为偶数,则P清零

控制部件

理解:控制部件是单片机的控制中心,它包括定时和控制电路、指令寄存器、指令译码器、程序计数器PC、堆栈和指针SP、数据指针DPTR以及信息传送控制部件等。他先以震荡信号为基准产生CPU时序,从ROM中取出指令到指令寄存器,然后在指令译码器中对指令进行译码,产生指令执行所需的各种控制信号,送到单片机内部的各个功能部件,指挥各个功能部件产生相应的操作,完成对应的功能。

存储器结构

前言:MCS-51单片机存储结构与一般微机的存储器结构不同,分为程序存储器ROM和数据存储器RAM。程序存储器存放程序、固定常数和数据表格。数据存储器用作工作区和存放数据

程序存储器的6个特殊的地址

复位地址0000H

数据存储器

注意:数据存储器从物理结构上分为片内数据存储器和片外数据存储器。

片内数据存储器

片内数据存储器按功能分为以下几个部分

  1. 工作寄存器组区:00H-1FH单元为工作寄存器组区,共32个字节。工作寄存器也称为通用寄存器,用于临时寄存8位信息。工作寄存器共4组,称为0组、1组、2组、3组,每组8个,分别依次用R0-R7表示
  2. 位寻址区:20H-2FH为位寻址区,共16字节,128位。这128位每位都可以按位方式使用,每一位都有一个位地址,位地址范围为00H-7FH
  3. 一般RAM区:30H-7FH为一般RAM区,也称为用户RAM区,共80字节,对于52子系列,一般RAM区从30H-FFH单元。另外,对于前两区中未使用的单元也可用为用户RAM单元使用
  4. 堆栈区与堆栈指针:堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。
片外数据存储器

扩展外部数据存储器最多64kb,地址范围为0000H-0FFFFH,通过数据指针寄存器DPTR作指针间接方式访问,对于低端的256字节,可用两位十六进制地址编址,地址范围为00H-0FFH,可通过R0和R1间接方式访问。

输入输出接口

前言:MSC-51系列单片机有4个8位的并行IO接口:P0、P1、P2和P3口。他们是特殊功能寄存器中的4个。这4个口,既可以作输入,也可以作输出,既可以按8位处理,也可以按位方式使用。输出时具有锁存能力,输入时具有缓冲功能。

P0口

前言:P0口是一个三态双向口,可作为地址/数据分时复用口,也可作为通用的IO接口。它包括一个输出锁存器、两个三态缓冲器、输出驱动电路和输出控制电路组成

当P0口作通用I/O接口时,应注意以下两点

  • 在输出数据时,必须外接上拉电阻
  • P0口作为通用I/O口输出使用时,在输入数据前,应先向P0口写1 

P1口

前言:P1口是准双向口,他只能作通用I/O接口使用。对于52子系列,P1.0与P1.1还有第二个功能:P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX

准双向IO口和双向IO口的区别

  • 准双向口:准双向口就是做输入用的时候要有向锁存器写1这个准备动作,所以叫准双向口
  • 真正的双向口不需要任何预操作可直接读入读出

P2口

P2口也是准双向口,他有两种用途:通用IO接口和高8位地址线。(在接有片外存储器或扩展IO口且寻址范围超过256字节时,P2口用作高8位地址总线)

P3口

P3口除了作为准双向通用IO口使用外,他的每一根线还具有第二种功能。(P3口的每一条引脚均可独立定义为第一功能的输入/输出或第二功能)

外部引脚

控制线

  • ALE/PROG(30脚):地址锁存信号输出端。ALE在每个机器周期内输入两个脉冲
  • PSEN(29脚):片外程序存储器读选通信号输出端,低电平有效
  • RST/VPD(9脚):RST即为reset,VPD为备用电源。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可以实现复位操作,使单片机恢复到初始状态。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位
  • EA/VPP(31脚):EA为片外程序存储器选用端。该引脚低电平时,选用片外程序存储器,高电平或悬空时选用片内程序存储器

主电源引脚

  • VCC(40脚): 接+5v电源正极
  • VSS(20脚):接+5v电源地级

外接晶体引脚

XTAL1、XTAL2(19、18脚) :当使用单片机内部震荡电路时,这两个引脚用来外接石英晶体(不分正负极)和微调电容,如图a。当采用外部时钟时,对于HMOS单片机,对XTAL1引脚接地,XTAL2接片外震荡脉冲输入(带上拉电阻);对于CHMOS单片机XTAL2引脚接地,XTAL1接片外震荡脉冲输入(带上拉电阻)

理解:单片机在运行时需要一个步调作为运行基准的,通过晶体振荡器输出的方波信号就像指挥方队的口号一样。 

片外总线结构

  • 地址总线:地址总线宽度为16位,寻址范围都为64kb。由P0口径地址锁存器提供低8位(A7-A0) ,P2口提供高8位(A15-A8)而形成。可对片外程序存储器和片外数据存储器寻址
  • 数据总线:数据总线宽度为8位,由P0口直接提供
  • 控制总线:控制总线由第二功能状态下的P3口和4根独立的控制线RST、EA、ALE和PSEN组成

单片机的工作方式

复位方式

前言:在时钟电路工作以后,当外部电路使得RST端出现2个机器周期(24个时钟周期)以上的高电平,系统内部复位。复位有两种方式:上电复位和按钮复位

  • 上电复位:VCC加电以后,电容器充电,电容器左板电子流出显正电,电容器右板电子流入显负电,因而rst处电流方向由右板流入rst,rst处表示为高电平
  • 按键复位:按键后短接上面电容,进而使rst处电位处于高电平状态。

注意:复位端没有标上划线就代表高电平有效(当这个引脚输入5V高电平时就会触发单片机从头执行程序代码)

单片机的时序

  • 时钟周期:也称振荡周期,单片机内部时钟电路产生(或外部时钟电路送入)的信号周期
  • 指令周期:计算机取一条指令至执行完该指令需要的时间称为指令周期、
  • 机器周期:机器周期是单片机的基本操作周期,每个机器周期包含S1,S2……S6 6个状态,每个状态包含2拍P1,P2,每一拍为一个时钟周期。因此,一个机器周期包含12个时钟周期。

注意:

  • 时钟周期是单片机时序中的最小单位,是时钟频率的倒数。
  • 震荡周期:震荡一次的时间是多长;震荡频率:一秒的时间内震荡多少次。
  • 机器周期是单片机完成一个操作最短的时间,也就是CPU执行语句所需时间的最小单位
  • 机器周期的大小将影响CPU执行每条指令的时间长短

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

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

相关文章

点餐小程序php毕设项目

主要技术框架: 主要功能模块: 商品管理 订单管理 用户管理 优惠券管理 商品分类管理 评论管理 轮播图管理 截图 获取源码 https://blog.lusz.top/article?article_id-2

python爬虫之xpath+多进程爬取百度贴吧实战

文章目录 抓取百度贴吧的某一个帖子的评论内容前言先查看贴吧的robots.txt页面结构分析评论者头像,用户抓取评论内容的抓取评论下回复内容的抓取 源码实现贴吧抓取过程源码实现多进程的实现 抓取百度贴吧的某一个帖子的评论内容 前言 本项目实战是用来学习用&#…

操作系统内功篇:硬件结构之CPU是如何执行任务的?

一 CPU是如何读写数据的? 1.1 CPU架构(组成) 当代CPU一般是多核心的,每个核心都有自己的一个L1和L2Cache,L3Cache是一个CPU所有核心共享的,一个CPU只有一个。L1Cache分为数据缓存和指令缓存。 CPU有三层高速缓存的目的就是将Cac…

安装paddle detection心得

一、安装PaddlePaddle conda create -n mypaddle python3.8 conda activate mypaddle python -m pip install paddlepaddle-gpu2.6.0 -i https://mirror.baidu.com/pypi/simple 请确保您的PaddlePaddle安装成功并且版本不低于需求版本。使用以下命令进行验证。 这是CUDA1…

Warning logs 2024-03-23

给旧的笔记本安装ubuntu系统,并实现ssh远程连接 1、下载ubuntu系统 ubuntu下载链接 选择带桌面版本 2、准备U盘 3、使用UltraISO制作启动盘 破解UltraISO软件 输入 注册名:王涛 注册码:7C81-1689-4046-626F 使用UltraISO&#xff0c…

RabbitMQ的使用—实战

RabbitMQ的使用—实战 ​ RabbitMQ是一个开源的消息代理中间件,在分布式系统开发中被广泛应用。它实现了高级消息队列协议(AMQP),提供可靠的消息传递、灵活的路由、消息确认等功能。下面是使用RabbitMQ的基本流程: 安…

雷卯推荐超级省电防反接方案

方案特别适合一端电池,一端充电的防反接,特别节能 低VF肖特基电源防反接 此方案采用3颗低压降SKY,相比只用1颗功耗更低,可以防止元器件过热 (两者正常工作损耗对比公式: 1.采用1颗SS34LVFA:…

如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器

文章目录 1. 安装配置GoLand2. 服务器开启SSH服务3. GoLand本地服务器远程连接测试4. 安装cpolar内网穿透远程访问服务器端4.1 服务器端安装cpolar4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 本文主要介绍使用GoLand通过SSH远程连接服务器,并结合cpolar内…

八、C#计数排序算法

简介 计数排序是一种非比较性的排序算法,适用于排序一定范围内的整数。它的基本思想是通过统计每个元素的出现次数,然后根据元素的大小依次输出排序结果。 实现原理 首先找出待排序数组中的最大值max和最小值min。 创建一个长度为max-min1的数组count…

IM系统设计之websocket消息转发

Websocket消息转发 项目地址:gitgithub.com:muyixiaoxi/Link.git 上周面试被面试官问到:“在分布式IM系统中,如何实现多个websocket集群之间的通信”。 我在思考了良久后回答:“不会”。 随着我的回答,我和面试官的…

【机器学习入门 】支持向量机

系列文章目录 第1章 专家系统 第2章 决策树 第3章 神经元和感知机 识别手写数字——感知机 第4章 线性回归 第5章 逻辑斯蒂回归和分类 前言 支持向量机(Support Vector Machine) 于1995年发表,由于其优越的性能和广泛的适用性,成为机器学习的主流技术&…

阿里云有免费服务器吗?有的,附送免费服务器申请流程

阿里云服务器免费试用申请链接入口:aliyunfuwuqi.com/go/free 阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个月,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置: 阿里云免费服务器领取 阿里…

day10_面向对象之封装丶构造器

封装概述 现实生活中,每一个个体与个体之间是有边界的,每一个团体与团体之间是有边界的,而同一个个体、团体内部的信息是互通的,只是对外有所隐瞒。 面向对象编程语言是对客观世界的模拟,客观世界里每一个事物的内部…

总结: HQL语句

总结: HQL语句 Part1 数据库的操作Part2 数据表的操作1. 创建普通表2. 内外部表3. 内外部表转换 Part1 数据库的操作 查看数据库: show databases; 创建数据库: create database if not exists 数据库名 使用数据库: use 数据库名; 查看数据库详细信息: desc database 数据库名…

Echarts 利用多X轴实现未来15天天气预报

Echarts 利用多X轴实现未来15天天气预报 UI 设计图 Echarts 实现效果 代码实现 代码分解 echarts 图表上下均显示数据 通过设置 grid.top 和 grid.bottom 设置白天和夜间天气展示区域 grid: {top: 36%,bottom: 36%,left: 5%,right: 5%}, 天气图标的设置 由于 axisLabel 的…

【Linux】一文了解【进程优先级相关知识点】&【PRI / NI值】背后的修正原理(13)

前言 大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《…

算法 之 排序算法

🎉欢迎大家观看AUGENSTERN_dc的文章(o゜▽゜)o☆✨✨ 🎉感谢各位读者在百忙之中抽出时间来垂阅我的文章,我会尽我所能向的大家分享我的知识和经验📖 🎉希望我们在一篇篇的文章中能够共同进步!!&…

leetcode(Hot100)——数组篇

1、两数之和 本题使用哈希法&#xff0c;用一个哈希Map保存数组的值以及对应下标&#xff0c;代码如下&#xff1a; class Solution {public int[] twoSum(int[] nums, int target) {HashMap<Integer,Integer> map new HashMap<>();for(int i0; i<nums.length…

【网络基础】网络层基本协议介绍

目录 一、IP数据包 1.1 网络层的功能 1.2 IP数据包格式 二、ICMP协议介绍 2.1 作用 2.2 常用命令 2.2.1 Ping命令 2.2.2 tracert命令 2.3 广播域 三、ARP协议介绍 3.1 作用 3.2 原理 一、IP数据包 1.1 网络层的功能 定义了基于IP协议的逻辑地址&#xff0c;就是I…

数据结构应用——哈夫曼树

哈夫曼树 哈夫曼树的相关概念构造哈夫曼树基础算法 哈夫曼编码 哈夫曼树的相关概念 结点的权&#xff1a;有某种现实含义的数值。结点的带权路径长度&#xff1a;从树的根结点到该结点的路径长度&#xff08;经过的边数&#xff09;与该结点上权值的乘积。树的带权路径长度&am…