单片机的结构和工作原理_第1页
单片机的结构和工作原理_第2页
单片机的结构和工作原理_第3页
单片机的结构和工作原理_第4页
单片机的结构和工作原理_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2.7

89S51的输入输出接口本章主要内容:2.1

MCS-51系列概述2.2

89S51的引脚功能说明2.3

89S51的内部结构2.4

89S51的存储器组织第2章单片机的结构和工作原理2.5

89S51的时钟电路与时序2.6

89S51的工作方式2.1MCS-51系列概述

MCS-51是Intel公司生产的一个单片机系列名称。可分为基本型和增强型两大系列:51子系列和52子系列,这一系列的单片机有多种,如:

8051/8751/80318052/8752/803280C51/89S51/89S5180C52/89C52/89S52等

功能上,该系列单片机有基本型和增强型两大类:

增强型:8052/8752/803280C52/87C52/89C52/89S52

基本型:8051/8751/803180C51/87C51/89S51/89S51在片内程序存储器的配置上,该系列单片机有以下几种形式,即掩膜ROM、EPROM、ROMLess和FlashROM。如:80C51有4K字节的掩膜ROM87C51有4K字节的EPROM

80C31在芯片内无程序存储器。89S51和89S51在芯片内增加了基于Flash技术的闪速可电改写的程序存储器。无ROM型,要在片外扩展程序存储器;掩膜ROM型,程序由芯片生产厂写入;EPROM型,程序通过写入装置写入;FlashROM型,程序可电写入(常用)。片内ROM的配置形式:还有OTPROM型,具有较高的可靠性。51系列典型产品资源配置由表可见:增强型与基本型的几点不同:片内ROM:从4K增加到8K

片内RAM:从128增加到256

定时/计数器:从2个增加到3个中断源:从5个增加到6个。

Intel:80C31、80C51、87C51,80C32、80C52、87C52等;

ATMEL:89S51、89S51、89C2051等;

Philips、华邦、Dallas、Siemens(Infineon)等公司的许多产品。常用的51系列产品有:

注:近年来89C51已逐渐被89S51所取代,89S51除具有89C51原有所有功能外,还支持ISP在线可编程写入技术(在线更新程序)以及内部集成了看门狗计时器,给单片机的开发及应用带来了极大的方便。微处理器(机)的组成

1、运算器

2、控制器

3、CPU中的主要寄存器复习2.389S51的内部结构1、运算器

1)、组成2)、作用3)、ALU的两个主要的输入来源4)、运算器的两个主要功能1)运算器的组成算术逻辑单元(简称ALU)

运算器累加器

寄存器2)运算器的作用是把传送到微处理器的数据进行算数运算或逻辑运算。ALU可对两个操作数进行加、减、与、或、比较大小等操作,最后将结果存入累加器。ALU执行不同的运算操作是由不同控制线上的信息所确定的。3)ALU的两个主要的输入来源输入来源数据寄存器累加器4)运算器的两个主要功能(1)执行各种算术运算。(2)执行各种逻辑运算。2、控制器1)、控制器的组成2)、控制器的作用3)、控制器的主要功能控制器的组成程序计数器指令寄存器指令译码器时序产生器操作控制器1)控制器的组成

2)作用它是发布命令的“决策机构”,即协调和指挥整个计算机系统的操作。3)控制器的主要功能对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作。指挥并控制CPU、内存和输入/输出设备之间数据流动的方向。从内存中取出一条指令,并指出下一条指令在内存中的位置。3、CPU中的主要寄存器1)累加器(A)2)数据寄存器(DR)3)指令寄存器(IR)4)指令译码器(ID)6)地址寄存器(AR)5)程序计数器(PC)1)累加器(A)在算术和逻辑运算时,它具有双重功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。累加器是微处理器中最繁忙的寄存器。2)数据寄存器(DR)数据(缓冲)寄存器(DR)是通过数据总线(DBUS)向存储器(M)和输入/输出设备I/O送(写)或取(读)数据的暂存单元。3)指令寄存器(IR)指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时先把它从内存取到指令寄存器中,然后再传送到指令译码器中。4)指令译码器(ID)指令分为操作码和地址码字段,由二进制数字组成。当执行任何给定的指令,必须对操作码进行译码,以便确定所要求的操作。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向控制器发出具体操作的特定信号。5)程序计数器(PC)

