电力电子技术模版Word下载.docx
《电力电子技术模版Word下载.docx》由会员分享,可在线阅读,更多相关《电力电子技术模版Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
第2章MCS-51单片机的结构和原理
2.1MCS-51系列单片机的结构
2.1.1MCS-51单片机的基本组成
片内基本结构如图2.1所示:
图2.1MCS-51的结构框图
介绍图2.1中的各功能部件:
1.CPU(8位微处理器)
2.片内数据存储器(RAM)
片内为128个字节(52子系列的为256个字节)
3.片内程序存储器(ROM/EPROM)
8031:
无此部件;
8051:
4K字节ROM;
8751:
4K字节EPROM;
89C51/89C52/89C55:
4K/8K/20K字节闪存。
4.五个中断源的中断控制系统
5.两个定时器/计数器:
每个定时器/计数器都可以设置成计数方式,用以对外部时间进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。
2.3.1程序存储器
存放应用程序和表格之类的固定常数。
分为片内和片外两部分,由
引脚上所接的电平确定。
程序存储器中的0000H地址是系统程序的启动地址
5个单元具有特殊用途
表2-15种中断源的中断入口地址
外中断00003H
定时器T0000BH
外中断10013H
定时器T1001BH
串行口0023H
2.3.2内部数据存储器
可供用户支配的RAM为128个字节,字节地址为00H~7FH。
表2-3内部RAM的可寻址位及位地址
字节地址
位地址
D7
D6
D5
D4
D3
D2
D1
D0
2FH
7FH
7EH
7DH
7CH
7BH
7AH
79H
78H
2EH
77H
76H
75H
74H
73H
72H
71H
70H
2DH
6FH
6EH
6DH
6CH
6BH
6AH
69H
68H
2CH
67H
66H
65H
64H
63H
62H
61H
60H
2BH
5FH
5EH
5DH
5CH
5BH
5AH
59H
58H
2AH
57H
56H
55H
54H
53H
52H
51H
50H
29H
4FH
4EH
4DH
4CH
4BH
4AH
49H
48H
28H
47H
46H
45H
44H
43H
42H
41H
40H
27H
3FH
3EH
3DH
3CH
3BH
3AH
39H
38H
26H
37H
36H
35H
34H
33H
32H
31H
30H
25H
24H
23H
22H
21H
20H
1FH
1EH
1DH
1CH
1BH
1AH
19H
18H
17H
16H
15H
14H
13H
12H
11H
10H
0FH
0EH
0DH
0CH
0BH
0AH
09H
07H
06H
05H
04H
3H
02H
01H
00H
00H~1FH:
32个单元,是4组通用工作寄存器区
20H~2FH:
16个单元,可进行128位的位寻址
30H~7FH:
用户RAM区,只能进行字节寻址,用作数据缓冲区以及堆栈区。
2.3.3特殊功能寄存器(SFR)
CPU对各种功能部件的控制采用特殊功能寄存器集中控制方式,共21个。
其中有11个SFR可进行位寻址。
表2-2(P21)是SFR的名称及其分布。
其字节地址的末位是0H或8H。
下面介绍SFR块中的某些寄存器。
1.累加器A
2.寄存器B
3.程序状态寄存器PSW
4.堆栈指针SP
5.数据指针DPTR
6.I/O端口P0~P3
2.3.5外部数据存储器
最多可外扩64K字节的RAM或I/O。
使用各类存储器,注意几点:
(1)地址的重叠性
程序存储器(ROM)与数据存储器(RAM)全部64K字节地址空间重叠)。
程序存储器(ROM)与数据存储器(RAM)在使用上是严格区分的。
(3)位地址空间共有两个区域。
(4)片外数据存储区中,RAM与I/O端口统一编址。
所有外围I/O端口的地址均占用RAM单元地址,使用与访问外部数据存储器相同的传送指令。
图2-6为各类存储器在存储器空间的位置的总结。
2.4CPU时序
时钟电路用于产生MCS-51单片机工作所必需的时钟控制信号。
2.4.1片内振荡器及时钟信号产生
时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。
常用的时钟电路有两种方式:
内部时钟方式和外部时钟方式。
一、内部时钟方式
内部有一个用于构成振荡
器的高增益反相放大器,
反相放大器的输入端为芯片
引脚XTAL1,输出
端为引脚XTAL2。
C1和C2典型值通常选择为30pF左右。
晶体的振荡频率在1.2MHz~12MHz之间。
某些高速单片机芯片的时钟频率已达40MHz。
二、外部时钟方式
常用于多片MCS-51单片机同时工作。
2.4.2机器周期、指令周期与指令时序
单片机执行的指令的各种时序均与时钟周期有关
一、时钟周期
单片机的基本时间单位。
若时钟的晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc。
如fosc=6MHz,Tosc=166.7ns。
二、机器周期
CPU完成一个基本操作所需要的时间称为机器周期。
执行一条指令分为1-4个机器周期。
每个机器周期完成一个基本操作。
MCS-51单片机每12个时钟周期为一个机器周期,一个机器周期又分为6个状态:
S1~S6。
每个状态又分为两拍:
P1和P2。
因此,一个机器周期中的12个时钟周期表示为:
S1P1、S1P2、S2P1、S2P2、…、S6P2。
三、指令周期
执行任何一条指令时,都可分为取指令阶段和指令执行阶段。
取指令阶段,PC中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。
指令执行阶段,对指令操作码进行译码,以产生一系列控制信号完成指令的执行。
指令可由单字节、双字节和三字节组成。
单字节、双字节都可能,而三字节指令都是双周期的。
只有乘除指令占四个周期。
2.5复位操作和复位电路
2.5.1复位操作
单片机的初始化操作,摆脱死锁状态。
引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使MCS-51复位。
复位时,PC初始化为0000H,使MCS-51单片机从0000H单元开始执行程序。
除PC之外,复位操作还对其它一些寄存器有影响,见表2-6(P34)。
SP=07H,P0-P3的引脚均为高电平。
在复位有效期间,ALE脚和
脚均为高电平,内部RAM的状态不受复位的影响。
表2-6复位时个寄存器状态
寄存器
内容
PC
0000H
TMOD
ACC
TCON
B
TH0
PSW
TL0
SP
TH1
DPTR
TL1
P0~P3
FFH
SCON
IP
XX000000B
SBUF
XXXXXXXB
IE
0X000000B
PCON
0XXX0000B(CHMOS)
0XXXXXXB(HMOS)
2.5.2复位电路
片内复位结构:
复位电路通常采用上电自动复位和按钮复位两种方式。
最简单的上电自动复位电路如图2-16所示。
按键手动复位,有电平方式和脉冲方式两种。
电平方式:
脉冲方式:
2.6并行I/O端口
4个准双向的8位并行I/O端口(Port),记作P0~P3,属于特殊功能寄存器,还可位寻址。
2.6.1P0端口
P0口某一位的电路包括:
(1)一个数据输出锁存器,用于数据位的锁存;
(2)两个三态的数据输入缓冲器;
(3)一个多路转接开关MUX,使P0口可作通用I/O口或地址/数据线口。
(4)数据输出的驱动和控制电路,由两只场效应管(FET)组成,上面的场效应管构成上拉电路。
P0口传送地址或数据时,CPU发出控制信号为高电平,打开上面的与门,使多路转接开关MUX打向上边,使内部地址/数据线与下面的场效应管处于反相接通状态。
此时输出驱动电路由于上下两个FET处于反相,形成推拉式电路结构,大大提高负载能力。
P0口作通用的I/O口使用。
这时,CPU发来的“控制”信号为低电平,上拉场效应管截止,多路转接开关MUX打向下边,与D锁存器的
端接通。
(1)P0作输出口使用
来自CPU的“写入”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并向端口引脚P0.x输出。
注意:
由于输出电路是漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出。
(2)P0作输入口使用
区分“读引脚”和“读锁存器”。
“读引脚”信号把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线;
“读锁存器”信号打开上面的缓冲器把锁存器Q端的状态读入内部总线。
注意准双向I/O口问题。
2.4.2P1端口
字节地址90H,位地址90H~97H。
P1口只作通用的I/O口使用,在电路结构上与P0口有两点区别:
(1)因为只传送数据,不再需要多路转接开关MUX。
(2)由于P1口用来传送数据,因此输出电路中有上拉电阻,这样电路的输出不是三态的。
因此:
(1)P1口作为输出口使用时,外电路无需再接上拉电阻。
(2)P1口作为输入口使用时,应先向其锁存器先写入“1”,使输出驱动电路的FET截止。
2.6.3P2端口
字节地址为A0H,位地址A0H~A7H。
在实际应用中,因为P2口用于提供高位地址,有一个多路转接开关MUX。
但MUX的一个输入端不再是“地址/数据”,而是单一的“地址”,因为P2口只作为地址线使用。
当P2口用作为高位地址线使用时,多路转接开关应接向“地址”端。
P2口也是一个准双向口。
P2口也可以作为通用I/O口使用,这时,多路转接开关接向锁存器Q端。
2.6.4P3端口
P3口的字节地址为B0H,位地址为B0H~B7H。
P3口的第二功能定义,应熟记。
表2-2P3口的第二功能定义
引脚第二功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0*(外部中断0)
P3.3INT1*(外部中断1)
P3.4T0(定时器0外部计数输入)
P3.5T1(定时器1外部计数输入)
P3.6WR*(外部数据存储器写选通)
P3.7RD*(外部数据存储器读选通)
第二功能信号有输出和输入两类:
(1)作通用的I/O输出,“第二输出功能”线应保持高电平,与非门开通,使锁存器Q端输出畅通。
作第二功能信号输出,锁存器预先置“1”,使与非门对“第二输出功能”信号的输出是畅通的。
(2)作第二功能信号输入,在口线引脚的内部增加了一个缓冲器,输入的信号就从这个缓冲器的输出端取得。
而作为通用I/O输入,仍取自三态缓冲器的输出端。
P3口无论作哪种输入,锁存器输出和“第二输出功能”线都应保持高电平。
2.4.5P0~P3端口功能总结
使用中应注意的问题:
(1)P0~P3口都是并行I/O口,但P0口和P2口,还可用来构建系统的数据总线和地址总线,所以在电路中有一个MUX,以进行转换。
而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无需转接开关MUX。
由于P0口可作为地址/数据复用线使用,需传送系统的低8位地址和8位数据,因此MUX的一个输入端为“地址/数据”信号。
而P2口仅作为高位地址线使用,不涉及数据,所以MUX的一个输入信号为“地址”。
(2)在4个口中P0~P3口都是准双向口。
原因:
P0口作数据总线使用时,为保证数据正确传送,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;
不进行数据传送时,芯片内外应处于隔离状态。
为此,P0口的输出缓冲器应为三态门。
(3)P3口的口线具有第二功能,为系统提供一些控制信号。
因此在P3口电路增加了第二功能控制逻辑。
这是P3口与其它各口的不同之处。
第2讲提问
1.MCS-51单片机由哪几部分组成?
答:
由8部分组成,如下:
1、CPU(8位微处理器)
2、片内数据存储器(RAM)
3、片内程序存储器(ROM/EPROM)
4、五个中断源的中断控制系统
5、两个定时器/计数器
6、一个全双工串行口
7、4个8位并行I/O接口
8、片内振荡器和时钟产生电路
2.8051有多少个引脚,按功能说明8051的个引脚。
有40个引脚,具体如下:
1、4个8位并行I/O口,共占用32个引脚;
2、电源、地,2个引脚;
3、外接晶振引脚,2个;
4、控制引脚,4个,RST、
、ALE、
。
3.8051的地址空间分为哪几类?
分为3类,如下
1、片内、片外统一编址的64kB程序存储器地址空间;
2、256B内部数据存储器地址空间;
3、外部数据寄存器地址空间,片外可扩展64kB字节RAM。
4.程序是否可以直接从0000H顺序编写,为什么?
不能,因为程序存储器的0003H~002AH单元被用作5个中断服务程序的入口地址。
所以在0000H内放入一个跳转指令。
5.简述8051的4个I/O口的功能
P0口8位漏极开路准双向I/O口,既可以作为I/O口用,又是8为数据线和低8位地址线分时复用口;
P1口8位带上拉电阻的准双向I/O口;
P2口8位带上拉电阻的准双向I/O口,又是高8位地址线的输出口;
P3口8位带上拉电阻的准双向I/O口又具有第二功能。
5.说明8051内部数据存储器的构成
8051共有256个字节的RAM,分为两大部分,其中地址为00H~7FH为可供用户使用的RAM,其中00H~1FH被分为4个工作寄存器组,每组8个工作寄存器分别命名为R0~R7,可通过调整程序状态字PSW中的RS1、RS0来选择当前工作的是那组工作寄存器。
其后的20H~2FH为可进行位寻址的RAM。
80H~FFH为特殊功能寄存器区。
(7)累加器A与外部数据存储器传送指令
MOVXA,@DPTR;
((DPTR))→A,读外部RAM/IO
MOVXA,@Ri;
((Ri))→A,读外部RAM/IO
MOVX@DPTR,A;
(A)→((DPTR)),写外部RAM/IO
MOVX@Ri,A;
(A)→((Ri)),写外部RAM/IO
功能:
读外部RAM存储器或I/O中的一个字节,或把A中一个字节的数据写到外部RAM存储器或I/O中。
注意:
或
信号有效。
采用DPTR间接寻址,高8位地址(DPH)由P2口输出,低8位地址(DPL)由P0口输出。
采用Ri(i=0,1)间接寻址,可寻址片外256个单元的数据存储器。
Ri内容由P0口输出。
程序状态寄存器PSW的作用是什么?
常用状态有哪些位?
作用是什么?
程序状态字是一个8位的寄存器,用来存放指令执行后的有关状态。
P:
奇偶标志。
该位的内容始终反映累加器A中“1”的个数的奇偶性。
如果有奇数个“1”,则置P=1,否则P=0;
F1或-:
为用户标志位;
OV:
溢出标志(Overflow)。
指示运算过程中是否产生了溢出;
RS1、RS0:
这两位是工作寄存器组的选择位,可以用软件改变其状态;
F0:
用户标志;
AC:
辅助进位位;
CY:
进位标志位;
简述机器周期,S状态和震荡中期的关系
1个机器周期=6个S状态=12个震荡周期
为什么说8051的I/O口是准双向I/O口,作为输入口时如何处理。
每个I/O口由于有下拉场效应晶体管,在作为输出口时如果输出为0电平,则之后作为输入口时会由于该口一直处于下拉状态而引起输入信号不正确。
处理:
在作为输入口时,首先向该口写入“1”,使得下拉场效应晶体管截止。
例题:
设内部RAM第30H单元的内容为40H,第40H单元的内容为10H,P1口作为输入口,其输入的数据为0CAH(11001010B),程序如下,求每条指令执行结果。
MOVR0,#30H
MOVA,@R0
MOVR1,A
MOVB,@R1
MOV@R1,P1
MOVP2,P1
结果:
(R0)=30H,(A)=(R1)=40H,(B)=10H,(40H)=0CAH,(P1)=(P2)=0CAH