整理单片机基础知识Word下载.docx
- 文档编号:7119136
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:93
- 大小:322.66KB
整理单片机基础知识Word下载.docx
《整理单片机基础知识Word下载.docx》由会员分享,可在线阅读,更多相关《整理单片机基础知识Word下载.docx(93页珍藏版)》请在冰点文库上搜索。
OV
P
图1-3PSW的格式
CY:
进位标志。
有进位/借位时CY=1,否则CY=0;
AC:
半进位标志。
当D3位向D4位产生进位/借位时AC=1,常用于十进制调整运算中;
F0:
用户可设定的标志位,可置位/复位,也可供测试。
RS1、RS0:
四个通用寄存器组的选择位,该两位的四种组合状态用来选择0~3寄存器组。
见表1-2。
表l-2RS1、RS0与工作寄存器组的关系
工作寄存器组
0组(00-07)
1
1组(08-0F)
2组(10-17)
3组(18-1F)
OV:
溢出标志。
当带符号数运算结果超出-128~+127范围时OV=1,否则OV=0。
当无符号数乘法结果超过255时,或当无符号数除法的除数为0时,OV=1,否则OV=0。
P:
奇偶校验标志。
每条指令执行完,若A中l的个数为奇数时P=1,否则P=0,即奇偶校验方式。
二、控制器、时钟电路和基本时序周期
控制逻辑主要包括定时和控制逻辑、指令寄存器、译码器以及地址指针DPTR和程序计数器PC等。
1.MCS-51的时钟
时钟是时序的基础,MCS-51片内由一个反相放大器构成振荡器,可以由它产生时钟。
XTAL1XTAL2
外部时钟XTAL2
XTAL1
Vss
(a)(b)
图l-4时钟产生电路
(1)内部方式:
图1-4(a)
(2)外部方式:
图1-4(b)
2.MCS-51的基本时序周期
一条指令译码产生的一系列微操作信号在时间上有严格的先后次序,这种次序就是计算机的时序。
MCS-51的主要时序将在存贮器扩展时讨论,这里先介绍它的基本时序周期。
●
振荡周期:
指振荡源的周期,若为内部产生方式时,为石英晶体的振荡周期。
●机器周期:
一个机器周期含6个时钟周期(S周期),图1-5基本时序周期
12个震荡周期。
●指令周期:
完成一条指令占用的全部时间。
MCS-51的指令周期含l-4个机器周期,其中多数为单周期指令,还有2周期和4周期指令。
1.2.2存贮器结构
计算机的存贮器的管理模式,大致可分为两类。
第一类是将程序存贮器和数据存贮器分开,并有各自的寻址机构和寻址方式,这种结构形式称为哈佛型结构。
另一类是存贮器逻辑空间统一管理,可随意安排ROM或RAM,访问时用同一种指令,这种结构形式称为普林斯顿型。
MCS-51单片机的存贮器结构属于前者,一般微机属于后者。
程序:
0000-0FFFFH
内部00-7F:
工作寄存区、通用数据区
数据:
存贮器结构80-FF:
特殊功能寄存器、通用数据区
程序:
1000-FFFFH(或0000-FFFF)
外部
0000-FFFFH
●存贮器组织结构:
图1-5MCS-51存贮器组织结构
数据存贮器RAM也有64KB寻址区,在地址上是和ROM重叠的。
MCS-51通过不同的信号来选通ROM或RAM:
当从外部ROM取指令时用选通信号
,而从外部RAM读写数据时采用读写信号
或
来选通。
因此不会因地址重叠而出现混乱。
第二讲MCS-51单片机的内部结构
1.2.3片内并行接口
P0:
常用功能(数据/低8位地址)
单片机P1:
常用并行端口
(8051)P2:
常用于地址高8位(A8-A15)
P3:
常用第二功能(RXD、TXD、INT0、INT1、T0、T1、WR、RD)
1.2.4MCS-51的内部资源
串行口
内部资源定时器/计数器
中断系统:
5个中断源(INT0、T0、INT1、T1和串口)
1.2.5MCS-51的芯片引脚
①XTAL1、XTAL1:
晶体、电容;
②ALE(地锁存信号):
锁存P0口的地址低8位,频率=fSOC/6;
③PSEN(读指令信号):
接程序存贮器的允许输端子;
④WR、RD:
分别与外部数据存贮器的读、端子相连接
⑤EA:
接高电平(或接低电平)。
图1-8MCS-51引脚图
1.2.6单片机的工作方式
单片机的工作方式包括:
复位方式、程序执行方式、单步执行方式、低功耗操作方式以及EPROM编程和校验方式。
1.复位方式:
经典的上电复位电路
2.程序执行方式:
(1)执行内部程序;
(2)执行外部程序
3.单步执行方式:
用于调试程序和系统
4.低功耗操作方式
5.编程和校验
第三讲定时器/计数器
MCS-51子系列单片机有2个定时器/计数器,即定时器/计数器0和1,52子系列单片机(8032/8052)除了有上述2个定时器/计数器外,还有一个定时器/计数器2,后者的功能比前两者强。
1.3.1定时器/计数器0和1
在专用寄存器TMOD(定时器方式)中,有一个控制位(C/T),分别用于控制定时器/计数器0和1是工作在定时器方式还是计数器方式。
1.输入信号基本要求:
24个振荡周期,即两个机器周期;
2.作为定时器时,计数速率是振荡频率/12;
3.由定时器/计数器模式控制寄存器设置工作方式。
模式0:
13位宽度,主要保持与48系列兼容;
工作模式1:
16位宽度,最大计数65535;
模式模式2:
8位自动重装载,用于周期性的作某件事;
模式3:
定时器/计数器0和1不同,适合于额外定时器。
1.3.2定时器/计数器2(自己阅读)
定时器/计数器2是一个具有16位自动重装载或捕获能力的定时器/计数器。
专用寄存器T2CON是它的控制寄存器。
●可用作波特率发生器
●定时/计数方式
1.3.3定时器/计数器的控制和状态寄存器
专用寄存器TMOD、TCON和T2CON用于控制和确定各定时器/计数器的功能和操作模式。
这些寄存器的内容靠软件设置。
系统复位时,寄存器的所有位都被清零。
1.模式控制寄存器TMOD
8位宽度,高四位和低四位分别控制定时器/计数器1和0,参阅图1-11、图1-12、图1-13。
定时器1定时器0
(MSB)(LSB)
D7
D6
D5
D4
D3
D2
D1
D0
GATE
C/
M1
M0
图1-16定时器/计数器控制寄存器TMOD
例MOVTOMD,#00100001B;
定时器1,8位自动重装载
MOVTH1,#56;
时间常数
MOVTL1,#56;
SETBTR1;
启动定时器开始工作
表1-5操作模式控制位
M1MO
操作模式
00
模式0。
TLx中低5位与THx中8位构成13位计数器,TLx相当一个5位定标器(见图1-11)。
01
模式10TLx与了Hx构成全16位计数器,操作模式同上,但无定标器。
10
模式2。
8位自动重装载的定时器/计数器,每当计数露TLx溢出时,THx中的内容重新装载到TLx(见图1-12)。
11
模式3。
对于定时器0,分成2个8位计数器(见图1-13)。
对于定时器1,停止计数。
2.控制寄存器TCON
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
图1-17定时器/计数器控制寄存器TCON
●TF0、TR0:
定时器/计数器0
●TF1、TR1:
定时器/计数器1
●IE0、IT0:
外部中断0
●IE1、IT1:
外部中断1
例如可用以下语句:
SETBIT0//外部中断0下降沿触发
CLRIT1//外部中断1低电平触发
3.定时器/计数器2控制寄存器T2CON
(MSB)(LSB)
TF2
EXF2
RCLK
TCLK
EXEN2
TR2
CP/
图1-18T2CON定时器/计数器2控制寄存器
作为波特率发生器:
●RCLK=TCLK=1(参考图1-15)
●C/T2=0
●TR2=1
第四讲串行口
MCS-51中的串行接口使它增色不少。
此串行接口是一个全双工通信接口,即能同时进行发送和接收。
它可以作UART(通用异步接收和发送器)用,也可以作同步移位寄存器用。
1.4.1数据缓冲寄存器SBUF
SBUF:
输入、输出寄存器,可同时发送、接收。
实际上,这两个寄存器共
用了物理地址。
1.4.2串行口控制寄存器SCON
SCON用于控制和监视串行口的工作状态。
它的各位定义,见图1-19,并说明如下:
SM0
SM1
SM2
REN
TB8
RB8
TI
RI
图1-19串行控制寄存器SCON
SM0、SM1:
工作模式,共4种;
SM2:
模式2和模式3方式时使用;
REN:
允许接收;
TB8:
发送数据的第8位;
RB8:
接收数据的第8位;
TI:
发送完成(软件清除);
RI:
接收数据就绪(软件清除);
表1-6串行口操作模式选择
SM1SM0
模式
功能
波特率
1l
2
3
同步移位寄存器
8位UART
9位UART
fosc/l2
可变
fosc/64或fosc/32
1.4.3模式0
在操作模式0下,串行口作同步移位寄存器用,其波特率是固定的,为fosc/12,其中fosc是振荡器频率。
这时数据由RXD(P3.0)端出入,同步移位时钟由TXD(P3.1)端输出。
发送或接收的是8位数据,低位在先(参见图1-20)。
汇编语言程序:
ORG8000H
MOVSCON,#00010000B
MOVSBUF,#88H
JNBTI,$;
查询方式
CLRTI
END
C语言程序:
#include<
reg52.h>
//包含文件
#include<
stdio.h>
//包含文件
main()
{
SCON=0X10;
//初始化串行控制寄存器
SBUF=0X88;
//输出数据
while(!
TI);
//查询方式
TI=0;
}
1.4.4模式1
串行口工作于模式1时,传输的是10位:
1位起始位(0),8位宽度的数据(低位在先),1位停止位
(1)。
由TXD发送,由RXD接收。
波特率是可变的,取决于定时器1或2的溢出速率(参见图1-22)。
MOVSCON,#01010000B;
通讯模式(11.0592MHz)
MOVTMOD,#00100000B;
定时模式(注意定时器0)
MOVTL1,#0E8H;
时间常数(RS232:
1200)
MOVTH1,#0E8H;
SETBTR1;
启动定时器
(TH1)=
fosc=11.0592MHz,SMOD=0
定时器1作为波特率发生器时,常用时间常数及误差对照表
波特率(Hz)TH1误差
15040H0%
300A0H0%
600D0H0%
1200E8H0%
2400F4H0%
4800FAH0%
9600FDH0%
1.4.5模式2和3
操作模式2和3中,发送(通过TXD)和接收(通过RXD)的都是11位:
1位起始位(0),8位数据(低位在先),1位可编程位(第9数据位)和1位停止位
(1)。
发送时,可编程位(TB8可赋予0或1。
接收时可编程位进入SCON中的RB8。
模式2和模式3的工作原理类同,唯一的差别是:
模式2的波特率为fosc/32或fosc/64,而模式3的波特率是可变的,利用定时器1或定时器2作波特率发生器(参见图1-22和图1-23)。
定时器1作为波特率发生器:
定时器1的计数速率=fosc/12SMOD=0时,n=32
波特率=定时器1的计数速率/nPCON寄存器
SMOD=1时,n=16
波特率=
=
定时器2作为波特率发生器:
波特率=
第五讲中断系统
MCS-51系列中,有5个中断源(或6个中断源),可分为2个优先级,其中每一个中断源的优先级都可以由程序排定(图1-26)。
1.5.1允许中断寄存器IE(物理地址:
A8,可按位寻址)
图1-27示出允许中断寄存器各位的定义。
现说明如下:
EA
×
ET2
ES
ET1
EX1
ET0
EX0
图1-27IE允许中断寄存器
1.5.2中断优先级寄存器IP(物理地址:
D8,可按位寻址)
MCS-51的中断分为2个优先级。
每个中断源的优先级都可以通过中断优先级寄存器IP中的相应位来设定。
图1-28示出IP的,各位定义,其中:
PT2
PS
PT1
PX1
PT0
PX0
图1-28IP允许中断优先级寄存器
例如
……
SETBPX0;
外部中断0为高优先级
SETBES;
串行中断
SETBEA;
开总中断
……
1.5.3优先级结构
靠IP寄存器把各中断源的优先级分为高低2级。
它们遵循这样2条基本规则:
1.低优先级中断可被高优先级中断所中断,反之不能;
2.一种中断(不管是什么优先级)—旦得到响应,与它同级的中断不能再中断它。
中断源同级内的优先权
外部中断0最高
定时器/计数器0溢出
外部中断1
定时器/计数器1溢出
定时器/计数器2溢出最低
1.5.4中断响应协议
当某中断源提出中断请求后,作为应答,CPU首先使相应的“优先级激活”触发器置位,以阻断同级和低级的中断。
硬件中断服务子程序调用时,把当时程序计数器PC的内容压入堆栈(在MCS-51中,PC是16位的,占用了2个字节,没有自动保存程序状态字PSW的内容),同时还根据中断的来源,把相应的矢量单元地址装入PC中。
这些矢量地址是:
中断源矢量单元
外部中断00003H最高
定时器0溢出000BH
外部中断10013H
定时器1溢出001BH
串行口0023H
定时器2溢出或T2EX端出现负跳变002BH最低
注意:
仿真器常常将中断入口地址映射到别的地址空间。
1.5.5外部中断
外部中断的激活方式分为两种:
—种是电平激活,另一种是边沿激活。
这两种方式可以靠TCON寄存器中的中断方式位ITl或IT0来控制。
1.5.6中断请求的撤除
CPU响应某中断请求后,在中断返回(RETI)前,该中断请求应该撤除,否则会引起另一次中断。
定时器/计数器0和1:
进入中断服务后自动清除中断申请标志位TF0或TFl;
边沿激活:
自动清除IE0、IE1;
外部中断0和1:
电平激活:
采取措施,例如对信号进行整形等。
1.5.7中断响应时间
从外部中断请求有效到开始执行服务程序的第一条指令,中间要隔3个机器周期,这是最短的响应时间。
当对IE,IP寄存器进行操作或执行RETI指令时,不会立即相应中断源的申请。
第六讲MCS-51单片机系统扩展
在很多应用场合,MCS-51自身的存贮器和I/O资源不能满足要求,这时就要进行系统扩展。
1.6.1外部总线的扩展
以8051单片机最小系统为例,介绍数据总线、地址总线和控制总线。
基本要求:
熟练掌握最小系统的结构及三组总线。
图1-29MCS-51外部三总线示意图
1.6.2外部程序存贮器的扩展
●介绍简明取指令时序;
●在最小系统的基础上,以扩展2764为程序存贮器为例,介绍扩展方法。
熟练掌握程序存贮器的扩展方法及取指时序。
图1-32外部程序存贮器的简明操作时序
图l-33外部程序存贮器的连接
1.6.3外部数据存贮器的扩展
●介绍简明数据存贮时序;
●在最小系统的基础上,以扩展6264为程序存贮器为例,介绍扩展方法。
熟练掌握数据存贮器的扩展方法及读写时序。
图1-36外部数据存贮器操作的简明时序图
图1-38扩展6264静态RAM
第七讲MCS-51单片机的指令系统
1.7.1寻址方式
寻址方式就是根据指令中给出的地址寻找真实操作数地址的方式。
MCS-51单片机的寻址方式有种:
寄存器寻址、直接寻址、立即寻址、变址寻址、相对寻址、间接寻址和位寻址。
●寄存器寻址:
MOVA,R0;
A←(R0)
●直接寻址:
MOVA,4FH;
A4←(4FH)
●立即寻址:
MOVA,#6FH;
A←6FH
●间接寻址:
MOVA,@R1;
A←((R1))
●相对寻址:
SJMPrel;
PC←(PC)+2+rel
●变址寻址:
MOVCA,@A十DPTR;
A4←((A)十(DPTR))
●位寻址:
SETBEA;
EA=1
1.7.2指令说明
MCS-51指令系统按其功能可分为:
数据传送指令、转移指令、算术运算指令、逻辑运算指令和十进制指令。
1.7.3伪指令
汇编语言必须通过汇编器的处理,才能转换为计算机能识别和执行的机器语言。
伪指令是汇编器用的指令。
MCS-51汇编器常用的伪指令有以下几种:
一、ORG伪指令(Origin)
ORG0000H
二、DB伪指令(DefineByte)
DB40H,56H,’A’
三、DW伪指令(DefineWord)
DW1234H,5678,0AF0H
四、EQU或=伪指令(Equal)
COUNT=100
SPACEEQU50H
五、DATA伪指令(Data)
ERRORDATA80H
六、XDATA伪指令(ExternalData)
ADCXDATA4000H
七、BIT伪指令
LEDBIT30H
八、END伪指令
1.7.4汇编语言编程
ORG0000H;
定义程序首地址
SJMPMAIN;
跳转到主程序
ORG0040H;
主程序地址
MAIN:
MOVDPTR,#6400;
省去人工转换
MOVR2,#00H;
被除数
MOVR3,#00H;
MOVR4,DPH;
MOVR5,DPL;
MOVDPTR,#16;
除数
MOVR6,DPH;
MOVR7,DPL;
LCALLDIVD;
调用出除法子程序
MOVDPH,R3;
商的高8位?
MOVDPL,R4;
商的低8位?
NOP
SJMP$
;
-------------------------------------------------------------
标号:
DIVD
功能:
双字节二进制无符号数除法
入口条件:
被除数在R4、R5中,除数在R6、R7中。
出口信息:
OV=0时,双字节商在R2、R3中,OV=1时溢出。
影响资源:
PSW、A、B、R1~R7
堆栈需求:
2字节
DIVD:
CLRC;
比较被除数和除数
MOVA,R3
SUBBA,R7
MOVA,R2
SUBBA,R6
JCDVD1
SETBOV;
溢出
RET
DVD1:
M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 整理 单片机 基础知识