通常又称为指令地址计数器。在程序开始执行前,必须将其起始地址,即程序的第一条指令所在的内存单元地址送到PC。当执行指令时,CPU将自动修改PC的内容,使之总是保存将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,所以修改的过程通常是简单的加1操作。6)地址寄存器(AR)地址寄存器用来保存当前CPU所要访问的内存单元或I/O设备的地址。因为内存(I/O设备)和CPU之间存在着速度上的差别,所以必须使用地址寄存器来保存地址信息,直到内存(I/O设备)读/写操作完成为止。Back计算机的模型微处理单元与存储器及I/O接口组成的计算机模型。图中假设所有的计数器、寄存器和总线都是8位宽度。ALU、计数器等寄存器和控制部分除在微处理器内通过内部总线相互联系以外,还通过外部总线和外部的存储器和输入/输出接口电路联系。外部总线一般分为数据总线、地址总线和控制总线,统称为系统总线。

一个计算机模型存储器和输入输出接口1、存储器2、I/O接口及外设Back1、存储器地址总线、数据总线和若干控制线把存储器和微处理器连接起来。存储器从CPU接收控制信号,以确定存储器执行读/写操作。地址总线将8位地址信息送入地址译码器,地址译码器的输出可以确定唯一的存储单元。数据总线用来传送存储器到CPU或CPU到存储器的数据信息。随机存取存储器示意图2、I/O接口及外设每个外设与微处理器的连接必须经过接口适配器(I/O接口)。每个I/O接口及其对应的外设都有一个固定的地址,在CPU的控制下实现对外设的输入(读)和输出(写)操作。2.3.189S51的基本组成89S51CPU振荡器和时序OSC64KB总线扩展控制器数据存储器256BRAM/SFR2×16位定时器/计数器可编程I/O程序存储器4KBFLASHROM可编程全双工串行口外中断内中断控制并行口串行通信外部时钟源外部事件计数89S51的内部结构P0驱动器P2驱动器P0锁存器P2锁存器RAM地址寄存器128BRAM4KBROMB寄存器暂存器1暂存器2ACCSP程序地址寄存器缓冲器PC增1PCDPTR中断、串行口和定时器PSWP1锁存器P1驱动器P3锁存器P3驱动器定时控制指令寄存器指令译码器OSCALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1XTAL2PSENALEEARESET运算器控制器存储器I/O接口1.中央处理器(CPU)2.内部数据存储器(片内RAM)3.内部程序存储器(片内ROM)

中央处理器是单片机的核心,完成运算和控制功能。89S51的CPU能处理8位二进制数或代码。它由运算器、控制器和布尔(位)处理器组成。

89S51芯片中共有256个RAM单元,但其中后128单元被专用寄存器(SFR)占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。

89S51共有4KBFlashROM,用于存放程序、原始数据或表格。

4.I/O口及功能单元

并口:P0~P3,双向口。每口8条I/O线

串行口:P3.0、P3.1,全双工定时/计数器:2个,16位

中断系统:5个中断源,2个优先级

CPU主要是由运算器和控制器两大部分组成。控制器根据指令码产生的微控制信号,协调运算器、存储器、输入/输出端口之间工作;运算器用于算术、逻辑运算及位操作处理。

运算器累加器ACC

寄存器BPSW

控制器程序计数器PC

指令寄存器IR

定时与控制逻辑2.3.289S51的CPU1、控制器

控制器是用来统一指挥和控制单片机工作的部件,由指令部件、时序部件和操作控制部件组成。

(1)指令部件,控制器的核心

指令部件程序计数器PC:16位的计数器,其内容为将要执行的指令地址指令寄存器:8位寄存器,用来暂时存放指令指令译码器:对来自指令寄存器的操作码进行分析、解释(2)时序部件

产生单片机各部件所需的定时信号,以保证各个部件有条不紊地进行信息传送、加工及存储等操作。

(3)操作控制部件

将指令译码器产生的微操作信号与时序部件产生的节拍信号进行组合,共同形成相应的微操作控制序列,以完成该指令所规定的操作。

完成对数据的算术运算或逻辑操作。

算术运算部件ALU

由加法器、加1减1电路、移位电路及BCD码修正电路等逻辑电路所组成。

累加器ACC

用来存放操作数和运算结果。

暂存器用来暂存进行运算之前的数据。

状态寄存器PSW

