单片机硬件知识点汇总.docx
《单片机硬件知识点汇总.docx》由会员分享,可在线阅读,更多相关《单片机硬件知识点汇总.docx(27页珍藏版)》请在冰豆网上搜索。
单片机硬件知识点汇总
第一章绪论
第一节单片机
单片机即单片机微型计算机,是将计算机主机(CPU、内存和I/O接口)集成在一小块硅片上的微型机。
第二节单片机的历史与现状
第一阶段(1976~1978年):
低性能单片机的探索阶段。
以Intel公司的MCS-48为代表,采用了单片结构,即在一块芯片内含有8位CPU、定时/计数器、并行I/O口、RAM和ROM等。
主要用于工业领域。
第二阶段(1978~1982年):
高性能单片机阶段,这一类单片机带有串行I/O口,8位数据线、16位地址线可以寻址的范围达到64K字节、控制总线、较丰富的指令系统等。
这类单片机的应用范围较广,并在不断的改进和发展。
第三阶段(1982~1990年):
16位单片机阶段。
16位单片机除CPU为16位外,片内RAM和ROM容量进一步增大,实时处理能力更强,体现了微控制器的特征。
例如Intel公司的MCS-96主振频率为12M,片内RAM为232字节,ROM为8K字节,中断处理能力为8级,片内带有10位A/D转换器和高速输入/输出部件等。
第四阶段(1990年~):
微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展。
第三节单片机的应用领域
一、单片机在仪器仪表中的应用
二、单片机在机电一体化中的应用
三、单片机在智能接口和多机系统中的应用
四、单片机在生活中的应用
第二章
硬件结构
第一节MCS-51单片机及其演变
特点
(1)一个8位微处理器CPU。
(2)数据存储器RAM和特殊功能寄存器SFR。
(3)内部程序存储器ROM。
(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。
(5)四个8位可编程的I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。
(6)一个串行端口,用于数据的串行通信。
(7)中断控制系统。
(8)内部时钟电路。
第二节80C51单片机的基本结构
1)中央处理器(CPU)
中央处理器是单片机的核心,完成运算和控制功能。
MCS-51的CPU能处理8位二进制数或代码。
2)内部数据存储器(内部RAM)
8051芯片中共有256个RAM单元,但其中后128单元被专用寄存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。
因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。
3)内部程序存储器(内部ROM)
8051共有4KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。
4)定时/计数器
8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
5)并行I/O口
MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。
在实训中我们已经使用了P1口,通过P1口连接8个发光二极管。
第三节80C51单片机的引脚功能
MCS-51是标准的40引脚双列直插式集成电路芯片,引脚排列请参见图
P0.0~P0.7:
P0口8位双向口线。
P1.0~P1.7:
P1口8位双向口线。
P2.0~P2.7:
P2口8位双向口线。
P3.0~P3.7:
P3口8位双向口线。
ALE:
地址锁存控制信号。
在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。
此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。
PSEN:
外部程序存储器读选通信号。
在读外部ROM时,PSEN有效(低电平),以实现外部ROM单元的读操作。
EA:
访问程序存储控制信号。
当信号为低电平时,对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。
RST:
复位信号。
当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。
XTAL1和XTAL2:
外接晶体引线端。
当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。
VSS:
地线。
VCC:
+5V电源。
以上是MCS-51单片机芯片40条引脚的定义及简单功能说明,读者可以对照实训电路找到相应引脚,在电路中查看每个引脚的连接使用。
P3口线的第二功能。
P3的8条口线都定义有第二功能
第四节存储器结构
MCS-51单片机的芯片内部有RAM和ROM两类存储器,即所谓的内部RAM和内部ROM
MCS-51内部程序存储器
MCS-51的程序存储器用于存放编好的程序和表格常数。
8051片内有4KB的ROM,8751片内有4KB的EPROM,8031片内无程序存储器。
MCS-51的片外最多能扩展64KB程序存储器,片内外的ROM是统一编址的。
如端保持高电平,8051的程序计数器PC在0000H~0FFFH地址范围内(即前4KB地址)是执行片内ROM中的程序,当PC在1000H~FFFFH地址范围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从0000H开始编址。
MCS-51的程序存储器中有些单元具有特殊功能,使用时应予以注意。
其中一组特殊单元是0000H~0002H。
系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。
如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。
还有一组特殊单元是0003H~002AH,共40个单元。
这40个单元被均匀地分为5段,作为5个中断源的中断地址区。
其中:
0003H~000AH外部中断0中断地址区
000BH~0012H定时/计数器0中断地址区
0013H~001AH外部中断1中断地址区
001BH~0022H定时/计数器1中断地址区
0023H~002AH串行中断地址区
中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。
但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。
MCS-51内部数据存储器
内部数据存储器低128单元
8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:
低128单元(单元地址00H~7FH)和高128单元(单元地址80H~FFH)。
如图所示为低128单元的配置图。
寄存器区
8051共有4组寄存器,每组8个寄存单元(各为8),各组都以R0~R7作寄存单元编号。
寄存器常用于存放操作数中间结果等。
由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。
4组通用寄存器占据内部RAM的00H~1FH单元地址。
在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。
到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。
通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。
此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分
利用这些寄存器,以简化程序设计,提高程序运行速度。
位寻址区
内部RAM的20H~2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。
位寻址区共有16个RAM单元,计128位,地址为00H~7FH。
MCS-51具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。
这种位寻址能力是MCS-51的一个重要特点。
用户RAM区
在内部RAM低128单元中,通用寄存器占去32个单元,位寻址区占去16个单元,剩下80个单元,这就是供用户使用的一般RAM区,其单元地址为30H~7FH。
对用户RAM区的使用没有任何规定或限制,但在一般应用中常把堆栈开辟在此区中。
内部数据存储器高128单元
内部RAM的高128单元是供给专用寄存器使用的,其单元地址为80H~FFH。
因这些寄存器的功能已作专门规定,故称之为专用寄存器(SpecialFunctionRegister),也可称为特殊功能寄存器。
第五节特殊功能存储器SFR
8051共有21个专用寄存器,现把其中部分寄存器简单介绍如下:
程序计数器(PC—ProgramCounter)。
在实训中,我们已经知道PC是一个16位的计数器,它的作用是控制程序的执行顺序。
其内容为将要执行指令的地址,寻址范围达64KB。
PC有自动加1功能,从而实现程序的顺序执行。
PC没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。
因地址不在SFR(专用寄存器)之内,一般不计作专用寄存器。
累加器(ACC—Accumulator)。
累加器为8位寄存器,是最常用的专用寄存器,功能较多,地位重要。
它既可用于存放操作数,也可用来存放运算的中间结果。
MCS-51单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。
B寄存器。
B寄存器是一个8位寄存器,主要用于乘除运算。
乘法运算时,B存乘数。
乘法操作后,乘积的高8位存于B中,除法运算时,B存除数。
除法操作后,余数存于B中。
此外,B寄存器也可作为一般数据寄存器使用。
程序状态字(PSW—ProgramStatusWord)。
程序状态字是一个8位寄存器,用于存放程序运行中的各种状态信息。
其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。
PSW的位状态可以用专门指令进行测试,也可以用指令读出。
一些条件转移指令将根据PSW有些位的状态,进行程序转移。
PSW的各位定义如下:
除PSW.1位保留未用外,其余各位的定义及使用如下:
CY(PSW.7)——进位标志位。
CY是PSW中最常用的标志位。
其功能有二:
一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。
位传送、位与位或等位操作,操作位之一固定是进位标志位。
AC(PSW.6)——辅助进位标志位。
在进行加减运算中,当低4位向高4位进位或借位时,AC由硬件置“1”,否则AC位被清“0”。
在BCD码调整中也要用到AC位状态。
F0(PSW.5)——用户标志位。
这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。
RS1和RS0(PSW.4,PSW.3)——寄存器组选择位。
它们被用于选择CPU当前使用的通用寄存器组。
通用寄存器共有4组,其对应关系如下:
00:
0组01:
1组10:
2组11:
3组
这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。
但当单片机上电或复位后,RS1RS0=00。
OV(PSW.2)——溢出标志位。
在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128~+127),即产生了溢出,因此运算结果是错误的,否则,OV=0表示运算正确,即无溢出产生。
P(PSW.0)——奇偶标志位。
表明累加器A中内容的奇偶性。
如果A中有奇数个“1”,则P置“1”,否则置“0”。
凡是改变累加器A中内容的指令均会影响P标志位。
此标志位对串行通信中的数据传输有重要的意义。
在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。
数据指针(DPTR)。
数据指针为16位寄存器。
编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:
DPHDPTR高位字节,DPLDPTR低位字节。
DPTR通常在访问外部数据存储器时作地址指针使用。
由于外部数据存储器的寻址范围为64KB,故把DPTR设计为16位。
堆栈指针(SP—StackPointer)。
堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。
堆栈共有两种操作:
进栈和出栈。
由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。
系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的。
但08H~1FH单元分别属于工作寄存器1~3区,如程序要用到这些区,最好把SP值改为1FH或更大的值。
对专用寄存器的字节寻址问题作如下几点说明:
(1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。
(2)程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。
(3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。
第六节输入输出端口
单片机芯片内还有一项主要内容就是并行I/O口。
MCS-51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。
每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。
实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。
在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。
在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。
第七节时钟电路
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。
而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。
1.振荡周期:
为单片机提供时钟信号的振荡源的周期。
2.时钟周期:
是振荡源信号经二分频后形成的时钟脉冲信号。
3.机器周期:
通常将完成一个基本操作所需的时间称为机器周期。
4.指令周期:
是指CPU执行一条指令所需要的时间。
一个指令周期通常含有1~4个机器周期。
第八节复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。
实训中已经看出,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后状态。
第三章定时器/计数器
第一节概述
实质是计数器,脉冲每一次下降沿,计数寄存器数值将加1。
计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。
计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不准确,这时称为计数器。
第二节结构和工作原理
定时/计数器方式寄存器TMOD
(1) M1和M0:
方式选择位。
(2)c/T:
功能选择位。
时,设置为定时器工作方式;时,设置为计数器工作方式。
(3)GATE:
门控位。
当GATE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须(P3.2)或(P3.3)为高电平方可启动定时器,即允许外中断、启动定时器。
定时器/计数器控制寄存器TCON
(1)TCON.7TF1:
定时器1溢出标志位。
当定时器1计满数产生溢出时,由硬件自动置TF1=1。
在中断允许时,向CPU发出定时器1的中断请求,进入中断服务程序后,由硬件自动清0。
在中断屏蔽时,TF1可作查询测试用,此时只能由软件清0。
(2)TCON.6TR1:
定时器1运行控制位。
由软件置1或清0来启动或关闭定时器1。
当GATE=1,且为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1即可启动定时器1。
(3)TCON.5TF0:
定时器0溢出标志位。
其功能及操作情况同TF1。
(4)TCON.4TR0:
定时器0运行控制位。
其功能及操作情况同TR1。
(5)TCON.3IE1:
外部中断1()请求标志位。
(6)TCON.2IT1:
外部中断1触发方式选择位。
(7)TCON.1IE0:
外部中断0()请求标志位。
(8)TCON.0IT0:
外部中断0触发方式选择位。
第三节定时/计数器的工作方式
1.方式0
方式0构成一个13位定时/计数器。
图是定时器0在方式0时的逻辑电路结构,定时器1的结构和操作与定时器0完全相同。
2.方式1
定时器工作于方式1时。
由图可知,方式1构成一个16位定时/计数器,其结构与操作几乎完全与方式0相同,惟一差别是二者计数位数不同。
3.方式2
定时/计数器工作于方式2时,。
由图可知,方式2中,16位加法计数器的TH0和TL0具有不同功能,其中,TL0是8位计数器,TH0是重置初值的8位缓冲器。
4.方式3
定时/计数器工作于方式3时,其逻辑结构图如图所示。
第四节编程和使用
1.计数器初值的计算
把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此可得到公式:
TC=M-C式中,M为计数器模值,该值和计数器工作方式有关。
在方式0时M为213;在方式1时M为216;在方式2和方式3时M为28。
2.定时器初值的计算
在定时器模式下,计数器由单片机主脉冲经12分频后计数。
因此,定时器定时时间T的公式:
T=(M-TC)T计数,上式也可写成:
TC=M-T/T计数。
式中,M为模值,和定时器的工作方式有关;T计数是单片机振荡周期TCLK的12倍;TC为定时器的定时初值。
第六章中断系统
第一节概述
中断是通过硬件来改变CPU的运行方向的。
计算机在执行程序的过程中,当出现CPU以外的某种情况时,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。
这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。
与中断有关的寄存器有4个,分别为中断源寄存器TCON和SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP;中断源有5个,分别为外部中断0请求、外部中断1请求、定时器0溢出中断请求TF0、定时器1溢出中断请求TF1和串行中断请求RI或TI。
5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址。
第二节中断源与中断申请标志
中断源
(1)外部中断0请求,由P3.2脚输入。
通过IT0脚(TCON.0)来决定是低电平有效还是下跳变有效。
一旦输入信号有效,就向CPU申请中断,并建立IE0标志。
(2)外部中断1请求,由P3.3脚输入。
通过IT1脚TCON.2)来决定是低电平有效还是下跳变有效。
一旦输入信号有效,就向CPU申请中断,并建立IE1标志。
(3) TF0:
定时器T0溢出中断请求。
当定时器0产生溢出时,定时器0中断请求标志位(TCON.5)置位(由硬件自动执行),请求中断处理。
(4) TF1:
定时器1溢出中断请求。
当定时器1产生溢出时,定时器1中断请求标志位(TCON.7)置位(由硬件自动执行),请求中断处理。
(5) RI或TI:
串行中断请求。
当接收或发送完一串行帧时,内部串行口中断请求标志位RI(SCON.0)或TI(SCON.1)置位(由硬件自动执行),请求中断。
中断标志
TCON寄存器中的中断标志
TCON为定时器0和定时器1的控制寄存器,同时也锁存定时器0和定时器1的溢出中断标志及外部中断和的中断标志等。
与中断有关位如下:
(1)TCON.7TF1:
定时器1的溢出中断标志。
T1被启动计数后,从初值做加1计数,计满溢出后由硬件置位TF1,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。
也可由软件查询该标志,并由软件清0。
(2) TCON.5TF0:
定时器0溢出中断标志。
其操作功能与TF1相同。
(3) TCON.3IE1:
中断标志。
IE1=1,外部中断1向CPU申请中断。
(4) TCON.2IT1:
中断触发方式控制位。
当IT1=0时,外部中断1控制为电平触发方式。
(5) TCON.1IE0:
中断标志。
其操作功能与IE1相同。
(6) TCON.0IT0:
中断触发方式控制位。
其操作功能与IT1相同。
SCON寄存器中的中断标志
SCON是串行口控制寄存器,其低两位TI和RI锁存串行口的发送中断标志和接收中断标志。
(1) SCON.1TI:
串行发送中断标志。
CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。
但CPU响应中断时并不清除TI,必须由软件清除。
第三节中断控制
IE寄存器中断的开放和禁止标志
(1) IE.7EA:
总中断允许控制位。
EA=1,开放所有中断,各中断源的允许和禁止可通过相应的中断允许位单独加以控制;EA=0,禁止所有中断。
(2)IE.4ES:
串行口中断允许位。
ES=1,允许串行口中断;ES=0,禁止串行口中断。
(3)IE.3ET1:
定时器1中断允许位。
ET1=1,允许定时器1中断;ET1=0,禁止定时器1中断。
(4)IE.2EX1:
外部中断1()中断允许位。
EX1=1,允许外部中断1中断;EX1=0,禁止外部中断1中断。
(5) IE.1ET0:
定时器0中断允许位。
ET0=1,允许定时器0中断;ET0=0,禁止定时器0中断。
(6) IE.0EX0:
外部中断0()中断允许位。
EX0=1,允许外部中断0中断;EX0=0,禁止外部中断0中断。
8051单片机系统复位后,IE中各中断允许位均被清0,即禁止所有中断。
IP寄存器中断优先级标志
8051单片机有两个中断优先级,每个中断源都可以通过编程确定为高优先级中断或低
(1)IP.4PS:
串行口中断优先控制位。
PS=1,设定串行口为高优先级中断;PS=0,设定串行口为低优先级中断。
(2)IP.3PT1:
定时器T1中断优先控制位。
PT1=1,设定定时器T1中断为高优先级中断;PT1=0,设定定时器T1中断为低优先级中断。
(3)IP.2PX1:
外部中断1中断优先控制位。
PX1=1,设定外部中断1为高优先级中断;PX1=0,设定外部中断1为低优先级中断。
(4)IP.1PT0:
定时器T0中断优先控制位。
PT0=1,设定定时器T0中断为高优先级中断;PT0=0,设定定时器T0中断为低优先级中断。
(5)IP.0PX0:
外部中断0中断优先控制位。
PX0=1,设定外部中断0为高优先级中断;PX0=0,设定外部中断0为低优先级中断。
当系统复位后,IP低5位全部清0,所有中断源均设定为低优先级中断。
如果几个同一优先级的中断源同时向CPU申请中断,CPU通过内部硬件查询逻辑,按自然优先级顺序确定先响应哪个中断请求。
自然优先级由硬件形成,排列如下:
中断源同级自然优先级
外部中断0最高级
定时器T0中断
外部中断1
定时器T1中断
串行口中断最低级
第四节中断响应
中断处理过程可分为中断响应、中断处理和中断返回三个阶段。
中断响应
中断响应是CPU对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称矢量地址)。
中断响应过程
中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。
首先,中断系统