文档库 最新最全的文档下载
当前位置:文档库 › 单片机知识点汇编

单片机知识点汇编

单片机知识点汇编
单片机知识点汇编

第一章、绪论

单片机定义:把CPU、寄存器、RAM/ROM、I/O接口等电路集成在一块集成电路芯片上,构成一个完整的微型计算机。

单片机特点:体积小、功耗低、性价比高;数据大都在片内传送,抗干扰能力强,可靠性高;结构灵活,应用广泛。

单片机发展趋势:数据位长1-->4-->8-->16-->32位;CPU处理能力和速度不断提高;增大片内RAM和ROM容量;增加片内I/O口和功能模块种类和数量;扩大对外部RAM/IO口和程序存储器寻址能力;缩小体积,降低功耗。

单片机应用:控制应用:应用范围广泛,从实时性角度可分为离线应用和在线应用。

软硬件结合:软硬件统筹考虑,不仅要会编程,还要有硬件的理论和实践知识。

应用现场环境恶劣:电磁干扰、电源波动、冲击震动、高低温等环境因素的影响。要考虑芯片等级选择、接地技术、屏蔽技术、隔离技术、滤波技术、抑制反电势干扰技术等。

应用空间大:工业自动化、仪器仪表、家用电器、信息和通信产品、军事装备、物联网等领域。

第三章:MCS-51单片机结构与原理

3.1 MCS-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(Arithmetic Logic Unit)、8位累加器ACC(Accumulator)、8位寄存器B、程序状态字寄存器PSW(Program Status Word)、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.2 MCS-51单片机的片外总线结构

三总线结构:地址总线(AB):宽度为16位,由P0口经地址锁存器提供低8位地址(A0-A7),P2口直接提供高8位地址(A8~A15),是单向的。

数据总线(DB):宽度为8位,由P0口提供,是双向的;控制总线(CB):接收各种部件状态,发出控制命令。

3.3 MCS-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—000AH INT0中断地址区

000BH—0012H T0中断地址区

0013H—001AH INT1中断地址区

001BH—0022H T1中断地址区

0023H—002AH 串行中断地址区

CODE:程序地址空间(0000H-0FFFFH)

3.4 CPU的时序及辅助电路

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计数是单片机振荡周期T CLK的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)同步异常(synchronous exceptions):由内部事件(CPU指令运行产生的事件)引起的异常。例如:被零除运算产生的异常;断点产生的异常。

(2)异步异常(asynchronous exceptions):由外部事件(与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—000AH INT0中断地址区

000BH—0012H T0中断地址区

0013H—001AH INT1中断地址区

001BH—0022H T1中断地址区

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)确定最小计时单位:

定时器计时为50ms X 20 = 1s

(2)T0工作方式1,计算计数初值:

TC=M-T/ T计数=216-50ms/1μs=3CB0H

(3)中断服务程序:累计20次得到秒,实现秒到分和分到时的计数。

(4)时、分、秒各占两位,分别放在30H、31H、32H。

相关文档