资源预览内容
第1页 / 共139页
第2页 / 共139页
第3页 / 共139页
第4页 / 共139页
第5页 / 共139页
第6页 / 共139页
第7页 / 共139页
第8页 / 共139页
第9页 / 共139页
第10页 / 共139页
亲,该文档总共139页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二章 89C51单片机硬件结构和原理第2章89C51单片机硬件结构和原理42.189C51单片机芯片内部结构及特点单片机芯片内部结构及特点42.289C51单片机引脚及其功能单片机引脚及其功能42.389C51单片机存储器配置单片机存储器配置42.4时钟电路及时钟电路及89C51CPU时序时序42.5复位操作复位操作42.6 89C51单片机的低功耗工作方式单片机的低功耗工作方式42.7输出输出/输入端口结构输入端口结构2.12.1 89C51单片机芯片内部结构及特点单片机芯片内部结构及特点:2.1.1 89C512.1.1 89C51单片机的基本组成单片机的基本组成:2.1.2 89C512.1.2 89C51单片机芯片内部结构单片机芯片内部结构2.1.1 2.1.1 89C5189C51单片机的基本组成单片机的基本组成外中断外中断内中断内中断控制控制并行口并行口串行通信串行通信外部时钟源外部时钟源外部事件计数外部事件计数2.1.1 2.1.1 89C5189C51单片机的基本组成单片机的基本组成n另外89C51是用静态逻辑来设计的,其工作频率可下降到0 Hz,并提供两种可用软件来选择的省电方式 1. 在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。 此时的电流可降到大约为正常工作方式的15%。 2.在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一次硬件复位为止。 这种方式下的电流可降到15 A以下,最小可降到0.6A。2.1.1 2.1.1 89C5189C51单片机的基本组成单片机的基本组成n89C51单片机还有一种低电压的型号,即89LV51,除了电压范围有区别之外,其余特性与89C51完全一致。n89C51/LV51是一种低功耗/低电压、高性能的8位单片机。它采用了CMOS工艺和高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MCS51兼容;n片内的Flash ROM允许在系统内改编程序或用常规的非易失性存储器编程器来编程。因此89C51/LV51是一种功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。2.1.2 89C51单片机芯片内部结构单片机芯片内部结构一、结构图一、结构图二、结构组成二、结构组成一、结构图一、结构图n由由 中央处理单元(中央处理单元(CPU)、)、存储器存储器(ROM及及RAM)和和I/O接口接口组成。组成。n89C51单片机内部结构如单片机内部结构如 图图2-2所示所示。P0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1 XTAL2PSENALEEARESET89C5189C5189C5189C51单片机单片机单片机单片机内部结构图内部结构图内部结构图内部结构图返回返回运算器运算器控制器控制器存储器存储器I/O接口接口二、结构组成二、结构组成(一)、中央处理单元(一)、中央处理单元(CPU)(二)、存储器(二)、存储器(三)、(三)、I/O接口接口返回返回1、中央处理单元、中央处理单元(89C51CPU)n1)运算器)运算器返回返回2)控制器)控制器1)运算器)运算器 (1)8位的位的ALU:可对可对4位、位、8位、位、16位数据进行操作。位数据进行操作。(2)8位累加器位累加器ACC(A):它经常作为一个运算数经暂它经常作为一个运算数经暂存器存器2进入进入ALU的输入端,与另一个来自暂存器的输入端,与另一个来自暂存器1的运算的运算数进行运算,运算结果又送回数进行运算,运算结果又送回ACC。(3)8位程序状态寄存器位程序状态寄存器PSW:指示指令执行后的状态指示指令执行后的状态信息供程序查询和判别用。信息供程序查询和判别用。(4)8位寄存器位寄存器B:在乘除运算时,用来存放一个操作数在乘除运算时,用来存放一个操作数也用来存放运算后的一部分结果;如不能做乘除运算时,也用来存放运算后的一部分结果;如不能做乘除运算时,作为通用寄存器作为通用寄存器(5)布尔处理器:布尔处理器:专门用于处理位操作的,以专门用于处理位操作的,以PSW中的中的C为其累加器。为其累加器。(6)2个个8位暂存器:位暂存器:ALU的两个入口处的两个入口处2)控制器)控制器(1)程序计数器)程序计数器PC(16位)位)(2)指令寄存器)指令寄存器IR及指令译码器及指令译码器ID(3)振荡器和定时电路)振荡器和定时电路返回返回(1)程序计数器)程序计数器PC(16位)位)n由两个由两个8 8位计数器位计数器PCHPCH、PCLPCL组成。组成。nPCPC是程序的字节地址计数器,是程序的字节地址计数器,PCPC内容内容为将要执行的指令地址。为将要执行的指令地址。n改变改变PCPC内容,改变执行的流向内容,改变执行的流向。nPCPC可对可对64KB64KB的的ROMROM直接寻址,也可对直接寻址,也可对89C5189C51片内片内RAMRAM寻址寻址。返回返回(2)指令寄存器)指令寄存器IR及指令译码器及指令译码器IDn由由PCPC中的内容指定中的内容指定ROMROM地址地址n取出来的指令经取出来的指令经IRIR送至送至IDIDn由由IDID对指令译码产生一定序列的控制对指令译码产生一定序列的控制信号,以执行指令所规定的操作。信号,以执行指令所规定的操作。返回返回(3)振荡器和定时电路)振荡器和定时电路n89C5189C51单片机片内有振荡电路,只需外接石英单片机片内有振荡电路,只需外接石英晶体和频率微调电容(晶体和频率微调电容(2 2个个30pF30pF左右),其频左右),其频率范围为率范围为1.2MHz1.2MHz12MHz12MHz。该信号作为该信号作为89C5189C51工工作的基本节拍即时间的最小单位。作的基本节拍即时间的最小单位。返回返回2、存储器、存储器1)程序存储器()程序存储器(ROM)2)数据存储器()数据存储器(RAM)返回返回1)程序存储器()程序存储器(ROM)289C5189C51片内为片内为4KB Flash ROM4KB Flash ROM。2地址从地址从0000H0000H开始。开始。2用于存放程序和表格常数。用于存放程序和表格常数。返回返回2)数据存储器()数据存储器(RAM)289C51RAM89C51RAM均为均为128B128B,地址为地址为00H00H7FH7FH。2用于存放运算的中间结果、数据暂存以及数据缓用于存放运算的中间结果、数据暂存以及数据缓冲等。冲等。2这这128B128B的的RAMRAM中有中有3232个字节单元可指定为工作寄存个字节单元可指定为工作寄存器。器。2片内还有片内还有2121个特殊功能寄存器(个特殊功能寄存器(SFRSFR),),它们同它们同128128字节字节RAMRAM统一编址,地址为统一编址,地址为80H80HFFHFFH。后面详后面详细介绍。细介绍。返回返回3、I/O接口接口289C5189C51有四个有四个8 8位并行位并行I/OI/O接口接口P0P0P3P3。2它们都是双向端口,每个端口各有它们都是双向端口,每个端口各有8 8条条I/OI/O线。线。2P0-P3P0-P3口四个锁存器同口四个锁存器同RAMRAM统一编址,统一编址,可作为可作为SFRSFR来寻址。来寻址。2.2.1 89C51单片机引脚单片机引脚图图2-3是是 89C51/LV51的引脚结构图,有双列的引脚结构图,有双列直插封装直插封装(DIP)方式和方形封装方式。方式和方形封装方式。图图2-3 89C51/LV51的引脚结构的引脚结构 一、电源引脚:一、电源引脚:Vcc和和Vss1 1Vcc(40Vcc(40脚脚) ):电源端,为电源端,为+5V+5V。2 2Vss(20Vss(20脚脚) ):接地端。接地端。二、时钟电路引脚:二、时钟电路引脚:XTAL1和和XTAL2nXTAL2XTAL2(1818脚):脚):片内它是振荡电路反片内它是振荡电路反向放大器的输出端向放大器的输出端nXTAL1XTAL1(1919脚):脚):在片内它是振荡电路在片内它是振荡电路反向放大器的输入端反向放大器的输入端三、控制信号引脚:三、控制信号引脚: RST、ALE、PSEN和和EAnRST/VRST/VPDPD(9 9脚):脚):RSTRST:复位信号输入端,高电平有效。复位信号输入端,高电平有效。当此输入端保持两个机器周期的高电当此输入端保持两个机器周期的高电平时,就可以完成复位操作。平时,就可以完成复位操作。三、控制信号引脚:三、控制信号引脚: RST、ALE、PSEN和和EAnALE/PROGALE/PROG(3030脚):脚):ALEALE:地址锁存允许信号端。当地址锁存允许信号端。当89c5189c51上电上电正常后,正常后,ALEALE引脚不断向外输出正脉冲信号,引脚不断向外输出正脉冲信号,此频率为震荡频率的此频率为震荡频率的1/61/6可以用作对外输出可以用作对外输出的时钟或定时信号。的时钟或定时信号。 CPUCPU访问片外存储器时,该引脚输出信号作访问片外存储器时,该引脚输出信号作为锁存低为锁存低8 8位地址的控制信号。位地址的控制信号。PROG:PROG:对片内带有对片内带有4KB Flash ROM4KB Flash ROM的的89C5189C51单单片机编程写入时,作为编程脉冲输入端。片机编程写入时,作为编程脉冲输入端。三、控制信号引脚:三、控制信号引脚: RST、ALE、PSEN和和EAnPSEN(29脚):脚):程序存储器允许信号输出端。当程序存储器允许信号输出端。当89C5189C51由片由片外程序存储器取指令时,每个机器周期两次外程序存储器取指令时,每个机器周期两次PSENPSEN有效(即输出有效(即输出2 2个脉冲。)但在此期间个脉冲。)但在此期间内每当访问外部数据存储器时,这两次有效内每当访问外部数据存储器时,这两次有效的的PSENPSEN信号将部出现。信号将部出现。在访问片外在访问片外ROMROM时,定时输出负脉冲作为读时,定时输出负脉冲作为读片外片外ROMROM的选通信号,接片外的选通信号,接片外ROMROM 的的OEOE端。端。它的负载能力为它的负载能力为8 8个个LSLS型型TTLTTL负载。负载。三、控制信号引脚:三、控制信号引脚: RST、ALE、PSEN和和EAnEA/EA/V Vpppp(3131脚):脚):EAEA: 外部程序存储器地址允许输入端。外部程序存储器地址允许输入端。当该引脚接高电平时,当该引脚接高电平时,CPUCPU访问片内访问片内ROMROM并并执行片内程序存储器中的指令,但当执行片内程序存储器中的指令,但当PCPC值超值超过过0FFFH0FFFH(片内片内ROMROM为为4KB4KB)时,将自动转向时,将自动转向执行片外执行片外ROMROM中的程序。中的程序。当该引脚接低电平时,当该引脚接低电平时,CPUCPU只访问片外只访问片外ROMROM并执行外部程序存储器中的程序。并执行外部程序存储器中的程序。nEA/Vpppp(31脚):脚):V Vpppp:对对89C5189C51片内片内 Flash ROMFlash ROM固化编程固化编程时,编程电压输入端(时,编程电压输入端(12-21V12-21V)。)。三、控制信号引脚:三、控制信号引脚: RST、ALE、PSEN和和EA四、输入四、输入/输出端口输出端口P0、P1、P2、P3准双准双向向当当I/OI/O口作为输入时,应先向此口锁口作为输入时,应先向此口锁存器写入全存器写入全1 1, 此时该口引脚浮空,此时该口引脚浮空,可作高阻抗输入。可作高阻抗输入。漏极开路的漏极开路的8 8位准双向位准双向I/OI/O口,每位能驱动口,每位能驱动8 8个个LSLS型型TTLTTL负载。负载。在在CPUCPU访问片外存储器时,访问片外存储器时,P0P0口为分时复用的口为分时复用的低低8 8位地址总线和位地址总线和8 8位数据总线。位数据总线。在在Flash ROMFlash ROM编程时,编程时,P0P0端口接受指令字节;端口接受指令字节;而在校验程序时,则输出指令字节。而在校验程序时,则输出指令字节。1、P0口:口:2、P1口:口:带带内内部部上上拉拉电电阻阻的的8位位准准双双向向I/O端端口,每位能驱动口,每位能驱动4个个LS型型TTL负载。负载。用用做做输输入入口口时时,需需对对端端口口写写1,通通过过内部上拉电阻把端口拉到高电位。内部上拉电阻把端口拉到高电位。在在对对Flash ROM编编程程和和校校验验时时,接接收低收低8位地址位地址3、P2口:口:P2口口:带带内内部部上上拉拉电电阻阻的的8位位准准双双向向I/O端口,每位能驱动端口,每位能驱动4个个LS型型TTL负载。负载。在在CPU访访问问片片外外存存储储器器时时,它它输输出出高高8位位地址地址。在在对对Flash ROM编编程程和和校校验验时时,接接收收高高位位地地址址和控制信号和控制信号4、P3口:口:带内部上拉电阻的带内部上拉电阻的8 8位准双向位准双向I/OI/O端口,端口,每位能驱动每位能驱动4 4个个LSLS型型TTLTTL负载。负载。P3P3口除作口除作为一般为一般I/OI/O口外,每个引脚都有第二功口外,每个引脚都有第二功能。能。在在对对Flash ROM编编程程和和校校验验时时,接接收收控控制制信号信号表表2-1 P3端口引脚与复用功能表端口引脚与复用功能表2.32.3 89C5189C51存储器配置存储器配置2.3.12.3.1 89C5189C51存储器分类存储器分类2.3.22.3.2 程序存储器地址空间程序存储器地址空间2.3.32.3.3 数据存储器地址空间数据存储器地址空间1、普林斯顿结构一般的微机结构:通常只有一个地址空间,一般的微机结构:通常只有一个地址空间,而而ROM和和RAM可以随意安排在一个地址范可以随意安排在一个地址范围内的不同空间,即围内的不同空间,即ROM和和RAM的地址在的地址在同一个队列里的分配不同的地址空间,同一个队列里的分配不同的地址空间,CPU 访问时一个地址对应唯一的一个存储访问时一个地址对应唯一的一个存储单元,可以是单元,可以是ROM也可以是也可以是RAM,并用同,并用同类访问指令。类访问指令。2.3.12.3.189C5189C51存储器分类存储器分类2、89C51-物理结构(哈佛结构物理结构(哈佛结构)2.3.12.3.189C5189C51存储器分类存储器分类3、用户角度、用户角度2.3.12.3.189C5189C51存储器分类存储器分类从用户角度89C51存储器分为3类l片内外统一编址0000HFFFFH的64KB程序存储器地址空间(用16位地址)l64KB片外数据存储器地址空间,地址也从0000HFFFFH编址l256字节数据存储器地址空间用8位地址3、用户角度、用户角度-存储器的空间配置存储器的空间配置片外FFFF0FFF0000EA=0 片外EA=1 片内 PSEN 片外RAM&I/O端口FFFF0000片内SFRRAM007F80FFRDWR2.3.12.3.189C5189C51存储器分类存储器分类程序存储器程序存储器数据存储器数据存储器1、片片内内、外外统统一一编编址址的的64K程程序序存存储储器器地地址址空空间间。CPU访问片内、片外访问片内、片外ROM指令用指令用MOVC。2、64K的的片片外外数数据据存存储储器器地地址址空空间间。访访问问片片外外RAM指指令用令用MOVX。3、256字字节节的的片片内内数数据据存存储储器器地地址址空空间间。访访问问片内片内RAM指令用指令用MOV。n一、用途:一、用途:n二、编址:二、编址:n三、寻址方式:三、寻址方式:一、用途:一、用途:n用于存放编好的程序和表格常数。程序存储用于存放编好的程序和表格常数。程序存储器通过器通过16位程序计数器寻址。位程序计数器寻址。2.3.2 程序存储器地址空间程序存储器地址空间二、编址:二、编址:n89C51片内片内Flash ROM的容量为的容量为4KB。地址为地址为0000H0FFFH。n片外最多可扩至片外最多可扩至64KB ROM/EPROM,地址为地址为1000HFFFFH。n片内外统一编址。片内外统一编址。三、寻址方式:三、寻址方式:1、当、当 EA=“1”时:时:89C5189C51的的PCPC在在000000000FFFH0FFFH范围内执行片内范围内执行片内ROMROM中的程中的程序,当指令地址超过序,当指令地址超过0FFFH 0FFFH 后就自动转向片外后就自动转向片外ROMROM中中取指令。取指令。2、当、当 EA=”0”时:时:89C5189C51片内片内ROMROM不起作用,不起作用,CPUCPU只能从片只能从片ROM/EPROMROM/EPROM中取中取指令。可以从指令。可以从 0000H0000H 开始寻址。由于开始寻址。由于80318031片内不带片内不带ROMROM ,所以使用时必须所以使用时必须 EAEA=”0”=”0”。片外FFFF0FFF0000EA=0EA=1 PSEN片内片外三、寻址方式:三、寻址方式:3、89C51从片内从片内ROM和片外和片外ROM取取指的速度相同。指的速度相同。三、寻址方式:三、寻址方式:n4、程序存储器低地址的、程序存储器低地址的40多个单元是保留存储单元,是留多个单元是保留存储单元,是留给系统使用的。如给系统使用的。如表表2-2所示。所示。 表表2-2 保留的存储单元保留的存储单元三、寻址方式:三、寻址方式:1 1、0000H0000H0002H0002H三个单元:三个单元:用作用作89C5189C51上电复位后引导程序的存放单元。上电复位后引导程序的存放单元。因为复位后因为复位后PCPC的内容为的内容为0000H0000H,CPUCPU总是从总是从0000H0000H开始执行程序。将转移指令存放到这开始执行程序。将转移指令存放到这三个单元,程序就被引导到指定的程序存三个单元,程序就被引导到指定的程序存储器空间去执行。储器空间去执行。三、寻址方式:三、寻址方式:(2)0003H002AH单元:单元:n均分为五段,每段均分为五段,每段8个字节,用作个字节,用作5个中断服务程序的入口。个中断服务程序的入口。四.执行外部程序时硬件连接图89C51 P1 P0 EA ALEP3 P2 PSEN74HC373片外程序存储器指令 地址OE一、用途:一、用途:n用于存放运算的中间用于存放运算的中间结果、数据暂存和缓结果、数据暂存和缓冲、标志位等。冲、标志位等。n分为片内,片外数据分为片内,片外数据存储器存储器 片外RAM&I/O端口FFFF0000片内SFRRAM007F80FFRDWR2.3.3 数据存储器地址空间数据存储器地址空间二、片外二、片外RAM: (一)片内一)片内RAMRAM地址空间地址空间(二)低(二)低128128字节字节RAMRAM(00H00H7FH7FH)(三三)高高128128字字节节RAMRAM(80H80HFFHFFH): 特殊功能寄存器特殊功能寄存器SFRSFR区区2.3.3 数据存储器地址空间数据存储器地址空间1.片内片内128字节字节RAM:用用MOV指令指令寻址2.片外64KB空间RAM:用MOVX指令89C51 P1 P0 EA ALE WD P3 WR锁存器RAM 地址数据 6116I/O页面地址WE OEVCCP2(1)片内)片内RAM地址空间地址空间寻址:用指令寻址:用指令MOV最大可寻址最大可寻址256个单元。个单元。二、片内二、片内RAM: 2.3.3 数据存储器地址空间数据存储器地址空间FFH80H7FHSFR只通过直间寻址方式访问RAM可通过直间和间接寻址方式访问高128字节区低128字节区0二、片内二、片内RAM: 2.3.3 数据存储器地址空间数据存储器地址空间(2)工作寄存器区()工作寄存器区(00H1FH)n由四组(由四组(32个)工作寄存器组成,每组个)工作寄存器组成,每组8个寄存个寄存器(器(R0-R7),),共占共占32个单元。见个单元。见 表表2-4。n通过程序状态寄存器通过程序状态寄存器 PSW中中RS1、RS0两位设两位设定来选择定来选择CPU的当前工作寄存器组。复位时,的当前工作寄存器组。复位时,第第0组为当前的工作寄存器。组为当前的工作寄存器。n若不需要四组,则其余可作为一般若不需要四组,则其余可作为一般RAM单元。单元。二、片内二、片内RAM-低低128位位RAM: 2.3.3 数据存储器地址空间数据存储器地址空间低低128字节字节RAM(00H7FH)787068605850484038302820181008003组2组1组797169615951494139312921191109017A726A625A524A423A322A221A120A027B736B635B534B433B332B231B130B037C746C645C544C443C342C241C140C047D756D655D554D453D352D251D150D057E766E665E564E463E362E261E160E067F776F675F574F473F372F271F170F07通用的RAM位地址字节地址R7R0R7R0R7R0R7R0缺省寄存器组( 0组)7F 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 18 17 10 0F 08 07 00 可位寻址RAM区域SP复位值通用工作寄存器表表2-4 工作寄存器地址表工作寄存器地址表低低128字节字节RAM-寻址方式寻址方式n访问128个位地址用位寻址方式n访问128个字节单元用直接寻址和间接寻址。 这样就能区分开00H-7FH是位地址还是字节地址这些可寻址位,通过执行指令可直接对某一位操作,如置0,清0,或判1,判0等,可用作软件标志位或用于位(布尔)处理(3)高)高128字节字节RAM(80HFFH)l有有21个特殊功能功能寄存器。个特殊功能功能寄存器。l地址分布在地址分布在80HFFH的的RAM空间。空间。l寻址时只允许使用直接寻址方式寻址时只允许使用直接寻址方式二、片内二、片内RAM-高高128位位RAM: 2.3.3 数据存储器地址空间数据存储器地址空间F0E0D0B8B0A8A0不可寻址位9890不可寻址位不可寻址位不可寻址位不可寻址位不可寻址位88不可寻址位不可寻址位不可寻址位不可寻址位80F1E1B9B1A9A199918981F2E2D2BAB2AAA29A928A82F3E3D3BBB3ABA39B938B83F4E4D4BCB4ACA49C948C84F5E5D5B5A59D958D85F6E6D6B6A69E968E86F7E7D7B7AFA79F978F87图2-9高128字节RAM区(SFR区,特殊功能寄存器区)字节地址 FF F0 E0 D0 B8 B0 A8 A0 99 98 90 8D 8C 8B 8A 89 88 87 83 82 81 80 B ACC PSW IP P3 IE P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMD TCON PCON DPH DPL SP P0(三)高128字节RAM(80HFFH)-寻址方式n访问特殊功能的寄存器只允许用直接寻址方式n21个特殊功能寄存器中字节地址可被8整除的具有11个,这11个寄存器具有位寻址能力。二、片内二、片内RAM-高高128位位RAM: 部分特殊功能寄存器介绍部分特殊功能寄存器介绍累加器累加器ACCACC(E0HE0H):):用A作为ACC的助记符。用于存放第一个操作数及运算结果。在乘法运算中存放一个乘数和乘积的低八位数在除法运算中存放被除数和商。二、片内二、片内RAM-高高128位位RAM: 部分特殊功能寄存器介绍部分特殊功能寄存器介绍寄存器寄存器B B(F0HF0H):):l在乘法指令中,B用于存放乘数和乘积的高8位。l在除法指令中用于存放除数和余数。l在其它指令中用作一般的寄存器或RAM单元。二、片内二、片内RAM-高高128位位RAM: 部分特殊功能寄存器介绍部分特殊功能寄存器介绍nPSW PSW 程序状态寄存器(程序状态寄存器(D0HD0H):):PSW是一个8位特殊功能的寄存器,包含了程序执行后的状态信息,供程序查询或判断用。二、片内二、片内RAM-高高128位位RAM: ACCYPOVRS0RS1F0PSW(D0H)D7 D6 D5 D4 D3 D2 D1 D0表2-6 PSW程序状态字奇/偶保留溢出寄存器组选择用户标定铺进进、借位地址位名称位意义PSWPSW各位的含义各位的含义(1)CY位(位(PSW.7):):进(借)位标志位。进(借)位标志位。执行加法(减法)运算指令时,如运算结果最执行加法(减法)运算指令时,如运算结果最高位高位(D7)向前有进位(借位),向前有进位(借位),CY=1;否则,否则,CY=0。在布尔处理器中以在布尔处理器中以CY为其累加器,专门用于处为其累加器,专门用于处理位操作,如可执行置位、位清理位操作,如可执行置位、位清0、位取反、位、位取反、位等于等于1转移,位等于转移,位等于0转移、位等于转移、位等于1转移并清转移并清0,以及位累加器以及位累加器C与其他可位寻址的空间之间进行与其他可位寻址的空间之间进行信息传送等位操作,也可使信息传送等位操作,也可使C与其他可寻址位之与其他可寻址位之间进行逻辑与、逻辑或、操作,结果存放间进行逻辑与、逻辑或、操作,结果存放在进位标志位中。在进位标志位中。二、片内二、片内RAM-高高128位位RAM: PSWPSW各位的含义各位的含义(2)AC位(位(PSW.6):):半进位标志位(辅助进位标志)。半进位标志位(辅助进位标志)。执行加法(减法)运算指令时,如运算结果(和或差)执行加法(减法)运算指令时,如运算结果(和或差)的低半字节(的低半字节(D3)向高半字节有进位(借位),向高半字节有进位(借位),AC=1;否则,否则,AC=0。二、片内二、片内RAM-高高128位位RAM: PSWPSW各位的含义各位的含义(3)FO位(位(PSW.5):用户标志。用户标志。用用户户可可根根据据自自己己的的需需求求对对F0赋赋予予一一定定的的含含义义 由由用用户户自自己己定定义义、置置位位、复复位位,以以作作为为软软件件标标志志。二、片内二、片内RAM-高高128位位RAM: PSWPSW各位的含义各位的含义(4)RS0、RS1位(位(PSW.3和和PSW.4):):工作寄存器组选择工作寄存器组选择控制位。控制位。由由用用户户用用软软件件改改变变RS0和和RS1的的值值,以以切切换换当当前前选选用用的的工作寄存器组。工作寄存器组。RS0,RS1的组合关系如的组合关系如 表表2-8 所示。所示。上上电电复复位位时时,(RS0)=(RS1)=0,CPU自自然然选选择择第第0组为当前工作寄存器组。组为当前工作寄存器组。根据需求,可利用传送指令对根据需求,可利用传送指令对PSW整字节操作或用位操作整字节操作或用位操作指令改变指令改变RS1和和RS2的状态的状态二、片内二、片内RAM-高高128位位RAM: RS1RS0寄存器组寄存器组片内片内RAM地址地址00第第0组组 00H07H01第第1组组 08H0FH10第第2组组 10H17H11第第3组组 18H1FH表表2-8 RS0,RS1的组合关系的组合关系PSWPSW各位的含义各位的含义(5)OV位(位(PSW.2):):溢出标志位。溢出标志位。如有溢出,即运算结果超出如有溢出,即运算结果超出-128 +127的范围时,的范围时,OV=1;无溢出时,无溢出时,OV=0。(由硬件自动设置)。(由硬件自动设置)返回返回二、片内二、片内RAM-高高128位位RAM: PSWPSW各位的含义各位的含义(6)P位(位(PSW.0):):奇偶检验位。奇偶检验位。 每条指令执行后,该位始终跟踪指示累加器每条指令执行后,该位始终跟踪指示累加器A中中1的个数。的个数。A中中“1”的个数为奇数,则的个数为奇数,则P=1;否则,;否则,P=0。常用于校验串行通信中的数据传送是否出错。常用于校验串行通信中的数据传送是否出错。部分特殊功能寄存器介绍部分特殊功能寄存器介绍堆栈指针堆栈指针SPSP(81H81H):8 8位特殊功能寄存器,位特殊功能寄存器, SPSP的内容可指向片的内容可指向片内内RAM 00HRAM 00H7FH7FH的任何单元。的任何单元。系统复位时,系统复位时,SP初始化为初始化为07H,即指向,即指向07H的的RAM单元单元堆栈:在片内的堆栈:在片内的堆栈:在片内的堆栈:在片内的RAMRAM中专门开辟出来一个区域,数据的存取是中专门开辟出来一个区域,数据的存取是中专门开辟出来一个区域,数据的存取是中专门开辟出来一个区域,数据的存取是以以以以 后进先出的方式处理,好像冲锋枪压入子弹,这种数据结构后进先出的方式处理,好像冲锋枪压入子弹,这种数据结构后进先出的方式处理,好像冲锋枪压入子弹,这种数据结构后进先出的方式处理,好像冲锋枪压入子弹,这种数据结构方式对于处理中断,调用子程序非常方便。方式对于处理中断,调用子程序非常方便。方式对于处理中断,调用子程序非常方便。方式对于处理中断,调用子程序非常方便。二、片内二、片内RAM-高高128位位RAM: n n堆栈有两中操作:数据压入,数据弹出堆栈有两中操作:数据压入,数据弹出n n若有若有8个个RAM单元,每个单元都在其右面编单元,每个单元都在其右面编有地址,栈顶由堆栈指针有地址,栈顶由堆栈指针SP自动管理。每自动管理。每次进行压入弹出操作后,堆栈指针便自动次进行压入弹出操作后,堆栈指针便自动调整以保持指示堆栈顶部的位置。调整以保持指示堆栈顶部的位置。n n栈底:在使用堆栈之前栈底:在使用堆栈之前部分特殊功能寄存器介绍部分特殊功能寄存器介绍二、片内二、片内RAM-高高128位位RAM: A2A1堆栈操作67 66 65 64 63 62 61 606 1A3A2A1A5A4A3A2A167 66 65 64 63 62 61 6067 66 65 64 63 62 61 60SP6 26 4A167 66 65 64 63 62 61 60A4A3A2A167 66 65 64 63 62 61 60SPSPSPSP6 36 1二、片内二、片内RAM-高高128位位RAM: 部分特殊功能寄存器介绍部分特殊功能寄存器介绍部分特殊功能寄存器介绍部分特殊功能寄存器介绍数据指针数据指针DPTRDPTR(83H83H,82H82H):):lDPTR是一个16位的特殊功能寄存器。l高位字节寄存器用DPH(83H),低位字节用DPL (82H)组成。lDPH,DPL可以单独使用。l主要是对片外的64KB片外数据存储器做间接寻址二、片内二、片内RAM-高高128位位RAM: 部分特殊功能寄存器介绍部分特殊功能寄存器介绍返回返回I/OI/O端口端口P0P0、P1P1、P2P2、P3P3(80H80H、90H90H、A0HA0H、B0HB0H):):分别为四个并行端口的锁存器,每一个口锁存器还有位地址,所以每一条I/O线可独立输入或输出。输出时,可以锁存;输入时,可以缓冲。二、片内二、片内RAM-高高128位位RAM: F0E0D0B8B0A8A0不可寻址位9890不可寻址位不可寻址位不可寻址位不可寻址位不可寻址位88不可寻址位不可寻址位不可寻址位不可寻址位80F1E1B9B1A9A199918981F2E2D2BAB2AAA29A928A82F3E3D3BBB3ABA39B938B83F4E4D4BCB4ACA49C948C84F5E5D5B5A59D958D85F6E6D6B6A69E968E86F7E7D7B7AFA79F978F87图2-9高128字节RAM区(SFR区,特殊功能寄存器区)字节地址 FF F0 E0 D0 B8 B0 A8 A0 99 98 90 8D 8C 8B 8A 89 88 87 83 82 81 80 B ACC PSW IP P3 IE P2 SBUF SCON P1 TH1 TH0 TL1 TL0 TMD TCON PCON DPH DPL SP P02.4时钟电路及时钟电路及89C51 CPU时序时序2.4.1 片内时钟信号的产生片内时钟信号的产生2.4.2CPU取指、执指时序取指、执指时序 微机从Flash ROM中取出指令和执行指令过程中的各种微操作都是按一定节拍有序进行的,片内的振荡脉冲电路就是这个节拍的发生器2.4.1 片内时钟信号的产生片内时钟信号的产生返回返回n89C51芯片内部有一个高增益反相放大器,用于构成振荡器。反相放大器的输入端为XTAL1,输出端为XTAL2,两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。电容器和通常取30 pF左右,可稳定频率并对振荡频率有微调作用。振荡脉冲频率范围为fOSC=024 MHz。n晶体振荡器的频率为fOSC,振荡信号从XTAL2端输入到片内的时钟发生器上,如图2-12所示。n电容器和通常取30 pF左右,可稳定频率并对振荡频率有微调作用。振荡脉冲频率范围为fOSC=024 MHz。图2-2189C51的片内振荡器及时钟发生器2.4.1片内时钟信号的产生片内时钟信号的产生高增益反向放大器晶体振荡器的频率为fOSC,振荡信号从XTAL2端输入到片内的时钟发生器上,如图2-12所示。2.4.1 片内时钟信号的产生片内时钟信号的产生&1、节拍与状态周期、节拍与状态周期 &2、机器周期和指令周期、机器周期和指令周期&3、基本时序定时单位、基本时序定时单位1、节拍与状态周期、节拍与状态周期 l时钟发生器是一个时钟发生器是一个2分频的触发器电路,它将振荡器的信号频分频的触发器电路,它将振荡器的信号频率率fOSC除以除以2,向,向CPU提供两相时钟信号提供两相时钟信号P1和和P2。l时钟信号的周期称为机器状态周期时钟信号的周期称为机器状态周期S(STATE),是振荡周期的,是振荡周期的2倍。倍。l在每个时钟周期在每个时钟周期(即机器状态周期即机器状态周期S)的前半周期,相位的前半周期,相位1(P1)信信号有效,在每个时钟周期的后半周期,相位号有效,在每个时钟周期的后半周期,相位2(P2,节拍,节拍2)信号信号有效。有效。l每个时钟周期每个时钟周期(以后常称状态以后常称状态S)有两个节拍有两个节拍(相相)P1和和P2,CPU就以两相时钟就以两相时钟P1和和P2为基本节拍指挥为基本节拍指挥89C51单片机各个部件协单片机各个部件协调地工作。调地工作。2.4.1 片内时钟信号的产生片内时钟信号的产生图图2-12 89C51的片内振荡器及时钟发生器的片内振荡器及时钟发生器 2、机器周期和指令周期、机器周期和指令周期4一个机器周期是指一个机器周期是指CPUCPU访问存储器一次所需的时间。例如,取指访问存储器一次所需的时间。例如,取指令、读存储器、写存储器等等。令、读存储器、写存储器等等。他是执行一条指令所需时长的单他是执行一条指令所需时长的单位位4一个机器周期包括一个机器周期包括1212个振荡周期,分为个振荡周期,分为6 6个个S S状态:状态:S1S6S1S6。4每个状态又分为两拍,称为每个状态又分为两拍,称为P1P1和和P2P2。4因此,一个机器周期中的因此,一个机器周期中的1212个振荡周期表示为个振荡周期表示为S1P1S1P1,S1P2S1P2,S2P1S2P1,S6P1S6P1,S6P2S6P2。4若采用若采用6MHz6MHz晶体振荡器,则晶体振荡器,则状态周期及状态周期及机器周期机器周期各各为多少?为多少?2.4.1片内时钟信号的产生片内时钟信号的产生2、机器周期和指令周期4指令周期:执行一条指令所需的时间。指令周期:执行一条指令所需的时间。4每条指令的每条指令的指令周期指令周期指令周期指令周期都由一个或几个都由一个或几个机器周期机器周期机器周期机器周期 组成。有单周期指令、双周期指令、和四周期指组成。有单周期指令、双周期指令、和四周期指令。机器周期数少则执行速度快。令。机器周期数少则执行速度快。4其中四周期指令包括乘除指令。其余都为单周期其中四周期指令包括乘除指令。其余都为单周期或双周期。或双周期。2.4.1片内时钟信号的产生片内时钟信号的产生3、基本时序定时单位、基本时序定时单位综上所述,综上所述,89C51或其他或其他80C51单片机的基本时序定时单位有如下单片机的基本时序定时单位有如下4个个l振荡周期:振荡周期: 晶振的振荡周期,为最小的时序单位。晶振的振荡周期,为最小的时序单位。l状态周期:状态周期: 振荡频率经单片机内的二分频器分频后提供给片内振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含的时钟周期。因此,一个状态周期包含2个振荡周期。个振荡周期。l机器周期(机器周期(MC):): 1个机器周期由个机器周期由6个状态周期即个状态周期即12个振荡周个振荡周期组成,是计算机执行一种基本操作的时间单位。期组成,是计算机执行一种基本操作的时间单位。l指令周期:指令周期: 执行一条指令所需的时间。一个指令周期由执行一条指令所需的时间。一个指令周期由14个个机器周期组成,依据指令不同而不同,见附录机器周期组成,依据指令不同而不同,见附录A。2.4.1片内时钟信号的产生片内时钟信号的产生4种时序单位中,振荡周期和机器周期是单片机内计算其他时间值种时序单位中,振荡周期和机器周期是单片机内计算其他时间值(例如,波特率、定时器的定时时间等)的基本时序单位。(例如,波特率、定时器的定时时间等)的基本时序单位。4个时序单位从小到大依次是节拍(振荡脉冲周期,个时序单位从小到大依次是节拍(振荡脉冲周期,1/fOSC)、状态)、状态 周期(时钟周期)、机器周期和指令周期,如图周期(时钟周期)、机器周期和指令周期,如图2-13所示。所示。单片机外接晶振频率单片机外接晶振频率12 MHz时的各种时序单位的大小。时的各种时序单位的大小。3、基本时序定时单位、基本时序定时单位2.4.1片内时钟信号的产生片内时钟信号的产生2.4.2 CPU取指、执指时序取指、执指时序Y每条指令的执行都可以包括取指和执指两个阶段。每条指令的执行都可以包括取指和执指两个阶段。Y在取指阶段,在取指阶段,CPUCPU从内部或外部从内部或外部ROMROM中取出指令操作码及操中取出指令操作码及操作数,然后再执行这条指令。作数,然后再执行这条指令。Y根据各种操作的繁简程度,单字节和双字节的指令都可能根据各种操作的繁简程度,单字节和双字节的指令都可能是单机器周期或双周期,而三字节指令都是双周期的,只是单机器周期或双周期,而三字节指令都是双周期的,只有乘、除指令占四周期。有乘、除指令占四周期。YCPU取指、执指时序如取指、执指时序如 图图2-14所示所示2.5复位操作复位操作n2.5.1复位操作的主要功能复位操作的主要功能n2.5.2复位信号及其产生复位信号及其产生n2.5.3复位电路复位电路2.5.1 复位操作的主要功能复位操作的主要功能一、复位是单片机的初始化操作。一、复位是单片机的初始化操作。二、主要功能:二、主要功能: 三、寄存器的复位状态:三、寄存器的复位状态:2.5.1复位操作主要功能复位操作主要功能n复位是单片机的初始化操作复位是单片机的初始化操作(使使CPU及各及各部件处于确定的初态,并从初态开始工部件处于确定的初态,并从初态开始工作作)n程序地址指针程序地址指针PC初始化为初始化为0000H,使单使单片机从片机从0000H单元开始执行程序单元开始执行程序n当由于程序运行出错或操作错误使系统当由于程序运行出错或操作错误使系统死锁状态时,为摆脱困境,也需要按复死锁状态时,为摆脱困境,也需要按复位键重新启动位键重新启动。表表2-8 各特殊寄存器的复位值各特殊寄存器的复位值2.5.2 复位信号及其产生复位信号及其产生一、复位信号:一、复位信号:RST引脚为复位信号输入端。引脚为复位信号输入端。当当RST引脚为高电平,且有效时间持续引脚为高电平,且有效时间持续24个个振荡周期以上,才能复位。振荡周期以上,才能复位。二、产生复位信号的电路逻辑图:二、产生复位信号的电路逻辑图:如如图图2-15所示。所示。2.5.3复位电路复位电路n1、上电自动复位:、上电自动复位:是通过外部复位电路的电容充电实现。是通过外部复位电路的电容充电实现。如如图图2-16(a)所示。所示。n2、手动复位:、手动复位:手动复位方式:手动复位方式:如如图图2-16(b)所示。所示。图图 2-16 (a) 上电复位电路上电复位电路VCCCRVCCRST/VPDVSS1K 22F89C511)复位过程)复位过程2)复位条件:只要)复位条件:只要Vcc的上的上升时间不超过升时间不超过1ms,就自动,就自动上电复位,即接通电源就完上电复位,即接通电源就完成了系统复位。成了系统复位。3)参数选择:)参数选择:1、上电自动复位、上电自动复位OSC=6MHZ C=22uF R=1KOSC=12MHZ C=10UF R=8.2K 1)复位方式:通过使复位端经电阻与VCC电源接通而实现。VCCCR2VCCRST/VPDVSS1K22F89C51R1200RESET2.手动复位手动复位图图 2-16 (b) 按键电平复位电路按键电平复位电路2.5.3复位电路复位电路复位电路具有非常重要作用,一个单片机能否正常运复位电路具有非常重要作用,一个单片机能否正常运行,首先检查是否复位成功。行,首先检查是否复位成功。初步检查可用示波器监视初步检查可用示波器监视RST 引脚,按下复位键,观引脚,按下复位键,观察是否有足够幅度的波形输出(瞬时的),还可以通察是否有足够幅度的波形输出(瞬时的),还可以通过改变复位电路电阻容量。过改变复位电路电阻容量。2.689C51单片机的低功耗工作方式单片机的低功耗工作方式n89C51属于属于CHMOS的单片机,运行时耗电少,而且还的单片机,运行时耗电少,而且还提供两种节电工作方式,即空闲(等待、待机)方式提供两种节电工作方式,即空闲(等待、待机)方式和掉电(停机)工作方式,以进一步降低功耗。和掉电(停机)工作方式,以进一步降低功耗。n图图2-17所示为实现这两种方式的内部电路。所示为实现这两种方式的内部电路。n由图由图2-17可见,若可见,若IDL=0,则,则89C51将进入空闲运作方将进入空闲运作方式。式。n掉电方式下(掉电方式下(PD=1),振荡器冻结。),振荡器冻结。2.6 89C51单片机的低功耗工作方式单片机的低功耗工作方式图图2-17 空闲和掉电方式控制电路空闲和掉电方式控制电路图2-17中,PD和IDL均为PCON中PD和IDL触发器的输出端。2.6.1方式的设定方式的设定空闲方式和掉电方式是通过对SFR中的PCON(地址87H)相应位置1而启动的。图2-18所示为89C51电源控制寄存器PCON各位的分布情况。HMOS器件的PCON只包括一个SMOD位,其他4位是CHMOS器件独有的。3个保留位用户不得使用,因为硬件没有做出安排,可能在今后的MCS51新产品中代表某特定的功能。图图2-18 电源控制寄存器电源控制寄存器PCON图2-18中各符号的名称和功能如下。 SMOD: 波特率倍频位。若此位为1,则串行口方式1、方式2和方式3的波特率加倍。 GF1和GF0: 通用标志位。 PD: 掉电方式位。此位写1即启动掉电方式。由图217可见,此时时钟冻结。 IDL: 空闲方式位。此位写1即启动空闲方式。这时CPU因无时钟控制而停止运作。如果同时向PD和IDL两位写1,则PD优先。89C51中PCON的复位值为00000B。2.6.1方式的设定方式的设定图图2-18 电源控制寄存器电源控制寄存器PCON2.6.2空闲(等待、待机)工作方式空闲(等待、待机)工作方式当CPU执行完置IDL=1(PCON.1)的指令后,系统进入空闲工作方式。这时,内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。CPU的内部状态维持,即包括堆栈指针SP、程序计数器PC、程序状态字PSW、累加器ACC所有的内容保持不变,端口状态也保持不变。ALE和PSEN保持逻辑高电平。2.6.2空闲(等待、待机)工作方式空闲(等待、待机)工作方式进入空闲方式后,有两种方法可以使系统退出空闲方式。一是任何的中断请求被响应都可以由硬件将PCON.0(IDL)清0而中止空闲工作方式。当执行完中断服务程序返回到主程序时,在主程序中,下一条要执行的指令将是原先使IDL置位指令后面的那条指令。PCON中的通用标志位GF1和GF0可以用来指明中断是在正常操作还是在待机方式期间发生的。在待机方式时,除用指令使IDL=1外,还可先用指令使GF1或GF0置1。当由于中断而停止待机方式时,在中断服务程序中可以检查这些标志位,说明是从待机方式进入中断的。2.6.2空闲(等待、待机)工作方式空闲(等待、待机)工作方式另一种退出空闲方式的方法是硬件复位,由于在空闲工作方式下振荡器仍然工作,因此硬件复位仅需2个机器周期便可完成。而RST端的复位信号直接将PCON.0(IDL)清0,从而退出空闲状态,CPU则从进入空闲方式的下一条指令开始重新执行程序。l当CPU执行一条置PCON.1位(PD)为1的指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停止工作。l由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,而端口的输出状态值都保存在对应的SFR中,ALE和PSEN都为低电平。2.6.3掉电(停机)工作方式掉电(停机)工作方式2.6.3掉电(停机)工作方式掉电(停机)工作方式l退出掉电方式的惟一方法是由硬件复位,复位后将所退出掉电方式的惟一方法是由硬件复位,复位后将所有特殊功能寄存器的内容初始化,但不改变片内有特殊功能寄存器的内容初始化,但不改变片内RAM区的数据。区的数据。l在掉电工作方式下,在掉电工作方式下,VCC可以降到可以降到2 V,但在进入掉,但在进入掉电方式之前,电方式之前,VCC不能降低。而在准备退出掉电方式不能降低。而在准备退出掉电方式之前,之前,VCC必须恢复正常的工作电压值,并维持一段必须恢复正常的工作电压值,并维持一段时间(约时间(约10 ms),使振荡器重新启动并稳定后方可退),使振荡器重新启动并稳定后方可退出掉电方式。出掉电方式。2.7输出输出/输入端口结构输入端口结构n I/O端口概述端口概述2.7.1 P1口口2.7.2 P2口口2.7.3 P0口口2.7.4 P3口口2.7.5 端口的负载能力和接口要求端口的负载能力和接口要求返回返回I/O端口概述端口概述返回返回189C51单片机有四个单片机有四个8位并行位并行I/O端口:端口:P0、P1、P2和和P3。2每个端口都是每个端口都是8位准双向口,共占位准双向口,共占32根引脚。根引脚。3每一条每一条I/O线都能独立地用作输入或输出。线都能独立地用作输入或输出。4每每个个端端口口都都包包括括一一个个锁锁存存器器(即即特特殊殊功功能能寄寄存存器器P0P3),一一个个输输出出驱驱动动器器和和输输入入缓缓冲冲器器,作作输输出出是是数数据据可以锁存,作输入时数据可以缓冲。可以锁存,作输入时数据可以缓冲。2.7.1 P1口口一、一、P1口结构口结构二、二、P1口用作通用口用作通用I/O2.7.1 P1口口一、一、P1口结构:口结构:其电路结构见图2-19,输出驱动部分与P0口不同,内部有上拉负载电阻与电源相连。实质上,电阻是两个场效应管FET并在一起:一个FET为负载管,其电阻固定。另一个FET可工作在导通或截止两种状态,使其总电阻值变化近似为0或阻值很大两种情况。当阻值近似为0时,可将引脚快速上拉至高电平;当阻值很大时,P1口为高阻输入状态。返回返回图图2-19 P1口某位的结构口某位的结构2.7.1 P1口口二、二、P1口用作通用口用作通用I/OP1口也是一个准双向口。在端口用作输入时,也必须先向对应的锁存器写入1,使FET截止。当P1口输出高电平时,能向外提供拉电流负载,所以不必再接上拉电阻。返回返回2.7.2 P2口口一、一、P2口结构口结构二、二、P2口用作一般口用作一般I/O口口三、三、P2口用作高口用作高8位地址总线位地址总线返回返回一、一、P2口结构口结构如图2-20所示,P2口某位的结构与P0口类似,有MUX开关。驱动部分与P1口类似,但比P1口多了一个转换控制部分。返回返回图图2-20 P2口某位的结构图口某位的结构图返回返回二、二、P2口用作一般口用作一般I/O口口1、当当执执行行MOV 指指令令(片片内内的的数数据据存存储储器器)或或EA=1时时,执执行行MOVC指指令令(片片内内的的程程序序存存储储器器)时时,由由内内部部硬硬件件自自动动使使开开关关MUX倒倒向向锁锁存存器器的的Q端端,这这时时,P2口口为为一一般般I/O口。口。2、当当执执行行MOVX(片片外外的的RAM)或或EA=0时时执执行行MOVC指指令令(片外片外的的ROM)时,开关倒向地址端。输出高)时,开关倒向地址端。输出高8位地址。位地址。二、二、P2口用作一般口用作一般I/O口口1.当系统扩展片外当系统扩展片外RAM和和ROM时,访问片外的时,访问片外的RAM和和ROM接连不断,所以接连不断,所以P2口无法用作通用口无法用作通用的输入输出口。的输入输出口。2、在在只只需需扩扩展展256B片片外外RAM的的系系统统中中,使使用用“MOVX A, Ri”类类指指令令访访问问片片外外RAM时时,寻寻址址范范围围是是256B,只只需需低低8位位地地址址线线就就可可以以实实现现。P2口口不不受受该该指指令影响,仍可作通用令影响,仍可作通用I/O口。口。二、二、P2口用作一般口用作一般I/O口口3、若扩展的RAM容量超过256B,使用“MOVX A,DPTR”类指令的寻址范围是64KB,此时,高8位地址总线用P2口输出。在片外RAM读/写周期内,P2口锁存器仍保持原来端口的数据;在访问片外RAM周期结束后,多路开关MUX自动切换倒锁存器Q端。由于CPU对RAM的访问不是经常的,在这种情况下,P2口在一定的限度内仍可用作通用I/O口。2.7.3 P0口口一、结构一、结构二、二、P0口作为一般口作为一般I/O口使用口使用三、三、P0口作为地址口作为地址/数据总线使用数据总线使用返回返回一、结构一、结构P0口某位的结构由一个输出锁存器、二个三态输入缓冲器和输出驱动电路及控制电路组成。如图2-21所示。当C=0时,开关MUX被控为如图示位置,P0口为通用I/O口;当C=1时,开关拨向反相器3的输出端,P0口分时作为地址/数据总线使用。图图2-21 P0口某位的结构图口某位的结构图当C=0时,开关MUX被控为如图示位置,P0口为通用I/O口;当C=1时,开关拨向反相器3的输出端,P0口分时作为地址/数据总线使用。二、二、P0口作为一般口作为一般I/O口使用口使用1、P0口用作输出口口用作输出口2、P0口作输入口口作输入口返回返回1、P0口用作输出口口用作输出口n当CPU执行输出指令时,写脉冲加在D锁存器的CL上,这样,与内部总线相连的D端的数据取反后就出现在Q端上,又经输出级FET(T2)反相,在P0端口上出现的数据正好是内部总线的数据。这是一般的数据输出情况。返回返回2、P0口作输入口口作输入口n当执行一条由端口输入的指令时,“读引脚”脉冲把三态缓冲器2打开,这样,端口上的数据经过缓冲器2读入到内部总线。n在端口进行输入操作前,应先向端口锁存器写入1,也就是使锁存器Q=0。因为控制线C=0,因此T1和T2全截止,引脚处于悬浮状态,可作高阻抗输入。3、P0口作为地址口作为地址/数据总线使用数据总线使用1P0口用作输出地址口用作输出地址/数据总线数据总线 以P0口引脚输出低8位地址或数据信息,MUX开关把CPU内部地址/数据线经反向器3与驱动场效应管FET(T2)栅极接通。上下两个FET处于反相,构成推拉式的输出电路(T1导通时上拉,T2导通时下拉),提高了负载能力。当P0口被地址/数据总线占用时,就无法再作I/O口使用了。2由由P0口输入数据:口输入数据:在“读引脚”信号有效时,打开输入缓冲器2,使数据进入内部总线。三、三、P0口作为地址口作为地址/数据总线使用数据总线使用2.7.4 P3口口一、结构一、结构二、P3口作为通用口作为通用I/O口使用口使用三、三、P3口用作第二功能使用口用作第二功能使用返回返回一、结构一、结构1、P3口是一个多功能端口,其某一位的结构见图2-22。P3口与P1口的差别在于多了“与非”门3和缓冲器4。使得P3口除了具有P1口的准双向I/O功能外,还可以使用各引脚所具有的第二功能。2、“与非”门3的作用实际上是一个开关,决定是输出锁存器上的数据还是输出第二功能(W)的信号。当W=1时,输出Q端信号;当Q=1时,可输出W线信号。 编程时,可不必事先由软件设置P3口为第一功能(通用I/O口)还是第二功能。3、当CPU对P3口进行SFR寻址(位或字节)访问时,由内部硬件自动将第二功能输出线W置1,这时,P3口为通用I/O口。4、当CPU不对P3口进行SFR寻址(位或字节)访问时,即用作第二功能输出/输入线时,由内部硬件使锁存器Q=1。图图2-22 P3口某位的结构图口某位的结构图W1、当把P3口作为通用I/O口进行SFR寻址时“第二输出功能端”W保持高电平,打开“与非”门3,D锁存器输出端Q的状态可通过“与非”门3送至FET场效应管输出。 2、当P3口作为输入使用(即CPU读引脚状态)时,同P0P2口一样应由软件向口锁存器写1。二、P3口作为通用口作为通用I/O口使用口使用返回返回三、三、P3口用作第二功能使用口用作第二功能使用 当端口用于第二功能时,8个引脚可按位独立定义。见表2-10返回返回表表2-10 P3各口线与第各口线与第2功能表功能表2.7.5 端口的负载能力和接口要求端口的负载能力和接口要求1、P0口:口:3 P0口与其他口不同,它的输出级无上拉电阻。当把它用作通口与其他口不同,它的输出级无上拉电阻。当把它用作通用用/口时,输出级是开漏电路,故用其输出去驱动口时,输出级是开漏电路,故用其输出去驱动NMOS输入时须外接上拉电阻。输入时须外接上拉电阻。3用作输入时,应先向口锁存器用作输入时,应先向口锁存器(80H)写写1。3把它当作地址把它当作地址/数据总线时数据总线时(片外扩展片外扩展ROM或或RAM的情况的情况),则无须外接上拉电阻。则无须外接上拉电阻。3P0口的每一位输出可驱动口的每一位输出可驱动8个个LS型型TTL负载。负载。2、P1P3口口 P1P3口的输出级接有内部上拉负载电阻,它们的每一位输出可驱口的输出级接有内部上拉负载电阻,它们的每一位输出可驱动动4个个LS型型TTL负载。作为输入口时,任何负载。作为输入口时,任何TTL或或NMOS电路都能以电路都能以正常的方式驱动正常的方式驱动89C51单片机单片机(CHMOS)的的P1P3口。由于它们的输出口。由于它们的输出级具有上拉电阻,所以也可以被集电极开路级具有上拉电阻,所以也可以被集电极开路(OC门门)或漏极开路所驱动,或漏极开路所驱动,而无须外接上拉电阻。而无须外接上拉电阻。对于对于89C51单片机单片机(CHMOS),端口只能提供几毫安的输出电流,故当,端口只能提供几毫安的输出电流,故当作输出口去驱动一个普通晶体管的基极作输出口去驱动一个普通晶体管的基极(或或TTL电路输入端电路输入端)时,应在时,应在端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。端口与晶体管基极间串联一个电阻,以限制高电平输出时的电流。P1P3口也都是准双向口。作为输入时,必须先对相应端口锁存器口也都是准双向口。作为输入时,必须先对相应端口锁存器写写1。返回返回2.7.5 端口的负载能力和接口要求端口的负载能力和接口要求1. 89C51单片机片内包含哪些主要逻辑功能部件单片机片内包含哪些主要逻辑功能部件?2. 89C51的端有何用途的端有何用途?3. 89C51的存储器分哪几个空间的存储器分哪几个空间?如何区别不同空间的寻址如何区别不同空间的寻址?4. 简述简述89C51片内片内RAM的空间分配。的空间分配。5. 简述布尔处理存储器的空间分配,片内简述布尔处理存储器的空间分配,片内RAM中包含哪些可位寻址中包含哪些可位寻址单元。单元。6. 如何简捷地判断如何简捷地判断89C51正在工作正在工作?7. 89C51如何确定和改变当前工作寄存器组如何确定和改变当前工作寄存器组?8. 89C51 P0口用作通用口用作通用/口输入时,若通过口输入时,若通过TTL“OC”门输入数门输入数据,应注意什么据,应注意什么?为什么为什么?9. 读端口锁存器和读端口锁存器和“读引脚读引脚”有何不同?各使用哪种指令?有何不同?各使用哪种指令?返回返回2.8 思考题与习题思考题与习题 10. 89C51 P0P3口结构有何不同口结构有何不同?用作通用用作通用/口输入数据时,口输入数据时,应注意什么应注意什么?11. 89C51单片机的信号有何功能单片机的信号有何功能?在使用在使用8031时,信号引时,信号引脚应如何处理脚应如何处理?12. 89C51单片机有哪些信号需要芯片引脚以第单片机有哪些信号需要芯片引脚以第2功能的方式提供功能的方式提供?13. 内部内部RAM低低128字节单元划分为哪字节单元划分为哪3个主要部分个主要部分?各部分主要功能各部分主要功能是什么是什么?14. 使单片机复位有几种方法使单片机复位有几种方法?复位后机器的初始状态如何复位后机器的初始状态如何?15. 开机复位后,开机复位后,CPU使用的是哪组工作寄存器使用的是哪组工作寄存器?它们的地址是什么它们的地址是什么?CPU如何确定和改变当前工作寄存器组如何确定和改变当前工作寄存器组?16. 程序状态寄存器程序状态寄存器PSW的作用是什么的作用是什么?常用标志有哪些位常用标志有哪些位?作用是作用是什么什么?返回返回2.8 思考题与习题思考题与习题 17. 位地址位地址7CH与字节地址与字节地址7CH如何区别如何区别?位地址位地址7CH具体在片内具体在片内RAM中的什么位置中的什么位置?18. 89C51单片机的时钟周期与振荡周期之间有什么关系单片机的时钟周期与振荡周期之间有什么关系?什么叫机什么叫机器周期和指令周期?器周期和指令周期?19. 一个机器周期的时序如何划分一个机器周期的时序如何划分?20. 什么叫堆栈什么叫堆栈?堆栈指针堆栈指针SP的作用是什么的作用是什么?89C51单片机堆栈的容量单片机堆栈的容量不能超过多少字节不能超过多少字节?21. 89C51有几种低功耗方式?如何实现?有几种低功耗方式?如何实现?22. PC与与DPTR各有哪些特点?有何异同?各有哪些特点?有何异同?23. 89C51端口锁存器的端口锁存器的“读读修改修改写写”操作与操作与“读引脚读引脚”操作有操作有何区别?何区别? 返回返回第二章结束第二章结束2.8 思考题与习题思考题与习题
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号