状态寄存器PSW是一个8位寄存器,用于寄存程序运行的状态信息。

2、运算器2.289S51的引脚功能图为89S51的引脚结构图,双列直插封装(DIP方式)

12345678910111213141516171819204039383736353433323130292827262524232221P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSSVCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.089S51/89C51(MOSI)(MISO)(SCK)MCS-51单片机芯片外形图AT89S51ATMELFLASH型87C51EPROM型40脚的双列直插DIP封装2.时钟电路引脚

XTAL1(Pin19)

XTAL2(Pin18)引脚的名称和功能

1.电源引脚

Vcc(Pin40):接+5V电源

Vss(Pin20):接地

RST/VPD(Pin9):复位信号。高电平有效。当此输入端保持两个机器周期的高电平时,就可以完成复位操作。

VPD:RST引脚的第二功能,备用电源输入端。当主电源Vcc发生故障,降低到低电平规定值时,将+5V电源自动接入该引脚,为RAM提供备用电源,以保证RAM中的信息不丢失,使得复位后能继续正常运行。3.控制信号引脚

ALE/PROG(Pin30):地址锁存控制。

正常工作时,该引脚以振荡频率的1/6固定输出正脉冲。CPU访问片外存储器时,该引脚输出信号作为锁存低8位地址的控制信号。它的负载能力为8个LS型TTL负载。

该信号可用于判断89S51是否正在正常工作!PROG:是对片内4KBFlashROM编程写入时的编程脉冲输入端。PSEN(Pin29):片外取指控制。访问片外程序存储器时,输出负脉冲选通信号。

EA/VPP(Pin31):程序存储器的内外部选通线。

EA=1时,CPU访问片内ROM并执行片内程序存储器中的指令,但当PC值超过0FFFH(片内ROM为4KB)时,将自动转向执行片外ROM中的程序。先选取内部程序存储器。

EA=0时,只选取外部程序存储器。Vpp:对89S51片内FlashROM固化编程时,编程电压输入端(12~21V)。P0.0~P0.7:P0口,8位(漏极开路)双向口线。 既可作为通用的I/O口使用,也可作为地 址数据线使用。P1.0~P1.7:P1口,带内部上拉电阻的8位双向I/O口。P2.0~P2.7:P2口,带内部上拉电阻的8位双向I/O口。 既可作通用I/O口使用,也可跟P0口配合 构成地址的高8位信号。P3.0~P3.7:P3口,带内部上拉电阻的8位双向I/O口, 既可作为通用的I/O口使用,同时具有第 二功能:4、输入输出引脚P3端口引脚与复用功能表2.489S51单片机的存储器

物理结构一般微机:

通常只有一个地址空间,ROM和RAM可以随意安排在这一地址范围内不同的空间,CPU访问存储器时,一个地址对应唯一的存储器单元,此类结构称为普林斯顿结构。89S51存储器:

与典型微机不同,它把程序存储器和数据存储器截然分开,各有自己的寻址系统、控制信号和功能,这种程序存储器和数据存储器分开的结构称为哈佛结构。

物理结构(哈佛结构,独立空间)片内程序存储器片外程序存储器片内数据存储器片外数据存储器89S51存储器程序存储器ROM数据存储器RAM物理上分4个存储器空间用户角度(逻辑上分3个存储器空间)片内外统一的64KB程序存储器256B(含SFR块)片内数据存储器64KB片外数据存储器89S51存储器空间分布图64KBRAM(I/O)64KBROMFFFF100000000FFFFFFF00004KBROM0FFF0000SFRRAM00807FFF片内存储器片外扩展存储器EA=1EA=0

上述三个存储空间地址是重叠的,89S51的指令系统采用不同的数据传送指令。64KB程序存储器地址空间,片内外统一编址0000H~FFFFH256B片内数据存储器地址空间,00H~FFH指令用MOVC指令用MOV指令用MOVX64KB片外数据存储器地址空间(含I/O),0000H~FFFFH

2.4.189S51的程序存储器配置PC:16位计数器,能寻址64KB的ROM。用途:存放编好的程序、常数和表格,只能读不能写。该空间有几个特殊单元,应用过程中应加以注意。89S51引脚EA=1时,系统使用片内ROM,指令地址超过0FFFH后就自动转向片外ROM中取指令;EA=0时,系统使用片外的ROM。89S51从片内ROM和片外ROM取指的速度相同。无论是使用片内还是使用片外的ROM(既EA=1或EA=0),其起始地址都是从0000H单元开始,0000H是系统的启动地址。

