单片机重点知识归纳.docx
《单片机重点知识归纳.docx》由会员分享,可在线阅读,更多相关《单片机重点知识归纳.docx(24页珍藏版)》请在冰豆网上搜索。
单片机重点知识归纳
1、预留存储单元及作用
入口单元地址
预留目的
存储单元范围
0000H
复位后初始化引导程序
0000H-0002H
0003H
外部中断0服务程序
0003H-000AH
000BH
定时器0溢出中断服务程序
000BH-0012H
0013H
外部中断1服务程序
0013H-001AH
0001BH
定时器1溢出中断服务程序
001BH-0022H
0023H
串行端口中断服务程序
0023H-002AH
002BH
定时器2中断(8052)服务程序
002BH
2、程序状态字(PSW)寄存器
位地址
D7H
D6H
D5H
D4H
D3H
D2H
D1H
D0H
位序
PSW.7
PSW.6
PSW.5
PSW.4
PSW.3
PSW.2
PSW.1
PSW.0
位标志
CY
AC
F0
RS1
RS0
OV
(F1)
P
CY或C(PSW.7)进位标志位AC(PSW.6)辅助进位标志位
F0(PSW.5)用户标志位F1(PSW.1)用户标志位(8052中含有)
RS1,RS0(PSW.4,PSW.3)当前寄存器区选择位OV(PSW.2)溢出标志位
P(PSW.0)奇偶校验标志位
3、寻址方式:
立即寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、相对寻址、位寻址
寻址方式
存储空间
立即数寻址
程序存储器(操作码常数)
直接寻址
内部数据存储器00H~7FH字节单元;特殊功能寄存器
寄存器寻址
R0~R7,A,B,CY(位),DPTR
寄存器间接寻址
内部数据存储器(@R1,@R0,SP)
外部数据存储器(@R1,@R0,@DPTR)
变址寻址
程序存储器(@A+DPTR,@A+PC)
相对寻址
程序存储器(修改了PC值)
位寻址
内部数据存储器20H~2FH;特殊功能寄存器中的某些单元的位
4、各中断的矢量地址及优先级排序
中断源
中断入口地址
请求标志位
同一级的中断优先级
外部中断0中断
0003H
IE0
最高
最低
定时器/计数器T0中断
000BH
TF0
外部中断1中断
0013H
IE1
定时器/计数器T1中断
001BH
TF1
串行口收发中断
0023H
TI/RI
4.1、4个特殊功能寄存器:
定时器控制寄存器TCON(用6位)、串行口控制寄存器SCON(用2位)、中断允许寄存器IE和中断优先级寄存器IP。
TCON与SCON只有一部分用于中断控制。
4.2、TCON字节地址88H,可以位寻址
TCON
TF1
TF0
IE1
IT1
IE0
IT0
位地址
8FH
8EH
8DH
8CH
8BH
8AH
89H
88H
TF1(TF0):
定时器/计数器T1(T0)的溢出中断请求标志位
IE1(IE0):
外部中断1(0)的中断请求标志位
IT1(IT0):
外部中断1(0)的中断触发方式控制位
4.3IE1:
当检测到外部中断1的引脚上存在有效的中断请求信号时,由硬件使IE1置1.当CPU响应该中断请求时①若外部触发方式为边沿触发,则由硬件使IE1清0.②若外部触发方式为电平触发,只要中断请求一直为低电平,就一直使IE1置1标志直到中断请求变为高电平为止。
这时由软件对IE1清0的操作才真正生效。
4.4中断允许控制8051对中断源的开放或屏蔽是由中断寄存器IE控制的,IE字节地址是DA8H
IE
EA
ES
ET1
EX1
ET0
EX0
位地址
AFH
ACH
ABH
AAH
A9H
A8H
中断允许寄存器IE对中断的开放和关闭实现两级控制即有一个总中断控制位EA(IE.7)和各中断源自己的中断允许控制位。
当EA=0时屏蔽所有的中断申请当EA=1时CPU开放中断,但各个中断源是否开放还要由IE低5位分别控制
中断的前提:
EA=1开放中断
EA:
中断允许总控制位,ES串行口中断允许位ET1(ET0):
定时器/计数器T1(T0)的溢出中断允许位
EX1(EX0):
外部中断1(0)中断允许位(1为允许中断0为禁止中断)
4.5中断优先级寄存器IP其字节地址为0B8H可按位寻
IP
PS
PT1
PX1
PT0
PX0
位地址
BCH
BBH
BAH
B9H
B8H
PS:
串行口中断优先级控制位;PT1/PT0定时器/计数器T1(T0)中断优先级控制位
PX1(PX0):
外部中断1中断优先级控制位
单片机复位后,IP被清0,用户应根据需要对IP中的相应位进行置1或清0(1为高优先级,0为低优先级)
4.6CPU响应中断的基本条件有:
1.中断源发出中断请求2.中断总允许位EA=13.发出中断请求的中断源所对应的中断允许位为“1“
满足基本要求,可能发生中断{{正在执行同级或更高级中断服务程序,当前的指令周期末结束,现行指令为RETI或是访问IE或IP的指令,该指令以及紧接着的下一条指令还未执行完}}
4.7执行中断返回指令RETI的结果是消除优先级生效触发器,以使其他同级或低级中断能被响应
RETI指令执行前应进行相应的出栈操作,目的:
一.恢复保护数据二.使栈顶指针SP与保护断点后的值相同
5、MCS-51单片机的中断优先级有四条原则
1)、不同级的中断源同时申请中断时,先高后低;2)、处理低级中断又收到高级中断请求时,停低转高;3)、处理高级中断却收到低级中断请求时,高不踩低;4)、同级中断源同时申请中断时,按照外部中断0、定时器T0、外部中断1、定时器T1、串行口中断的自然先后顺序响应。
6、中断请求的撤除
CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。
定时器0或1溢出:
CPU在响应中断后,硬件清除了有关的中断请求标志TF0或TF1,即中断请求是自动撤除的。
边沿激活的外部中断:
CPU在响应中断后,也是用硬件自动清除有关的中断请求标志IE0或IE1。
串行口中断:
CPU响应中断后,没有用硬件清除TI、RI,故这些中断不能自动撤除,而要靠软件来清除相应的标志,如CLRTI。
这是与其它4种中断源的不同之处。
7、电平激活的外部中断源中断标志的撤除
电平触发外部中断撤除方法较复杂。
1)、因为在电平触发方式中,CPU响应中断时不会自动清除IE1或IE0标志,所以在响应中断后应立即撤除INT0或INT1引脚上的低电平。
2)、在硬件上,CPU对INT0和INT1引脚的信号不能控制,所以这个问题要通过硬件,再配合软件来解决。
7.1单片机系统实现定时有三种方法:
软件定时硬件定时可编程定时器定时
软件定时:
不需要外加硬件电路,定时精确,占CPU的时间。
、
硬件定时:
不占CPU时间,全由硬件电路完成,操作不方便不准确、。
可编程定时器定时:
:
不占CPU的时间使用灵活方便。
7.2加1计数器的输入脉冲有两个来源:
外部脉冲源TX(T0和T1)端和系统的时钟振荡器
定时器\计数器的基本功能是对输入脉冲进行计数。
对输入脉冲的选择是有特殊功能寄存器的一位(C\T)的内容决定的。
TMOD和TCON是两个专门用于定时器/计数器的控制寄存器,用户可用指令对其相应位进行
清“0“或置”1“操作同时利用外部引脚信号电平控制
定时器/计数器是可编程的
7.3T0和T1是两个16位加1可编程定时器/计数器{简称定时器T0、T1}
定时器T0的计数器由8位特殊功能寄存器THO和TLO组成
定时器T1的计数器由8位特殊功能寄存器TH1和TL1组成
定时器方式寄存器TMOD用于控制和确定各定时器/计数器的功能和工作方式
定时器控制寄存器TCON用于控制定时器T0、T1的启动和停止,并包含它们的溢出标志位
系统复位时TCON和TMOD的所有位清“0“。
7.8定时器的控制寄存器TCON(内部RAM字节地址:
88H)
定时器的控制寄存器TCON具有中断控制和定时控制两种控制
TCON
TF1
TR1
TF0
TR0
位地址
8FH
8EH
8DH
8CH
低四位字断与外部中断有关
TF1(TCON.7)/TF0(TCON.5)定时器T1(T0)的溢出中断标志位
TR1(TCON.6)/TRO(TCON.4)定时器T1/(T0)运行控制位(TR1=0停止运行TR1=1,启动运行)
7.9定时器的方式寄存器TMOD(内部RAM字节地址:
89H)
用于控制定时器/计数器的两种功能及四种工作模式,。
TMOD
GATE
C/T
M1
M0
GATE
C/T
M1
M0
高4位字段用于定时器T1的工作方式控制低4位用于定时器T0的工作方式控制
GATE:
门控制位(TMOD;7对应定时器T1,TMOD、3对应定时器T0)
C/T:
定时或计数功能选择控制位(TMOD、6对应定时器T1,TMOD,2对应定时器T0)
8、定时器/计数器工作方式控制关系
M1
M0
工作方式
功能说明
定时初值计算
0
0
方式0
13位定时器/计数器
0
1
方式1
16位定时器/计数器
1
0
方式2
自动重装初始值的8位定时器/计数器
1
1
方式3
仅T0分为两个8位定时器/计数器
注:
f—输出计数器的脉冲频率它为晶体振荡器频率的1/12;N—定时时间(x);X—定时初值机器周期:
12/f
例1:
编写一段程序,让51MCU的P1.7输出1ms的方波(用定时器T1完成),fosc=12MHz。
定时器初值计算(TCY=1us)此时定时时间采用0.5ms
1、采用方式0:
N=8192-500/1=7692=1E0CH
数据格式为:
1111000000001100B=0F00CH
所以(TH1)=0F0H,(TL1)=0CH
2、采用方式1:
N=65536-500/1=65036=0FE0C
所以(TH1)=0FEH,(TL1)=0CH
ORG0000H;主程序
AJMPMAIN
ORG001BH;定时中断1入口
AJMPSERT1
ORG0030H
MAIN:
SETBP1.7
MOVTMOD,#10H;设T1为方式1
MOVTH1,#0FEH;给T1赋初值
MOVTL1,#0CH
SETBET1;开定时器T1中断
SETBEA
SETBTR1;启动定时器T1
SJMP$
SERT1:
MOVTH1,#0FEH;定时器回赋初值
MOVTL1,#0CH
CPLP1.7
RETI
END
例2:
编写一段程序,让51MCU的P1.7输出占空比为70%,频率为100HZ的矩形波(用定时器完成),fosc=6MHz。
思路:
此题中,高电平时间为10ms×70%=7ms,低电平为3ms。
对于这种高、低电平时间不一致的波形,通常取出两个时间的相同单位时间作为定时器的定时时间,对于不同的电平采用不同的定时次数。
此例中,可用1ms作为定时器的定时时间。
高电平段定时7次,低电平段定时3次,即可实现矩形波输出。
定时器初值=65536-1000/2=65036=FE0CH
程序清单:
ORG0000H;主程序
AJMPMAIN
ORG000BH;定时中断T0入口
AJMPSERT0
ORG0030H
MAIN:
SETBP1.7
MOVTMOD,#01H;设T0为方式1
MOVTH0,#0FEH;给T0赋初值
MOVTL0,#0CH
MOVR0,#7
SETBET0;开定时器T0中断
SETBEA
SETBTR0;启动定时器T0
SJMP$
9、串行口工作方式表
SM0
SM1
工作方式
功能说明
定时初值计算
0
0
方式0
8位移位寄存器
0
1
方式1
10位异步串行通讯
1
0
方式2
11位异步串行通讯
1
1
方式3
11位异步串行通讯
9.1通信主要有两种方式:
并行通信和串行通信
并行通信;是在传递数据过程中每个字节的各位、同时进行传送的通信方式
串行通信:
是指每个字节的各位分别进行传送的通信方式
并行通信的传输速度比串行通信要快并行通信用于短距离高速通信场合
串行通信的两种数据传递方式:
异步串行通信和同步串行通信
串行通信按数据传送方向可分为单工、半双工、全双工通信方式
9.2波特率是表征串行口数据传送速率的量,其定义为每秒传送二进制数的位数单位为bit/s常见1200bit/s2400bit/s4800bit/s9600bit/s
9.3.与串行口有关的特殊功能寄存器有串行口缓冲器SBUF、串行口控制寄存器SCON和波特率控制寄存器PCON
9.4串行口缓冲器SBUF的地址为99H,有两个物理单元串行口接收缓冲器和串行口发送缓冲器(可同时发送和接收数据)
9.5波特率控制寄存器PCON主要用于波特率选择和断电控制,地址为87H
D7
D6
D5
D4
D3
D2
D1
SMOD
SMOD:
波特率选择位。
当SMOD=1波特率提高一倍
PCON的其它位主要用于掉电控制
10、串行口控制器SCON是一个特殊功能寄存器,用以设定串行口的工作方式、接收/发送控制以及设置状态标志;SCON字节地址98H
SCON
D7
D6
D5
D4
D3
D2
D1
D0
位地址
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
SM0和SM1为工作方式选择位,可选择四种工作方式:
SM0
SM1
工作方式
说明
波特率
功能
0
0
0
同步移位寄存器
/12
同步移位寄存器
0
1
1
10位异步收发
由定时器控制
8位UART
1
0
2
11位异步收发
/32或
/64
9位UART不变波特率
1
1
3
11位异步收发
由定时器控制
9位UART可变波特率
SM2,多机通信控制位,主要用于方式2和方式3。
当接收机的SM2=1时可以利用收到的RB8来控制是否激活RI。
当SM2=0时,不论收到的RB8为0和1,均可以使收到的数据进入SBUF,并激活RI。
TB8,在方式2或方式3中,是发送数据的第九位(位8)
RB8,在方式2或方式3中,是接收到数据的第九位(位8),
TI,串行口发送中断标志位。
RI,串行口接收中断标志位。
REN串行口允许接受位
2-3.简述8051片内RAM的空间分配。
答:
低128B位数据存储器区分为:
工作寄存器区(00H~1FH);位寻址区(20H~2FH);一般数据存储区(30H~7FH)
高128B数据存储器区离散地分布着21个特殊功能寄存器
2-8.内RAM低128B单元划分为哪三个主要区域?
各区域主要功能是什么?
答:
地址范围为00H~7FH的128字节单元,按功能特点划分为不同的几个区,分述如下。
(1)工作寄存器区地址范围为00H~1FH的32字节存储器单元,分为四个组,每组有8个工作寄存器字节单元,定名为R0、R1、R2、R3、R4、R5、R6和R7。
通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器均可选作CPU的当前工作寄存器组。
(2)位寻址区地址为20H~2FH的16个字节单元中共128位,每一位都有相应的位地址,可用位寻址方式对其进行置位、复位、内容传送、逻辑运算等操作。
(3)一般数据存储区地址范围为30H~7FH的区域,可用于原始数据及运算结果的存储。
值得注意的是,30H~7FH中一部分字节单元可以开辟出一块遵守“后进先出”或“先进后出”规则的特殊数据区──堆栈。
2-11.CPU如何确定和改变当前工作寄存器组?
答:
通过改变程序状态字特殊功能寄存器PSW中RS1,RS0两位的内容,每组工作寄存器均可被选作当前工作寄存器。
RS1
RS0
当前工作寄存器
0
0
第0组
0
1
第1组
1
0
第2组
1
1
第3组
3-13使用位操作指令实现下列逻辑操作,要求不更改单元其他位的内容。
解:
(1)使Acc.0置1:
SETBAcc.0
(2)清除累加器的高四位:
ANLA,#0FH
或CLRAcc.733
CLRAcc.6
CLRAcc.5
CLRAcc.4
(3)清除Acc.3,Acc.4,Acc.5,Acc.6:
ANLA,#87H
或CLRAcc.3
CLRAcc.4
CLRAcc.5
CLRAcc.6
4-2试编写程序,查找在内部RAM20H-50H单元中出现00H的次数,并将查找的结果存入51H单元。
解:
程序如下:
MOVR0,#20H
MOVR7,#31H
MOV51H,#00H
LOOP1:
CJNE@R0,#00H,LOOP
INC51H
LOOP:
INCR0
DJNZR7,LOOP1
HERE:
SJMPHERE
4-11已知片内RAM以ADDR为起始地址的区域中存放着24个无符号数,试编写程序找出最小值,并存入MIN单元。
解:
根据题意,编写程序如下:
MOVR0,#ADDR;数据区首地址39
MOVR7,#18H;数据区长度
MOVA,@R0;读第一个数
DECR7
LOOP:
INCR0
MOV2AH,@R0;读下一个数
CJNEA,2AH,CHK;数值比较
CHK:
JCLOOP1;A值小转移
MOVA,@R0
LOOP1:
DJNZR7,LOOP;继续
MOV2BH,A;极值送2BH单元
HERE:
AJMPHERE;停止
6-4·MCS-51的外部中断有哪两种触发方式?
它们对触发脉冲或电平有什么要求?
应如何选择和设定?
答:
MCS-51的外部中断有两种触发方式:
边沿触发方式和电平触发方式。
对于边沿触发方式,CPU在每一个机器周期S5P2期间采样外部中断l请求引脚的输入电平。
如果在相继的两个机器周期采样过程中,一个机器周期采样到外部中断1请求信号为高电平,接着的下一个机器周期采样到外部中断1请求信号为低电平,出现了下跳沿,则使IEl置1。
直到CPU响应该中断时,才由硬件使IEl清0。
对于电平触发方式,CPU在每一个机器周期S5P2期间采样外部中断1请求引脚的输入电平。
若外部中断l请求信号为低电平,则使IE1置1,若外部中断1请求信号为高电平,则使IEl清0。
可由TCON中对应的IT0(或IT1)位程控为低电平或下降沿有效。
IT0(或IT1)=1时,外部中断0(或1)程控为边沿触发方式。
IT0(或IT1)=0时,外部中断0(或1)程控为电平触发方式。
6-6·某MCS-51系统用于定时测试压力、温度,定时用T0来实现,压力超限和温度超限的报警信号分别由和输入,中断优先权排列顺序依次为压力超限→温度超限→定时检测,试确定专用寄存器IE和IP的内容,并编写初始化程序。
IE=87HIP=05H
IE:
1
0
0
1
1
1
IP:
0
0
1
0
1
初始化程序如下:
ORG0000H
AJMPMAIN
ORG0003H
AJMPW1
ORG000BH
AJMPW2
ORG0013H
AJMPW3
ORG0050H
MAIN:
MOVIP,#05H
MOVIE,#87H
HERE:
SJMPHERE
8051不可位寻址的特殊寄存器名称:
SP,DPH,DPL(或DPTR),TMOD,TH0,TL0,TH1,TL1,SBUF,PCON
请写出MCS-51可位寻址的特殊寄存器名称及其初始值(10分)。
ACC,B,PSW,P0,P1,P2,P3,IP,IE,TCON,SCON初始值:
除P0、P1、P2、P3为FFH外其余都为0。
请给出特殊寄存器TCON、PSW的各位名称及作用
TCON:
TF1TR1TF0TR0IE1IT1IE0IT0
TFX定时器/计数器中断标志位TRX定时器/计数器打开位
IEX外部中断标志位ITX外部中断触发方式标志位
PSW:
Cy、Ac、F0、RS1、RS0、OV–P
Cy-进位/借位标志位;Ac-半字节进位/借位标志位;
F0-用户标志位;RS1、RS0-通用工作寄存器定义位;
OV-溢出标志位;P-奇偶标志位
IE:
EA--ESET1EX1ET0EX0
EA-中断总允许位;
ES-串口中断允许位;
ET1、ET0-定时器/计数器中断允许位;
EX1、EX0-外部中断允许位
请写出特殊寄存器TMOD,SCON各位的名称及意义
TMODGATEC/TM1M0GATEC/TM1M0
GATE改位控制定时器计数器的运行是否受
INT1、INT0管脚是否为高电平的控制;
C/T改位为1是计数器功能,为0是定时器功能;
M1M0工作方式设置位;
SCON:
SM0SM1SM2RENTB8RB8TIRI
SM0SM1为串行口工作方式设置位SM2多机通讯允许位
REN接收允许位TB8发送的第8位RB8接收到的第8位
TI发送完成标志位RI接收完成标志位
请写出8051中断子程序入口地址,并说明其检测位,中断优先级的高低,以及如何设置
答案:
03H—外部中断0子程序入口,检测位IE0,中断优先级最高;
0BH—定时器/计数器中断子程序入口,检测位TF0;
13H—外部中断1子程序入口,检测位IE1;
1BH—定时器/计数器中断子程序入口,检测位TF1;
23H—串行口中断子程序入口,检测位TI,RI,中断优先级最低;
中断优先级高低的设置需设置IP中的相应位。
PS,PT1,PX1,PT0,PX0。
一、试简述如下器件的功能(5分):
8051-内部只有4KROM的8位单片机74LS373-地址锁存器
27C64-64K位的程序只读存储器ADC0809-8路A/D转换器
DAC0832-8位D/A转换器741383-8译码器
62256256K位的数据存储器扩展芯片DAC08328位D/A转换器
74LS3738位锁存器8255A8并行接口
74LS138:
3-8译码器ADC0809:
A/D转换器2764:
8K的EPROM
8031:
8031单片