单片机知识点.docx
《单片机知识点.docx》由会员分享,可在线阅读,更多相关《单片机知识点.docx(23页珍藏版)》请在冰点文库上搜索。
单片机知识点
第一章、绪论
单片机定义:
把CPU、寄存器、RAM/ROM、I/O接口等电路集成在一块集成电路芯片上,构成一个完整的微型计算机。
单片机特点:
体积小、功耗低、性价比高;数据大都在片内传送,抗干扰能力强,可靠性高;
结构灵活,应用广泛。
单片机发展趋势:
数据位长1-->4-->8-->16-->32位;CPU处理能力与速度不断提高;增大片内RAM与ROM容量;增加片内I/O口与功能模块种类与数量;扩大对外部RAM/IO口与程序存储器寻址能力;缩小体积,降低功耗。
单片机应用:
控制应用:
应用范围广泛,从实时性角度可分为离线应用与在线应用。
软硬件结合:
软硬件统筹考虑,不仅要会编程,还要有硬件的理论与实践知识。
应用现场环境恶劣:
电磁干扰、电源波动、冲击震动、高低温等环境因素的影响。
要考虑芯片等级选择、接地技术、屏蔽技术、隔离技术、滤波技术、抑制反电势干扰技术等。
应用空间大:
工业自动化、仪器仪表、家用电器、信息与通信产品、军事装备、物联网等领域。
第三章:
MCS-51单片机结构与原理
3.1MCS-51单片机的物理结构及逻辑结构
51单片机的引脚定义:
P0、P1、P2、P3(输入输出口);RST(复位)/VPD(后备电源引入端);
EA(读内/外ROM控制)/Vpp(编程电压);ALE(地址低8位锁存)/PROG(编程脉冲);
PSEN(外部ROM读选通信号);XTAL1、XTAL2(外接晶振端)
Vcc(+5v电源);Vss(地)
逻辑结构--51单片机的系统结构图(教材P26)
51单片机基本组成:
一个8位微处理器CPU;数据存储器RAM与特殊功能寄存器SFR;
内部程序存储器ROM;两个定时/计数器,用以对外部事件进行计数,也可用作定时器;
四个8位可编程的I/O(输入/输出)并行端口;一个串行端口,用于数据的串行通信;
中断控制系统;内部时钟电路。
MCS-51单片机的CPU:
运算器:
由8位算术逻辑运算单元ALU(ArithmeticLogicUnit)、8位累加器ACC(Accumulator)、8位寄存器B、程序状态字寄存器PSW(ProgramStatusWord)、8位暂存寄存器TMP1与TMP2等组成。
控制器:
主要由程序计数器PC、指令寄存器IR、指令译码器ID、堆栈指针SP、数据指针DPTR、时钟发生器及定时控制逻辑等组成。
MCS-51单片机的输入/输出(I/O)端口结构:
MCS-51单片机有4个双向并行的8位I/O口P0~P3,P0口为三态双向口,可驱动8个TTL电路,P1、P2、P3口为准双向口(作为输入时,口线被拉成高电平,故称为准双向口),其负载能力为4个TTL电路。
端口逻辑结构的总结:
P0、P2口具有两个功能:
I/O口与总线扩展口;P1口只作I/O口使用;P3口有两个功能:
I/O口与第二功能;P0口需要外接上拉电阻;
作为准双向口,P1、P2、P3口输入时,应先使场效应管截止,就要求对锁存器进行预置1;
4个端口除可按字节寻址外,还可按位寻址。
3.2MCS-51单片机的片外总线结构
三总线结构:
地址总线(AB):
宽度为16位,由P0口经地址锁存器提供低8位地址(A0-A7),P2口直接提供高8位地址(A8~A15),是单向的。
数据总线(DB):
宽度为8位,由P0口提供,是双向的;控制总线(CB):
接收各种部件状态,发出控制命令。
3.3MCS-51单片机的存储器配置
1、存储器空间分配
物理上有四个存储空间:
程序存储器[片内、片外];数据存储器[片内、片外]
逻辑上有三个存储空间:
片内外统一的64KB程序存储地址空间;256B内部数据存储空间;64KB外部数据存储空间
使用上有五个存储空间:
直接寻址的内部数据存储空间(00H-0FFH);间接寻址的内部数据存储空间(00H-0FFH);
外部数据存储空间(0000H-0FFFFH);程序存储空间(0000H-0FFFFH);
位存储空间(字节地址20H-2FH,位地址00H-0FFH);
特点:
数据、程序存储器空间分开;物理存储器有片内外之分;有只能读不能写的存储器;有既能读又能写的存储器;有读写更快的存储器。
2、片内数据存储器
片内数据存储器低128单元,00H—7FH。
(1)寄存器区:
32个8位寄存器,00H—1FH分为4组。
每组8个寄存器,分别为R0—R7,4个组的选择由状态字中的RS1、RS0的值确定。
(2)位存储区:
20H—2FH,共16个字节单元,128个位单元。
(3)用户RAM区:
30H—7FH,通常堆栈放在此区。
片内数据存储器高128单元,80H—0FFH。
(1)特殊功能寄存器SFR:
22个,21个可寻址,PC不可寻址。
A、程序计数器PC(16位):
用于存放将要执行的指令地址(程序存储器地址),并具有自动加1的功能。
B、累加器A(8位):
存放运算中的操作数据及运算后的结果。
C、B寄存器(8位):
乘除法中的第二个操作数与运算后的结果。
D、程序状态字PSW(8位):
寄存程序运行中的状态信息。
E、栈指针寄存器SP(8位):
指向栈顶,PUSH时先加1,后存数。
F、其它:
数据指针寄存器DPTR(16位)、端口寄存器P0/P1/P2/P3(8位)、串行数据缓冲器SBUF(8位)、定时/计数器T0/T1(16位)、控制寄存器IP/IE/TMOD/TCON/SCON/PCON(8位)。
(2)特殊功能寄存器的字节寻址:
只能使用直接寻址方式,在指令中既可以使用寄存器符号表示,也可以使用寄存器地址表示。
(3)特殊功能寄存器的位寻址:
21个SFR中的11个可以位寻址。
(4)80H—0FFH的间接寻址可作用户的RAM区使用。
DATA:
直接寻址的内部数据存储空间(00-0FFH)(片内RAM)
IDATA:
间接寻址的内部数据存储空间(00H-0FFH)(片内RAM)
注意:
DATA的00H-7FH区间与IDATA的00H-7FH区间重叠,即这个区域既可使用直接寻址,也可使用间接寻址。
若选择了8051AH则80H以上的存储器不能用。
若选择了8052AH则80H以上的存储器可用。
3、片外数据存储器
外部数据存储器又称外部RAM,当片内RAM不能满足数量上的要求时,可通过总线端口与其他I/O口扩展外部数据RAM,其最大容量可达64K字节。
在片外数据存储器中,数据区与扩展的I/O口是统一编址的,使用的指令也完全相同,因此,在应用系统设计时,必须合理地进行外部RAM与I/O端口的地址分配,并保证译码的唯一性。
XDATA:
外部数据存储空间(0000H-0FFFFH)
4、程序存储器
程序存储器的包括片内与片外程序存储器两个部分。
其主要用来存放编好的用户程序与表格常数,它以16位的程序计数器PC作为地址指针,故寻址空间为64KB。
8051片内有4kB(0000H—0FFFH),其中特殊保留单元:
0000H—0002H无条件转移指令(系统复位后PC=0000H)
0003H—000AHINT0中断地址区
000BH—0012HT0中断地址区
0013H—001AHINT1中断地址区
001BH—0022HT1中断地址区
0023H—002AH串行中断地址区
CODE:
程序地址空间(0000H-0FFFFH)
3.4CPU的时序及辅助电路
1.单片机的时钟电路两种形式:
内部振荡方式:
MCS-51片内有一个构成振荡器的高增益反相放大器,XTAL1与XTAL2分别是放大器的输入端与输出端。
放大器与外接晶振连接构成了内部自激振荡器并产生振荡时钟脉冲。
外部振荡方式:
把外部已有的时钟信号引入单片机内。
内部:
外部:
2、振荡周期、时钟周期、机器周期与指令周期
振荡周期:
为单片机提供时钟信号的振荡源的周期。
时钟周期:
是振荡源信号经二分频后形成的时钟脉冲信号。
机器周期:
通常将完成一个基本操作所需的时间称为机器周期。
指令周期:
是指CPU执行一条指令所需要的时间。
一个指令周期通常含有1~4个机器周期。
若晶振为12MHz时,则:
振荡周期=1/12MHz=1/12μs=0.0833μs
时钟周期=1/6μs=0.167μs
机器周期=1μs
指令周期=1~4μs
4、复位电路及复位状态
复位电路:
单片机复位电路包括片内、片外两部分。
外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。
MCS-51单片机通常采用上电自动复位与按键手动复位两种方式。
复位后,P0—P3口输出高电平,初值07H写入栈指针SP,清“0”其余的特殊功能寄存器与程序计数器PC。
只要RESET保持高电平,单片机循环复位,RESET由高变低后,单片机从0地址开始执行程序。
单片机复位不影响内部RAM的状态,包括工作寄存器R0—R7。
第四章:
单片机编程语言基础
按照语言的结构及其功能可以分为三种:
◆机器语言:
机器语言是用二进制代码0与1表示指令与数据的、最原始的程序设计语言。
◆汇编语言:
汇编语言是用助记符代替机器码表示指令与数据的、便于记忆与使用的、面向机器的专用语言。
◆高级语言:
高级语言是接近于人的自然语言,面向应用、独立于机器的通用语言。
第五章定时器与计数器
5.1定时/计数器的结构及工作方式
1、定时/计数器结构
●结构:
由计数器、计数信号源与计数控制三部分组成。
图中,TH与TL是计数器,数字信号的下降沿使其加1;两种计数信号源:
系统时钟与引脚T输入的外部信号;其余为计数控制与状态。
2、定时/计数器工作方式
有4种工作方式,方式0、1、2,T0、T1的工作原理基本相同,方式3,两个定时器的工作原理不同。
方式0:
13位计数器(结构图与上图一样,有13位计数器即TL+TH位数)
方式1:
16位计数器
方式2:
可自动赋初值的8位计数器
方式3:
两个独立的8位计数器
5.2定时/计数器的特殊功能寄存器
1、方式控制寄存器—TMOD(89H)
2、定时器控制寄存器—TCON(88H)
5.3定时/计数器的编程实例
1、定时/计数器常数的计算
(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为定时器的定时初值。
2、定时/计数器应用实例
【应用实例1】设单片机的晶振频率为12MHz,利用T0方式0产生1ms的定时,在P1.0引脚上输出周期为2ms的方波。
方式字:
TMOD=00H
定时初值:
TC=M-T/T计数
T=1*10-3,T计数=12/(12x106)=1*10-6//周期
TC=213–1*10-3/1*10-6=213–1000=7192=1C18H
TH0=1CH,TL0=18H
程序设计:
【应用实例2】设单片机的晶振频率为12MHz,利用T0方式2进行计数,T0引脚(P3.4)的3个下降沿使得P1.0引脚上电平翻转一次。
方式字:
TMOD=06H
计数初值:
TC=M-C
TC=28–3=253=0FDH
TH0=TL0=0FDH
程序设计
第六章:
中断系统结构
6.1中断的概念
1.异常与中断
异常(exception):
打破CPU正常的执行顺序,并强迫CPU执行一个特殊指令段的事件。
异常分为两类:
(1)同步异常(synchronousexceptions):
由内部事件(CPU指令运行产生的事件)引起的异常。
例如:
被零除运算产生的异常;断点产生的异常。
(2)异步异常(asynchronousexceptions):
由外部事件(与CPU指令执行无关的事件)引起的异常。
一般外部事件来源于外部硬件装置。
例如:
复位按键产生的系统复位异常;通信设备引发的接收数据异常。
51单片机中的中断是指由CPU外部硬件装置产生的事件引起的异步异常。
可以认为中断是硬件与系统中运行的应用程序之间进行通信的一种方法。
异常有三方面的用途:
1、内部错误处理与特殊条件的管理;如被零除、溢出、断点处理、特权指令等。
2、硬件并发处理:
多个与CPU并行的外部设备同时申请CPU干预。
3、服务请求管理:
各个外部装置向CPU请求服务,如定时间隔到、收到数据包等。
6.2中断的系统结构
1.中断的逻辑结构
外部中断源:
NT0(P3.2)INT1(P3.3)低电平或下降沿有效
内部中断源
T0:
定时/计数器0中断,由T0回零溢出引起。
T1:
定时/计数器1中断,由T1回零溢出引起。
TI/RI:
串行I/O中断,完成一帧字符发送/接收引起。
中断服务程序的入口地址:
0000H—0002H无条件转移指令(系统复位后PC=0000H)
0003H—000AHINT0中断地址区
000BH—0012HT0中断地址区
0013H—001AHINT1中断地址区
001BH—0022HT1中断地址区
0023H—002AH串行中断地址区
2.中断的响应过程
在每个机器周期的S5P2期间,顺序采样每个中断源,CPU在下一个机器周期S6期间按优先级顺序查询中断标志,如查询到某个中断标志为1,将在再下一个机器周期S1期间按优先级进行中断处理。
中断得到响应后自动清除中断标志,由硬件将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向中断矢量地址单元中去执行相应的中断服务程序。
中断申请将被封锁情况:
(1)CPU正在执行一个同级或高一级的中断服务程序。
(2)当前正在执行的那条指令还未执行完。
(3)当前正在执行的指令是RETI或对IE,IP寄存器进行读/写指令,执行这些指令后至少再执行一条指令才会响应中断。
6.3中断系统的特殊功能寄存器
1、中断允许寄存器IE(A8H)
2、中断条件与状态寄存器
3、中断优先寄存器IP(B8H)
中断优先顺序
不同级:
先高后低;同级:
按如下顺序由高到低,INT0、T0、INT1、T1、TI/RI。
6.4中断系统的应用实例
【应用实例】利用定时器与中断技术,设计以秒、分、时为单位的时钟程序。
(晶振12MHz)
1、任务分析、确定算法、分配存储单元
(1)确定最小计时单位:
定时器计时为50msX20=1s
(2)T0工作方式1,计算计数初值:
TC=M-T/T计数=216-50ms/1μs=3CB0H
(3)中断服务程序:
累计20次得到秒,实现秒到分与分到时的计数。
(4)时、分、秒各占两位,分别放在30H、31H、32H。
第七章单片机人机交互
7.2数码管接口技术
数码管(又称LED,即发光二极管显示器,lightemittingdiode),是单片机系统中最常用的显示器件。
通常数码管是由8个发光二级管组合而成,当发光二级管的阳极为高电平,阴极为低电平时,发光二级管可以导通发光。
控制LED中各二极管亮灭,可以显示不同的字形
数码管分为共阴极与共阳极两种结构形式,如图所示。
共阴极指所有发光二级管的阳极相互独立,而把所有的阴极连接起来形成公共端,公共端通常需要接地。
共阳极指所有发光二极管的阴极相互独立,而把所有的阳极连接起来形成公共端,公共端通常需要接电源。
为了能够在数码管上显示某一个字符,需要在它的段选控制端输入不同的电平组合,该电平组合为8位数据,通常称为字型码或者段选码,格式如表7-1所示。
字符的字型码都不同,即使是同一个字符,对于共阴极结构与共阳极结构的LED,字型码也不同
数码管的显示方式有静态显示方式与动态显示方式两种。
(1)静态显示
硬件连线上,每个数码管的公共端都直接接地(共阴极数码管)或接电源(共阳极数码管),各个段选端分别与一个8位的并行I/O端口连接。
显示字符时,将各个字符的字型码分别送入相应的I/O端口,使各数码管同时显示不同的字符。
参见教材P87,图7-6。
(2)动态显示
只利用一个用于段选的单片机8位I/O端口循环点亮各数码管,当间隔时间较短时,由于人眼的视觉暂留现象,效果与各数码管静态显示相同。
在硬件连线上,将所有的数码管的段选端并联,与一个8位的并行I/O端口连接,每个数码管的位选端分别与另一个I/O端口中的某位连接,轮流输出高电平使各数码管循环点亮。
参见教材P89,图7-7。
第八章单片机资源扩展(存储器扩展)
存储器芯片的扩展
存储器芯片的位扩展
适用场合:
芯片容量满足要求,但字长小于存储器系统的要求。
例1:
用1K×4的2114芯片构成lK×8的存储器系统。
根据硬件连线图,可以进一步分析出该存储器的地址分配范围如下:
(假设只考虑16位地址)
地址码芯片的地址范围
A15...A12A11A10A9...A0
××000...00000H
:
:
××001...103FFH
例2:
用2K×8的2716A存储器芯片组成8K×8的存储器系统。
地址码地址范围芯片编号
A15...A13A12A11A10A9...A0
××0000...00000H
:
:
2716-1
××0011...107FFH
××0100...00800H
:
:
2716-2
××0111...10FFFH
××1000...01000H
:
:
2716-3
××1011...117FFH
××1100...01800H
:
:
2716-4
××1111...11FFFH
例3:
用1K×4的2114芯片组成2K×8的存储器系统。
地址码地址范围芯片组编号
A15...A13A12A11A10A9...A0
×××000…00000H
:
:
2114-1
×××001…103FFH
×××010…00400H
:
:
2114-2
×××011…107FFH
例4:
一个存储器系统包括2KRAM与8KROM,分别用1K×4的2114芯片与2K×8的2716芯片组成。
要求ROM地址从1000H开始,RAM的地址从3000H开始,完成硬件连线及相应的地址分配表
地址码地址范围芯片编号
A15A14A13A12A11A10A9...A0
000100001000H
:
:
2716-1
0001011117FFH
000110001800H
:
:
2716-2
000111111FFFH
001000002000H
:
:
2716-3
0010011127FFH
001010002800H
:
:
2716-4
001011112FFFH
001100003000H
:
:
2114-1
0011001133FFH
001110003800H
:
:
2114-2
001110113BFFH
第九章:
串行通信技术
9.1串行通信的基本概念
1、串行通信与并行通信
串行通信:
按照一定的先后顺序、逐位地进行数据传送。
并行通信:
采用同时多位的数据传输。
串行传输方式:
单工、半双工、全双工。
2、串行通信方式
按照对数据流的分界、定时与同步的不同,可分为异步串行与同步串行。
异步串行:
以一个字符作为一帧,随机地出现在信道中。
一帧中双方是同步的,帧与帧之间双方是异步的,每一个帧都要重建同步关系。
同步串行:
以数据块作为一帧,每帧中包含多个字符。
多个字符的传输仅建立一次同步关系。
一帧中,不仅每一位要同步,而且字符之间也要同步。
异步串行用在数据传送时间不确定,发送数据不连续,数据量较少与数据传输率较低的场合。
同步串行通信则用于高传输率、连续、量大的数据传输场合。
●异步通信帧格式
●同步通信帧格式
同步通信协议可分为面向字符、面向比特与面向字节计数等。
以面向字符例:
数据传输速率:
有多种表示方法,如波特率、比特率。
波特率:
数据信号对载波的调制速率,用单位时间内载波状态改变次数表示,单位为波特(Baud)。
比特率:
信道中数字信号的传输速率,它用单位时间内传输二进制代码的有效位(bit)数表示,单位为每秒比特数(bit/s或bps)。
两者关系为:
比特率=波特率X单个调制状态对应的二进制位数
两相调制:
单个调制状态对应1个二进制位,比特率等于波特率。
四相调制:
单个调制状态对应2个二进制位,比特率为波特率的两倍
八相调制:
单个调制状态对应3个二进制位,比特率为波特率的三倍
3、串行通信接口
接口的功能
(1)串行数据格式化:
异步方式,负责生成起止式的帧格式。
面向字符的同步方式,要在发送的数据块前面加上同步控制字符。
(2)串并转换:
并行数据转换为串行数据再向外发送;串行数据转换为并行数据再送往CPU。
(3)数据传输速率的控制:
对波特率进行选择与控制。
(4)错误检测:
对传输的数据自动生成校验码。
(5)电平转换:
计算机是TTL电平及正逻辑,而传输电路采用的是其他电平与逻辑,如:
EIA电平与负逻辑,需要进行电平与逻辑的转换。
(6)提供符合国际接口标准所要求的控制信号线:
在RS-232接口标准中,对通信设备与数据终端间的控制信号进行了明确的规定。
串行通信接口电路的组成:
可编程的接口电路、波特率发送器、电平转换器以及地址译码电路。
9.2MCS-51单片机串行接口
2、串口工作方式及波特率设置
工作方式:
4种
(1)方式0:
串行移位输入/输出方式
输入时,RXD作为数据的输入端,TXD提供移位时钟脉冲,接收器以fosc/12的波特率从RXD输入。
移入第8位数据时,中断标志RI置1。
输出时,8位数据写入SBUF,在移位时钟脉冲(TXD)的控制下,数据以fosc/12的波特率从RXD移出。
8位数据移出后,中断标志TI置1。
传输中只有数据位,没有附加位(起始位、校验位与停止位),移位顺序是先低后高。
第9位数据,SCON中的TB8(发送)或RB8(接收)位,使用如下指令对该位进