单片机知识点.doc
《单片机知识点.doc》由会员分享,可在线阅读,更多相关《单片机知识点.doc(15页珍藏版)》请在冰豆网上搜索。
第一章、绪论
单片机定义:
把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。
第四章:
单片机编程语言基础
按照语言的结构及其功能可以分为三种:
u机器语言:
机器语言是用二进制代码0和1表示指令和数据的、最原始的程序设计语言。
u汇编语言:
汇编语言是用助记符代替机器码表示指令和数据的、便于记忆和使用的、面向机器的专用语言。
u高级语言:
高级语言是接近于人的自然语言,面向应用、独立于机器的通用语言。
第五章定时器与计数器
5.1定时/计数器的结构及工作方式
1、定时/计数器结构
l结构:
由计数器、计数信号源和计数控制三部分组成。
图中,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进行计数,T