目录
微型计算机基本结构
前言:微型计算机由中央处理器、存储器、输入、输出设备和系统总线等组成。
注意:具体理解请见计算机组成原理。
总线
含义:总线是将各大基本部件按照一定得方式连接起来就构成了硬件系统,为各部件提供服务的公共信息传送线路。他能够分时的发送和接收各种部件的信息,是计算机系统各部件之间传输地址、数据和控制信息的公共通道,CPU通过总线实现读取指令,并实现与内存、外设之间的数据交换,在CPU、内存与外设确定的情况下,总线的速度是制约计算机整体性能的关键。
片内总线和片外总线
- 片内总线:CPU内部的寄存器、算数逻辑部件、控制部件以及总线接口部件之间的公共信息通道
- 片外总线:泛指CPU与外部器件之间的公共信息通道。我们通常所说的总线就是指片外总线
数据总线地址总线与控制总线
-
数据总线:用于在各个部件/设备之间传输数据信息
-
地址总线:用于CPU与存储器、IO接口设备之间传输地址信息
-
控制总线:用于CPU与存储器、IO接口之间传输控制和状态信息
系统总线和IO总线
-
系统总线:CPU连接其他高速功能(如存储器)的总线
-
IO总线: 中低速IO设备之间相互连接的总线
微处理器的内部结构
前言:微处理器由运算器、控制器、寄存器组和片内总线组成。
注意:
- 运算器和控制器在计算机组成原理有讲,这里就不再赘述;而操作单片机主要是操作寄存器,这里主要讲一下寄存器相关。
- ALU一次性最多能够处理多少位数据,那么该单片机就是几位。
内部寄存器
寄存器前言
- 寄存器是连接软硬件的媒介;单片机通过配置寄存器来控制内部线路的连接,通过内部线路的不同连接方式来实现不同电路进而完成不同的功能。
- 在单片机中寄存器就是一段特殊的RAM存储器,一方面,寄存器可以存储和读取数据,另一方面,每一个寄存器的背后都连接了一根导线,控制着电路的连接方式。
- 寄存器相当于一个复杂机器的操作按钮。
通用寄存器
- 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(掉电以后数据是不丢失的,类似固态硬盘)
解释:
- SRAM本质上就是一个触发器,其用电路来存储数据,其速度比DRAM快,一般用于电脑CPU的高速缓存。
- DRAM存储数据就是介质为电容(电容充电后有高电平,放完电低电平)其通过电容充放电来达到存储数据的目的,但是内存由于集成度特别高,因此容值特别小(电容存在漏电现象)所以电容在存储数据之后很快就会漏电漏完,因此需要配置一个扫描电路(每隔一段时间就读取数据进而给他补电)所以叫动态RAM(相对于SRAM成本更低,容量更大)
- Mask ROM为最早的ROM,该ROM生产出来仅仅依靠电路存储数据,并且数据不能更改
- PROM相对于Mask ROM来说它可以写入数据了,但是仅仅能写入一次
- EPROM是PROM的升级版,其在生产出来之后我们也可以对他进行编程,但是编程好之后我们可以把它里面的数据进行清除(但是你若想要擦除数据需要紫外线照射30分钟)
- E2PROM是EPROM的升级版,其擦除不需要紫外线照射了,但是容量比较小
- flash闪存应用广泛(U盘,固态硬盘等),其可编程,可擦除,并且容量大
- 机械硬盘,光盘等靠磁介质,光介质等存储信息。
存储器的简化模型
理解:
- 存储器内部实际上是电路的网状结构,横向的线为地址总线(用来选定哪一个地址),纵向的线为数据总线(数据是从下面出来的)
- 存储方式:选中地址为第一行(地址总线为高电平1),那么根据数据总线与地址总线是否连接就可以读出特定的数据(连接处为1,未连接处为0)
- 交叉处单个二极管的为Mask ROM,这个二极管的作用为防止串流导致的数据不准确(让电流只能从该地址线处流过,阻止了其他点位对该点位的影响)这个电路设计完数据不能更改;而PROM是两个二极管相对的电路,蓝色二极管加高电压容易被击穿,因此该电路只能更改一次数据,更改这次数据的原理就是击穿蓝色二极管,使之变成Mask ROM的状态
IO接口的功能
- 数据的寄存和缓冲
- 信号的转换
- 设备选择功能
- 外设的控制和监测
- 中断或DMA管理功能
- 可编程功能
外部设备与CPU之间的数据传送方式
- 无条件传送方式
- 查询传送方式
- 中断传送方式
单片机
含义:单片机属于微型计算机的一种,是把微型计算机中的微处理器、存储器、IO接口,定时器/计数器、串行接口、中断系统等电路集成在一块集成电路芯片上形成微型计算机。因而被称为单片微型计算机,简称单片机。
单片机基本介绍
- 单片机英文Micro Controller Unit,简称MCU
- 单片机内部集成了CPU、RAM、ROM、定时器、中断系统、通讯接口等一系列电脑的常用硬件功能
- 单片机的任务是:信息采集(依靠传感器)、处理(依靠CPU)和硬件设备(例如电机和LED等)的控制
- 单片机和计算机相比,单片机是一个袖珍版的计算机,一个芯片就能构成完整的计算机系统。但是在性能上与计算机相差甚远,但单片机成本低,体积小,结构简单,在生活和工业控制领域有很大作用
- 单片机的适用领域已经十分广泛,如智能仪表,实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上单片机就能起到使产品升级换代的功效(智能洗衣机)。
单片机的特点
- 在存储结构上单片机采用哈佛结构。ROM和RAM是严格分开的,ROM称为程序存储器,只存放程序,固定常数和数据表格。RAM则数据存储器,用作工作区和存放数据
- 在芯片引脚上,大部分采用时分复用技术
- 在内部资源访问上,通过特殊功能寄存器(SFR)的方式
- 在指令系统上,采用,面向控制的指令系统
- 内部一般都集成一个全双工的串行接口
- 单片机有很强的外部扩展能力
注意:51单片机为80年代intel开发的8051单片机内核的统称,就是因为这个8051有个51,所以,凡事以8051内核一样的单片机都统称为51系列单片机。
单片机的命名规则
51子系列单片机特点
- 8位CPU
- 片内带有振荡器,频率范围为1.2——12MHz
- 片内带有128字节的数据存储器
- 片内带有4K的程序存储器
- 程序存储器的寻址空间为64K字节
- 片外数据存储器的寻址空概念为64K字节
- 128个用户位寻址空间
单片机的最小系统
含义:所谓最小系统,是指一个真正可用的单片机最小配置系统。对于单片机内部资源已经满足系统需要的,可直接采用最小系统。MCS-51单片机根据片内有无程序存储器最小系统分为两种情况。
最小系统的组成
- 震荡电路:震荡电路中的晶体振荡器可以提供震荡脉冲,作为单片机执行的时机;他就像一颗心脏;而另外两个电容作为晶振的负载,可以辅助这颗晶体振荡器起振,所以也叫起振电容(一般容量为10-50pf)
- 电源电路: 每款单片机都有一个工作电压,一般单片机工作电压为5V;单片机的运行就是通过这个5V电压驱动的。
- 复位电路:复位电路的主要作用就是完成单片机的上电初始功能,同时保证单片机的程序出现跑飞的情况下能够使单片机恢复到正常状态。
最小系统的特点
- P0,P1,P2,P3都可以用作用户的IO接口使用
- 片内数据存储器有128B,地址空间为00H——7FH,没有片外数据存储器
- 内部有4KB的程序存储器,地址空间为0000H——0FFFH,没有片外程序存储器,EA(杠)应接高电平
- 可以使用两个定时/计数器T0和T1,一个全双工的串行通信接口,5个中断源
复位电路
前言:在时钟电路工作以后,当外部电路使得RST端出现2个机器周期(24个时钟周期)以上的高电平,系统内部复位。复位有两种方式:上电复位和按钮复位
- 上电复位:VCC加电以后,电容器充电,电容器左板电子流出显正电,电容器右板电子流入显负电,因而rst处电流方向由右板流入rst,rst处表示为高电平
- 按键复位:按键后短接上面电容,进而使rst处电位处于高电平状态。
注意:复位端没有标上划线就代表高电平有效(当这个引脚输入5V高电平时就会触发单片机从头执行程序代码)
单片机的时序
- 时钟周期:也称振荡周期,单片机内部时钟电路产生(或外部时钟电路送入)的信号周期
- 指令周期:计算机取一条指令至执行完该指令需要的时间称为指令周期、
- 机器周期:机器周期是单片机的基本操作周期,每个机器周期包含S1,S2……S6 6个状态,每个状态包含2拍P1,P2,每一拍为一个时钟周期。因此,一个机器周期包含12个时钟周期。
注意:
- 时钟周期是单片机时序中的最小单位,是时钟频率的倒数。
- 震荡周期:震荡一次的时间是多长;震荡频率:一秒的时间内震荡多少次。
- 机器周期是单片机完成一个操作最短的时间,也就是CPU执行语句所需时间的最小单位
- 机器周期的大小将影响CPU执行每条指令的时间长短
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 |
数据存储器
注意:数据存储器从物理结构上分为片内数据存储器和片外数据存储器。
片内数据存储器
片内数据存储器按功能分为以下几个部分
- 工作寄存器组区:00H-1FH单元为工作寄存器组区,共32个字节。工作寄存器也称为通用寄存器,用于临时寄存8位信息。工作寄存器共4组,称为0组、1组、2组、3组,每组8个,分别依次用R0-R7表示
- 位寻址区:20H-2FH为位寻址区,共16字节,128位。这128位每位都可以按位方式使用,每一位都有一个位地址,位地址范围为00H-7FH
- 一般RAM区:30H-7FH为一般RAM区,也称为用户RAM区,共80字节,对于52子系列,一般RAM区从30H-FFH单元。另外,对于前两区中未使用的单元也可用为用户RAM单元使用
- 堆栈区与堆栈指针:堆栈是按先入后出、后入先出的原则进行管理的一段存储区域。
片外数据存储器
扩展外部数据存储器最多64kb,地址范围为0000H-0FFFFH,通过数据指针寄存器DPTR作指针间接方式访问,对于低端的256字节,可用两位十六进制地址编址,地址范围为00H-0FFH,可通过R0和R1间接方式访问。
单片机引脚的内部结构
二极管的保护作用:二极管正向分压0.7V,不管外面给的电压多大,都会有电阻,最终导致输出引脚正向电压最大VDD+0.7V;输出负向电压最大-0.7V,其余的外接电源电压全部分给外阻,进而保护了单片机内部电路。
上拉电阻与下拉电阻
前言:单片机的电源有内阻。
理解:若没有上面的5V电压和上下两个100欧电阻,那么引脚处的电压为5V,若在地端接100欧电阻,那么引脚处(黑点)的电压不为5V,仅为3.8V,那么可知下面的100欧电阻分3.8V电压,可以算出电源内阻30欧,这个电阻叫下拉电阻;若在上面接5V电压,并接100欧电阻,那么左边电源内阻和右边100欧电阻并联,总电阻减小,电流变大,致使脚位电压变高,这个电阻称上拉电阻。
单片机输出模式
前言:左上两个寄存器控制后面引脚的输出(值为0/1)
推挽输出
前言:推挽输出模式下,NMOS和PMOS可开可闭
- 输出高电平:PMOS导通,NMOS截止,那么这样引脚输出的电压就是电源电压VDD(推)
- 输出低电平:NMOS导通,PMOS截止,那么这样引脚的电压就是接地电压(挽)
开漏输出
前言:开漏输出模式下,PMOS永远都是截止的,只有NMOS可开闭(漏极开路)。
- 输出3.3V高电平:外接3.3V电源,并接上拉电阻,那么就由于NMOS和PMOS都截止,单片机的内部是高阻态,那么引脚点位近似于3.3V
- 输出低电平:NMOS导通,那么这样引脚的电压就是接地电压
开漏输出的线与
理解:当多个开漏输出的引脚连接在一起,若他们都输出高电平,那么引脚才能输出高电平,但凡有一个开漏输出低电平,那么所有的引脚电压都被这一个引脚拉低了。
复用输出模式
理解:普通的推挽输出和开漏输出连接到图上的黑色线,我们直接编程,通过该线就可以控制他的输出高低电平了;而复用推挽输出和复用开漏输出连接的是图中绿线,它连接的是单片机的内部外设(PWM、USART、I2C)括号中通讯频率很高,每秒钟电平变化上万次,若使用普通推挽和开漏输出的话,那么我们就需要通过给该引脚编程来控制他的输出,而我们使用复用功能之后,那么他的这些(括号中)模块直接控制他的引脚输出,极大的方便了我们的编程。
输入输出接口
前言: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组成