厦门理工学院单片机原理及应用期末复习文档格式.docx
《厦门理工学院单片机原理及应用期末复习文档格式.docx》由会员分享,可在线阅读,更多相关《厦门理工学院单片机原理及应用期末复习文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
堆栈的作用:
(1)保护断点
(2)现场保护
堆栈的原则:
先进后出
堆栈的操作:
入栈(PUSH):
先(SP)+1,后把数据压入堆栈
出栈(POP):
先把数据弹出堆栈,后(SP)-1
(DPTR)=507BH,(SP)=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,执行指令POPDPH,POPDPL,POPSP后,DPTR、SP中的内容分别是()。
(A)3C5F,50H(B)5F3CH,30H
(C)3C5FH,30H(D)3C5FH,4FH
2、存储器结构
1)51单片机的寻址范围?
(见课本P26)
51有16根地址线,最大寻址程序存储空间为64KB(寻址范围是:
0000H~FFFFH共64K),分为片内程序存储器、片外程序存储器,采用统一编址方式。
4KB的片内ROM编址范围为0000H~0FFFH;
64KB的片外ROM编址范围为0000H~FFFFH;
2)两种工作模式:
微处理器和微控制器(见课本p27)
微处理器(或称CPU,中央处理单元)
微控制器MCU(MicroControllerUnit)
微处理器模式:
类似于电脑的CPU,程序存取器、数据存储器及I/O设备都是外部提供的,即不使用51内部RAM、ROM等资源。
此时,
=0。
微控制器模式:
该模式就是充分利用51内部RAM、ROM、定时/计数器的资源进行编程工作的模式。
=1。
3)程序存储空间:
内部,外部,范围(见课本P26)
程序存储空间地址范围64KB(ROM)。
包括片内程序存储器(4KB)和片外程序存储器(64KB)。
4)数据存储空间:
内部,外部(见课本P26)
外部:
外RAM与I/O空间统一编址,范围0000H~FFFFH,共64K
内部:
内RAM,SFR
内RAM分布:
地址范围,工作寄存器区,位寻址区,通用区(见课本P28页)
SFR:
地址范围,位寻址(见P29页)
特殊功能寄存器SFR共21个,离散地分布在高128B片内RAM的80H~FFH区域中。
11个可以进行位寻址。
特别提示:
对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。
数据存储空间地址范围64KB(RAM)。
包括片内数据存储器(共256B,21个特殊功能寄存器与128B内部RAM)和片外数据存储器(64KB)。
MCS-51单片机没有独立的I/O空间,而是将I/O空间与片外数据存储器空间共用64KB地址空间范围(共同编址)。
位地址为2BH的位具体是哪个字节的哪一位?
(B)[见课本P28页表]
(A)24H.1(B)25H.3(C)26H.0(D)27H.4
3、最小系统
1)什么是最小系统?
最小系统:
使得单片机能正常工作所必需的最少外部功能部件。
应包括:
电源,时钟电路,复位电路,相应软件。
2)引脚功能
电源引脚Vcc、Vss;
时钟引脚XTAL1、XTAL2;
复位引脚RESET(即RST);
控制引脚PSEN、EA、ALE;
I0引脚P0、P1、P2、P3,为4个8位I/O口的外部引脚;
重点掌握:
EA、RST、P0~P3(见课本P23页)
EA:
访问程序存储控制信号(见课本P23页)
复位引脚:
RST(见课本P22、P31~P36页)
1、P0口
三态复用口
功能(二者选其一)
基本输入输出端口(通用I/O端口)
片外总线(地址总线低8位与数据总线复用)
驱动能力:
8个LSTTL门电路(1个LSTTL的驱动电流是:
低电平时0.36mA,高电平时20uA)
2、P1口
准双向
基本输入输出端口
4个LSTTL门电路
3、P2口
功能
基本输入输出端口
总线(地址总线的高8位)
驱动能力:
4、P3口
准双向
第二功能
当单片机要求工作在微控制器模式,则EA=1;
当单片机要求工作在微处理器模式,则EA=0;
3)时钟电路(见课本P37页)
51系列单片机最高工作频率可达?
AT系列:
24MHz
S系列:
40MHz
时钟周期,机器周期,状态周期之间的关系。
时钟周期:
单片机的基本时间单位。
若时钟的晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc。
机器周期:
CPU完成一个基本操作所需要的时间称为机器周期。
执行一条指令分为几个机器周期。
每个机器周期完成一个基本操作。
MCS-51单片机每12个时钟周期为一个机器周期,
状态周期:
在51里,一个机器周期又分为6个状态:
S1~S6。
因此,一个状态周期为2个时钟周期。
每个状态又分为两拍:
P1和P2。
因此,一个机器周期中的12个时钟周期表示为:
S1P1、S1P2、S2P1、S2P2、…、S6P2。
4)复位电路
51单片机的复位条件?
复位条件:
引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使MCS-51复位。
复位时,PC初始化为0000H,使MCS-51单片机从0000H单元开始执行程序。
复位时,SFR状态?
SP,P0~P3
SFR的复位值:
除PC之外,复位操作还对其它一些寄存器有影响,见表1-12。
SP=07H,P0-P3的引脚均为高电平FFH。
第四-七章
一、4个8位并行I/O端口(见课本P23)
1、P1(基本输入输出,准双向)
操作:
输出
输入:
必须先写1
2、P0,P2(总线或基本输入输出)
P0:
3态,作为基本I/0时,必须外加上拉电阻
3、P3(第二功能或基本IO)
4、应用
♦P0口:
8位,内部无上拉电阻
✧访问外RAM或ROM时,分时复用作低8位地址及数据I/0口.具体看
✧普通I/O口:
当做输入口时,需要令P0口对应管脚为1.
这主要是因为I/O口有“线与”功能,就是说I/O线的电平状态是I/O两端共同决定的,一旦有一端为0,相与之后,I/O线的状态就肯定为0。
所以,在作为输入口时,我们需要把相应端口拉高至1,这样,当另一端为0时,I/O线就为0;
当另一端为1时,I/O线就为1.
♦P1口:
8位,内部有上拉电阻
✧普通I/O口,同P0口
♦P2口:
8位,有上拉
✧访问外RAM或ROM时,用作高8位地址
♦P3口:
✧除了有丰富的第二功能外,与P1口相同
8051的准双向I/O端口有P1、P2、P3,这是因为准双向口只有高电平态和低电平态。
要求系统使用P2口读入拨码开关的状态,并通过P1口使得发光二极管显示该状态,请设计硬件电路并编程。
#include<
REGX51.H>
voiddelay(void)/*delay函数*/
{unsignedchari,j;
/*这个函数执行时间的延迟*/
for(i=0;
i<
255;
i++)
for(j=0;
j<
j++)
;
}
voidmain(void)
{unsignedchartemp;
/*声明变量temp*/
while
(1)/*无穷循环*/
{
temp=P2;
/*将P2输入的数据直接放入变量temp当中*/
P1=temp;
/*将变量temp中的数据直接输出到Port1*/
delay();
}
}
二、中断系统
1、概念
什么是中断,中断源,中断嵌套,中断优先级
中断的定义:
CPU正在执行程序时,单片机外部或内部发生的某一事件,请求CPU迅速去处理。
CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。
处理完该事件后,再回到原来被中止的地方,继续原来的工作,这称为中断。
CPU处理事件的过程,称为CPU的中断响应过程。
中断源:
(1)外围设备:
A/D、键盘、打印机等。
(2)故障源:
掉电、溢出
(3)定时器和实时时钟
(4)为调试程序设置的中断源(如单步调试)
中断嵌套:
指CPU因响应和执行某一中断源的中断请求时,发生了另一个优先级比它高的中断源请求,那么CPU暂停原来执行的中断服务程序转而响应和处理中断优先级更高的中断源的中断请求,处理完以后,再回到原来继续执行低优级中断服务程序。
中断的优先级:
针对同时有多个中断源进行中断请求时,CPU按优先级的高低来响应中断。
高优先级
低优先级
同级中的优先权
2、51单片机的中断源、中断入口地址,中断优先级
中断源
MCS-51有5个中断源,两个中断优先级,可以实现两级中断服务程序嵌套。
中断源中断入口地址
外部中断0/INT00003H
定时器0T0000BH
外部中断1/INT10013H
定时器1T1001BH
串行口0023H
优先级结构:
(1)低优先级中断可被高优先级中断所中断,反之不能;
(2)任何一种中断(不管是高级还是低级),一旦得到
响应,与它同级的中断源不能再中断它。
(3)同级的中断源同时请求时,遵循辅助优先级顺序。
当IP=45H时,请排出5个中断源优先级的先后。
中断优先级控制寄存器IP中的数据是PX1=1,PX0=1.
外部中断0,外部中断1,定时器0,定时器1,串行口。
3、外部中断触发方式(2种)(课本P126)
边沿触发方式和电平触发方式。
4、中断标志位的清除方式
中断请求的撤除
中断源发出中断请求,相应中断请求标志置“1”。
CPU响应中断后,必须清除中断请求“1”标志。
否则中断响应返回后,将再次进入该中断,引起死循环出错。
⑴对定时/计数器T0、T1中断,外中断边沿触发方式,CPU响应中断时就用硬件自动清除了相应的中断请求标志。
⑵对串行口中断,用户应在串行中断服务程序中用软件清除TI或RI。
⑶对外中断电平触发方式,需要采取软硬结合的方法消除后果。
5、应用
初始化:
SCON、TCON、IE、IP
中断系统初始化步骤
设置堆栈指针SP
设置中断优先级寄存器IP
若为外部中断,应设置触发方式(TCON)
设置中断使能寄存器IE,开相应中断
中断程序的编写
中断服务子程序的编写
在中断入口地址设置一条跳转指令
根据需要保护现场
中断源请求中断服务要求的具体操作
若是外部中断电平触发方式,应有中断撤除操作
恢复现场
中断返回
三、定时计数器
1、两种工作模式的区别?
本质上是增1计数器。
两种工作模式:
(1)定时器工作模式:
对片内机器周期脉冲计数。
(2)计数器工作模式:
对外部事件脉冲计数。
(3)计数器工作模式的计数引脚:
T0(P3.4),T1(P3.5)
4种工作方式:
方式0-方式3。
当定时/计数器选定为定时器方式时,是对对片内机器周期脉冲计数进行计数,选定为计数器方式时,是对对外部事件脉冲计数进行计数。
2、作为计数器使用时对应的引脚?
3、4种工作方式的区别?
分别可以定时和计数的最大范围是多少?
(见课本P140~142)
4、溢出后51单片机会有什么操作?
首先,把中断标志TF1或TF0清“0”,并重新计数;
接着,如果有相应定时器中断服务子程序,就执行中断服务子程序里的程序。
1)初值的计算
定时器/计数器初值计算
计数器
公式:
2n-x=所要计的数
定时器
(2n-x)T=所要定时时间
n—8、13、16;
X—计算的初值;
T—机器周期
2)初始化:
TCON,TMOD,THX,TLX,IE,IP
定时器/计数器编程步骤
(1)设置工作模式、工作方式TMOD
(2)赋初值THX、TLX
(3)开中断IE和定义中断优先级IP(若有)
(4)启动定时器/计数器TCON(SETBTRX)
(5)等待中断或查询中断标志TCON.TFX
3)程序编写:
中断方式、查询方式
4)查询方式中注意标志位的清除
在P1.7口接有1个发光二极管,要求利用定时器T0控制使LED亮1S停1S,周而复始。
解:
这是长延时例子,一般采用定时器定时和软件计数相结合的办法。
设T0为方式1,定时值为100ms,计数为10次,即100ms×
10=1S。
(216-X)×
2us=100000us解得X=15536=3CB0H
则TH0=3CH;
TL0=B0H
ORG1000H
START:
MOVR7,#0AH
MOVTMOD,#01H
CPLP1.7
LOOP:
MOVTH0,#3CH
MOVTL0,#0B0H
SETBTR0
Wait:
JBCTF0,Next;
软件查询方式
SJMPWait
Next:
DJNZR7,LOOP;
1S延时到否?
SJMPSTART
四、串行口
1、概念:
串行通信,并行通信,同步通信、异步通信,波特率,通信制式
通信方式
(1)并行通信:
是指数据的各位同时进行传送的通信方式。
优点:
传输速度快。
缺点:
占用I/O线多,传输距离短(<30m)。
(2)串行通信:
是指数据一位一位顺序传送的通信方式。
占用I/O线少(一对),传输距离远。
传输速度低。
(3)异步通信(AsynchronousCommunication)
数据以字节为单位组成字符帧传送。
字符帧由发送端一帧一帧地发送。
两相邻字符帧之间可以无空闲位,也可以有若干空闲位。
这就是异步概念。
发送端和接收端的时钟各自独立。
实现双方同步接收是靠字符帧的起始位和停止位。
字符帧格式:
起始位(1位)、数据位(1~8位)、奇偶校验位(1位)和停止位(1~2位)。
不需要传送同步时钟。
字符帧中包含有起始位和停止位从而降低了有效数据
的传输速率,适用低速通信。
(4)同步通信(SynchronousCommunication)
是一种连续串行传送数据的通信方式。
1个信息帧中包含有若干数据字符。
发送端和接收端的时钟必须同步。
实现双方同步接收是靠信息帧中同步字符。
数据字符之间无间隔。
信息帧格式:
同步字符n、数据字符n、CRCH、CRCL
高速传送数据。
发送时钟和接收时钟保持严格同步,发送时钟传送到接收端。
波特率(baudrate)每秒钟传送二进制数码的位数(bit),单位bps(bitpersecond),bit/s。
串行通信的制式
单工方式(Simplex):
只允许数据向一个方向传送(A→B)。
半双工方式(HalfDuplex):
允许数据向两个方向中的一个方向传送,但每次只能一个站发送。
全双工方式(FullDuplex):
允许数据同时双向传送。
串行通信根据通信的数据格式分有两种方式,分别是异步通信和同步通信。
(p155)
2、51单片机的串行口通信的帧格式?
见上面红色字体
(课本P159)
方式
数据帧格式
用于拓展I/O,没有规定的格式,我们一般从SBUF每8位一个段操作
1
1位起始位’0’+8位数据+1位停止位’1’
2
与方式1相同
3
1位起始位’0’+9位数据(最后一位在TB8或RB8中)+1位停止位’1’
说明:
起始位和停止位的发送都是通过拉高或拉低数据线拉实现的。
波特率=T1溢出率
T1工作于方式0
机器周期T=12/fosc,x——初值
T1溢出周期=(213-x)×
T+执行T1中断服务程序机器周期数×
T
T1溢出周期=T×
(213-x+执行T1中断服务程序机器周期数)
T1溢出率=1/T1溢出周期
T1工作在方式1
溢出周期=T×
(216-x+执行T1中断服务程序机器周期数)
T1工作在方式2
(28-x+执行T1中断服务程序机器周期数)
由于方式2的初值可自动装入,所以可以不产生中断,这时:
(28-x)
溢出率=1/溢出周期=1/T×
波特率的计算
初始化
程序编写:
中断方式,查询方式
注意:
标志位必须软件清除
第八章
1、总线构造
系统总线按其功能通常把系统总线分为三组:
1.地址总线(AdressBus,简写AB)
2.数据总线(DataBus,简写DB)
3.控制总线(ControlBus,简写CB)
2、存储器扩展
地址分配:
单元选择,片选
地址范围的确定:
看芯片连到单片机的哪些地址线上。
3、I/O芯片的扩展
通过总线扩展与存储器扩展方法相同。
1、片外I/O设备与片外数据存储器采用的是统一编址,共同占用64K空间,因此,当系统既要扩展多片片外RAM,又要扩展多片片外I/O设备芯片时,因综合考虑存储器地址的分配问题。
2、访问方式与片外RAM的访问方式相同,用的是MOVX。
4、访问操作(MOVX)
下图为8031扩展3片8K的程序存储器2764,图中硬件电路已经连接了一部分,请用片选法将剩下的相关硬件电路连接完成,并写出每一片2764的地址范围。