单片机 (2)nullnull第 2 章
MCS-51单片机的
硬件结构null 对于硬件系统设计人员来说,掌握单片机硬件资源是十分重要的,只有熟悉了单片机的硬件“家底”,才能合理安排、正确使用现有资源,并做到物尽其用。MCS-51单片机是美国Intel公司的产品,但在实际应用时常常选用美国ATMEL公司的产品,如AT89C51/52(40脚)和AT89C2051(20脚)。ATMEL公司AT系列单片机相当于Intel公司单片机的Flash版本,两者硬件结构相同,指令兼容,但Flash版本可以使程序的修改、调整更加方便,所以A...
nullnull第 2 章
MCS-51单片机的
硬件结构null 对于硬件系统设计人员来说,掌握单片机硬件资源是十分重要的,只有熟悉了单片机的硬件“家底”,才能合理安排、正确使用现有资源,并做到物尽其用。MCS-51单片机是美国Intel公司的产品,但在实际应用时常常选用美国ATMEL公司的产品,如AT89C51/52(40脚)和AT89C2051(20脚)。ATMEL公司AT系列单片机相当于Intel公司单片机的Flash版本,两者硬件结构相同,指令兼容,但Flash版本可以使程序的修改、调整更加方便,所以ATMEL公司的产品几乎成了MSC-51系列单片机的主流。null2.1 MCS-51外部引脚 AT89C51/52的外部有40个脚(与8051/8751相同,如图2-1所示),这些管脚根据功能可以将它们分成三大组:null1.系统工作必需的引脚(5个脚)
VCC(40脚)、VSS(20脚):电源5V和地(AT89LV系列芯片可以工作在2.7V~6V)。
RST/VPD(9脚):RST即为RESET的缩写,VPD为备用电源。该引脚为单片机的上电复位或掉电保护端。当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,可以使单片机回复到初始状态(复位)。上电时,考虑到振荡器有一定的起振时间,该引脚上高电平必须持续10 ms以上才能保证有效复位。
XTAL1、XTAL2:接晶振,实际使用时还需加两个30pF的补偿电容,常用晶振频率有6MHz、12 MHz和11.0592 MHz,AT89C51/52最高工作频率达24 MHz。
上述管脚的电压或波形不满足要求的话,系统无法工作,一般
现为无法启动。null2.与外部电路联络的脚(32个脚)
P0:在扩展时作为数据总线/地址低8位线,扩展不用时可以作为用户I/O线。
P1:仅作用户I/O口。
P2:在扩展时作为地址高8位线,扩展不用时作为用户I/O线。
P3:首先保证第二功能(如表2-1所示),若第二功能不用,则可作为用户I/O线。null null 3.控制脚(3个脚)
(1)/VPP(31脚):为片内、片外ROM选择控制脚,具体如图2-2所示,早期的8031等内部没有ROM,故使用时接地,目前AT89C51/52内部均有ROM(Flash),所以使用时直接接VCC。对于EPROM型单片机(如8751),在编程期间该脚用于提供编程电压(VPP)。图2-2 MCS-51程序存储器结构null(2)ALE/PROG(30脚):地址锁存有效信号输出端。ALE在每个机器周期内输出两个脉冲,在访问片外程序存储器期间,下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的,但要注意,在访问片外数据存储器期间,ALE脉冲会跳空一个,此时作为时钟输出就不妥了。对于片内含有EPROM的机型,在编程期间,该引脚用作编程脉冲PROG的输入端。null(3)(29脚):片外程序存储器读选通信号输出端,低电平有效。当从外部程序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线P0口读回指令或常数。要注意的是该脚与外部数据存储器的读、写无关。
用于控制的脚其实还有P3口的、,它们用于外部数据存储器及I/O的读、写控制。尽管控制线数量不多,但在应用系统中担当着十分重要的角色,在系统扩展部分我们可以体会这一点。null2.1 MCS-51 单片机的硬件结构按功能可分成8个部件,通过片内单一总线连接起来1.微处理器2.数据存储器3.程序存储器4.I/O口5.串行口6.定时/计数器7.中断系统8.特殊功能寄存器控制方式:SFR对各功能部件集中控制片内总线null各功能部件:
1.CPU(微处理器)
2.数据存储器(RAM)
片内为128个字节(52子系列的为256个字节)
3.程序存储器(ROM/EPROM)
8031:无此部件;
8051:4K字节ROM;
8751:4K字节EPROM ;
89C51/89C52/89C55:4K/8K/20K 字节闪存。
4. P1口、P2口、P3口、P0口:为4个并行8位I/O口。
5. 串行口 1个全双工的异步串行口null6. 定时器/计数器
7. 中断系统
8. 特殊功能寄存器(SFR)
共有21个,是一个具有特殊功能的RAM区。
null
2.2 MCS-51的引脚
40只引脚双列直插封装(DIP)null44只引脚方形封装方式(4只无用)null引脚逻辑图
8051单片机为40条引脚双列直插式封装
引脚可分为三个部分控制引脚并行I/O口引脚电源及时钟引脚null (1)电源及时钟引脚: Vcc、Vss;XTAL1、XTAL2。
(2)控制引脚: PSEN*、EA* 、ALE、RESET
(3)I/O口引脚:P0、P1、P2、P3,4个8位I/O口
2.2.1 电源及时钟引脚
1.电源引脚
(1)Vcc(40脚):+5V电源;
(2)Vss(20脚):接地。
2.时钟引脚
(1)XTAL1(19脚):采用外接晶体振荡器时,此引脚应接地。
(2)XTAL2(18脚):接外部晶体的另一端。
null2.2.2 控制引脚
(1) RST/VPD(9脚):复位与备用电源
(2) ALE/PROG*(30脚):
第一功能ALE :地址锁存允许
第二功能PROG*:编程脉冲输入端。
(3) PSEN* (29脚):读外部程序存储器的选通信号。可以驱动8个LS型TTL负载。
(4) EA*/VPP (31脚): EA*为内外程序存储器选择控制
EA*=1,访问片内程序存储器,
EA*=0,单片机则只访问外部程序存储器。
第二功能VPP,用于施加编程电压。null2.2.3 I/O口引脚
(1) P0口:双向8位三态I/O口,地址总线(低8位)及数据总线分时复用口,可驱动8个LS型TTL负载。
(2) P1口:8位准双向I/O口,可驱动4个LS型TTL负载。
(3) P2口:8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。
(4) P3口:8位准双向I/O口,双功能复用口,可驱动4个LS型TTL负载。
注意:准双向口与双向三态口的差别。
当3个准双向I/O口作输入口使用时,要向该口先写“1”,另外准双向I/O口无高阻的“浮空”状态。null2.3 MCS-51的CPU
由运算器和控制器所构成
2.3.1 运算器
对操作数进行算术、逻辑运算和位操作。
1.算术逻辑运算单元ALU
2.累加器A
使用最频繁的寄存器,可写为Acc。 A的作用:
(1)是ALU单元的输入之一,又是运算结果存放单元。
(2)数据传送大多都通过累加器A。
(3)A的进位标志Cy同时又是位处理机的位累加器。null3.程序状态字寄存器PSW
(1)Cy(PSW.7)进位标志位
(2)Ac(PSW.6)辅助进位标志位
(3)F0(PSW.5)标志位
由用户使用的一个状态标志位。
(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。
null工作寄存器区的选择 null(5)OV(PSW.2)溢出标志位
指示运算是否产生溢出。各种算术运算指令对该位的影响情况较复杂,将在第3章介绍。
(6)PSW.1位: 保留位,未用
(7)P(PSW.0)奇偶标志位
P=1,A中“1”的个数为奇数
P=0,A中“1”的个数为偶数null2.3.2 控制器
1.程序计数器PC(Program Counter)
存放下一条要执行的指令在程序存储器中的地址。
基本工作方式:
(1)程序计数器自动加1
(2)执行有条件或无条件转移指令时,程序计数器将被置入新的数值,从而使程序的流向发生变化。
(3)执行子程序调用或中断调用时完成下列操作:
① PC的当前值保护
② 将子程序入口地址或中断向量的地址送入PC。
2.指令寄存器IR、指令译码器及控制逻辑电路null 2.4 MCS-51存储器的结构
哈佛(Har-vard)结构
存储器空间可划分为5类:
1.程序存储器空间
8031无内部程序存储器。
2.内部数据存储器空间
3.特殊功能寄存器
4.位地址空间
211个可寻址位。
5.外部数据寄存器空间
片外可扩展64K字节RAM。 null内部数据存储器
(a)外部数据存储器
(b)MCS-51单片机存储器空间分配返回null2.4.1 程序存储器
存放应用程序和
之类的固定常数。
分为片内和片外两部分,由EA*引脚上所接电平确定
程序存储器中的0000H地址是系统程序的启动地址
5个单元具有特殊用途
表2-1 5种中断源的中断入口地址
外中断0 0003H
定时器T0 000BH
外中断1 0013H
定时器T1 001BH
串行口 0023Hnull2.4.2 内部数据存储器
共128个字节,
字节地址为00H~7FH。
00H~1FH:32个单元,是4组通用工作寄存器区
20H~2FH:16个单元,可进行128位的位寻址
30H~7FH:用户RAM区,只能进行字节寻址,用作数据缓冲区以及堆栈区。null2.4.3 特殊功能寄存器(SFR)
CPU对各种功能部件的控制采用特殊功能寄存器集中控制方式,共21个。
有的SFR可进行位寻址,其字节地址的末位是0H或8H。表2-2 SFR的名称及其分布null SFR中的某些寄存器
1.堆栈指针SP
指示出堆栈顶部在内部RAM块中的位置
复位后 ,SP中的内容为07H。
(1)保护断点
(2)现场保护
堆栈向上生长
2. 数据指针DPTR
16位特殊功能寄存器,高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。
3. I/O端口P0~P3
P0~P3分别为I/O端口P0~P3的锁存器。 null4.寄存器B
为执行乘法和除法操作设置的。
在不执行乘、除的情况下,可当作一个普通寄存器来使用。
5.串行数据缓冲器SBUF
存放欲发送或已接收的数据,一个字节地址,物理上是由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。
6.定时器/计数器
两个16位定时器/计数器T1和T0,各由两个独立的8位寄存器组成: TH1、TL1、TH0、TL0,只能字节寻址,但不能把T1或T0当作一个16位寄存器来寻址访问。null2.4.4 位地址空间
211个(128个+83个)寻址位。位地址范围为:00H~FFH。
内部RAM的可寻址位128个(字节地址20H~2FH)见表2-3(P24)。
特殊功能寄存器SFR为83个可寻址位,见表2-4(P24)。
null表2-3 内部的可寻址位及位地址null表2-4 SFR中的位地址分布null 2.4.5 外部数据存储器
最多可外扩64K字节的RAM或I/O。几点注意:
(1) 地址的重叠性
程序存储器与数据存储器全部64K字节地址空间重叠
程序存储器与数据存储器在使用上是严格区分的
(3) 位地址空间共有两个区域
(4) 片外与片内数据存储器由指令来区分
(5) 片外数据存储区中,RAM与I/O端口统一编址。
所有外围I/O端口的地址均占用RAM地址单元,使用与访问外部数据存储器相同的传送指令。nullnull内部数据存储器
(a)外部数据存储器
(b)MCS-51单片机存储器空间分配返回2.5 并行I/O端口2.5 并行I/O端口说明:
1、当控制信号为0时,P0口做双向I/O口,为漏极开路(三态)
2、控制信号为1时,P0口为地址/数据复用总线(用于口扩展)
3、P0W为端口输出写信号,用于锁存输出状态
4、P0R1为读锁存器信号,执行“ANL P0,#0FH”时该信号有效多路开关
功能:用于控制选通I/O方式还是地址/数据输出方式
方式控制:由内部控制信号产生输入锁存器两个输入缓冲器(BUF1和BUF2)推拉式I/O驱动器共有4个8位双向I/O口,共32口线。每位均有自己的锁存器(SFR),输出驱动器和输入缓冲器。2.5.1 P0口位图内部结构5、P0R2为读引脚信号,执行“MOV A,P0”时该信号有效
6、读引脚(端口)时,输出锁存器应为“1”102.5.2 P1口内部结构2.5.2 P1口内部结构P1口内部结构如图2所示
输出部分有内部上拉电阻R*约为20K。
其他部分与P0端口使用相类似(读引脚时先写入1)。写数据读端口2.5.3 P2口内部结构2.5.3 P2口内部结构2、当控制信号为1时
P2口输出地址信息,
此时单片机完成外部的取指操作或对外部数据存储器16位地址的读写操作。
3、当P2口作为普通I/O口使用时
用法和P1口类似。说明:
1、P2可以作为通用的I/O,也可以作为高8位地址输出。nullMCS-51片外总线结构示意图 返回MCS-51单片机片外总线 P0.4null返回6264WE单片机
8031P2.0:.A8.
.ALERD74LS
373GA7
.
.
A0P0.0
:
P0.7OECEQ0
.
.
Q7D0
.
.
D7A12P2.4WRD7
.
.
D02.5.4 P3口内部结构2.5.4 P3口内部结构说明:
1、做普通端口使用时,第二功能应为“1”。2、使用第二功能时,输出端口锁存器应为“1”。
3、变异功能()
P3.0 TXD P3.4 T0
P3.1 RXD P3.5 T1
P3.2 INT0 P3.6 WR
P3.3 INT1 P3.7 RDnull2.5.5 P0~P3端口功能总结
使用中应注意的问题:
P0~P3口都是并行I/O口,但P0口和P2口还可用来构建数据总线和地址总线,所以电路中有一个MUX,进行转换。
而P1口和P3口无构建系统的数据总线和地址总线的功能,因此,无需转接开关MUX。
只有P0口是一个真正的双向口,P1~P3口都是准双向口。
原因:P0口作数据总线使用时,为保证数据正确传送,需解决芯片内外的隔离问题,即只有在数据传送时芯片内外才接通;否则应处于隔离状态。为此,P0口的输出缓冲器应为三态门。
P3口具有第二功能。因此在P3口电路增加了第二功能控制逻辑。这是P3口与其它各口的不同之处。null 图2-7 驱动LED电路null 图2-7 驱动LED电路(续)null
2.驱动继电器实例
继电器的驱动,从电平角度来说也有高电平驱动和低电平驱动两种,但实际使用的继电器的工作电压都是9 V、12 V甚至更高,所以除了考虑驱动电流是否足够(继电器所需的驱动电流可用继电器的标称工作电压除以标称电阻来估算,常见的大约在40 mA~60 mA,所以不管哪种结构都需要三极管等电流放大电路)外,还要考虑低电平、高电平哪种驱动更容易实现。null 图2-8(a)是常常会犯错误的所谓低电平驱动电路,尽管低电平时继电器确实能工作,但当输出为高电平而想使继电器截止时,结果却无法跳开,好像被粘住一样,原因是CPU输出的高电平只有5 V,而继电器的供电有12 V,而且这时继电器的供电12 V将有可能使CPU损坏(在使用芯片时不允许输入端的电压超过电源电压)。图2-8(b)是用高电平驱动的电路,图2-8(c)是低电平驱动。在需要同时驱动的继电器数量比较多时,可以选用专用的驱动芯片ULN2003A/ULN2003,其内部含有7路独立的驱动电路(还包含了继电器线包回路的续流二极管),使用起来十分方便。null
(a) (b)null (c)
图2-8 驱动继电器电路null 3.光耦器件的接口电路
单片机应用在强电系统时,为提高抗干扰能力,隔离输出级带来的干扰和不安全性,常常使用光耦器件作为接口,常用光耦器件的内部结构如图2-9所示。图2-9 常用光耦内部结构null 光耦器件的接口实例如图2-10所示。图中的7407是用来增加驱动能力的P1口为低电平时光耦导通,负载得电而工作。图2-10 光耦接口应用实例null2.6 时钟电路与时序
时钟电路用于产生单片机工作所必需的时钟控制信号。
2.6.1 时钟电路
时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。常用的时钟电路有两种方式:内部时钟方式和外部时钟方式。null一、内部时钟方式
内部有一个用于构成振荡器的高增益反相放大器,其输入端:XTAL1,输出端:XTAL2。
C1和C2典型值通常选择为30pF左右。
晶体的振荡频率在1.2MHz~12MHz之间。
某些高速单片机芯片的时钟频率已达40MHz。null
二、外部时钟方式
常用于多片MCS-51
单片机同时工作。
null 三、时钟信号的输出
为应用系统中的其它芯片提供时钟,但需增加驱动能力。 null2.6.2 机器周期、指令周期与指令时序
一、时钟周期
单片机的基本时间单位。
若时钟的晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。
二、机器周期
CPU完成一个基本操作所需要的时间。
执行一条指令分为几个机器周期。每个机器周期完成一个基本操作。MCS-51单片机每12个时钟周期为一个机器周期,null一个机器周期又分为6个状态:S1~S6。每个状态又分为两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为:
S1P1、S1P2、S2P1、S2P2、…、S6P2。 null三、指令周期
执行一条指令时,可分为取指令阶段和指令执行阶段 。
取指令阶段,PC中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。
指令执行阶段,对指令操作码进行译码,以产生一系列控制信号完成指令的执行。
ALE信号是为地址锁存而定义的,以时钟脉冲1/6的频率出现,在一个机器周期中,ALE信号两次有效(注意,在执行访问外部数据存储器的指令MOVX时,将会丢失一个ALE脉冲)null
时钟电路
需外接晶振的频率1.2~12MHZ,C1和C2取30±10PFCPU的时序(时钟周期、 状态周期、机器周期)null若外接晶振为12MHz时,则单片机的四个周期的具体值为:
时钟周期=1/12MHz=1/12μs=0.0833μs
状态周期=1/6μs=0.167μs
机器周期=1μs
指令周期=1~4μs
可用于计算指令、程序的执行时间,以及定时器的定时时间
null2.7 复位操作和复位电路
2.7.1 复位操作
单片机的初始化操作,摆脱死锁状态。
引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可使MCS-51复位。复位时,PC初始化为0000H,使MCS-51单片机从0000H单元开始执行程序。
除PC之外,复位操作还对其它一些寄存器有影响,见表2-6(P34)。
SP=07H ,P0-P3的引脚均为高电平。
在复位有效期间,ALE脚和PSEN*脚均为高电平,内部RAM的状态不受复位的影响。nullnull2.7.2 复位电路
片内复位结构: null上电自动复位和按钮复位
最简单的上电自动复位电路:null按键手动复位,有电平方式和脉冲方式两种。
电平方式 脉冲方式null两种实用的兼有上电复位与按钮复位的电路。 图2-19中(b)的电路能输出高、低两种电平的复位控制信号,以适应外围I/O接口芯片所要求的不同复位电平信号。
74LS122为单稳电路,实验表明,电容C的选择约为0.1F较好。
本文档为【单片机 (2)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。