《第二章51单片机硬件系统课件》由会员分享,可在线阅读,更多相关《第二章51单片机硬件系统课件(153页珍藏版)》请在金锄头文库上搜索。
1、第二章第二章89C51单片机的结构和原理单片机的结构和原理42.189C51单片机的结构单片机的结构42.289C51单片机引脚及其功能单片机引脚及其功能42.389C51存储器配置存储器配置42.4CPU时序时序42.5复位及复位电路复位及复位电路42.6输出输出/输入端口结构输入端口结构学习要点:学习要点:本章主要讲述单片机的硬件结构。本章主要讲述单片机的硬件结构。通过学习本章内容要求掌握通过学习本章内容要求掌握89C51单片机单片机内部内部硬件组成硬件组成,管脚的定义、功能、作管脚的定义、功能、作用用;熟练掌握单片机各种;熟练掌握单片机各种存储器物理空存储器物理空间配置间配置及及内部特殊
2、功能寄存器的定义、内部特殊功能寄存器的定义、作用作用;掌握单片机的最小系统组成部分。;掌握单片机的最小系统组成部分。*重点与难点: 51单片机内部结构、存储空间、单片机内部结构、存储空间、I/O端口、时钟电路、复位电路。端口、时钟电路、复位电路。*2.12.189C5189C51单片机的结构单片机的结构:2.1.1 89C512.1.1 89C51单片机的基本组成单片机的基本组成*:2.1.2 89C512.1.2 89C51单片机内部结构单片机内部结构返回返回2.1.1 89CS512.1.1 89CS51单片机的基本组成单片机的基本组成一、组成一、组成*二、二、89C51系列单片机的性能系
3、列单片机的性能返回返回一、组成一、组成489C51单片机结构框图单片机结构框图 如图如图2-1所示所示*返回返回80518051单片机结构框图单片机结构框图外中断外中断内中断内中断控制控制并行口并行口串行通信串行通信外部时钟源外部时钟源外部事件计数外部事件计数返回返回*一、组成一、组成一个一个8位位 的微处理器的微处理器CPU。返回返回一、组成一、组成* 用以存放可以读用以存放可以读/写的数据,如运算的中间结写的数据,如运算的中间结果、最终结果以及欲显示的数据等。果、最终结果以及欲显示的数据等。+片内数据存储器片内数据存储器(RAM128B/256B):返回返回一、组成一、组成* 用以存放程序
4、、一些原始数据和表格。但用以存放程序、一些原始数据和表格。但有一些单片机内部不带有一些单片机内部不带ROM/EPROM,如,如8031、8032、80C31等。等。+片内程序存储器片内程序存储器ROM/EPROM (4KB/8KB):返回返回一、组成一、组成*每个口可以用作输入,也可以用作输出每个口可以用作输入,也可以用作输出。+四个四个8位并行位并行I/O(输入(输入/输出)接口输出)接口P0P3:返回返回一、组成一、组成* 每个定时每个定时/计数器都可以设置成计数方计数器都可以设置成计数方式,用以式,用以 对对 外部事件进行计数,也可以设外部事件进行计数,也可以设置成定时方式,并可以根据计
5、数或定时的置成定时方式,并可以根据计数或定时的结果结果 实现计算机控制。实现计算机控制。+两个或三个定时两个或三个定时/计数器计数器:返回返回一、组成一、组成* 可实现单片机与单片机或其它微机之可实现单片机与单片机或其它微机之间串行通信。间串行通信。+一个全双工一个全双工UART的串行的串行I/O口口:返回返回一、组成一、组成* 但需外接晶振和电容。但需外接晶振和电容。+片内振荡器和时钟产生电路片内振荡器和时钟产生电路:返回返回一、组成一、组成*+五个中断源的中断控制系统。五个中断源的中断控制系统。返回返回二、二、89C51系列单片机的性能系列单片机的性能4如如表表2-1所示。表中型号带所示。
6、表中型号带“C”表表示所用的是示所用的是CMOS工艺,具有功耗工艺,具有功耗低的优点。低的优点。*返回返回MCS-51系列单片机的性能表系列单片机的性能表返回返回2.1.2 89C51单片机内部结构单片机内部结构一、结构图一、结构图*二、结构组成二、结构组成返回返回一、结构图一、结构图由由 中央处理单元(中央处理单元(CPU)、)、存储器存储器(ROM及及RAM)和和I/O接口接口组成。组成。89C51单片机内部结构如单片机内部结构如 图图2-2所示所示。*ALUP0.0-P0.7P2.0-P2.7P3.0-P3.7P1.0-P1.7XTAL1 XTAL2PSENALEEARET8051805
7、180518051单片机单片机单片机单片机内部结构图内部结构图内部结构图内部结构图返回返回二、结构组成二、结构组成*(一)、中央处理单元(一)、中央处理单元(CPU)(二)、存储器(二)、存储器 (三)、(三)、I/O接口接口 返回返回(一)、中央处理单元(一)、中央处理单元(CPU)1运算器运算器*返回返回2控制器控制器1运算器运算器(1)8位的位的ALU:*返回返回(2)8位累加器位累加器ACC(A):):(3)8位程序状态寄存器位程序状态寄存器PSW:(4)8位寄存器位寄存器B:(5)布尔处理器:)布尔处理器:(6)2个个8位暂存器:位暂存器:1运算器运算器可对可对4 4位、位、8 8位
8、、位、1616位数据进行操作。位数据进行操作。*返回返回(1 1)8 8位的位的ALUALU:1运算器运算器(2)8位累加器位累加器ACC(A):):*它经常作为一个运算数经暂存器它经常作为一个运算数经暂存器2 2进入进入ALUALU的输入端,与另一个来自暂存器的输入端,与另一个来自暂存器1 1的运算数进行运算,运算结果又送回的运算数进行运算,运算结果又送回ACCACC。返回返回1运算器运算器* 指示指令执行后的状态信息供程指示指令执行后的状态信息供程序查询和判别用。序查询和判别用。(3)8位程序状态寄存器位程序状态寄存器PSW:返回返回1运算器运算器4(4)8位寄存器位寄存器B:* 在乘除运
9、算时,用来存放一个操作在乘除运算时,用来存放一个操作数也用来存放运算后的一部分结果;数也用来存放运算后的一部分结果;如不能做乘除运算时,作为通用寄存如不能做乘除运算时,作为通用寄存器。器。返回返回1运算器运算器(5)布尔处理器)布尔处理器:*专门用于处理位操作的,以专门用于处理位操作的,以PSWPSW中的中的C C为为其累加器。其累加器。返回返回1运算器运算器(6)2个个8位暂存器:位暂存器:*ALUALU的两个入口处。的两个入口处。返回返回2控制器控制器(1)程序计数器)程序计数器PC(16位)位)*(2)指令寄存器)指令寄存器IR及指令译码器及指令译码器ID(3)振荡器和定时电路)振荡器和
10、定时电路返回返回(1)程序计数器)程序计数器PC(16位)位)4由两个由两个8 8位计数器位计数器PCHPCH、PCLPCL组成。组成。4PCPC是程序的字节地址计数器,是程序的字节地址计数器,PCPC内内容为将要执行的指令地址。容为将要执行的指令地址。4改变改变PCPC内容,改变执行的流向。内容,改变执行的流向。4PCPC可对可对64KB64KB的的ROMROM直接寻址,也可对直接寻址,也可对80C5180C51片内片内RAMRAM寻址。寻址。*返回返回(2)指令寄存器)指令寄存器IR及指令译码器及指令译码器ID4由由PCPC中的内容指定中的内容指定ROMROM地址,取出来地址,取出来的指令
11、经的指令经IRIR送至送至IDID,由,由IDID对指令译对指令译码产生一定序列的控制信号,以执码产生一定序列的控制信号,以执行指令所规定的操作。行指令所规定的操作。*返回返回(3)振荡器和定时电路)振荡器和定时电路489C5189C51单片机片内有振荡电路,只需单片机片内有振荡电路,只需外接石英晶体和频率微调电容(外接石英晶体和频率微调电容(2 2个个30pF30pF左右),其频率范围为左右),其频率范围为1.2MHz1.2MHz12MHz12MHz。该信号作为。该信号作为89C5189C51工工作的基本节拍即时间的最小单位。作的基本节拍即时间的最小单位。*返回返回(二)、存储器(二)、存储
12、器1、程序存储器(、程序存储器(ROM)*2、数据存储器(、数据存储器(RAM)返回返回1、程序存储器(、程序存储器(ROM)289C5189C51、80518051及及87518751的片内的片内ROMROM容量为容量为4KB4KB。2地址从地址从0000H0000H开始。开始。2用于存放程序和表格常数。用于存放程序和表格常数。*返回返回2、数据存储器(、数据存储器(RAM)28051/8751/89C51RAM8051/8751/89C51RAM均为均为128B128B,地址为,地址为00H00H7FH7FH。2用于存放运算的中间结果、数据暂存以用于存放运算的中间结果、数据暂存以及数据缓冲
13、等。及数据缓冲等。2这这128B128B的的RAMRAM中有中有3232个字节单元可指定为个字节单元可指定为工作寄存器。工作寄存器。2片内还有片内还有2121个特殊功能寄存器(个特殊功能寄存器(SFRSFR),),它们同它们同128128字节字节RAMRAM统一编址,地址为统一编址,地址为80H80HFFHFFH。后面详细介绍。后面详细介绍。*返回返回(三)、(三)、I/O接口接口289C5189C51有四个有四个8 8位并行位并行I/OI/O接口接口P0P0P3P3。2它们都是双向端口,每个端口各有它们都是双向端口,每个端口各有8 8条条I/OI/O线。线。2P0-P3P0-P3口四个锁存器
14、同口四个锁存器同RAMRAM统一编址,统一编址,可作为可作为SFRSFR来寻址。来寻址。*返回返回2.2 89C51单片机引脚及其功能单片机引脚及其功能2.2.189C51单片机引脚单片机引脚*2.2.2 89C51单片机引脚功能单片机引脚功能返回返回2.2.1 89C51单片机引脚单片机引脚4MCS-51MCS-51系列如系列如80518051、87518751和和80318031均采用均采用4040引脚双列直插封装(引脚双列直插封装(DIPDIP)方式。因受)方式。因受到引脚数目的限制,有不少引脚具有第到引脚数目的限制,有不少引脚具有第二功能。二功能。489C5189C51单片机引脚与其相
15、同,如单片机引脚与其相同,如图图2-32-3所所示。示。*返回返回89C5189C51单片机引脚图单片机引脚图返回返回2.2.2 89C51单片机引脚功能单片机引脚功能4一、电源引脚:一、电源引脚:Vcc和和Vss4二、时钟电路引脚:二、时钟电路引脚:XTAL1和和XTAL24三、控制信号引脚三、控制信号引脚RST、ALE、PSEN和和 EA4四、四、I/O端口端口P0、P1、P2和和P3*返回返回一、电源引脚:一、电源引脚:Vcc和和Vss41 1Vcc(40Vcc(40脚脚) ):电源端,为:电源端,为+5V+5V。42 2Vss(20Vss(20脚脚) ):接地端。:接地端。*返回返回二
16、、时钟电路引脚:二、时钟电路引脚:XTAL1和和XTAL24XTAL2XTAL2(1818脚):接外部晶体和微调电容脚):接外部晶体和微调电容的一端;在的一端;在8051 8051 片内它是振荡电路反向片内它是振荡电路反向放大器的输出端,振荡电路的频率就是放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。时,该引脚输入外部时钟脉冲。8051/80318051/8031正常工作时,该引脚应有脉冲正常工作时,该引脚应有脉冲信号输出。信号输出。*返回返回二、时钟电路引脚:二、时钟电路引脚:XTAL1和和XTAL24XTA
17、L1XTAL1(1919脚):接外部晶体和微调脚):接外部晶体和微调电容的另一端;在片内它是振荡电电容的另一端;在片内它是振荡电路反向放大器的输入端,在采用外路反向放大器的输入端,在采用外部时钟时,该引脚接地。部时钟时,该引脚接地。*返回返回 三、控制信号引脚:三、控制信号引脚: RST、ALE、PSEN和和EA4RST/VRST/VPDPD(9 9脚):脚):RSTRST:复位信号输入端,高电平有效。:复位信号输入端,高电平有效。当此输入端保持两个机器周期的高电当此输入端保持两个机器周期的高电平时,就可以完成复位操作。平时,就可以完成复位操作。*返回返回 三、控制信号引脚:三、控制信号引脚:
18、RST、ALE、PSEN和和EA4RST/VRST/VPDPD(9 9脚):脚):V VPDPD :RSTRST引脚的第二功能,备用电源引脚的第二功能,备用电源输入端。当主电源输入端。当主电源Vcc Vcc 发生故障,降发生故障,降低到低电平规定值时,将低到低电平规定值时,将+5V+5V电源自动电源自动接入该引脚,为接入该引脚,为RAMRAM提供备用电源,以提供备用电源,以保证保证RAMRAM中的信息不丢失,使得复位后中的信息不丢失,使得复位后能继续正常运行。能继续正常运行。*返回返回三、控制信号引脚:三、控制信号引脚: RST、ALE、PSEN和和EA4ALE/PROG(30脚):ALEAL
19、E:地址锁存允许信号端。正常工作:地址锁存允许信号端。正常工作时,该引脚以振荡频率的时,该引脚以振荡频率的1/61/6固定输出固定输出正脉冲。正脉冲。CPUCPU访问片外存储器时,该引访问片外存储器时,该引脚输出信号作为锁存低脚输出信号作为锁存低8 8位地址的控制位地址的控制信号。它的负载能力为信号。它的负载能力为8 8个个LSLS型型TTLTTL负负载。载。*返回返回三、控制信号引脚:三、控制信号引脚:4ALE/PROG(30脚):PROGPROG:是对片内带有:是对片内带有4KB EPROM4KB EPROM的的87518751编程写入时的编程脉冲输入端。编程写入时的编程脉冲输入端。*返回
20、返回三、控制信号引脚:三、控制信号引脚:RST、ALE、PSEN和和EA4PSEN(29脚):程序存储器允许信号输出端。程序存储器允许信号输出端。在访问片外在访问片外ROMROM时,定时输出负脉冲作时,定时输出负脉冲作为读片外为读片外ROMROM的选通信号,接片外的选通信号,接片外ROMROM 的的OEOE端。端。它的负载能力为它的负载能力为8 8个个LSLS型型TTLTTL负载。负载。*返回返回三、控制信号引脚:三、控制信号引脚:4EA/Vpp(31脚):EAEA: 外部程序存储器地址允许输入端。外部程序存储器地址允许输入端。当该引脚接高电平时,当该引脚接高电平时,CPUCPU访问片内访问片
21、内EPROM/ROMEPROM/ROM并执行片内程序存储器中的指并执行片内程序存储器中的指令,但当令,但当PCPC值超过值超过0FFFH0FFFH(片内(片内ROMROM为为4KB4KB)时,将自动转向执行片外)时,将自动转向执行片外ROMROM中的程中的程序。序。当该引脚接低电平时,当该引脚接低电平时,CPUCPU只访问片外只访问片外EPROM/ROMEPROM/ROM并执行外部程序存储器中的程并执行外部程序存储器中的程序。序。*返回返回三、控制信号引脚:三、控制信号引脚:4EA/Vpppp(31脚):脚):V Vpppp:对:对89C5189C51片内片内EPROMEPROM固化编程时,固
22、化编程时,编程电压输入端(编程电压输入端(12-21V12-21V)。)。*返回返回 四、四、I/OI/O端口端口P0P0、P1P1、P2P2和和P3P341 1、准双向、准双向42 2、P0P0口口43 3、P1P1口口44 4、P2P2口口45 5、P3P3口口*返回返回1、准双向、准双向当当I/OI/O口作为输入时,应先向此口锁口作为输入时,应先向此口锁存器写入全存器写入全1 1, 此时该口引脚浮空,此时该口引脚浮空,可作高阻抗输入。可作高阻抗输入。*返回返回2、P0口:口:漏极开路的漏极开路的8 8位准双向位准双向I/OI/O口,每位口,每位能驱动能驱动8 8个个LSLS型型TTLTT
23、L负载。负载。P0P0口可作为一个数据输入口可作为一个数据输入/ /输出口;输出口;在在CPUCPU访问片外存储器时,访问片外存储器时,P0P0口为分口为分时复用的低时复用的低8 8位地址总线和位地址总线和8 8位数据位数据总线。总线。*返回返回 3、P1口:口:带带内内部部上上拉拉电电阻阻的的8位位准准双双向向I/O端端口,每位能驱动口,每位能驱动4个个LS型型TTL负载。负载。*返回返回 4、P2口:口:P2口口:带带内内部部上上拉拉电电阻阻的的8位位准准双双向向I/O端端口口,每每位位能能驱驱动动4个个LS型型TTL负负载载。在在CPU访访问问片片外外存存储储器器时时,它输出高它输出高8
24、位地址位地址。*返回返回 5、P3口:口:带内部上拉电阻的带内部上拉电阻的8 8位准双向位准双向I/OI/O端端口,每位能驱动口,每位能驱动4 4个个LSLS型型TTLTTL负载。负载。P3P3口除作为一般口除作为一般I/OI/O口外,每个引脚口外,每个引脚都有第二功能。都有第二功能。*返回返回2.389C51存储器配置存储器配置:2.3.12.3.189C5189C51存储器分类存储器分类:2.3.22.3.2程序存储器地址空间程序存储器地址空间:2.3.32.3.3数据存储器地址空间数据存储器地址空间*返回返回2.3.1 89CC12.3.1 89CC1存储器分类存储器分类一、物理结构(哈
25、佛结构)一、物理结构(哈佛结构)二、用户角度二、用户角度*返回返回一、物理结构(哈佛结构)一、物理结构(哈佛结构)*返回返回二、用户角度二、用户角度*返回返回图2-4 89C51存储器配置二、用户角度二、用户角度41、片片内内、外外统统一一编编址址的的64K程程序序存存储储器器地地址址空空间间。CPU访访问问片片内内、片片外外ROM指指令用令用MOVC。*返回返回二、用户角度二、用户角度42、64K的的片片外外数数据据存存储储器器地地址址空空间间。访访问片外问片外RAM指令用指令用MOVX。*返回返回二、用户角度二、用户角度43、256字字节节的的片片内内数数据据存存储储器器地地址址空空间间。
26、访问片内访问片内RAM指令用指令用MOV。 上上述述三三个个存存储储空空间间地地址址是是重重叠叠的的,89C51的的指指令令系系统统采采用用不不同同的的数数据据传传送送指指令符号。令符号。*返回返回2.3.2 2.3.2 程序存储器地址空间程序存储器地址空间4一、用途:一、用途:4二、编址:二、编址:4三、寻址方式:三、寻址方式:*返回返回一、用途:一、用途:4用于存放编好的程序和表格常数。用于存放编好的程序和表格常数。*返回返回二、编址:二、编址:480C51/8751片内片内ROM/EPROM的容的容量为量为4KB。地址为。地址为0000H0FFFH。4片外最多可扩至片外最多可扩至64KB
27、 ROM/EPROM,地址为,地址为1000HFFFFH。4片内外统一编址。片内外统一编址。*返回返回三、寻址方式:三、寻址方式:41、当、当 EA=“1”时:时:80C5180C51的的PCPC在在000000000FFFH0FFFH范围内执行范围内执行片内片内ROMROM中的程序,当指令地址超过中的程序,当指令地址超过0FFFH 0FFFH 后就自动转向片外后就自动转向片外ROMROM中取指令。中取指令。*返回返回三、寻址方式:三、寻址方式:42、当、当 EA=”0”时:时:80518051片内片内ROMROM不起作用,不起作用,CPUCPU只能从片只能从片ROM/EPROMROM/EPR
28、OM中取指令。可以从中取指令。可以从 0000H0000H 开开始寻址。由于始寻址。由于80318031片内不带片内不带ROMROM ,所以,所以使用时必须使用时必须 EAEA= =”0 0”。*返回返回三、寻址方式:三、寻址方式:43、8051从片内从片内ROM和片外和片外ROM取取指的速度相同。指的速度相同。*返回返回三、寻址方式:三、寻址方式:44、程序存储器的保留存储单元。、程序存储器的保留存储单元。如表如表2-22-2所示。所示。 *返回返回三、寻址方式:三、寻址方式:(1 1)0000H0000H0002H0002H三个单元:三个单元:用作用作80518051上电复位后引导程序的存
29、放单元。上电复位后引导程序的存放单元。因为复位后因为复位后PCPC的内容为的内容为0000H0000H,CPUCPU总是从总是从0000H0000H开始执行程序。将转移指令存放到这开始执行程序。将转移指令存放到这三个单元,程序就被引导到指定的程序存储三个单元,程序就被引导到指定的程序存储器空间去执行。器空间去执行。*返回返回三、寻址方式:三、寻址方式:(2 2)0003H0003H002AH002AH单元:单元:均分为五段,用作五个中断服务程均分为五段,用作五个中断服务程序的入口。中断矢量地址表序的入口。中断矢量地址表*返回返回40003H000AH 外部中断0中断地址区4000BH0012H
30、 定时/计数器0中断地址区40013H001AH 外部中断1中断地址区4001BH0022H 定时/计数器1中断地址区40023H002AH 串行中断地址区*2.3.3 数据存储器地址空间数据存储器地址空间4一、用途:一、用途:4二、片外二、片外RAM: 4三、片内三、片内RAM: *返回返回一、用途:一、用途:4用于存放运算的中间结果、数据暂存和用于存放运算的中间结果、数据暂存和缓冲、标志位等。缓冲、标志位等。*返回返回二、片外二、片外RAM:4地址:地址:0000HFFFFH 4寻址:用寻址:用MOVX指令指令*返回返回三、片内三、片内RAM: 4片内数据存储器最大可寻址256个单元, 分
31、为两部分: 低128字节(00H7FH)是真正的RAM区; 高128字节(80HFFH)为 (SFR)区。4高128字节和低128字节RAM中的配置及含义如图28和图29所示。*返回返回* *79图28 低128字节RAM区图29 高128字节RAM区(SFR区,特殊功能寄存器区)低低128字节字节RAM41、89C51的32个工作寄存器与RAM安排在同一个队列空间里,统一编址并使用同样的寻址方式(直接寻址和间接寻址)。42、00H1FH地址安排为4组工作寄存器区,每组有8个工作寄存器(R0R7),共占32个单元。43、工作寄存器区后的16字节单元(20H2FH),可用位寻址方式访问其各位。*
32、l位寻址区(20H2FH) 这16个RAM单元具有双重功能。即可按字节存取,也可以对每个单元的任何一位位寻址。用作位寻址时,共有168128位,位地址为00H7FH。 如,欲把2FH单元中最高位置位成1,可使用如下位置位指令: SETB 7FH 图 2.10 RAM中的位寻址区地址表 高128字节RAM特殊功能寄存器(SFR)489C51片内高128字节RAM中,有21个特殊功能寄存器(SFR),它们离散地分布在80HFFH的RAM空间中。访问特殊功能寄存器只允许使用直接寻址方式。4这些特殊功能寄存器见图29。各SFR的名称及含义如表25所列。*84(1) 累加器ACC(E0H)4累加器ACC
33、是89C51最常用、最忙碌的8位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算中间结果也存放于ACC。在指令系统中用A作为累加器ACC的助记符。*85(2) 寄存器B(F0H)4在乘、除指令中,用到了8位寄存器B。乘法指令的两个操作数分别取自A和B,乘积存于B和A两个8位寄存器中。除法指令中,A中存放被除数,B中放除数,商存放于A,B中存放余数。4在其他指令中,B可作为一般通用寄存器或一个RAM单元使用。*86(3) 程序状态寄存器PSW(D0H)4PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。各位的含义及其格式如表26所列。4PSW除有确定
34、的字节地址(D0H)外,每一位均有位地址,见表26。CyACF0RS1RS0OVPD7 D6 D5 D4 D3 D2 D1 D088(4) 栈指针SP(81H)4堆栈指针SP为8位特殊功能寄存器,SP的内容可指向89C51片内00H7FH RAM的任何单元。系统复位后,SP初始化为07H,即指向07H的RAM单元。l 堆栈或数据缓冲区(30H7FH) 共80个RAM单元,用于存放用户数据或作堆栈。按字节存取。 堆栈指针SP初始值为07H,一般在程序初始化时应对SP设一初值。MCS51单片机堆栈 为了不影响工作寄存器的数据,一般在程序初始化时应对SP设一初值,如30H,或6FH90489C51在
35、片内RAM中专门开辟出来一个区域,数据的存取是以“后进先出”的结构方式处理的,好像冲锋枪压入子弹。这种数据结构方式对于处理中断,调用子程序都非常方便。4堆栈的操作有两种: 一种叫数据压入(PUSH),另一种叫数据弹出(POP)。489C51的堆栈指针SP是一个双向计数器。进栈时,SP内容自动增值,出栈时自动减值。存取信息必须按“后进先出”或“先进后出”的规则进行。图211 堆栈的压入与弹出92(5) 数据指针DPTR(83H,82H)4DPTR是一个16位的特殊功能寄存器,其高位字节寄存器用DPH表示(地址83H),低位字节寄存器用DPL表示(地址82H)。DPTR既可以作为一个16位寄存器来
36、处理,也可以作为两个独立的8位寄存器DPH和DPL使用。4DPTR主要用于存放16位地址,以便对64 KB片外RAM作间接寻址。*93(6) /端口P0P3(80H,90H,A0H,B0H)4P0P3为4个8位特殊功能寄存器,分别是4个并行/端口的锁存器。它们都有字节地址,每一个口锁存器还有位地址,每一条/线均可独立用作输入或输出。4用作输出时,可以锁存数据;用作输入时,数据可以缓冲。4图2-12所示为各个SFR所在的字节地址位置。空格部分为未来设计新型芯片可定义的SFR位置。*94图图2-12 特殊功能寄存器特殊功能寄存器SFR的位置的位置2.4CPU时序时序2.4.1片内振荡器及时钟信号的
37、产生片内振荡器及时钟信号的产生*返回返回2.4.2机器周期和指令周期机器周期和指令周期2.4.3CPU取指、执行周期时序取指、执行周期时序2.4.1片内振荡器及时钟信号的产生片内振荡器及时钟信号的产生*1、内部时钟电路:、内部时钟电路:如图如图2-132、外部时钟电路:、外部时钟电路:如如图图2-143、8051的片内振荡器及时钟发生器的片内振荡器及时钟发生器: D:/%E8%AF%BE%E5%BB%BA/%E5%9B%BE2-9%208051%E7%9A%84%E7%89%87%E5%86%85%E6%8C%AF%E8%8D%A1%E5%99%A8%E5%8F%8A%E6%97%B6%E9%
38、92%9F%E5%8F%91%E7%94%9F%E5%99%A8.exe15返回返回2-13内部时钟电路 2-14外部时钟电路* XTAL2 XTAL1MCS-51C1C2CYS XTAL2 XTAL1MCS-51+5VVSSTTL外部时钟源*982.4.1 片内时钟信号的产生片内时钟信号的产生u89C51芯芯片片内内部部有有一一个个高高增增益益反反相相放放大大器器,用用于于构构成成振荡器。振荡器。u构构成成稳稳定定的的自自激激振振荡荡器器:两两端端跨跨接接石石英英晶晶体体及及两两个个电电容容。电电容容器器C1和和C2通通常常取取30pF左左右右,可可稳稳定定频频率率并并对振荡频率有微调作用。
39、对振荡频率有微调作用。u振荡脉冲频率范围为振荡脉冲频率范围为fOSC=024 MHz。如图如图2-15 示。示。返回返回*99图图2-15 89C51的片内振荡器及时钟发生器的片内振荡器及时钟发生器*100 节拍与状态周期4时钟发生器是一个2分频的触发器电路,向CPU提供两相时钟信号P1和P2。时钟信号的周期称为机器状态周期S(STATE),是振荡周期的2倍。在每个时钟周期(即机器状态周期S)的前半周期,相位1(P1)信号有效,在每个时钟周期的后半周期,相位2(P2,节拍2)信号有效。4每个时钟周期(以后常称状态S)有两个节拍(相)P1和P2,CPU就以两相时钟P1和P2为基本节拍指挥89C5
40、1单片机各个部件协调地工作。2.4.2 机器周期和指令周期机器周期和指令周期二、指令周期:二、指令周期:*一、机器周期:一、机器周期:返回返回周期指令的CPU 时序*P1P2S1振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P24一个机器周期是指一个机器周期是指CPU访问存储器一次所访问存储器一次所需的时间。需的时间。例如,取指令、读存储器、写例如,取指令、读存储器、写存储器等等。存储器等等。4一个机器周期包括一个机器周期包括12个振荡周期,分为个振荡周
41、期,分为6个个S状态:状态:S1S6。4每个状态又分为两拍,称为每个状态又分为两拍,称为P1和和P2。4因此,一个机器周期中的因此,一个机器周期中的12个振荡周期表个振荡周期表示为示为S1P1,S1P2,S2P1,S6P1,S6P2。4若采用6MHz晶体振荡器,则每个机器周期为2s(微秒)机机器器周周期期如图所示如图所示返返回回4指令周期:执行一条指令所需的指令周期:执行一条指令所需的时间。时间。4每条指令由一个或若干个字节组每条指令由一个或若干个字节组成。成。有单字节指令,双字节指令,有单字节指令,双字节指令,多字节指令等。字节数少则占存储器多字节指令等。字节数少则占存储器空间少空间少。4每
42、条指令的指令周期都由一个或每条指令的指令周期都由一个或几个几个机器周期机器周期组成。组成。有单周期指有单周期指令、双周期指令、和四周期指令。令、双周期指令、和四周期指令。机器周期数少则执行速度快。机器周期数少则执行速度快。指指令令周周期期返返回回*105综上所述,89C51单片机的基本时序定时单位有如下4个:4振荡周期: 晶振的振荡周期,为最小的时序单位。4状态周期: 振荡频率经单片机内的二分频器分频后提供给片内CPU的时钟周期。因此,一个状态周期包含2个振荡周期。4机器周期(MC): 1个机器周期由6个状态周期即12个振荡周期组成,是计算机执行一种基本操作的时间单位。4指令周期: 执行一条指
43、令所需的时间。一个指令周期由14个机器周期组成,依据指令不同而不同,见附录A。*1062.4.2 CPU取指、执行周期时序取指、执行周期时序4每条指令的执行都可以包括取指和执指两个阶段。每条指令的执行都可以包括取指和执指两个阶段。4在取指阶段,在取指阶段,CPUCPU从内部或外部从内部或外部ROMROM中取出指令操中取出指令操作码及操作数,然后再执行这条指令。作码及操作数,然后再执行这条指令。4单字节和双字节的指令都可能是单机器周期或双单字节和双字节的指令都可能是单机器周期或双周期,而三字节指令都是双周期的,只有乘、除周期,而三字节指令都是双周期的,只有乘、除指令占四周期。因此,执行一条指令的
44、时间(指指令占四周期。因此,执行一条指令的时间(指令周期)分别是令周期)分别是2s2s,4s4s和和8s8s。4如如 图图2-16所示所示返回返回*107图图216 89C51单片机的取指单片机的取指/执行时序执行时序2.5复位及复位电路复位及复位电路42.5.1复位操作复位操作42.5.2复位信号及其产生复位信号及其产生42.5.3复位电路复位电路*返回返回2.5.1 复位操作复位操作一、复位是单片机的初始化操作。一、复位是单片机的初始化操作。二、主要功能:二、主要功能: 三、寄存器的复位状态:三、寄存器的复位状态:*返回返回复位操作主要功能复位操作主要功能4PC初始化为初始化为0000H,
45、使单片机从,使单片机从0000H单元开始执行程序单元开始执行程序4当由于程序运行出错或操作错误使系统当由于程序运行出错或操作错误使系统死锁状态时,为摆脱困境,也需要按复死锁状态时,为摆脱困境,也需要按复位键重新启动。位键重新启动。*返回返回寄存器的复位状态寄存器的复位状态*返回返回2.5.2 复位信号及其产生复位信号及其产生一、复位信号:一、复位信号:RST引脚为复位信号输入端。引脚为复位信号输入端。当当RST引脚为高电平,且有效时间持续引脚为高电平,且有效时间持续24个个振荡周期以上,才能复位。振荡周期以上,才能复位。二、产生复位信号的电路逻辑图:二、产生复位信号的电路逻辑图:如如图图2-1
46、7所示。所示。*返回返回 图图 2-17复位电路逻辑图复位电路逻辑图*返回返回 复位电路复位电路施密特触发器施密特触发器片内片内RAMRST/VPDVCCVSSD1D22.5.3复位电路复位电路一、上电自动复位:一、上电自动复位:是通过外部复位电路的电容充电实现。是通过外部复位电路的电容充电实现。如如图图2-18(a)所示。所示。二、按键手动复位:二、按键手动复位:按键电平复位方式:按键电平复位方式:如如图图2-18(b)所示。所示。按键脉冲复位方式:如按键脉冲复位方式:如图图2-18(c)所示。所示。*返回返回图图 2-18 (a) 上电复位电路上电复位电路只要只要Vcc的上升时间的上升时间
47、不超过不超过1ms,就自动,就自动上电复位,即接通上电复位,即接通电源就完成了系统电源就完成了系统复位。复位。*返回返回VCCCRVCCRST/VPDVSS1K 22F8051图图 2-18 (b) 按键电平复位电路按键电平复位电路通过使复位端经电阻与VCC电源接通而实现。*VCCCR2VCCRST/VPDVSS1K22F8051R1200RESET返回返回图图 2-18 (c) 按键脉冲复位电路按键脉冲复位电路利用RC微分电路产生的正脉冲来实现复位。*VCCC1R2VCCRST/VPDVSS1K22F8051R11kRESET22FC2返回返回2.6输出输出/输入端口结构输入端口结构2.6.
48、1 I/O端口概述端口概述2.6.2 P0口口2.6.3 P1口口2.6.4 P2口口2.6.5 P3口口2.6.6 端口的负载能力和接口要求端口的负载能力和接口要求*返回返回2.6.1 I/O端口概述端口概述18051单单片片机机有有四四个个8位位并并行行I/O端端口口:P0、P1、P2和和P3。2每个端口都是每个端口都是8位准双向口,共占位准双向口,共占32根引脚。根引脚。3每一条每一条I/O线都能独立地用作输入或输出。线都能独立地用作输入或输出。4每每个个端端口口都都包包括括一一个个锁锁存存器器(即即特特殊殊功功能能寄寄存存器器P0P3),一一个个输输出出驱驱动动器器和和输输入入缓缓冲冲
49、器器,作作输输出出是是数数据据可可以以锁锁存存,作作输输入入时时数数据据可可以以缓缓冲。冲。*返回返回2.6.2 P0口口一、结构一、结构二、二、P0口作为一般口作为一般I/O口使用口使用三、三、P0口作为地址口作为地址/数据总线使用数据总线使用*返回返回一、结构一、结构P0口某位的结构由一个输出锁存器个输出锁存器、二个三态二个三态输入缓冲器输入缓冲器和输出驱动电路输出驱动电路及控制电路控制电路组成。如图2-19所示。当C=0时,开关MUX被控为如图示位置,P0口为通用I/O口;当C=1时,开关拨向反相器3的输出端,P0口分时作为地址/数据总线使用。*返回返回功能:4双向三态口,可用于数据的输
50、入输出。4在系统扩展时,还作为低8位地址线和数据总线的分时复用口。4P0端口8位中的一位结构图如下图。*图图2-19 P0口某位的结构图口某位的结构图当C=0时,开关MUX被控为如图示位置,P0口为通用I/O口;当C=1时,开关拨向反相器3的输出端,P0口分时作为地址/数据总线使用。返回返回读引脚读引脚读锁存器读锁存器内部总线内部总线写入写入DCPQQ地址地址/数据数据控制控制CMUXVCCT1T2P0.X4312锁存器锁存器二、二、P0口作为一般口作为一般I/O口使用口使用1、P0口用作输出口口用作输出口2、P0口作输入口口作输入口*返回返回1、P0口用作输出口口用作输出口4当CPU执行输出
51、指令时,写脉冲加在D锁存 器的CP上,这样,与内部总线相连的D端的数据 取 反 后 就 出 现 在 Q端 上 , 又 经 输 出 级FET(T2)反相,在P0端口上出现的数据正好是内部总线的数据。这是一般的数据输出情况。*返回返回2、P0口作输入口口作输入口4当执行一条由端口输入的指令时,当执行一条由端口输入的指令时,“读引脚读引脚”脉冲把三态缓冲器脉冲把三态缓冲器2打开,这样,端口上的数据打开,这样,端口上的数据经过缓冲器经过缓冲器2读入到内部总线。读入到内部总线。4在在端端口口进进行行输输入入操操作作前前,应应先先向向端端口口锁锁存存器器写写入入1,也也就就是是使使锁锁存存器器Q=0。因因
52、为为控控制制线线C=0,因因此此T1和和T2全全截截止止,引引脚脚处处于于悬悬浮浮状状态态,可可作作高高阻阻抗输入。抗输入。*返回返回三、三、P0口作为地址口作为地址/数据总线使用数据总线使用1P0口用作输出地址口用作输出地址/数据总线数据总线以P0口引脚输出低8位地址或数据信息,MUX开关把CPU内部地址/数据线经反向器3与驱动场效应管FET(T2)栅极接通。上下两个FET处于反相,构成推拉式的输出电路(T1导通时上拉,T2导通时下拉),提高了负载能力。当P0口被地址/数据总线占用时,就无法再作I/O口使用了。*返回返回三、三、P0口作为地址口作为地址/数据总线使用数据总线使用2由由P0口输
53、入数据:口输入数据:在“读引脚”信号有效时,打开输入缓冲器2,使数据进入内部总线。*返回返回2.6.3 P1口口一、一、P1口结构口结构二、二、P1口用作通用口用作通用I/O*返回返回2.6.3 P1口口一、一、P1口结构:口结构:其电路结构见图2-20,输出驱动部分与P0口不同,内部有上拉负载电阻与电源相连。实质上,电阻是两个场效应管FET并在一起:一个FET为负载管,其电阻固定。另一个FET可工作在导通或截止两种状态,使其总电阻值变化近似为0或阻值很大两种情况。当阻值近似为0时,可将引脚快速上拉至高电平;当阻值很大时,P1口为高阻输入状态。*返回返回图图2-20 P1口某位的结构图口某位的
54、结构图*返回返回读引脚读引脚读锁存器读锁存器内部总线内部总线写入写入DCPQQVCCP1.X12锁存器锁存器2.6.3 P1口口二、二、P1口用作通用口用作通用I/OP1口也是一个准双向口。在端口用作输入时,也必须先向对应的锁存器写入1,使FET截止。当P1口输出高电平时,能向外提供拉电流负载,所以不必再接上拉电阻。*返回返回2.6.4 P2口口一、一、P2口结构口结构二、二、P2口用作一般口用作一般I/O口口三、三、P2口用作高口用作高8位地址总线位地址总线*返回返回一、一、P2口结构口结构如图2-21所示,P2口某位的结构与P0口类似,有MUX开关。驱动部分与P1口类似,但比P1口多了一个
55、转换控制部分。*返回返回图图2-21 P2口某位的结构图口某位的结构图*返回返回读引脚读引脚读锁存器读锁存器内部总线内部总线写入写入DCPQQ地址地址/数据数据控制控制CMUXVCCP2.X锁存器锁存器二、二、P2口用作一般口用作一般I/O口口1、当CPU对片内存储器和I/O口进行读/写(执行MOV 指令或EA=1时,执行MOVC指令)时,由内部硬件自动使开关MUX倒向锁存器的Q端,这时,P2口为一般I/O口。*返回返回二、二、P2口用作一般口用作一般I/O口口2、在只需扩展256B片外RAM的系统中,使用“MOVX A, Ri”类指令访问片外RAM时,寻址范围是256B,只需低8位地址线就可
56、以实现。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口。*返回返回三、三、P2口用作高口用作高8位地址总线位地址总线当CPU对片外存储器或I/O口进行读/写(执行MOVX指令或EA=0时执行MOVC指令)时,开
57、关倒向地址线(右)端,这时,P2口只输出高8位地址。因为访问片外EPROM和RAM的操作往往接连不断,所以,P2口要不断送出高8位地址,此时P2口无法再用作通用I/O口。*返回返回2.6.5 P3口口一、结构一、结构二、P3口作为通用口作为通用I/O口使用口使用三、三、P3口用作第二功能使用口用作第二功能使用*返回返回一、结构一、结构1、P3口是一个多功能端口,其某一位的结构见图2-16。P3口与P1口的差别在于多了“与非”门3和缓冲器4。使得P3口除了具有P1口的准双向I/O功能外,还可以使用各引脚所具有的第二功能。2、“与非”门3的作用实际上是一个开关,决定是输出锁存器上的数据还是输出第二
58、功能(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口某位的结构图口某位的结构图读引脚读引脚读锁存器读锁存器内部总线内部总线写入写入DCPQ第二输出功能第二输出功能VCCP3.X312锁存器锁存器4第二输入功能第二输入功能W返回返回二、P3口作
59、为通用口作为通用I/O口使用口使用1、当把P3口作为通用I/O口进行SFR寻址时“第二输出功能端”W保持高电平,打开“与非”门3,D锁存器输出端Q的状态可通过“与非”门3送至FET场效应管输出。 2、当P3口作为输入使用(即CPU读引脚状态)时,同P0P2口一样应由软件向口锁存器写1。*返回返回三、三、P3口用作第二功能使用口用作第二功能使用 当端口用于第二功能时,8个引脚可按位独立定义。见下表*返回返回 P3口线与第二功能表口线与第二功能表*返回返回2.6.6 端口的负载能力和接口要求端口的负载能力和接口要求1、P0口:口:3 当把它用作通用当把它用作通用I/O口使用时(口使用时(8051/
60、8751情况),情况),用其输出去驱动用其输出去驱动NMOS输入时需外接上拉电阻。用输入时需外接上拉电阻。用作输入时,应先向口锁存器(作输入时,应先向口锁存器(80H)写)写1。把它当。把它当作地址作地址/数据总线时(数据总线时(8031情况),则无需外接上情况),则无需外接上拉电阻。用作数据输入时,也无需先写拉电阻。用作数据输入时,也无需先写“1”。P0口的每一位输出可驱动口的每一位输出可驱动8个个LS型型TTL负载。负载。*返回返回2.6.6 端口的负载能力和接口要求端口的负载能力和接口要求2、P1-P3口口2每一位输出可驱动每一位输出可驱动4个个LS型型TTL负载。负载。 2 8051单
61、片机(单片机(HMOS)的)的P1-P3口无需外接口无需外接上拉电阻。上拉电阻。2 80C51单片机(单片机(CHMOS),作输出口时应),作输出口时应在端口与晶体管基极间串联一个电阻。在端口与晶体管基极间串联一个电阻。2P1-P3口也都是准双向口。作为输入时,必口也都是准双向口。作为输入时,必须先对相应端口锁存器写须先对相应端口锁存器写1。 *返回返回 2.6.7 接口的操作接口的操作方式方式 89C51的4个I/O端口有三种操作方式: 输出数据方式 读端口数据(读锁存器)方式 读端口引脚方式 数据输出方式数据输出方式: 在这种方式下,CPU通过一条数据操作指令可以把输出数据写入P0P3的端
62、口锁存器,然后由端口自动从端口引脚线上输出。 MOV P0,A ;累加器A中内容送P0口* 当CPU执行读改写指令(以端口为目的操作数的ANL、ORL、XRL、DEC、INC SETB、CLR等)时,产生读锁存信号,此时是先读锁存器的状态,在修改之后,送回锁存器保存。 ORL P0,#data ;P0data送P0口读端口数据方式(读锁存器):读端口数据方式(读锁存器):读引脚方式:读引脚方式: 从端口引脚线上读入信息,这是真正的从外部输入数据的操作。在这种方式下,必须使用两条连续指令。在输入数据前,应人为先向P0-P3口写1,使V1、V2均截止,再读入。 MOV P1,#FFH MOV A,P1 *习题及思考题:4P47 作业题:作业题:6、7、13、184 思考题:思考题:2、3、15、16、17、 20*