0003H~002BH是中断服务程序入口地址。保留的存储单元中断矢量表思考:如何合理安排程序存储器空间?

2.4.289S51的数据存储器配置思考:52子系列内部RAM使用特点?用途 用于存放运算的中间结果、数据暂存和缓冲、标志位等。片外RAM

MCS-51对外部数据存储器的扩展能力为64KB。地址:

0000H~FFFFH寻址:MOVX指令、间接寻址方式访问。8位地址寄存器:R0,R116位地址寄存器:DPTR例:MOVR0,#20H;外部RAM单元地址20H送R0MOVXA,@R0;从20H单元取数据到累加器A例:MOVDPTR,#2000H;地址2000H送DPTRMOVXA,@DPTR;(一)片内RAM地址空间寻址:用指令MOV最大可寻址256个单元,操作指令丰富,数据处理方便灵活。低128B(00H-7FH):真正RAM区高128B(80H-FFH):特殊功能寄存器(SFR)区地址:00H-FFH

片内RAM1、工作寄存器区(00H~1FH)2、位寻址区(20H~2FH)3、用户RAM区(30H~7FH)用户RAM区(堆栈、数据缓冲)位寻址区(位地址00~7F)第0组工作寄存器R7R0第3组工作寄存器第2组工作寄存器第1组工作寄存器R7R0R7R0R7R007H00H1FH18H17H10H0FH08H2FH20H7FH30H片内RAMSFR98HSCON82HDPL81HSP80HP08DHTH18CHTH08BHTL18AHTL089HTMOD88HTCON87HPCON83HDPH90HP1IPB8HPSWD0HBF0HFFHACCE0HP3B0HIEA8HP2A0HSBUF99H位地址表SFR1、工作寄存器区(00H~1FH)由四组(32个)工作寄存器组成,每组8个寄存器(R0~R7),共占32个单元。通过程序状态寄存器PSW中RS1、RS0两位设定来选择CPU的当前工作寄存器组。复位时,第0组为当前的工作寄存器。若不需要四组,则其余可作为一般RAM单元。(二)低128字节RAM(00H~7FH)工作寄存器地址表思考:工作寄存器为何分为四组,如何正确使用工作寄存器?2、位寻址区(20H~2FH)位寻址区有16个单元,每个单元8位,共128位。位地址为00H-7FH。可用位寻址方式访问其中各位。这些可寻址位,通过执行指令可直接对某一位操作。例:MOVA,20H;将20H字节内容送累加器A;MOVC,20H;将20H位信息送CY中。位寻址是89S51的一个重要特点。返回片内RAM(20H-2FH)中的位地址表7F7E7D7C7B7A797877767574737271706F6E6D6C6B6A696867666564636261605F5E5D5C5B5A595857565554535251504F4E4D4C4B4A494847464544434241403F3E3D3C3B3A393837262524232221202F2E2D2C2B2A292827262524232221201F1E1D1C1B1A191817161514131211100F0E0D0C0B0A090807060504030201002FH20H字节地址位地址3、用户RAM区(30H~7FH)用于堆栈和数据缓冲堆栈设置在内部数据RAM,理论深度最大为128B,但实际小很多。堆栈指针是8位SP寄存器,复位后SP=07H,建议SP=30H以上,(如:5FH)。SP总是指向栈顶,堆栈是向上生成的,即入栈时SP加1,出栈时SP减1。

例:堆栈操作过程:进栈:PUSHACC(设SP=07H)

1,SP+1送SP,此时SP=08H;

2,ACC送RAM的08H单元;出栈:POPACC

(设SP=08H);

1,将RAM中08H单元内容送A;

2,SP-1送SP,此时SP=07H。堆栈操作示意图07HSPRAMx累加器A08H07H思考:复位后89S51堆栈最大容量是多少?如何合理分配RAM区资源?返回(三)高128字节RAM(80H~FFH)有21个特殊功能功能寄存器。见表地址分布在80H~FFH的RAM空间。只能用直接寻址方式。有11个具有位寻址能力。11个SFR的字节地址正好能被8整除。特殊功能寄存器的地址。见表部分特殊功能寄存器介绍89S51系列单片机的特殊功能寄存器表返回返回特殊功能寄存器地址表返回累加器ACC(E0H),8位:用A作为ACC的助记符。用于存放第一个操作数及运算结果。寄存器B(F0H),8位:在乘法指令中,B用于存放乘数和乘积的高8位。在除法指令中用于存放除数和余数。在其它指令中用作一般的寄存器或RAM单元。

