版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章89C51单片机单片机的硬件结构2.189C51单片机的片内结构片内结构如图2-1所示:图2-189C51单片机的片内结构由如下功能部件组成:对图2-1中的片内各部件做简单介绍。
1.CPU(微处理器)2.数据存储器(RAM)片内为128个字节(52子系列的为256个字节)3.程序存储器(ROM/EPROM)
8031:无此部件;8051:4K字节ROM;8751:4K字节EPROM;
89C51/89C52/89C55:4K/8K/20K字节闪存。4.4个并行可编程的8位I/O口P1口、P2口、P3口、P0口5.串行口1个全双工的异步串行口,具有四种工作方式。6.定时器/计数器7.中断系统8.特殊功能寄存器(SFR)共有21个,是一个具有特殊功能的RAM区。CPU对各种功能部件的控制是采用特殊功能寄存器(SFR,SpecialFunctionRegister)的集中控制方式。MCS-51系列单片机配置一览表系列片内存储器(字节)定时器计数器并行I/O串行I/O中断源片内ROM片内RAM无有ROM有EPROMIntelMCS-51子系列803180C31805180C51(4K字节)875187C51(4K字节)128字节2x164x8位15IntelMCS-52子系列803280C32805280C52(8K字节)875287C52(8K字节)256字节3x164x8位16ATEML89C系列(常用型)1051(1K)/2051(2K)/4051(4K)(20条引脚DIP封装)1282151589C51(4K)/89C52(8K)(40条引脚DIP封装)128/2562/33215/6图2-289C51的引脚2.289C51的引脚
40只引脚双列直插封装(DIP)。从一片集成电路的角度去认识单片机80C51:40个引脚双排直插DIP封装,大致可分为3类:电源及时钟、控制和I/O引脚。80C51:40个引脚双排直插DIP封装,大致可分为3类:电源及时钟、控制和I/O引脚。40只引脚按功能分为3类:(1)电源及时钟引脚:Vcc、Vss;XTAL1、XTAL2。(2)控制引脚:PSEN*、EA*、ALE、RESET(即RST)。(3)I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的外部引脚1.电源引脚
(1)Vcc(40脚):+5V电源;(2)Vss(20脚):接地。2.时钟引脚(1)XTAL1(19脚):接外部晶体,如果采用外接振荡器时,振荡器的输出应接到此引脚上。(2)XTAL2(18脚):接外部晶体的另一端或采用外接振荡器时悬空。2.2.1电源及时钟引脚15~45pfx21~12MHz(MCS-51)0~24MHz(Atmel-89C)XTAL1XTAL2也可以由XTAL1端接入外部时钟,此时应将XTAL2接地:XTAL2XTAL1外部时钟通常外接一个晶振两个电容2.2.2控制引脚提供控制信号,有的引脚还具有复用功能。(1)RST/VPD(9脚):复位与备用电源。
(2)EA*/VPP(EnableAddress/VoltagePulseofProgRaming,31脚)EA*:为内外程序存储器选择控制端。
EA*=1,访问片内程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051、8751)时,即超出片内程序存储器的4K字节地址范围时,将自动转向执行外部程序存储器内的程序。EA*=0,单片机则只访问外部程序存储器。不管芯片内有否内ROM。对80C31芯片,片内无ROM,因此EA必须接地。VPP:本引脚的第二功能。用于施加编程电压(例如+21V或+12V)。对89C51,加在VPP脚的编程电压为+12V或+5V。(3)ALE/PROG*(30脚):地址锁存允许/片内EPROM编程脉冲第一功能:ALE为地址锁存允许,用来锁存P0口送出的低8位地址,可驱动8个LS型TTL负载。第二功能:PROG*为编程脉冲输入端,片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
(4)PSEN*(29脚):外部程序存储器的读选通信号(外ROM读选通信号)。或称:寻址外部程序存储器时选通外部EPROM的读控制端(OE)低有效,可驱动8个LS型TTL负载。单片机锁存器74LS373P0.0-P0.7ALEPSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAOECEEPROMEPROM89C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。
2.2.3I/O口引脚(1)P0口:当89C51扩展外部存储器及I/O接口芯片时,P0口作为地址总线(低8位)及数据总线的分时复用端口。为双向I/O口。也可作为通用的I/O口使用,但需加上拉电阻,这时为准双向口。当作为普通的I/O输入时,应先向端口的输出锁存器写入1。P0口可驱动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负载。P3口还可提供第二功能,定义如表2-1所列,应熟记。注意:准双向口与双向三态口的差别。(1)当3个准双向I/O口作输入口使用时,要向该口先写“1”。(2)准双向I/O口无高阻“浮空”状态。2.389C51的CPU
由运算器和控制器所构成2.3.1运算器
1.算术逻辑运算单元ALU进行算术、逻辑运算,还具有位操作功能
2.累加器A
使用最频繁的寄存器,可写为Acc。
累加器A的作用:(1)是ALU的输入之一,又是运算结果的存放单元。(2)数据传送大多都通过累加器A。MCS-51增加了一部分可以不经过累加器的传送指令,即可加快数据的传送速度,又减少A的“瓶颈堵塞”现象。A的进位标志Cy同时又是位处理机的位累加器。3.程序状态字寄存器PSW
PSW也称为标志寄存器,存放各有关标志。其结构和定义如图2-3:(1)Cy(PSW.7)进位标志位,用于表示Acc.7有否向更高位进位。(2)Ac(PSW.6)辅助进位标志位,用于BCD码的十进制调整运算。用于表示Acc.3有否向Acc.4进位(3)F0(PSW.5)用户使用的状态标志位。
图2-3程序状态字寄存器PSW(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。如表2-2。RS1、RS0与4组工作寄存器区的对应关系RS1RS0所选的4组寄存器 000区(内部RAM地址00H~07H)011区(内部RAM地址08H~0FH)102区(内部RAM地址10H~17H)113区(内部RAM地址18H~1FH)(5)OV(PSW.2)溢出标志位
指示运算是否溢出。注意各种算术运算指令对该位的影响(6)PSW.1位:保留位,未用
(7)P(PSW.0)奇偶标志位
P=1,A中“1”的个数为奇数
P=0,A中“1”的个数为偶数2.3.2控制器
1.程序计数器PC(ProgramCounter)存放下一条要执行的指令在程序存储器中的地址。
基本工作方式有以下几种:
(1)程序计数器自动加1
(2)执行有条件转移或无条件转移指令时,PC将被置入新的数值,从而使程序的流向发生变化。(3)执行子程序调用或中断调用,完成下列操作: ①PC的现行值保护②将子程序入口地址或中断向量的地址送入PC。2.指令寄存器IR、指令译码器及控制逻辑电路2.489C51存储器的结构
89C51的存储器配置方式与其他常用的微机系统不同,属哈佛结构(注意:什么是哈佛结构?),它把程序存储器和数据存储器分开,各有自己的寻址系统、控制信号和功能。程序存储器用于存放程序和表格常数;数据存储器用于存放程序运行数据和结果。
89C51的存储器组织结构可以分为三个不同的存储空间,分别是:⑴64KB程序存储器(ROM),包括片内ROM和片外ROM;⑶256B内部数据存储器(内RAM)(包括特殊功能寄存器)
。⑵64KB外部数据存储器(外RAM);89C51存储空间配置图
存储器空间可划分为5类:
1.程序存储器空间 片内程序存储器为4KB的Flash存储器
2.片内数据存储器空间:128B
3.特殊功能寄存器SFR-SpecialFunctionRegister
4.位地址空间:
211个可寻址位。
5.外部数据寄存器空间:片外可扩展64K字节RAM。地址范围:0000H~FFFFH,共64KB。其中:
低段4KB:0000H~0FFFH
89C51和87C51在片内,80C31在片外。
高段60KB:1000H~FFFFH。在片外。
读写ROM用MOVC指令,控制信号是PSEN和EA。
读ROM是以程序计数器PC作为16位地址指针,依次读相应地址ROM中的指令和数据,每读一个字节,PC+1→PC,这是CPU自动形成的。
但是有些指令有修改PC的功能,例如转移类指令和MOVC指令,CPU将按修改后PC的16位地址读ROM。2.4.1程序存储器存放应用程序和表格之类的固定常数。分为片内和片外两部分,由EA*引脚上所接的电平确定。程序存储器中的0000H地址是系统程序的启动地址读外ROM的过程:
CPU从PC(程序计数器)中取出当前ROM的16位地址,分别由P0口(低8位)和P2口(高8位)同时输出,ALE信号有效时由地址锁存器锁存低8位地址信号,地址锁存器输出的低8位地址信号和P2口输出的高8位地址信号同时加到外ROM16位地址输入端,当PSEN信号有效时,外ROM将相应地址存储单元中的数据送至数据总线(P0口),CPU读入后存入指定单元。
需要指出的是:64KB中有一小段范围是89C51系统专用单元,0003H~0023H是5个中断源中断服务程序入口地址,用户不能安排其他内容。89C51复位后,PC=0000H,CPU从地址为0000H的ROM单元中读取指令和数据。从0000H到0003H只有3B,根本不可能安排一个完整的系统程序,而89C51又是依次读ROM字节的。因此,这3B只能用来安排一条跳转指令,跳转到其他合适的地址范围去执行真正的主程序。
5个专用单元具有特殊用途。为5个中断源的中断入口地址,表2-35种中断源的中断入口地址
外中断00003H
定时器T0000BH
外中断10013H
定时器T1001BH
串行口0023H
从广义上讲,89C51内RAM(128B)和特殊功能寄存器(128B)均属于片内RAM空间,读写指令均用MOV指令。但为加以区别,内RAM通常指00H~7FH的低128B空间。2.4.2内部数据存储器
128个,字节地址为00H~7FH。89C51内RAM又可分成三个物理空间:工作寄存器区、位寻址区和数据缓冲区。
地址区域功能名称00H~1FH00H~07H工作寄存器0区08H~0FH工作寄存器1区10H~17H工作寄存器2区18H~1FH工作寄存器3区20H~2FH
位寻址区30H~7FH数据缓冲区00H~1FH:32个单元,是4组通用工作寄存器区20H~2FH:16个单元,可进行128位的位寻址30H~7FH:用户RAM区,只能字节寻址,用作数据缓冲区以及堆栈区。作用:⒈工作寄存器区工作寄存器区分为4个区:0区、1区、2区、3区。每区有8个寄存器:R0~R7,寄存器名称相同。但是,当前工作的寄存器区只能有一个,由PSW中的D4、D3位决定。有专用于工作寄存器操作的指令,读写速度比一般内RAM要快,指令字节比一般直接寻址指令要短,还具有间址功能,能给编程和应用带来方便。⒉
位寻址区
⑴地址:
从20H~2FH共16字节(Byte,缩写为英文大写字母B)。每B有8位(bit,缩写为小写b),共128位,每一位均有一个位地址,可位寻址、位操作。即按位地址对该位进行置1、清0、求反或判转。
⑵用途:
存放各种标志位信息和位数据。
⑶注意事项:
位地址与字节地址编址相同,容易混淆。
区分方法:位操作指令中的地址是位地址;
字节操作指令中的地址是字节地址。
⒊
数据缓冲区内RAM中30H~7FH为数据缓冲区,用于存放各种数据和中间结果,起到数据缓冲的作用。2.4.3特殊功能寄存器(SFR)CPU对片内各种功能部件的控制采用特殊功能寄存器集中控制方式,共21个。有的SFR可进行位寻址。表2-4是SFR的名称及其分布。其字节地址的末位是0H或8H可位寻址。下面介绍SFR块中的某些寄存器。表2-4SFR的名称及其分布共21个特殊功能寄存器(SFR)地址映象表(一)
特殊功能寄存器地址映象表(二)
特殊功能寄存器地址映象表(三)
注:带括号的字节地址表示每位有位地址可位操作。 1.堆栈指针SP
指示堆栈顶部在内部RAM块中的位置
复位后,SP中的内容为07H。 (1)保护断点 (2)现场保护 堆栈向上生长2.数据指针DPTR
16位,由两个8位寄存器DPH、DPL组成。主要用于存放一个16位地址,作为访问外部存储器(外RAM和ROM)的地址指针。高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。3.寄存器B为执行乘法和除法操作设置的。在不执行乘、除的情况下,可当作一个普通寄存器来使用。⑶执行调用子程序或发生中断时,CPU会自动将当前PC值压入堆栈,将子程序入口地址或中断入口地址装入PC;子程序返回或中断返回时,恢复原有被压入堆栈的PC值,继续执行原顺序程序指令。4.程序计数器PC※PC不属于特殊功能寄存器,不可访问,在物理结构上是独立的。※PC是一个16位的地址寄存器,用于存放将要从ROM中读出的下一字节指令码的地址,因此也称为地址指针。※PC的基本工作方式有:⑴自动加1。CPU从ROM中每读一个字节,自动执行PC+1→PC;⑵执行转移指令时,PC会根据该指令要求修改下一次读ROM新的地址;2.4.4位地址空间211个(128个+83个)寻址位。位地址范围为:00H~FFH。内部RAM的可寻址位128个(字节地址20H~2FH)见表2-5(P24)。特殊功能寄存器SFR为83个可寻址位,见表2-6。表2-5内部RAM的可寻址位及位地址表2-6SFR中的位地址分布2.4.5外部数据存储器最多可外扩64K字节的RAM或I/O。
地址范围:0000H~FFFFH 共64KB。
读写外RAM用MOVX指令,控制信号是P3口中的RD和WR。一般情况下,只有在内RAM不能满足应用要求时,才外接RAM。
外RAM16位地址分别由P0口(低8位)和P2口(高8位)同时输出,ALE信号有效时由地址锁存器锁存低8位地址信号,地址锁存器输出的低8位地址信号和P2口输出的高8位地址信号同时加到外RAM16位地址输入端,当RD信号有效时,外RAM将相应地址存储单元中的数据送至数据总线(P0口),CPU读入后存入指定单元。读外RAM的过程:
写外RAM的过程:
写外RAM的过程与读外RAM的过程相同。只是控制信号不同,信号换成WR信号。当WR信号有效时,外RAM将数据总线(P0口分时传送)上的数据写入相应地址存储单元中。使用各类存储器,注意几点:(1)地址的重叠性
程序存储器(ROM)与数据存储器(RAM)全部64K字节地址空间重叠)。(2)程序存储器(ROM)与数据存储器(RAM)在使用上是严格区分的。(3)位地址空间共有两个区域。(4)片外数据存储区中,RAM与I/O端口统一编址。
所有外围I/O端口的地址均占用RAM单元地址,使用与访问外部数据存储器相同的传送指令。图2-5为各类存储器在存储器空间的位置的总结。图2-52.5并行I/O端口
※
有4个8位并行I/O口,共32条端线:
P0、P1、P2和P3口。每一个I/O口都能用作输入或输出。
※用作输入时,均须先写入“1”;用作输出时,P0口应外接上拉电阻。
※P0口的负载能力为8个LSTTL门电路;P1~P3口的负载能力为4个LSTTL门电路。
※在并行扩展外存储器或I/O口情况下,
P0口用于低8位地址总线和数据总线(分时传送)
P2口用于高8位地址总线,
P3口常用于第二功能,用户能使用的I/O口只有P1口和未用作第二功能的部分P3口端线。2.5.1P0端口图2-61.位电路结构P0口某一位的电路包括:(1)一个数据输出锁存器,用于数据位的锁存(2)两个三态的数据输入缓冲器。(3)一个多路转接开关MUX,使P0口可作通用I/O口,或地址/数据线口。(4)数据输出的驱动和控制电路,由两只场效应管(FET)组成,上面的场效应管构成上拉电路。2.工作过程分析(1)P0口作为地址或数据总线使用CPU发出控制信号为高电平,打开上面的与门,使MUX打向上边,使内部地址/数据线与下面的场效应管反相接通。此时由于上下两个FET处于反相,形成推拉式电路结构,大大提高负载能力。(2)P0口作通用的I/O口使用CPU发来的“控制”信号为低电平,上拉场效应管截止,MUX打向下边,与D锁存器的Q*端接通。a.P0作输出口使用来自CPU的“写入”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并向端口引脚P0.x输出。注意:由于输出电路是漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出(这时就不为双向口)。b.P0作输入口使用区分“读引脚”和“读锁存器”。“读引脚”信号把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线;“读锁存器”信号打开上面的缓冲器把锁存器Q端的状态读入内部总线。3.P0口的特点P0口具有如下特点:P0口为双功能口——地址/数据复用口和通用I/O口。(1)当P0口用作地址/数据复用口时,为一个真正的双向口,用作外扩存储器,输出低8位地址和输出/输入8位数据。(2)当P0口用作通用I/O口时,由于需要在片外接上拉电阻,端口不存在高阻抗(悬浮)状态,因此为一个准双向口。一般情况下,如果P0口已作为地址/数据复用口,就不能再作为通用I/O口使用。补充:单片机的引脚(P0口)P0.0—P0.7:双向I/O(内置场效应管上拉)寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制引脚P0.X34VccV1V221DQCK/Q读引脚=1读锁存器写锁存器内部总线地址/数据控制引脚P0.X3400100截止截止=0Vcc单片机的引脚(P0口)P0用作通用I/O时,控制=0:(1)此脚作输入口(事先必须对它写“1”)V2V121DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制引脚P0.X3400100截止截止=0Vcc单片机的引脚(P0口)P0用作通用I/O时,控制=0:(2)此脚作输出口时,当P0口用作输出口时,因输出级处于开漏状态,必须外接上拉电阻。当“写锁存器”信号加在锁存器的时钟端CLK上,此时D触发器将“内部总线”上的信号反相后输出到Q端,若D端信号为0,Q=1,v2导通,P0.x引脚输出“0”;若D端信号为1,Q=0,v2截止,虽然V1截止,因P0.x引脚已外接上拉电阻,P0.x引脚输出“1”。V2V121DQCK/Q读引脚=0读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X341011=0导通截止=0Vcc单片机的引脚(P0口)P0口用作地址/数据复用口,控制=1(1)作地址/数据输出:输出地址/数据=0时V1V221DQCK/Q读引脚=0读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X341100=1截止导通=1Vcc单片机的引脚(P0口)P0口用作地址/数据复用口,控制=1(2)作地址/数据输出:输出地址/数据=1时V1V221DQCK/Q读引脚=1读锁存器写锁存器内部总线地址/数据控制=0引脚P0.X34Vcc单片机的引脚(P0口)P0口用作地址/数据复用口(3)作地址/数据输入:与P0用作通用I/O时输入时情况相同,CPU使V1、V2均截止,从引脚上输入的外部数据经缓冲器U2进入内部数据总线。V1V22.5.2P1端口
字节地址90H,位地址90H~97H。P1口某一位的位电路结构如图2-7所示。图2-71.位电路结构P1口位电路结构由三部分组成:(1)一个数据输出锁存器,用于输出数据位的锁存。(2)两个三态的数据输入缓冲器BUF1和BUF2,分别用于锁存器数据和引脚数据的输入缓冲。(3)数据输出驱动电路,由一个场效应管(FET)和一个片内上拉电阻组成。2.工作过程分析P1口只能作为通用的I/O口使用。(1)P1口作为输出口时,若CPU输出1,Q=1,Q*=0,场效应管截止,P1口引脚的输出为1;若CPU输出0,Q=0,Q*=1,场效应管导通,P1口引脚的输出为0。(2)P1口作为输入口时,分为“读锁存器”和“读引脚”两种方式。“读锁存器”时,锁存器的输出端Q的状态经输入缓冲器BUF1进入内部总线;“读引脚”时,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器BUF2进入内部总线。3.P1口的特点P1口由于有内部上拉电阻,没有高阻抗输入状态,称为准双向口。作为输出口时,不需要在片外接上拉电阻。P1口“读引脚”输入时,必须先向锁存器写1。
2.5.3P2口字节地址为A0H,位地址A0H~A7H。P2口是一个双功能口,P2口某一位的位电路结构如图2-8所示。图2-81.位电路结构P2口某一位的电路包括:(1)一个数据输出锁存器,用于输出数据位的锁存。(2)两个三态数据输入缓冲器BUF1和BUF2,分别用于锁存器数据和引脚数据的输入缓冲。(3)一个多路转接开关MUX,它的一个输入是锁存器的Q端,另一个输入是内部地址的高8位。(4)输出驱动电路,由场效应管(FET)和内部上拉电阻组成。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年中国北斗应急预警通信行业资本规划与股权融资战略制定与实施研究报告
- 2025-2030年中国电气化铁路接触网行业资本规划与股权融资战略制定与实施研究报告
- 2025-2030年中国消费性服务行业营销创新战略制定与实施研究报告
- 2025-2030年中国工艺品行业并购重组扩张战略制定与实施研究报告
- 自动售卖机创业计划书
- 建设生态文明-推进科学发展
- 新员工入职培训课件12
- 2024年幼儿园成长手册寄语
- 狗狗护主知识培训课件
- 2025年中国头孢拉定行业发展监测及投资战略研究报告
- 健康体检授权委托书
- 肝脏肿瘤护理查房
- 人工智能 法规
- 琴房租赁合同
- 中国石油青海油田公司员工压力状况调查及员工帮助计划(EAP)实探的开题报告
- 闸门与启闭机相关知识培训讲解
- 中医护理技术之耳针法课件
- 人工开挖土方施工方案
- 佛山市顺德区2023-2024学年四上数学期末质量检测模拟试题含答案
- 环境毒理学(全套课件499P)
- 耳部铜砭刮痧技术评分标准
评论
0/150
提交评论