资源描述
,单片机原理及接口技术,单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单片机原理及接口技术,单击以编辑,母版标题样式,单击以编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,2.1,89C51,单片机芯片内部结构及特点,2.2,89C51,单片机引脚及其功能,2.3,89C51,单片机存储器配置,2.4,时钟电路及,89C51CPU,时序,2.5,复位操作,2.6,89C51,单片机的低功耗工作方式,返回,第,2,章,89C51,单片机的结构和原理,2.7,输出,/,输入端口结构,11/25/2024,2.1,89C51,单片机芯片内部结构及特点,2.1.1,89C51,单片机的,基本组成,2.1.2,89C51,单片机芯片,内部结构,返回,11/25/2024,2.1.1,89C51,单片机的基本组成,一、组成,二、,89C51,系列单片机的性能,返回,11/25/2024,一、组成,89C51,单片机结构框图,:,P18,图,2-1,返回,11/25/2024,89C51,单片机结构框图,89C51,CPU,振荡器和,时序,OSC,64KB,总线,扩展控制器,数据,存储器,256B,RAM/SFR,216,位,定时器,/,计数器,可编程,I/O,程序,存储器,4KB FLASH,ROM,可编程全双工,串行口,外中断,内中断,控制,并行口,串行通信,外部时钟源,外部事件计数,11/25/2024,一、组成,1,、一个,8,位的,微处理器,CPU,。,返回,用以存放可以读,/,写的数据,如运算的中间结果、,最终结果以及欲显示的数据等。,2,、片内,数据,存储器(,RAM 256B,),:,用以存放程序、一些原始数据和表格。,3,、片内,程序,存储器(,Flash ROM 4KB,),:,4,、四个,8,位,并行,I/O,(,输入,/,输出),接口,P0P3:,每个口可以用作输入,也可以用作输出。,11/25/2024,返回,每个定时,/,计数器都可以设置成,计数,方式,用以 对外部事件进行计数,也可以设置成,定时,方式,并可以根据计数或定时的结果实现计算机,控制,。,5,、两个,16,位的,定时,/,计数器,:,可实现单片机与单片机或其它微机之间串行通信。,6,、一个全双工,UART,的,串行,I/O,口,:,11/25/2024,返回,但需外接石英晶体和微调电容。,7,、片内振荡器和时钟产生电路,:,8,、五个中断源、两个优先级的,中断控制系统,。,9,、具有节电工作方式:即休闲方式及掉电方式。,以上各个部分通过片内,8,位,数据总线,(DBUS),相连接。,11/25/2024,二、,89C51,的两种省电方式,89C51,单片机与,8051,相比,具有,节电工作方式,,即休闲方式及掉电方式。,返回,11/25/2024,另外,89C51,是用静态逻辑来设计的,其工作频率可下降到,0 Hz,,并提供,两种,可用软件来选择的,省电方式,空闲方式(,Idle Mode),和掉电方式(,Power Down Mode,)。在,空闲方式,中,,CPU,停止工作,而,RAM,、定时器,/,计数器、串行口和中断系统都继续工作。此时的电流可降到大约为正常工作方式的,15%,。在,掉电方式,中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内,RAM,中的内容,直到下一次硬件复位为止。这种方式下的电流可降到,15 A,以下,最小可降到,0.6 A,。,返回,11/25/2024,89C51,单片机还有一种,低电压的型号,,即,89LV51,,除了电压范围有区别之外,其余特性与,89C51,完全一致。,89C51/LV51,是一种,低功耗,/,低电压、高性能,的,8,位,单片机。它采用了,CMOS,工艺和高密度非易失性存储器(,NURAM,)技术,而且其输出引脚和指令系统都与,MCS51,兼容;片内的,Flash ROM,允许在系统内改编程序或用常规的非易失性存储器编程器来编程。因此,89C51/LV51,是一种,功能强、灵活性高,且价格合理的单片机,可方便地应用在各种控制领域。,返回,11/25/2024,2.1.2,89C51,单片机芯片内部结构,一、结构图,:,二、结构组成,返回,11/25/2024,一、结构图:,P19,图,2-2,由,中央处理单元,(,CPU,),(运算器、控制器)、,存储器,(,ROM,及,RAM,)、,I/O,接口,组成。,返回,11/25/2024,XTAL1 XTAL2,P0,驱动器,P2,驱动器,P0,锁存器,P2,锁存器,RAM,地址存储器,128B,RAM,4KBROM,B,寄存器,暂存器,1,暂存器,2,ACC,SP,程序地址寄存器,缓冲器,PC,增,1,PC,DPTR,中断、串行口和定时器,PSW,P1,锁存器,P1,驱动器,P3,锁存器,P3,驱动器,定时控制,指令寄存器,指令译码器,OSC,ALU,P0.0-P0.7,P2.0-P2.7,P3.0-P3.7,P1.0-P1.7,PSEN,ALE,EA,RESET,89C51,单片机,内部结构图,运算器,控制器,存储器,I/O,接口,11/25/2024,二、结构组成,(一)中央处理单元(,CPU,),(二)存储器,(三),I/O,接口,返回,11/25/2024,1,、中央处理单元(,89C51CPU,),1,)运算器,返回,2,)控制器,11/25/2024,1,)运算器,(,1,),8,位的,ALU,:,返回,(,2,),8,位累加器,ACC,(,A,):,(,3,),8,位程序状态字寄存器,PSW,:,(,4,),8,位寄存器,B,:,(,5,),布尔处理器:,(,6,),2,个,8,位暂存器:,11/25/2024,1,)运算器,可对,4,位、,8,位、,16,位数据进行操作。,返回,(,1,),8,位的,ALU,:,(,2,),8,位累加器,ACC,(,A,):,它经常作为一个运算数经暂存器,2,进入,ALU,的输入端,与另一个来自暂存器,1,的运算数进行运算,运算结果又送回,ACC,。,11/25/2024,指示指令执行后的,状态信息,供程序查询和判别用。,(,3,),8,位程序状态寄存器,PSW,:,返回,(,4,),8,位寄存器,B,:,在,乘除运算,时,用来存放一个,操作数,,也用来存放运算后的一,部分结果,;,如,不做乘除运算,时,作为,通用寄存器,。,11/25/2024,(,5,)布尔处理器:,专门用于处理,位操作,的,,以,PSW,中的,C,为其累加器。,返回,(,6,),2,个,8,位暂存器,:,ALU,的两个入口处。,11/25/2024,2,)控制器,(,1,)程序计数器,PC,(,16,位),(,2,)指令寄存器,IR,、指令译码器,ID,(,3,)振荡器和定时电路,返回,11/25/2024,(,1,)程序计数器,PC,(,16,位),由两个,8,位计数器,PCH,、,PCL,组成。,PC,是,程序的字节地址计数器,,,PC,内容为将要执行的下一条指令地址。,改变,PC,内容,改变执行的流向。,PC,可对,64KB,的,ROM,直接寻址,也可对,89C51,片内,RAM,寻址。,返回,11/25/2024,(,2,)指令寄存器,IR,、指令译码器,ID,由,PC,中的内容指定,ROM,地址,取出来的指令经,IR,送至,ID,由,ID,对指令,译码,产生一定序列的,控制信号,以执行指令所规定的操作。,返回,11/25/2024,(,3,)振荡器和定时电路,89C51,单片机片内有,振荡电路,,只需外接,石英晶体,和频率,微调电容,(,2,个,30pF,左右),其频率为,0,24MHz,。,该脉冲信号作为,89C51,工作的,基本节拍,即时间的最小单位。,返回,11/25/2024,2,、存储器,1,),程序,存储器(,ROM,),2,),数据,存储器(,RAM,),返回,11/25/2024,1,)程序存储器(,ROM,),89C51,片内,为,4KB Flash ROM,。,地址为,0000H,0FFFH,。,用于存放程序和表格常数。,返回,11/25/2024,2,)数据存储器(,RAM,),89C51,RAM,均为,128B,,,地址为,00H,7FH,。,用于存放运算的中间结果、数据暂存以及数据缓冲等。,这,128B,的,RAM,中有,32,个字节单元可指定为,工作寄存器。,片内还有,21,个,特殊功能寄存器,(,SFR,),,它们同,128,字节,RAM,统一编址,地址为,80H,FFH,。,后面详细介绍。,返回,11/25/2024,3,、,I/O,接口,89C51,有,四个,8,位并行,I/O,接口,P0,P3,。它们都是双向端口,每个端口各有,8,条,I/O,线。,P0-P3,口四个锁存器同,RAM,统一编址,可作为,SFR,来寻址。,89C51,还有,一个可编程的全双工串行口,(,UART,),利用,P3.0,(,RXD,)和,P3.1,(,TXD,),可实现与外界的串行通信。,返回,11/25/2024,2.2,89C51,单片机引脚及其功能,2.2.1,89C51,单片机,引脚,2.2.2,89C51,单片机,引脚功能,返回,11/25/2024,2.2.1,89C51,单片机引脚,P22,图,2-3,:,是,89C51/LV51,的,引脚结构图,,,有,双列直插封装,(DIP),方式和,方形封装,方式。,返回,11/25/2024,图,2-3 89C51/LV51,的引脚结构,11/25/2024,2.2.2,89C51,单片机引脚功能,一、电源引脚:,Vcc,和,Vss,二、时钟电路引脚:,XTAL1,和,XTAL2,三、控制信号引脚,RST,、,ALE,、,PSEN,和,EA,四、,I/O,端口,P0,、,P1,、,P2,和,P3,返回,11/25/2024,一、电源引脚:,Vcc,和,Vss,1,Vcc(40,或,44,脚,),:电源端,为,+5V,。,2,Vss(20,或,22,脚,),:接地端。,返回,11/25/2024,二、时钟电路引脚:,XTAL1,和,XTAL2,XTAL2,(,18,或,20,脚):,接外部晶体和微调电容的一端;在,89C51,片内,它是振荡电路反向放大器的,输出端,,振荡电路的频率就是晶体固有频率。,若需,采用外部时钟电路,时,则该引脚,悬空,。,89C51,正常工作时,该引脚应有脉冲信号输出。,参见,P19,图,2-2,11/25/2024,XTAL1,(,19,或,21,脚):,接外部晶体和微调电容的另一端;在,片内,它是振荡电路反向放大器的,输入端,,在,采用外部时钟,时,该引脚,输入外部时钟脉冲,。,参见,P19,图,2-2,二、时钟电路引脚:,XTAL1,和,XTAL2,返回,11/25/2024,三、控制信号引脚:,RST,、,ALE,、,PSEN,和,EA,RST / V,PD,(,9,或,10,脚):,RST,:,复位信号输入端,,高电平有效。当此输入端保持两个机器周期的,高电平,时,就可以完成复位操作。,11/25/2024,RST / V,PD,(,9,或,10,脚):,V,PD,:,RST,引脚的第二功能,,备用电源输入端。,当主电源,Vcc,发生故障,降低到低电平规定值时,将,+5V,电源自动接入该引脚,,为,RAM,提供备用电源,,以保证,RAM,中的信息不丢失,使得复位后能继续正常运行,。,三、控制信号引脚:,RST,、,ALE,、,PSEN,和,EA,11/25/2024,ALE / PROG,(,30,或,33,脚):,ALE,:,地址锁存允许信号端,。正常工作时,该引脚以振荡频率的,1/6,固定输出正脉冲。,CPU,访问片外存储器,时,该引脚输出信号作为,锁存低,8,位地址,的控制信号。它的负载能力为,8,个,LS,型,TTL,负载。,三、控制信号引脚:,RST,、,ALE,、,PSEN,和,EA,11/25/2024,ALE / PROG,(,30,或,33,脚):,PROG,:,是,对片内,带有,4KB,Flash ROM,的,89C51,编程写入时的,编程脉冲输入端,。,三、控制信号引脚:,RST,、,ALE,、,PSEN,和,EA,11/25/2024,PSEN,(,29,或,32,脚):,程序存储允许信号输出端,。,在,访问片外,ROM,时,定时输出,负脉冲,作为读片外,ROM,的选通信号,接片外,ROM,的,OE,端。,它的负载能力为,8,个,LS,型,TTL,负载。,三、控制信号引脚:,RST,、,ALE,、,PSEN,和,EA,11/25/2024,EA / V,pp,(,31,或,35,脚):,EA,:,外部程序存储器地址允许输入端,。,当该引脚,接高电平,时,,CPU,访问,片内,ROM,并执行片内程序存储器中的指令,但当,PC,值超过,0FFFH,(,片内,ROM,为,4KB,),时,将自动转向,执行片外,ROM,中的程序。,当该引脚,接低电平,时,,CPU,只访问,片外,ROM,并执行外部程序存储器中的程序。,三、控制信号引脚:,RST,、,ALE,、,PSEN,和,EA,11/25/2024,EA / V,pp,(,31,或,35,脚):,V,pp,:,对,89C51,片内,Flash ROM,固化编程时,,固化,编程电压输入端,(,12-21V,)。,三、控制信号引脚:,RST,、,ALE,、,PSEN,和,EA,返回,11/25/2024,四、,I/O,端口,P0,、,P1,、,P2,、,P3,1,、准双,向,2,、,P0,口,3,、,P1,口,4,、,P2,口,5,、,P3,口,返回,11/25/2024,1,、准双向,当,I/O,口作为,输入,时,应先向此口锁存器,写入全,1,, 此时该口引脚浮空,可作高阻抗输入。,返回,11/25/2024,2,、,P0,口:,漏极开路的,8,位准双向,I/O,口,每位能驱动,8,个,LS,型,TTL,负载。,P0,口可作为一个数据,输入,/,输出口,;,在,CPU,访问片外,存储器时,,P0,口为,分时复用,的低,8,位,地址总线,和,8,位,数据总线,。,Flash ROM,编程,时,,P0,口,接收,指令字节;,效验,程序时,则,输出,指令字节。,返回,11/25/2024,3,、,P1,口:,带内部上拉电阻的,8,位,准双向,I/O,端口,,每位能驱动,4,个,LS,型,TTL,负载。,在对,Flash ROM,编程,和程序,效验,时,,P1,接收,低,8,位,地址,。,返回,11/25/2024,4,、,P2,口:,带内部上拉电阻的,8,位,准双向,I/O,端口,,每位能驱动,4,个,LS,型,TTL,负载。在,CPU,访问片外存储器,时,它,输出高,8,位地址,。,在对,Flash ROM,编程,和程序,效验,时,,P2,也,接收高位地址,和一些,控制信号,。,返回,11/25/2024,5,、,P3,口:,带内部上拉电阻的,8,位,准双向,I/O,端口,,每位能驱动,4,个,LS,型,TTL,负载。,P3,口除作为,一般,I/O,口,外,,每个引脚都有第二功能,。,P24,表,2-1,在对,Flash ROM,编程,和程序,效验,时,,P3,还,接收,一些,控制信号,。,返回,11/25/2024,表,2-1,P3,端口引脚与复用功能表,11/25/2024,2.3,89C51,单片机存储器配置,2.3.1,89C51,存储器,分类,2.3.2,程序,存储器地址空间,2.3.3,数据,存储器地址空间,返回,11/25/2024,2.3.1 89C51,存储器分类,一、物理结构(哈佛结构),二、用户角度,返回,11/25/2024,一、物理结构(哈佛结构,),片内,程序存储器,片外,程序存储器,片内,数据存储器,片外,数据存储器,89C51,存储器,程序,存储器,ROM,数据,存储器,RAM,返回,11/25/2024,二、用户角度:,返回,P25,图,2-4,1,、,片内、外,统一编址的,64K,程序存储器地址空间,。,CPU,访问片内、片外,ROM,指令用,MOV,C,。,2,、,64K,的,片外数据存储器,地址空间。,访问片外,RAM,指令用,MOV,X,。,3,、,256,字节的,片内数据存储器,地址空间。,访问片内,RAM,指令用,MOV,。,上述三个存储空间地址是,重叠,的,,89C51,的指令系统采用,不同,的数据传送,指令符号。,11/25/2024,2.3.2,程序,存储器地址空间,一、用途:,二、编址:,三、寻址方式:,返回,11/25/2024,一、用途:,用于存放编好的,程序,和,表格常数,。,返回,11/25/2024,二、编址:,89C51,片内,Flash ROM,的容量为,4KB,。,地址为,0000H,0FFFH,。,片外,最多可扩至,64KB,ROM/EPROM,,,地址为,1000H,FFFFH,。,片内外,统一编址,。,返回,11/25/2024,三、寻址方式:,1,、当,EA=“1”,时:,P25,图,2-4,左图,89C51,的,PC,在,0000,0FFFH,范围内执行,片内,ROM,中的程序,当指令地址,超过,0FFFH,后就自动转向,片外,ROM,中取指令。,11/25/2024,三、寻址方式,:,2,、当,EA=”0”,时:,P25,图,2-4,左图,89C51,片内,ROM,不起作用,,CPU,只能,从片外,Flash,ROM/EPROM,中取指令。,可以从,0000H,开始寻址。,由于,8031,片内不带,ROM,,,所以使用时必须,EA,=”0,”,。,11/25/2024,三、寻址方式:,3,、,89C51,从,片内,ROM,和,片外,ROM,取指的速度相同。,4,、程序存储器的,低地址,的,40,多个单元是,保留存储单元,。,如,P26,表,2-2,所示。,11/25/2024,表,2-2,保留的存储单元,返回,11/25/2024,三、寻址方式:,(,1,),0000H,0002H,三个单元:,用作,89C51,上电复位,后引导程序的存放单元。因为,复位后,PC,的内容为,0000H,,,CPU,总是从,0000H,开始执行程序。将转移指令存放到这三个单元,程序就被引导到指定的程序存储器空间去执行。,返回,11/25/2024,三、寻址方式:,(,2,),0003H,002AH,单元:,均分为五段,用作,五个中断服务程序,的入口。,中断矢量地址表:,P26,表,2-3,返回,11/25/2024,表,2-3,中断矢量表,返回,5.,执行外部程序时的硬件连接:,P26,图,2-5,11/25/2024,2.3.3,数据,存储器地址空间,一、用途:,二、,片外,RAM,:,三、,片内,RAM,:,返回,11/25/2024,一、用途:,用于存放运算的中间结果、数据暂存和缓冲、标志位等。,返回,二、片外,RAM,:,64kB=2,16,B,地址:,0000H0FFFFH,寻址:用,MOV,X,指令,89C51,外扩,片外,RAM,(,2KB,)接法:,P28,图,2-6,11/25/2024,三、片内,RAM,:,256B=2,8,B,(,一)片内,RAM,地址空间,(二),低,128,字节,RAM,(,00H,7FH,),(,三),高,128,字节,RAM,(,80H,FFH,):,特殊功能寄存器,SFR,区,返回,11/25/2024,(一)片内,RAM,地址空间:,P28,图,2-7,寻址:用指令,MOV,最大可寻址,256,个单元。,返回,低,128B,(,00H-7FH,):,真正,RAM,区,高,128B,(,80H-FFH,):,特殊功能寄存器,(,SFR,),区,地址:,00H-0FFH,11/25/2024,(二)低,128,字节,RAM,(,00H7FH,),:,P28,图,2-8,1,、工作寄存器区(,00H1FH,),2,、,位寻址区(,20H2FH,),3,、,用户,RAM,区(,30H7FH,),返回,11/25/2024,1,、工作寄存器区,(00H1FH):,P28,图,2-8,由,四组,(32,个,),工作寄存器组成,,每组,8,个,寄存器,(R0-R7),,共占,32,个单元。,通过程序状态寄存器,PSW,中,RS1,、,RS0,两位,设定来选择,CPU,的,当前工作寄存器组,。,复位,时,,第,0,组,为当前的工作寄存器。,P29,表,2-4,若不需要四组,则其余可作为一般,RAM,单元。,返回,11/25/2024,表,2-4,工作寄存器地址表,返回,11/25/2024,2,、位寻址区,(20H2FH),:,P28,图,2-8,位寻址区有,16,个,单元,每个单元,8,位,,共,128,位位地址,为,00H-7FH,。,可用,位寻址方式,访问其各位。,这些可寻址位,通过执行指令,可直接对某一位操作,,如置,1,、清,0,、判断转移等。,位寻址是,89C51,的一个重要特点。,返回,11/25/2024,表,2-5 RAM,位寻址区位地址表,11/25/2024,3,、用户,RAM,区,(30H7FH),:,P28,图,2-8,用于堆栈和数据缓冲,。,返回,11/25/2024,(三)高,128,字节,RAM(80HFFH):,P28,图,2-9,返回,有,21,个,特殊功能功能寄存器。,地址分布在,80H,FFH,的,RAM,空间。,只能用,直接,寻址方式。,有,11,个,具有,位寻址,能力。,11,个,SFR,的,字节地址,正好能,被,8,整除,。特殊功能寄存器的地址,:,P30,表,2-5,部分,特殊功能寄存器介绍,11/25/2024,表,2-5,特殊功能寄存器地址表,11/25/2024,表,2-5,特殊功能寄存器表,11/25/2024,部分特殊功能寄存器介绍,累加器,ACC,(,E0H,):,用,A,作为,ACC,的助记符。,用于存放第一个,操作数,及,运算结果,。,返回,寄存器,B,(,F0H,):,在,乘法指令,中,,B,用于存放,乘数,和,乘积的,高,8,位,。,在,除法指令,中用于存放,除数,和,余数,。,在,其它指令,中用作,一般的寄存器,或,RAM,单元,。,11/25/2024,部分特殊功能寄存器介绍,程序状态寄存器,PSW,(,D0H,):,PSW,包含了程序执行后的,状态信息,,供程序,查,询,或,判断,用。,PSW,的,格式,PSW,各位的,含义,返回,11/25/2024,返回,PSW,的格式:,P31,AC,CY,P,OV,RS0,RS1,F0,PSW,(D0H),D7,D6,D5,D4,D3,D2,D1 D0,11/25/2024,PSW,各位的,含义,(,1,),CY,位,(,PSW.7,),:,进,(,借,),位标志位,。,执行,加法,(,减法,),运算指令时,如运算结果,最高位,(D7),向前,有进位,(,借位,),,,CY=1,;,否则,,,CY=0,。,在,位操作,指令中,,CY,位是,布尔累加器,,用,C,表示,返回,11/25/2024,(,2,),AC,位,(,PSW.6,),:,半进位标志位(辅助进位标志),。,执行,加法(减法),运算指令时,,如运算结果的,低半字节,(,D3,),向,高半字节,有,进位(借位),,AC=1,;,否则,,AC=0,。,返回,(,3,),F0,位(,PSW.5,),:,用户标志位,。,由用户自己定义、置位、复位,以作为,软件标志,11/25/2024,(,4,),RS0,、,RS1,位(,PSW.3,和,PSW.4,):,工作寄存器组选择控制位,。,由用户用软件改变,RS0,和,RS1,的值,以切换,当前选用的工作寄存器组,。,RS0,,,RS1,的组合关系,: P31,表,2-8,上电复位,时,,(,RS0,),=,(,RS1,),=,0,,,CPU,自然选择,第,0,组,为当前工作寄存器组。,返回,11/25/2024,RS1RS0,寄存器组 片内,RAM,地址,0,0,第,0,组,00H,07H,0,1,第,1,组,08H,0FH,1,0,第,2,组,10H,17H,1,1,第,3,组,18H,1FH,表,2-8 RS0,,,RS1,的组合关系,返回,11/25/2024,(,5,),OV,位(,PSW.2,):,溢出标志位,。,有溢出,,即运算结果超出,-128,+127,的范围时,OV=,1,;,无溢出,时,,OV=0,。,返回,(,6,),P,位(,PSW.0,):,奇偶检验位,。,每条指令执行后,,A,中,“,1”,的个数为,奇数,,则,P=1,否则,,P=0,。,(,7,),PSW.1,:,保留位,。,11/25/2024,部分特殊功能寄存器介绍,堆栈指针,SP,(,81H,):,堆栈:,在,片内,RAM,中,开辟的一个按“,先进后出,”的结构方式处理数据的,区域,。,堆栈的操作,:,PUSH,、,POP,:,P32,图,2-1,0,SP,的内容可指向,片内,RAM 00H7FH,的任何单元,系统复位,时,,SP,初始化为,07H,。,返回,11/25/2024,返回,数据指针,DPTR,(,83H,,,82H,):,DPTR,是一个,16,位,的特殊功能寄存器。,由,DPH,(,83H,),,DPL,(,82H,),组成。,DPH,,,DPL,可以单独使用。,I/O,端口,P0,、,P1,、,P2,、,P3,(,80H,、,90H,、,A0H,、,B0H,),分别为,四个并行,端口的锁存器,每一个口锁存器还有,位地址,,所以每一条,I/O,线可独立输入或输出。,输出,时,可以,锁存,;,输入,时,可以,缓冲,。,11/25/2024,2.4,时钟电路及,89C51 CPU,时序,2,.4.1,片内时钟信号的产生,返回,2.4.2,CPU,取指、执指时序,11/25/2024,2.4.1,片内时钟信号的产生,返回,89C51,芯片内部有一个,高增益反相放大器,,用于构成,振荡器,。反相放大器的输入端为,XTAL1,,输出端为,XTAL2,,两端跨接,石英晶体,及,两个电容,就可以构成稳定的,自激振荡器,。电容器和通常取,30 pF,左右,可稳定频率并对振荡频率有微调作用。振荡脉冲频率范围为,f,OSC,=0,24 MHz,。,晶体振荡器的频率为,f,OSC,,振荡信号从,XTAL2,端输入到片内的,时钟发生器,上,如,P34,图,2-12,。,11/25/2024,图,2-12 89C51,的片内振荡器及时钟发生器,11/25/2024,2.4.1,片内时钟信号的产生,1,、节拍与状态周期,2,、机器周期和指令周期,3,、基本时序定时单位,返回,11/25/2024,1,、节拍与状态周期,时钟发生器:,是一个,2,分频,的触发器电路,它将,振荡器的信号频率,f,OSC,除以,2,,向,CPU,提供,两,相时钟信,号,P1,和,P2,。,时钟信号的周期称为,机器状态周期,S,(STATE),,,是,振荡周期的,2,倍,。,在每个时钟周期,(,即机器状态周期,S),的,前半周期,,,相位,1(,P1,节拍,1),信号,有效,,在每个时钟周期,的,后半周期,,相位,2(,P2,节拍,2),信号,有效,。,返回,11/25/2024,每个,时钟周期,(,以后常称,状态,S,),有,两个,节拍,(,相,),P1,和,P2,,,CPU,就以两相时钟,P1,和,P2,为,基本节拍,指挥,89C51,单片机各个部件协调地工作。,返回,11/25/2024,2,、机器周期和指令周期,二、指令周期:,一、机器周期:,返回,11/25/2024,一个,机器周期,:指,CPU,访问存储器一次所需的时间。,例:取指令、读存储器、写存储器等等。,一个机器周期:,包括,12,个,振荡周期,,分为,6,个,S,状态,:,S1S6,。,每个状态,又分为,两拍,,称为,P1,和,P2,。,因此,,一个机器周期,中的,12,个振荡周期,表示为,S1P1,,,S1P2,,,S2P1,,,S2P2,,,,,S6P1,,,S6P2,。,机器周期,11/25/2024,若采用,6MHz,晶体振荡器,则,每个机器周期,为多少?,设,:,晶体振荡器频率,fosc=6MHz,则,:,振荡周期,=1/fosc=1/6 s,(,微秒),因为,:,一个机器周期,包括,12,个振荡周期,所以,:,一个机器周期,=12*(1/6) s,(,微秒),=,2,s,(,微秒),问:,如果,fosc=12MHz,一个机器周期为多少,?,答案,:,1s,(,微秒),机器周期,11/25/2024,指令周期,:执行一条指令所需的时间。,每条指令,由,一个,或,若干个字节,组成。,有,单,字节指令,,双,字节指令,,,,多,字节指令等。字节数,少,,则占存储器空间,少,每条指令的,指令周期,都由,一个,或,几个,机器周期,组成。,有,单,周期指令、,双,周期指令、和,四,周期指令。,(,机器周期数,少,,则执行速度,快,),。,其指令周期各为多少?,指令周期,例,11/25/2024,指令周期,设:,振荡频率,为,6MHz,,,则:一个,机器周期,为,2,s,(微秒)。,单,周期指令:指令周期为,2,s,(,微秒),双,周期指令:指令周期为,4,s,(,微秒),四,周期指令:指令周期为,8s,(,微秒),如果,振荡频率,为,12MHz,,则其,机器周期,为,1s,故其指令周期分别为,1s,、,2s,和,4s,。,11/25/2024,单字节指令,:,如,,INC,A,;,机器码格式:,0000 0100B,双字节指令,:,如,,MOV,A,,,#,data,;,机器码格式:,0111,0100B data,11/25/2024,3,、基本时序定时单位,综上所述,,89C51,或其他,80C51,单片机的,基本时序定时单位,有如下,4,个,。,振荡周期,:晶振的振荡周期,为最小的时序单位,状态周期,:振荡频率经单片机内的,二分频器分频,后提供给片内,CPU,的时钟周期。,因此,,1,个状态周期,包含,2,个,振荡周期,。,返回,11/25/2024,机器周期,(,MC,):,1,个,机器周期由,6,个,状态周期即,12,个,振荡周期组成,是计算机执行一种基本操作的时间单位。,指令周期,: 执行一条指令所需的时间。,一个,指令周期由,1,4,个,机器周期组成,依据指令不同而不同,见,P307,附录,A,。,返回,11/25/2024,4,种时序单位中,,振荡周期,和,机器周期,是单片机内计算其他时间值(例如,波特率、定时器的定时时间等)的,基本时序单位,。,下面是单片机外接晶振频率,12MHz,时的各种时序单位的大小。,振荡,周期,=1/f,OSC,=1/12 MHz=0.083 3 s,状态,周期,=21/f,OSC,=2/12 MHz=0.167 s,机器,周期,=121/f,OSC,=12/12 MHz=1 s,指令,周期,=,(,1,4,)机器周期,=1,4 s,返回,11/25/2024,4,个时序单位,从小到大,依次是:,节拍(振荡脉冲周期,,1/f,OSC,)、,状态周期(时钟周期)、,机器周期、,指令周期,,如,P35,图,2-13,所示。,返回,11/25/2024,图,2-13 89C51,单片机各种周期的相互关系,11/25/2024,2.4.2 CPU,取指、执指时序,每条指令的,执行,都可以包括,取指,和,执指,两个阶段。,在,取指,阶段,,CPU,从内部或外部,ROM,中取出指令操作码及操作数,然后再,执行,这条指令。,单,字节和,双,字节的指令都可能是,单,机器周期或,双,周期,而,三,字节指令都是,双,周期的,只有,乘、除,指令占,四,周期。,CPU,取指、执指时序,:,P36,图,2-14,返回,11/25/2024,图,2,-14,89,C51,单片,机的,取指,/,执行,时序,11/25/2024,2.5,复位操作,2.5.1,复位操作的主要功能,2.5.2,复位信号及其产生,2.5.3,复位电路,返回,11/25/2024,2.5.1,复位操作的主要功能,一、主要功能,初始化,:程序地址指针,PC,初始化为,0000H,,使单片机从,0000H,单元开始执行程序,当由于,程序运行出错,或,操作错误,使系统,死锁,状态时,为摆脱困境,也需要,按复位键重新启动,。,返回,11/25/2024,二、,SFR,的复位值:,P38,表,2-8,返回,11/25/2024,表,2-8,各特殊寄存器的复位值,11/25/2024,2.5.2,复位信号及其产生,一、复位信号的产生:,RST,引脚,(,P22,图,2-3,:,9,、,10,脚):,为复位信号输入端。当,RST,引脚为,高电平,,且有效时间持续,24,个,振荡周期,以上,才能复位。,二、产生复位信号的电路逻辑图:,P39,图,2-15,返回,11/25/2024,图,2-15,复位电路逻辑图,返回,复位,电路,施密特,触发器,片内,RAM,RST/V,PD,V,CC,V,SS,D,1,D,2,11/25/2024,2.5.3,复位电路,复位操作有两种方式:,1,、,上电自动复位,:,是通过外部复位电路的,电容充电,实现。,P39,图,2-16(a),2,、,手动复位,:指通过,接通,一,按键开关,,使单片机进入复位状态。,按键,电平,复位方式:,P39,图2-1,6(b,),返回,11/25/2024,图,2-16,(a),上电复位电路,只要,Vcc,的上升时间不超过,1ms,,,就自动上电复位,即接通电源就完成了系统复位。,返回,V,CC,C,R,V,CC,RST/V,PD,V,SS,1K,22F,89C51,11/25/2024,图,2-16,(b),按键电平复位电路,通过使复位端经电阻与,V,CC,电源接通而实现。,V,CC,C,R,2,V,CC,RST/V,PD,V,SS,1K,22F,89C51,R,1,200,RESET,返回,11/25/2024,2.6 89C51,单片机的,低功耗工作方式,89C51,属于,CHMOS,的单片机,运行时耗电少,而且还提供,两种节电工作方式,,即,空闲,(,等待、待机,),方式,和,掉电,(,停机,),工作方式,,以进一步降低功耗。,实现这两种方式的,内部电路:,P40,图,2-17,返回,11/25/2024,由,P40,图,2-17,可见,,若,IDL=0,,则,89C51,将进入,空闲运作方式,。在这种方式下,振荡器仍继续运行,但,IDL,封锁了,去,CPU,的“,与”门,,故,CPU,此时得不到时钟信号。而中断、串行口和定时器等环节却仍在时钟控制下正常运行。,掉电方式,下(,PD=0,),振荡器冻结。,返回,11/25/2024,返回,图,2-17,空闲和掉电方式控制电路,PD,和,IDL,均为,PCON,中,PD,和,IDL,触发器的输出端,11/25/2024,2.6.1,方式的设定,返回,空闲方式,和,掉电方式,是通过对,SFR,中的,PCON,(,电,源控制寄存器,,地址,87H),相应位置,1,而启动的。,P41,图,2-18,:为,89C51,电源控制寄存器,PCON,各,位的分布情况,。,HMOS,器件的,PCON,只包括一个,SMOD,位,,其他,4,位,是,CHMOS,器件独有的。,3,个保留位,用户不得使用,因为硬件没有做出安排,可能在今后的,MCS51,新产品中代表某特定的功能,11/25/2024,返回,图,2-18,电源控制寄存器,PCON,11/25/2024,返回,P41,图,2-18,中各符号的名称和功能如下。,SMOD,:,波特率倍频位,。若此位为,1,,则串行口,方式,1,、方式,2,和方式,3,的,波特率加倍,。,GF1,和,GF0,:,通用标志位,。,PD,:,掉电方式位,。此位,写,1,即,启动掉电方式,。,由,P40,图,2-17,可见,此时时钟冻结。,IDL,:,空闲方式位,。此位,写,1,即,启动空闲方式,。,这时,CPU,因无时钟控制而停止运作。,如果,同时,向,PD,和,IDL,两位,写,1,,则,PD,优先,。,89C51,中,PCON,的复位值,为,00000B,。,11/25/2024,2.6.2,空闲,(,等待、待机,),工作方式,返回,当,CPU,执行完置,IDL=1,(,PCON.1,),的指令后,,系统,进入,空闲工作方式,。,这时,内部时钟不向,CPU,提供,而只供给中断、,串行口、定时器部分。,CPU,的内部状态维持,,即包括堆栈指针,SP,、程,序计数器,PC,、程序状态字,PSW,、累加器,ACC,所,有的内容保持不变,,端口状态,也保持,不变,。,ALE,和,PSEN,保持逻辑,高电平,。,11/25/2024,2.6.2,空闲,(,等待、待机,),工作方式,返回,系统,退出,空闲方式的,两种方法:,响应中断,:因任何的,中断请求被响应,都可由硬,件将,PCON.0,(,IDL,),清,0,而,中止,空闲工作方式。,11/25/2024,2.6.2,空闲,(,等待、待机,),工作方式,返回,当执行完中断服务程序返回到主程序时,在主程序中,下一条要执行的指令将是原先使,IDL,置位指令后面的那条指令。,PCON,中的通用标志位,GF1,和,GF0,可以用来,指明中断,是在,正常操作,还是在,待机方式,期间发生的。,在待机方式时,,除用指令使,IDL=1,外,还可先用指令使,GF1,或,GF0,置,1,。当由于中断而停止待机方式时,在中断服务程序中可以检查这些标志位,说明是从待机方式进入中断的。,11/25/2024,2.6.2,空闲(等待、待机)工作方式,返回,硬件复位,:由于在空闲工作方式下振荡器仍然工作,因此硬件复位仅需,2,个机器周期便可完成。而,RST,端,的,复位信号,直接将,PCON.0(IDL),清,0,,从而,退出,空闲状态,,CPU,则从进入空闲方式的下一条指令开始重新执行程序,。,11/25/2024,2.6.3,掉电(停机)工作方式,返回,当,CPU,执行一条,置,PCON.1,位,(,PD,),为,1,的指令后,系统,进入,掉电工作方式,。,在掉电工作方式下,内部振荡器停止工作。,由于没有振荡时钟,因此,所有的功能部件都停,止工作。但,内部,RAM,区,和,特殊功能寄存器的内容,被保留,,而端口的输出状态值都保存在对应的,SFR,中,,ALE,和,PSEN,都为,低电平,。,11/25/2024,2.6.3,掉电,(,停机,),工作方式,返回,退出,掉电方式的惟一方法是由,硬件复位,,复位后,将所有特殊功能寄存器的内容初始化,但不改变,片内,RAM,区的数据。,在,掉电工作方式,下,,V,CC,可以降到,2 V,,但在,进入,掉电方式之前,,V,CC,不能降低。而在,准备退出,掉电,方式之前,,V,CC,必须恢复正常的工作电压值,并维,持一段时间(约,10 ms,),使振荡器重新启动并稳,定后方可退出掉电方式。,11/25/2024,2.7,输出,/,输入端口,I/O,端口概述,2.7.1,P1,口,2.7.2,P2,口,2.7.3,P0,口,2.7.4,P3,口,2.7.5,端口的负载能力和接口要求,返回,11/25/2024,I/O,端口概述,返回,1. 89C51,单片机有,四个,8,位,并行,I/O,端口:,P0,、,P1,、,P2,、,P3,。,2.,每个端口都是,8,位准双向口,,共占,32,根,引脚。,3.,每一条,I/O,线都能独立地用作,输入,或,输出,。,4.,每个端口都包括一个,锁存器,(即特殊功能寄存器,P0P3,),,一个,输出驱动器,和,输入缓冲器,。,作,输出,时,数据可以,锁存,,,作,输入,时,数据可以,缓冲,。,11/25/2024,2.7.1,P1,口,一、,P1,口结构,二、,P1,口用作通用,I/O,返回,11/25/2024,2.7.1,P1,口,一、,P1,口结构:,P42,图,2-19,输出驱动,部分与,P0,口不同,内部有,上拉负载电阻,与,电源,相连。实质上,,电阻,是两个场效应管,FET,并在一起:,一个,FET,为,负载管,,其电阻固定。,另一个,FET,可工作在,导通,或,截止,两种状态,使其总电阻值变化近似为,0,或阻值很大两种情况。,当阻值近似为,0,时,,可将引脚快速上拉至高电平,当阻值很大时,,,P1,口为高阻输入状态。,返回,11/25/2024,图,2-19,P1,口某位的结构,返回,11/25/2024,2.7.1 P1,口,二、,P1,口用作通用,I/O,P1,口也是一个准双向口。,在端口用作,输入,时,也必须先向对应的锁存器写入,1,,使,FET,截止。,当,P1,口,输出高电平,时,能向外提供拉电流负载,所以不必再接上拉电阻。,返回,11/25/2024,2.7.2,P2,口,一、,P2,口,结构,二、,P2,口用作,一般,I/O,口,三、,P2,口用作,高,8,位地址总线,返回,11/25/2024,一、,P2,口结构:,P43,图,2-,20,P2,口某位的结构与,P1,口类似,,驱动部分,与,P1,口类似,但比,P1,口多了一个,MUX,开关,和,转换控制部分,。,返回,11/25/2024,图,2-20,P2,口某位的结构图,返回,11/25/2024,二、,P2,口用作一般,I/O,口,1,、当,CPU,对,片内,存储器和,I/O,口进行读,/,写,(,执行,MOV,指令或,EA=1,时,执行,MOVC,指令,),时,由内部硬件自动使开关,MUX,倒向锁存器的,Q,端,,这时,,P2,口为一般,I /O,口,。,11/25/2024,二、,P2,口用作一般,I/O,口,2,、当,CPU,对,片外,存储器或,I/O,口进行读,/,写,(,执行,MOVX,指令或,EA=0,时,执行,MOVC,指令,),时,开关,MUX,倒向,地址线,(,右,),端,,这时,,P2,口只输出高,8,位地址,。,11/25/2024,二、,P2,口用作一般,I/O,口,在只需扩展,256B,片外,RAM,的系统中,,使用“,MOVX,A,Ri,”,类指令访问片外,RAM,时,寻址范围是,256B,,,只需低,8,位地址线,就可以实现。,P2,口不受该指令影响,,仍可作通用,I/O,口,。,11/25/2024,二、,P2,口用作一般,I/O,口,若,扩展,RAM,容量,超过,256B,,,使用“,MOVX,A,,,DPTR”,类指令的寻址范围是,64KB,,,此时,,高,8,位地址总线用,P2,口输出,。在片外,RAM,读,/,写周期内,,P2,口锁存器仍保持原来端口的数据;在访问片外,RAM,周期结束后,多路开关,MUX,自动切换到锁存器,Q,端。由于,CPU,对,RAM,的访问不是经常的,在这种情况下,,P2,口在一定的限度内仍可用作通用,I/O,口。,返回,11/25/2024,三、,P2,口用作高,8,位地址总线,当,CPU,对,片外,存储器或,I/O,口进行读,/,写(执行,MOVX,指令或,EA=0,时执行,MOVC,指令)时,开关倒向地址线(右)端,这时,,P2,口只,输出高,8,位地址,。因为访问片外,EPROM,和,RAM,的操作往往接连不断,所以,,P2,口要不断送出高,8,位地址,此时,P2,口无法再用作通用,I/O,口。,返回,11/25/2024,2.7.3,P0,口,一、,结构,二、,P0,口作为,一般,I/O,口,使用,三、,P0,口作为,地址,/,数据总线,使用,返回,11/25/2024,一、结构:,P44,图,2-2,1,P0,口某位的结构由,一个输出锁存器,二个三态输入缓冲器,输出驱动电路:,上拉场效应管,FETT1,驱动场效应管,FETT2,控制电路:,“,与”门,4,、,反相器,3,、转换开关,MUX,组成。,返回,11/25/2024,一、结构:,P44,图,2-2,1,工作状态,受控制电路控制。,当,C=0,时,开关,MUX,拨向,Q,输出端位置,,P0,口为,通用,I/O,口,;,当,C=1,时,开关,拨向反相器,3,的输出端,,P0,口分时作为,地址,/,数据总线,使用。,返回,11/25/2024,图,2-21,P0,口某位的结构图,返回,11/25/2024,二、,P0,口作为,一般,I/O,口,使用,1,、,P0,口,作输出口,2,、,P0,口,作输入口,返回,11/25/2024,1,、,P0,口,作输出口,当,CPU,执行输出指令时,,写脉冲,加在,D,锁存器的,CL,上,这样,与内部总线相连的,D,端,的,数据取反,后就出现在,Q,端上,又经输出级,FET,(,T2,),反相,,在,P0,端口上出现的数据正好是内部总线的数据。这是,一般的数据输出,情况。,返回,11/25/2024,2,、,P0,口,作输入口,当执行一条由端口输入的指令时,“,读引脚,”脉冲,把,三态缓冲器,2,打开,,这样,端口上的数据经过缓,冲器,2,读入到,内部总线,。,在端口进行输入操作前,应先向端口锁存器写入,1,,也就是使锁存器,Q=0,。,因为控制线,C=0,,,因此,T1,和,T2,全截止,,引脚处于悬浮状态,可作高阻抗,输入。,返回,11/25/2024,三、,P0,口,作为地址,/,数据总线使用,1,P0,口用作,输出,地址,/,数据总线,以,P0,口引脚输出低,8,位地址或数据信息,,MUX,开关,把,CPU,内部地址,/,数据线,经,反向器,3,与驱动场效应管,FET(T2),栅极,接通。上下两个,FET,处于反相,构成,推拉式的输出电路,(T1,导通时上拉,,T2,导通时下拉,),,提高了负载能力。,当,P
展开阅读全文