与运算器相关的寄存器(3个)部分特殊功能寄存器介绍部分特殊功能寄存器介绍PSW程序状态寄存器(D0H),8位:PSW包含了程序执行后的状态信息,供程序查询或判断用。格式:PSW各位的含义:(1)CY位(PSW.7):进(借)位标志位。 执行加法(减法)运算指令时,如运算结果最高位(D7)向前有进位(借位),CY=1;否则,CY=0。在位操作指令中,CY位是布尔累加器,用C表示。(2)AC位(PSW.6):半进位标志位。

执行加法(减法)运算指令时,如运算结果的低半字节(D3)向高半字节有进位(借位),AC=1;否则,AC=0。部分特殊功能寄存器介绍(3)FO位(PSW.5):用户标志。由用户自己定义、置位、复位,以作为软件标志。(4)RS0、RS1位(PSW.3和PSW.4):工作寄存器组选择控制位。PSW各位的含义RS1 RS0 寄存器组 片内RAM地址0 0 第0组 00H~07H 0 1 第1组 08H~0FH 1 0 第2组 10H~17H 1 1 第3组 18H~1FH 上电复位时,(RS0)=(RS1)=0(5)OV位(PSW.2):溢出标志位。如有溢出,即运算结果超出-128~+127的范围时,OV=1;无溢出时,OV=0。PSW各位的含义(6)P位(PSW.0):奇偶检验位。每条指令执行后,A中“1”的个数为奇数,则P=1;否则,P=0。(7)PSW.1:为保留位。堆栈指针SP(81H),8位:堆栈:在片内RAM中,开辟的一个按“先进后出”的结构方式处理数据的区域。

SP指示堆栈顶部在内部RAM中的位置,可指向片内RAM00H~7FH的任何单元。系统复位时,SP初始化为07H。可重新设定SP初值,当SP初值↓,堆栈深度↑。指令系统中的栈操作指令是:PUSH,POP。部分特殊功能寄存器介绍指针类寄存器(3个)数据指针DPTR(83H,82H),16位:由DPH(83H),DPL(82H)组成,DPH,DPL可以单独使用。主要用来保持16位地址,对外部数据存储器进行寻址,也可用于访问程序存储器。例: MOVXA,@DPTR MOVCA,@A+DPTR部分特殊功能寄存器介绍注意:PC指针在物理上是独立的,不可寻址。

并行I/O口P0、P1、P2、P3,均为8位;分别为四个并行端口的锁存器,每一个口锁存器还有位地址,所以每一条I/O线可独立输入或输出。输出时,可以锁存;输入时,可以缓冲。没有专用I/O指令,而是与普通的RAM单元操作一样。例:

输出指令MOV80H,A;将A中的数据送到P0口输出 输入指令MOVA,90H;将P1口的数据输入到A中部分特殊功能寄存器介绍与口相关的寄存器(7个)

串行口数据缓冲器SBUF;实际上是两个独立的寄存器,一个是发送缓冲器,另一个是接收缓冲器。

串行口控制寄存器SCON;

串行通信波特率倍增寄存器PCON,(又称为电源控制寄存器)。与中断相关的寄存器(2个)

中断允许控制寄存器IE;中断优先级控制寄存器IP。与定时器/计数器相关的寄存器(6个)

T0的两个8位计数初值寄存器TH0、TL0T1的两个8位计数初值寄存器TH1、TL1

工作方式寄存器TMOD;控制寄存器TCON。部分特殊功能寄存器介绍注意:

1、128B的SFR区中仅有26B是有定义的,若访问没有定义的单元,将得到一个不确定的随机数。2、访问SFR时只能采用直接寻址方式。2.589S51的时钟电路与时序时钟产生方式内部时钟外部时钟2.5.1时钟电路电容器C1和C2通常取30pF左右,可稳定频率并对振荡频率有微调作用。

89S51内部时钟系统

1个机器周期:12个振荡周期(或6个时钟周期)

指令的执行时间称作指令周期

