Download presentation
Presentation is loading. Please wait.
1
第二章 89C51单片机硬件结构和原理 2.1 89C51单片机内部结构及特点 一、89C51单片机的基本组成
MCS-51系列单片机为Intel 公司产品,1980年推出。 MCS-51 系列单片机有: ,8751,8031 80c51BH,80c31BH … 它们的基本组成、基本性能和指令系统都是相同的。 89C51单片机是ATNMEL、PHILIPS、SST公司的产品: 89C51= 80C31+373+Flash ROM 给单片机的开发及应用带来很大的方便 一、89C51单片机的基本组成 89C51单片机的基本结构见下图。
2
89C51单片机结构框图 第2章 89C51单片机硬件结构和原理 外部时钟源 外部事件计数 振荡器和时序 OSC 程序存储器 4KBROM
数据存储器 256B RAM/SFR 2×16位 定时器/计数器 89C51 CPU 64KB 总线 扩展控制器 可编程I/O 可编程全双工 串行口 内中断 串行通信 控制 外中断 并行口
3
4. 片内振荡器和时钟产生电路(石英晶体与微调电容需外接, 最高允许振荡频率为12MHZ)
第2章 89C51单片机硬件结构和原理 含有: 1. 一个8位 CPU 80C51 2. 128 B/256 B RAM/SFR 3. 4KB Flash ROM (8051/8052是掩膜 ROM, 8751/8752是EPROM,但8031、 8032、80C32片内无ROM) 4. 片内振荡器和时钟产生电路(石英晶体与微调电容需外接, 最高允许振荡频率为12MHZ) 5. 4个8位并行I/O接口(共32位I/O)P0~P3,每个口皆可输入 和输出,其中P3口还可用于——串行输入/输出、定时/计数 器、外部事件计数输入,中断输入。 6. 2个 16位 定时/计数器 7. 5个中断源的中断控制系统(2个外中断,2个定时/计数器中 断,1个串行口中断) 8. 1个全双工的串行I/O 接口
4
与8051相比,89C51具有两种用软件选择的节电工作方式—— 空闲方式:CPU停止工作,RAM、定时/计数器、中断系统等继续工作。
51系列单片机的温度适用范围 为: 民品(商业用) ~70 °C 工业品 -40~+85 °C 军品 -55~+125 °C 工业级产品 1. 采用密封式封装 2. 在工业级规定的温度范围内进行电器特性测试 3. 产品经过125 °C 温度下44小时的老化处理 4. 老化后100%进行电气测试,质量检验。 军品则要求更高
5
二、 89C51单片机内部结构 由 中央处理单元(CPU)、 存储器(ROM及RAM)、 I/O接口组成。
89C51与8051/8751/8031芯片的外部引脚和指令系统完全兼容,仅在内部配置了一个Flash ROM。结构总图如下: 由 中央处理单元(CPU)、 存储器(ROM及RAM)、 I/O接口组成。 1. CPU ALU—可对4位,8位,16位数据进行算术逻辑运算等操作。 ACC—提供一个运算数,经Temp2送入ALU或中转站, 用A表示。 PSW—程序状态字,标志指令执行后的信息状态。 B — 8位Reg, 可作通用Reg.使用。 ①运算器 ②布尔处理器—— 以PSW中的C(进位标志位)为其累加器,专门 用于处理位操作(位运算、位处理、位寻址)
6
P0.0-P0.7 P2.0-P2.7 P0驱动器 P2驱动器 RAM地址寄存器 128BRAM P0锁存器 P2锁存器 程序地址寄存器
4KB Flash ROM 程序地址寄存器 B寄存器 暂存器1 暂存器2 ACC SP 缓冲器 ALU PC增1 中断、串行口和定时器 定时控制 指令译码器 指令寄存器 PC PSEN ALE EA RET PSW DPTR P1锁存器 P3锁存器 OSC P1驱动器 P3驱动器 XTAL XTAL2 P1.0-P1.7 P3.0-P3.7
7
程序计数器PC(16bit)—PCH,PCL。 其中存放着将要执行的下一条指令的地址。 指令Reg. IR—存放从PC中地址取出的指令。
指令译码器ID—对指令进行译码PLA,产生控制信 号,以执行指令规定的操作。 振荡器及定时电路:外接晶体和微调电容(30pF),其频率范围为1.2MHZ~12MHZ,常用6MHZ晶体。 ③ 控制器 2. 存储器 (特点: ROM和RAM独立编址(哈佛结构)) (1)程序存储器(ROM) 地址从0000H开始,内部4KB。用于存放程序和表格常数。 (2)数据存储器(RAM) ① 地址为00H~7FH,128B。存放中间结果、数据暂存及数据缓冲等。 ② 128B的RAM中有32个字节单元可指定为工作寄存器。 ③片内还有21个特殊功能寄存器(SFR),它们同128字节RAM统一编址,地址为80H~FFH。后面详细介绍。
8
在单片机外部的存储器: 与内部程序存储器ROM统一编址,共64KB。 如,内部已用4KB,则外部ROM地址为 1000H~FFFFH。
第2章 89C51单片机硬件结构和原理 在单片机外部的存储器: (1)外部程序存储器ROM单元: 与内部程序存储器ROM统一编址,共64KB。 如,内部已用4KB,则外部ROM地址为 1000H~FFFFH。 (2)外部数据存储器RAM单元:0000H~FFFFH(64KB) 内、外部数据存储器RAM的操作指令不同。 3. I/O接口 (1) 4个8位并行I/O口 P0~P3,均可输入/输出。 (2)每个I/O口(8位)有一锁存器,锁存器地址与RAM地址统一编址,可作为特殊功能Reg. (SFR)来寻址。 这个锁存器(SFR)类似于8255中I/O口与Reg之间的关系。对I/O口操作,即是对这个锁存器操作。
9
C51单片机引脚及其功能 89C51为40 PIN DIP封装。 89C51单片机引脚图
10
1.电源引脚(Vss,Vcc) 2.时钟电路引脚(XTAL1, XTAL2) Vss(I,20) 电源地电平
Vcc(I, 40) 电源端 +5V 2.时钟电路引脚(XTAL1, XTAL2) XTAL1(I,19):振荡器反向放大器输入端。 当外接晶体时,接晶体和微调电容的一端。 当采用外部时钟时,此脚作为驱动端,接外部时钟。 振荡电路的频率就是晶体固有频率。 单片机正常工作时,该引脚应有脉冲信号输出。 XTAL2(I,18):振荡器反向放大器输出端。 当外接晶体时,接晶体和微调电容的一端。 当采用外部时钟时,此脚悬空。
11
对CHMOS如此 VCC 5.1K 89C51 X1 X1 89c51 外时钟信号 X2 X2 振荡电路的频率为晶体固有频率
C PF C 30PF 6MHZ 89C51 X1 X2
12
注 对HMOS如此 XTAL1(I,19): 当采用外部时钟时 HMOS:此脚接地 CHMOS:此脚作为驱动端, 接外部时钟。 VCC
5.1K 外时钟信号 8031 X2 X1 Vss XTAL2(I,18): 当采用外部时钟时 HMOS:此脚接外部时钟 CHMOS:此脚悬空
13
CHMOS器件在掉电方式(CPU停止工作,片内RAM的数据继 续保持)下时,消耗的电流可低于10μA。
CHMOS(互补金属氧化物HMOS)是CMOS和HMOS(高密度沟 道MOS工艺)的结合,除了保持HMOS高速度和高密度之外,还有 CMOS低功耗的特点。 两类器件的功能是完全兼容的,区别在CHMOS器件具有低功 耗的特点。它所消耗的电流比HMOS器件少很多,主要在于其采 用了两种降低功耗的方式:空闲方式和掉电方式。 CHMOS器件在掉电方式(CPU停止工作,片内RAM的数据继 续保持)下时,消耗的电流可低于10μA。 采用CHMOS的器件在编号中用一个C来加以区别, 如 : C51,80C31,89C51等。
14
3. 控制信号引脚(RST/VPD, ALE/ PROG 、PSEN和EA)
(1)RST/VPD(I,9)——多功能引脚,复位/备用电源。 RST 复位信号,高电平有效。 VPD 备用电源输入端。当Vcc发生故障(掉电等 ),降低到低 电平的规定值时,可由该端子为片内RAM提供电源。 在RST端加入“1”,且维持两个机器周期(24个振荡周期), 则CPU复位。复位时 PC=0000H。 复位 复位电路有上电复位、按键兼上电复位两种: 上电复位(右图) 在通电瞬间(Vc=0),电容C 通过R充电,在RST 端出现如图 正脉冲,则89C51加电自动复位。 R、C随CPU时钟频率而变化, 取值如图。
15
上电兼手动复位 (右图,电平方式开关复位) 开关常开时,为上电复位电路; 当常开按键闭合时,相当于RST
第2章 89C51单片机硬件结构和原理 上电兼手动复位 (右图,电平方式开关复位) 5V 4.2V 按下 开关 松开 开关常开时,为上电复位电路; 当常开按键闭合时,相当于RST 端通过电阻R1(200Ω)与Vcc电 源接通,22uF电容迅速放电,RST 上得到一个5V经220Ω与1K电阻 的分压(高电平)。这个分压大 致为5V的5/6,4.2V,使单片机复 位。 当常开按键松开时,RST端经一 段时间后又逐渐降至0V。时序图 如右所示。
16
(2)ALE /PROG(I/O,30) ——地址锁存允许/编程脉冲输入端
第2章 89C51单片机硬件结构和原理 (2)ALE /PROG(I/O,30) ——地址锁存允许/编程脉冲输入端 ALE:当访问外部存储器时,ALE的输出 用于锁存地址的低8位,即将P0口 数据和地址分开。 即使不访问外部存储器,ALE端仍以振荡频率的1/6周期性地输出正脉冲信号,这可作为输出脉冲或定时信号。 ALE端的负载能力为8个LS型TTL输入。 PROG :对片内Flash ROM编程写入时的编程脉冲输入端。 (3)PSEN(O,29)——外部程序存储器“读”信号 当访问外部程序存储器时,此脚定时输出负脉冲作为读片外 程序M的选通信号,通常接EPROM的OE 端。 PSEN端在每个机器周期(12个振荡周期)中两次有效,但当访问外部RAM时,两次PSEN负脉冲信号不出现。 PSEN端可以驱动8个LS型TTL。
17
准双向 当I/O口作为输入时,应先向此口锁存器写入全1, 此时该口引脚浮空,可作高阻抗输入。
第2章 89C51单片机硬件结构和原理 (4) EA/VPP(I,31)——内外程序存储器选择/编程电源输入 EA=1,CPU访问片内 Flash ROM ,并执行其指令。 当 PC > 0FFFH 时(4KB),自动转向片外 ROM 。 EA = 0,不论片内是否有存储器,只执行片外 ROM 的指令。 VPP:用于在对89c51的片内Flash ROM编程时,施加 (12V~21V)高压的输入端。 4. I/O端口 P0~P3 (1) P0口(P0.0~P0.7,39~32pin,I/O) 是漏极开路的8位准双向 I/O 端口。 G D S 准双向 当I/O口作为输入时,应先向此口锁存器写入全1, 此时该口引脚浮空,可作高阻抗输入。
18
漏极开路的8位准双向I/O口,每位能驱动8个LS型TTL负载。
第2章 89C51单片机硬件结构和原理 漏极开路的8位准双向I/O口,每位能驱动8个LS型TTL负载。 在CPU访问片外存储器(RAM、ROM)时,P0口为分时复用的低8位地址总线和8位数据总线(此时,其内部上拉电阻被激活 ) 若系统中无外扩存储器(RAM、ROM),P0口可作为一个数据输入/输出口(输出时,不能激活内部上拉电阻,需外接上拉电阻;输入时,应先向口锁存器写入1,使P0口全部引脚浮空再输入)。 (2) P1口(P1.0~P1.7,1~8pin,I/O) 带内部上拉电阻的8位 准双向I/O端口。(并行或按位使用) 输出时,P1口的每一位能驱动4个LS型TTL负载。 输入时,先向其口锁存器写入全1,此时将P1口引脚由内部上拉电阻拉成高电平。
19
(3) P2口(P2.0~P2.7,21-28,I/O) 带内部上拉电阻的8位 准双向I/O端口。 当有外部存贮器时,用作高8 位地址总线。
第2章 89C51单片机硬件结构和原理 (3) P2口(P2.0~P2.7,21-28,I/O) 带内部上拉电阻的8位 准双向I/O端口。 当有外部存贮器时,用作高8 位地址总线。 ② 当无外部存贮器时,可用作一般I/O线。输出输入时的情况同P1口。 (4) P3口(P3.0~P3.7,10~17pin,I/O) 双功能口。 带内部上拉电阻的8位准双向I/O端口。 每位能驱动4个LS型TTL负载。 P3口除作为一般I/O口外,每个引脚都有第二功能。 第一功能:一般I/O口,准双向,输出输入时的情况同P1口。 第二功能:系统控制信号,定义如下:
20
任意一位不用于第二功能(首选)时,可用于第一功能。
第2章 89C51单片机硬件结构和原理 第二功能:系统控制信号,定义如下: P3.0 RXD P3.1 TXD P3.2 INT0 P3.3 INT1 P3.4 T0 P3.5 T1 P3.6 WR P3.7 RD 串行口输入/ 输出端 外部中断输入 定时/计数器的计数脉冲 输入 片外RAM读/写信号 任意一位不用于第二功能(首选)时,可用于第一功能。
21
2. 3 89C51单片机存储器配置 ① 程序MEM和数据MEM独立编址(哈佛结构)。 ② 程序MEM:片内与片外统一编址(64KB) 。
编址特点 从用户角度看,89C51存贮器地址空间分为3类: ① 片内片外统一编址的64KB ROM: 0000H~FFFFH ② 64KB 片外RAM:0000H~FFFFH ③ 256字节片内RAM:00H~FFH 存储空间分布图见下图。 89c51指令系统设计了不同的访问指令,以区别3个存贮区的访问。如: ①片内、外ROM 用 MOVC ②片外RAM用 MOVX ③片内RAM用 MOV
22
第2章 89C51单片机硬件结构和原理 ② RAM与 I/O统一 编址 ① ③ 图 C51存储器配置
23
一、 程序存储器(地址线16位,最多达64KB) ——用于存放程序和表格常数等。 1. 89C51 片内有4K程序M
EA=1,片内寻址4KB:0000H~0FFFH。 当指令地址超过0FFFH后,自动指向外部ROM,地址 1000H~FFFFH。 EA=0,片内ROM不起作用,CPU只能从片外ROM中取指令, 0000H~FFFFH 。 注:EA =0,适用于内部没有ROM 的8031应用系统。 2.程序M中的部分保留单元(系统留用),见下表。 INT1中断服务程序 0013H~001AH 定时器2中断服务 (89C52才有) 002BH 定时器0溢出中断服务 000BH~0012H 串行口中断服务程序 0023H~002AH INT0中断服务程序 0003H~000AH 定时器1中断服务 001BH~0022H 复位后初始化引导程序 0000H~0002H 保留目的 存储单元
24
二、 数据存储器 ——用于存放暂存数据、中间运算结果等。 中断向量表 0003H~002AH均匀 地分为5段,为5个中 断服务程序起始处。
第2章 89C51单片机硬件结构和原理 中断向量表 0003H~002AH均匀 地分为5段,为5个中 断服务程序起始处。 因为字节单元太少, 所以常在这些存储单 元中存放转移指令。 0023H 串行口中断 001BH 定时器1溢出中断 0013H INT1中断 000BH 定时器0溢出中断 0003H INT0中断 中断入口地址 中断源 注:P26 图,扩展ROM。 一般,尽量不扩充片外ROM,而选用片内具有大容量Flash的单片机。 二、 数据存储器 ——用于存放暂存数据、中间运算结果等。 1. 片外RAM H~FFFFH,使用MOVX指令访问。 2. 片内RAM 00H~FFH,使用MOV指令访问。
25
CPU上电时选中0组;未用到的组可作为RAM用. 程序执行的任何时刻,只能用一组。
安排了 21个SFR 地址离 散分布 80字节 RAM区 即可字节 寻址,又 可位寻址. 16字节 32个字 节通用 Reg.区 CPU上电时选中0组;未用到的组可作为RAM用. 程序执行的任何时刻,只能用一组。 由PSW中的RS1、RS0 两位组合选中当前组
26
第2章 89C51单片机硬件结构和原理 图2-8 低128字节RAM区 图2-9 高128字节RAM区(SFR区)
27
00H~7FH 均可用作一般的RAM单元外,其中某些部分还可以以其它形式使用。
第2章 89C51单片机硬件结构和原理 片内RAM ① 低128字节RAM 00H~7FH 均可用作一般的RAM单元外,其中某些部分还可以以其它形式使用。 通用Reg.区 4个,00H~1FH (4×8=32), 指令 比一般RAM更丰富、简洁、快捷。 位地址区 20H~2FH 以位寻址方式使用时,地址从00H~7FH。 对字节RAM,用直接寻址和间接寻址;对位地址单元用位寻址方式。(以区别某个单元是字节或位单元) 用户通用RAM 可在此将部分区域设置为堆栈 低128字节 ② 高128字节RAM ——SFR 是80H~FFH的部分单元,使用时只能直接寻址。其余未定义部分不能使用。
28
TCON.0——表示Reg的bit(点操作符) IT0(位名称) ⅱ)SFR中,凡地址能整除8的单元同时具有位寻址能力(11个)。
寄存器名 ACC 地址 E0H TCON.0——表示Reg的bit(点操作符) IT0(位名称) ⅱ)SFR中,凡地址能整除8的单元同时具有位寻址能力(11个)。 位地址都是88H ACC.0 E0H (位地址,ACC.0无位名称) 以ACC为例: 这些位地址的 一般表示方式 ⅲ)SFR包括 ACC——累加器(字节地址E0H),指令中用A表示。 B——Reg.(字节地址F0H),用于乘除指令。 在其他指令中,可作为一般通用Reg或 RAM单元。 PSW——程序状态字(字节地址D0H),各位的含义及格式见下一页。
29
PSW(D0H) P X OV RS0 RS1 F0 AC CY 进借位标志,位地址D7H CY —— 位操作时的位累加器。
FO —— 用户标志位(用户可设置其为0或1) RS1、RSO —— 选择工作Reg.区 OV —— 溢出标志 P ——奇偶标志,运行结果有奇数个1,P=1;否则P=0。 SP----堆栈指针(字节地址81H),其内容可为00~7FH的 任何地址单元,系统复位时为07H(向上生成)。 DPTR----数据指针(83H、82H),既可作为一个16位Reg (DPTR)、 也可作为两个8位Reg ( DPH,DPL)使用。 以16位使用时,对片外RAM寻址。
30
P0~P3 ——I/O端口(80H,90H,A0H,B0H)
第2章 89C51单片机硬件结构和原理 P0~P3 ——I/O端口(80H,90H,A0H,B0H) 4个I/O端口的锁存器地址,还可按位寻址,即每一条I/O线均可独立用作输入或输出。 在单片机中,将I/O端口当作SFR,不设专门的口操作指令(IN或OUT),而采用统一的MOV指令,使用方便。 例:MOV P1,A ;A→P1 SBUF——串行数据缓冲器(99H) 用于存放欲发送或已接收的数据。 例:MOV SBUF,A; A→SBUF THi,TLi ——定时/计数器 i中的计数器(i=1,2) 一个16位(THi TLi) 或两个8位定时/计数器(THi,TLi)。 其他控制Reg.——IP,IE,TMOD… 为中断系统、定时/计数器、串行口和供电方 式的控制与状态位。 P30 表
31
2. 4 CPU时序 一、片内振荡器及时钟信 号的产生 S1 S2 S3 S4 S5 S6 fosc/2 fosc
1. 振荡器 (构成见前) 2. 时钟信号的产生 时钟信号的周期S包含2个振荡周期: S=fosc/2。 每个时钟周期S有两个节 拍P1、P2,称为相1(P1)和相2(P2)。 CPU以P1、P2为基本节拍指挥单片机各部件协调工作。 S1 S2 S3 S4 S5 S6
32
二、机器周期和指令周期 1. 机器周期:CPU访问存储器一次所需要的时间 (如取指令、读存储器、写存储器等)。
2. 1个机器周期 = 12个振荡周期( fosc) = 6个时钟周期(S,fosc/2) 当使用6MHZ晶振时,一个机器周期 = 2us。 3. 指令周期(一条指令的执行时间)= n 个机器周期 n小则执行速度快。 注:大部分指令周期为1个或2个机器周期,乘除指令为4个机器周期。 CPU的4个时序单位从小到大依次是: 节拍、时钟周期、机器周期和指令周期,如图2-13所示。 图 C51单片机各种周期的相互关系
33
每条指令的执行都可以包括取指和执指两个阶段。 在取指阶段,CPU从内部或外部ROM中取出指令操作码及操作数,然后再执行这条指令。
单字节和双字节的指令都可能是单机器周期或双周期,而三字节指令都是双周期的,只有乘、除指令占四周期。因此,当使用6MHZ晶振时,执行一条指令的时间(指令周期)分别是2μs,4μs和8μs。 如 图2-14所示。
34
(1) 每个机器周期出现两次ALE脉冲,用于地址锁存。(此周期信号可用于其它外设的控制信号)
第2章 89C51单片机硬件结构和原理 (1) 每个机器周期出现两次ALE脉冲,用于地址锁存。(此周期信号可用于其它外设的控制信号) (2) 对外RAM进行读写时,ALE信号不是周期性的,缺一次。故用ALE做系统定时脉冲时要考虑到这一点。 图2- C51单片机的取指/执行时序
35
第2章 89C51单片机硬件结构和原理 复位操作 1. 复位电路 ① 复位信号的内部电路 复位引脚RST通过片内一个斯密特触发器与片内复位电路相连,斯密特触发器用来脉冲整形及抑制噪声,其输出在每个机器周期的S5P2被复位电路采样一次。如果RST引脚有一高电平并维持2个机器周期,89C51便执行内部复位。P39 图2-15。 ② 复位信号的外部电路(见前) 2. 复位时SFR的状态 复位后,PC=0000H,使单片机从起始地址0000H单元开始执行程序。 若单片机运行出错或进入死循环,可按复位键重新启动,或通过watchdog电路使其自动复位。
36
第2章 89C51单片机硬件结构和原理 寄存器 复位状态 PC 0000H TCON 00H ACC TL0 PSW TH0 SP 07H
DPTR TH1 P0~P3 FFH SCON IP ××000000B SBUF 不定 IE 0×000000B PCON 0×××0000B TMOD
37
表2-8中的符号意义如下: PSW=00H:选寄存器0组为工作寄存器组。
第2章 89C51单片机硬件结构和原理 表2-8中的符号意义如下: A=00H: 累加器已被清0。 PSW=00H:选寄存器0组为工作寄存器组。 SP=07H: 堆栈指针指向片内RAM 07H字节单元,根据堆栈操作法则,第一个被压入的数据被写入08H单元中。 P0~P3=FFH: 已向各端口线写入1,此时,各端口既可用于输入,又可用于输出。 IP=×××00000B: 各个中断源处于低优先级。 IE=0××00000B: 各个中断均被关断。 TMOD=00H: T0/T1均为工作方式0,且运行于定时器状态。 TCON=00H: T0/T1均被关断。 SCON=00H: 串行口处于工作方式0,允许发送,不允许接收。 PCON=00H: SMOD=0,波特率不加倍。
38
2. 6 89c51单片机的低功耗工作方式 89C51提供两种节电工作方式:空闲(等待、待机)方式和掉电(停机)工作方式
图2-17所示为实现这两种方式的内部电路。 若IDL=0,则89C51将进入空闲运作方式。此时,振荡器仍继续运行,但IDL封锁了去CPU的“与”门,故CPU得不到时钟信号。而中断、串行口和定时器等环节却仍在时钟控制下正常运行。掉电方式下(PD=0),振荡器冻结。 图中,PD和IDL均为PCON中PD和IDL触发器的Q输出端。
39
2. 7 输入/输出端口 一、P0口 某一位结构见图2-21 89c51有4个8位并行I/O端口P0、P1、P2、P3。
输入/输出端口 89c51有4个8位并行I/O端口P0、P1、P2、P3。 每个端口是8位准双向口,每一条I/O线都能独立地作I/O。 每个端口有: 1个输出锁存器(P0~P3),即 常说的口地址(80H,90H,A0H,B0H)。 1个输出驱动器 2(或3)个三态输入缓冲器。 负载管 一、P0口 某一位结构见图2-21 当C=0时,开关MUX被控为如图示位置,P0口为通用I/O口; 当C=1时,开关拨向反相器3的输出端,P0口分时作为地址/数据总线使用。
40
CPU执行I/O指令时,系统自动使:C=0,则有: ① 锁存器的Q 端与输出级T2连接 ② 与门4 输出0使负载管T1截止 负载管
1. P0口作为一般I/O口使用( C=0) CPU执行I/O指令时,系统自动使:C=0,则有: ① 锁存器的Q 端与输出级T2连接 ② 与门4 输出0使负载管T1截止 负载管 这时,输出级是漏极开路的开漏电路,P0口可作为一般I/O口使用。 当用于I/O时,需外接10K的上拉电阻到Vcc,否则不能有高电平输出。 (1)P0口作输出 MOV A,#00H ; MOV P0,A ;向P0口输出00H 这时有:锁存器Q = 0 (输出数据0), Q=1 ,T2导通,P0.x=0。
41
负载管 (2)P0口作输入 例:MOV A,P0 ;P0.x信号经输入缓冲器到CPU 当执行一条由端口输入的指令时,“读引脚”脉冲把三态缓冲器2打开,这样,端口上的数据经过缓冲器2读入到内部总线。 输入时应保证T2截止(否则,输入的 高电平将可能被短路) 为此,在输入前先输出“1”,使Q = 0,T2截止. (这时T1、T2全截止,引脚处于悬浮状态,可作高阻抗输入) 程序通常为: MOV A ,#0FFH MOV P0,A ;先输出 MOV A ,P0 ;再输入 称这种数据输入为“读引脚”操作。见图中的“读引脚”线。
42
如:ORL P0,A ;指令功能: 将P0与A相或,然后P0
第2章 89C51单片机硬件结构和原理 (3)P0口作输出时需注意 负载管 当用一根端口线去驱动一个晶体管的基极时,向此端口线输出“1”使该晶体管导通,导通的晶体管会把引脚上的电平拉低。若这时从该引脚读入刚才输出的数据,读入的 为“0”,与刚才输出的值不符。 为避免错读引脚电平,单片机还提供了一组“读锁存器”操作。见图中的“读锁存器”线。 如:ORL P0,A ;指令功能: 将P0与A相或,然后P0 该指令先将P0口D锁存器数据(即此时引脚应该的电平)读入CPU,再与A内容相“或”,最终将“或”的结果送到P0锁存器。此时,锁存器的内容(Q端状态)和引脚一致,P0数据来源于锁存器而不是引脚。 在以上过程中,读入操作不是“读引脚”,而是“读锁存器”。这一类指令称为“读—修改—写”指令,有: ANL,ORL,XRL,JBC,CPL,INC,DEC,DJNZ等。 这类指令常用来“位”修改,修改时不能影响其他位。
43
对89C51外扩存储器并使用时,系统自动使C=1。这时: P0口可作为地址/数据总线使用,对片外ROM(或RAM)
负载管 2. P0口作为地址/数据总线使用(C=1) 对89C51外扩存储器并使用时,系统自动使C=1。这时: P0口可作为地址/数据总线使用,对片外ROM(或RAM) 寻址及作为数据输入/输出通道。 注意:当P0作为总线使用时,不再能作I/O口使用。 CPU对片外存储器读写时,系统自动使C=1,图中MUX接反相器3的输出端: (1)输出 地址/数据信号经T1、T2推拉输出(T1导通时上拉,T2导通时下拉),负载能力较强。(激活内部上拉电阻T1) (2)输入 数据从P0输入。这时,“读引脚”信号有效打开输入缓冲器2数据到DB。
44
二、P1口 某一位结构图见图2-19,工作原理同P0口, 也是一个准双向口。区别如下: 1. 仅作为一般I/O口。
第2章 89C51单片机硬件结构和原理 二、P1口 某一位结构图见图2-19,工作原理同P0口, 也是一个准双向口。区别如下: 1. 仅作为一般I/O口。 2. 内部有上拉电阻,无需外接。 内部电阻实际上是两个FET并在一起,一个为负载管,其阻值固定;另一个工作在导通或截止两种状态,使其总阻值在0或阻值很大两种情况下变化。 当阻值为0时,引脚快速上拉至高电平; 当阻值很大时,P1口为高阻输入状态。 3. P1口用作输出时:能向外提供拉电流负载,所以不必再接 上拉电阻。 作输入时:先对锁存器 写入“1”,使FET截止。
45
三、P2口 见 图2-20 1. 作为一般I/O口使用时,同P1口。 2. 当系统中有外部ROM、RAM时,P2口输出高8位地址。
当CPU对片内存储器和I/O口进行读/写(执行MOV 指令或EA=1时,执行MOVC指令)时,由内部硬件自动使开关MUX倒向锁存器的Q端,这时,P2口为一般I/O口。 2. 当系统中有外部ROM、RAM时,P2口输出高8位地址。 此时,不再作为通用I/O口。 驱动部分与P1口类似,但比P1口多了一个转换控制部分。 3. 当系统中无需外扩ROM(89C51/8751),只需扩展256B片外RAM 时,只需用P0口的低8位地址即可。这时,P2口仍可作为通用I/O口。 使用 MOVX 4. 若扩展RAM超过256B(用MOVX 高8位地址线。 访问片外RAM周期结束后,P2口仍可作通用I/O口,但使用时要谨慎。
46
四、P3口——多功能口 某一位结构图见图2-22 1. 作为一般I/O口使用时(W=1),
第2章 89C51单片机硬件结构和原理 四、P3口——多功能口 某一位结构图见图2-22 1. 作为一般I/O口使用时(W=1), 同P0、P1、P2口。 CPU对P3口进行SFR(位或字节)寻址访问时,为I/O口。 2. 作为第二功能使用时(Q=1) (CPU不把P3口作为SFR寻址), 内部硬件使锁存器Q=1。 (1)输出(TXD、WR、RD)时(Q=1),第二输出功能端W状态 经与非门3 到FET输出端。 (2)输入(RXD、INT0、INT1、T0、T1)时(W=1,Q=1), FET截止,为高阻输入,信号经缓冲器4 到内部电路。(此 时I/O无效,所以“读引脚”信号无效,缓冲器2 不导通)。
47
第2章 89C51单片机硬件结构和原理 表2-10 P3口线与第二功能表
48
五、端口的负载能力和接口要求 1. P0口的每一位输出可驱动8个LS型TTL负载
第2章 89C51单片机硬件结构和原理 五、端口的负载能力和接口要求 1. P0口的每一位输出可驱动8个LS型TTL负载 (1)作为I/O口使用时,外接上拉电阻,输出时才有高电平输出;用作输入时需先向锁存器(80H)写“1”,不影响输入电平。 (2)用作地址/数据总线时,无需外接上拉电阻。这时用作输入时,也无需写“1”。 (3)若通过OC门输入,需外接上拉电阻。 2. P1~P3口的 每一位输出级有上拉电阻,每一位可驱动4个TTL负载。 (1)输出时,无需外接上拉电阻 。 (2)输入时,先写“1”。 (3)若通过OC门输入,无需外接上拉电阻。 对89C51单片机(CHMOS),由于其端口只能提供几mA输出电流,当其端口接普通晶体管的基极,应在端口与晶体管基极之间串连一个电阻以限流。对TTL门或NMOS电路,可直接接入。
49
例: P1.x 7406(TTL) 可直接相连 RC VCC Vo R P1.x 这样,当P1.x输出高电平时,不至于负载电阻过小,而需P1.x端输出大电流(过载)。
50
六、单片机应用系统组成举例 8031最小系统 … 8031 …… 22uF 2716 2K×8 1K 18 19 PSEN VSS P1
XLAT2 XLAT1 VCC RST/VPD VSS EA/VDD ALE P0.0 P0.1 …… P0.7 P2.0 P2.1 P2.2 P1 … 8031 D7 D0 74373 G E A7 A0 2716 2K×8 VPP CE GND A8A9A10 1K 18 19 PSEN 8031最小系统 OE P3
51
CB 一般的应用系统 OE WR RD AB (A0~A15) EA P2 RAM / IO口 地址 ALE 锁存器 P0 D0~D7
EPROM 64K OE RAM / IO口 WR RD AB (A0~A15) CB PSEN WR RD P0 ALE P2 EA 一般的应用系统
52
说明: 1. 由于8031无片内ROM,所以外扩。需P0、P2做数据/地址线的总线接口。 2. P1、P3 可作为I/O口使用。 3. ALE使373锁存地址。 ALE高电平373直通;低电平时373锁存。 实现了P0口地址/数据的分时传送。 4. PSEN仅在CPU访问外ROM时产生,用来控制2716的OE. 5. 当单片机要外扩RAM和I/O口时,单片机通过指令MOVX 与其交换信息,这时CPU会产生相应的RD、WR信号。
53
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。
中央处理器首先到程序指令存储器中读取程序指令内容,解码后得到数据地址,再到相应的数据存储器中读取数据,并进行下一步的操作(通常是执行)。 程序指令存储和数据存储分开,可以使指令和数据有不同的数据宽度,如Microchip公司的PIC16芯片的程序指令是14位宽度,而数据是8位宽度。 冯诺依曼结构和哈佛结构两者有什么区别? 区别是地址空间和数据空间分开与否。 冯诺依曼结构数据空间和地址空间不分开;哈佛结构数据空间和地址空间是分开的。
Similar presentations