(单、双、四周期)2.5.2基本时序单位与89S51典型时序计算机的一条指令由若干个字节组成。执行一条指令需要多长时间则以机器周期为单位。一个机器周期是指CPU访问存储器一次所需的时间。例如,取指令、读存储器、写存储器等等。一个机器周期包括12个振荡周期,分为6个S状态:S1~S6。每个状态又分为两拍,称为P1和P2。一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1,···,S6P1,S6P2。若采用6MHz晶体振荡器,则每个机器周期为多少?机器周期如图所示设:晶体振荡器频率fosc=6MHz,则:振荡周期=1/fosc=1/6μs(微秒)因为:一个机器周期包括12个振荡周期,所以:一个机器周期=12*(1/6)μs(微秒)=2μs(微秒)问:如果fosc=12MHz,一个机器周期为多少?答案:1μs(微秒)机器周期指令周期:执行一条指令所需的时间。每条指令的指令周期都由一个或几个机器周期组成。有单周期指令、双周期指令、和四周期指令。机器周期数少则执行速度快。设振荡周期为6MHz,上述指令周期各为多少?指令周期如图所示指令周期设振荡周期为6MHz,则一个机器周期为2μs(微秒)。单周期指令:指令周期为2μs(微秒)双周期指令:指令周期为4μs(微秒)四周期指令:指令周期为8μs(微秒)如果振荡周期为12MHz,则其指令周期分别为1μs、2μs和4μs。89S51单片机各种周期的相互关系返回机器周期返回指令周期单字节指令:如,INCA;机器码格式:00000100B

双字节指令:如,MOVA,#data ;机器码格式:01110100B data每条指令由一个或若干个字节组成。有单字节指令,双字节指令,多字节指令。字节数少则占存储器空间少。思考:指令的字节数与指令执行的时间有关系吗?是否指令的字节数越多,其执行的时间就越长?答案:指令的运算速度只与它所包含的机器周期数有关。机器周期数越少,执行的速度就越快。如单字节的乘除指令需执行4个机器周期。

CPU取指、执指时序每条指令的执行都包括取指和执指两个阶段。在取指阶段,CPU从内部或外部ROM中取出指令操作码及操作数,然后再执行这条指令。单字节和双字节的指令都可能是单机器周期或双周期,而三字节指令都是双周期的,只有乘、除指令占四周期。CPU取指、执指时序如图所示。89S51的典型时序指令微操作在时间上的次序,即时序。

单字节指令双字节指令1、单周期指令时序

2个机器周期中ALE有效4次,后3次读操作无效。

2、双周期指令时序

在第二机器周期无读操作码的操作,而是进行外部数据存储器的寻址和数据选通

。ALE信号会出现非周期现象。

访问外部RAM的双周期指令时序

89C51单片机的取指/执行时序

2.689S51单片机的工作方式2.6.1单片机复位工作方式复位可使单片机或系统部件处于确定的初始状态。

上电复位电路按键与上电复位

复位操作主要功能程序地址指针PC初始化为0000H,使单片机从0000H单元开始执行程序当由于程序运行出错或操作错误使系统死锁状态时,为摆脱困境,也需要按复位键重新启动。各特殊寄存器的复位值2.6.2低功耗工作方式

单片机低功耗方式的设置是通过电源控制寄存器(PCON)的相关位来实现的。

SMOD---GF1GF0PDIDLSMOD:波特率倍增位。GF1、GF0:通用标志位。PD:掉电方式设置位,PD=1,进入掉电工作方式。IDL:待机方式设置位,IDL=1,进入待机工作方式。

1、待机工作方式

待机工作方式特征:

CPU停止工作,与CPU相关的特殊功能寄存器和全部通用寄存器被“冻结”在原状态,振荡器仍在工作,中断功能继续存在。

进入待机工作方式设置:

MOVPCON,#01H

退出待机工作方式:

通过引入外中断信号的方法,使待机工作方式退出。

2、掉电工作方式

掉电工作方式的特征:

只有内部RAM单元的内容被保存,其它一切工作都停止。

掉电工作方式设置:

MOVPCON,#02H

掉电工作方式退出:

电源恢复正常,硬件复位信号维持在10ms以上。

2.6.3ISP编程工作方式

并行编程方式ISP编程方式并行编程方式需要借助编程器,在EA/VPP(31引脚)上使用高电压(+12V)和协调的控制信号进行编程。一、并行编程方式

缺点:一是增加了硬件成本;二是在实际应用开发过程中,需要从目标系统电路板上拔下芯片,编程后再插上。二、ISP编程方式(在线编程方式)将RST接至Vcc,程序代码存储阵列可通过串行ISP接口进行编程,89S51的串行接口包含时钟输入SCK线(P1.7脚)、MOSI数据输入线(P1.5脚)和MISO数据输出线(P1.6脚)。2.7

89S51的并行口结构与操作

I/O端口概述一、P0口二、P1口三、P2口四、P3口五、端口的负载能力和接口要求

I/O端口概述1.89S51单片机没有像8086CPU一样明确表示出地址线和数据线,它的数据线和地址线是由并行端口引出的,以使有限的引脚能完成更多的功能。2.四个8位并行I/O端口:P0、P1、P2和P3。每个端口都是8位准双向口,共占32根引脚。3.每一条I/O线都能独立地用作输入或输出。4.每个端口都包括一个锁存器(即特殊功能寄存器P0~P3),一个输出驱动器和输入缓冲器,作输出时数据可以锁存,作输入时数据可以缓冲。这种结构在数据输出时可一直锁存保存不变,但对输入信号是不锁存的,所以外设欲输入的数据必须保持到取数指令执行为止。一、P0口P0口功能:P0口作为一般I/O口使用P0口作为低8位地址/数据总线使用P0口某位的结构图当C=0时,开关MUX被控与锁存器的Q接通,P0口为通用I/O口;当C=1时,开关拨向反相器3的输出端,P0口分时作为地址/数据总线使用。P0口作一般(通用)I/O口:

P0口作输出口:输出级是开漏电路,输出时需外接上拉电阻才能获得高电平输出。

P0口作输入口:当执行一条由端口输入的指令时,“读引脚”脉冲把三态缓冲器2打开,端口上的数据经过缓冲器2读入到内部总线。输入结构中有两个缓冲器是为适应“读——修改——写”这样的指令。如:ANLP0,A指令,不是读引脚上的数据,而是读D锁存器中的数据。是准双向口,输入数据时应先向端口写“1”,使两个FET均截止,然后作高阻抗输入。(复位时已是1)小结:P0口作低8位地址/数据总线口:作总线时,上下两个FET处于反相,构成推拉式的输出电路,不需外接上拉电阻,且大大提高了负载能力。当访问外部存储器时,CPU自动向端口写入FFH,所以对用户而言P0口作地址/数据总线时是一个真正的双向口。

*当P0口已作地址/数据总线口时,就不能作一般I/O口。二、P1口P1口功能:用作一般I/O口在52子系列中,P1.0和P1.1是多功能的。P1.0:作定时器/计数器2的外部输入端。P1.1:作定时器/计数器2的外部控制输入端。P1口某位的结构小结:输出驱动部分与P0口不同,内部有上拉负载电阻(两个场效应管FET并在一起)与电源相连。

P1口是一个标准的准双向口。 在端口用作输入时,必须先向对应的锁存器写入1,使FET截止。 当P1口输出高电平时,能向外提供拉电流负载,所以不必再接上拉电阻。三、P2口P2口功能:用作一般I/O口用作高8位地址总线P2口某位的结构图小结:

P2口与P0口结构类似,由控制信号控制模拟转换开关,若接通上边,则地址信号加到输出线路,若接通下边,则锁存器Q端与输出线路接通,P2口作一般I/O口。作一般(通用)I/O口:准双向口,内部接有上拉电阻(同P1,P3口)。作高8位地址总线口:用于输出高8位地址。2、当系统扩展片外RAM﹥256B,CPU执行MOVX指令或EA=0时执行MOVC指令时,开关倒向地址线端,这时,P2口输出高8位地址。因为访问片外EPROM和RAM的操作往往接连不断,所以,P2口要不断送出高8位地址,此时P2口无法再用作通用I/O口。1、当CPU执行MOV指令或EA=1执行MOVC指令时,内部硬件自动控制开关MUX倒向锁存器的Q端,这时,P2口为一般I/O口。P2口使用说明:3、系统没有外扩ROM,而只扩展了256B片外RAM,使用“MOVXA,@Ri”类指令访问时,只需低8位地址线就可以实现。P2口不受该指令影响,仍可作通用I/O口。四、P3口P3口功能:作为通用I/O口使用用作第二功能使用P3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论