收藏 分销(赏)

第2章 51系列单片机CPU的硬件结构.ppt

上传人:s4****5z 文档编号:12542373 上传时间:2025-10-27 格式:PPT 页数:108 大小:1.01MB 下载积分:10 金币
下载 相关 举报
第2章 51系列单片机CPU的硬件结构.ppt_第1页
第1页 / 共108页
第2章 51系列单片机CPU的硬件结构.ppt_第2页
第2页 / 共108页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,2,章,51,系列单片机,CPU,的硬件结构,本章主要介绍,51,系列单片机的硬件编程结构及引脚、,CPU,主要部件与特殊功能寄存器、片内外存储器的组织结构和编址、并行,I/O,口、定时,/,计数器、串行口、中断及中断系统应用实例。读者应重点掌握,CPU,的使用特性、特殊功能寄存器的用法、控制引脚的作用及定时,/,计数器、串行口、中断技术等。,2,1,硬件编程结构与引脚功能,2,1,1,编程结构,图,2-1,是,51,系列单片机的基本编程结构。,图,2-1 MCS51,单片机的基本结构,图,2-1,一块芯片上包括:,8,位中央处理器单元,CPU,;,4K/8K,字节,ROM,或,EPROM,(,8031,无,ROM,);,128/256,个字节的数据存储器,RAM,;,21/26,个特殊功能寄存器,SFR,;,4,个,8,位并行,I/O,口,其中,P0,为低,8,位地址,/,数据线,,P2,为高,8,位地址线,可外扩,64KROM,和,64KRAM,;,2/3,个,16,位可编程的定时,/,计数器,T0,、,T1,。用来对外部脉冲进行计数;也可设置成定时器,并根据计数或定时的结果进行控制;,有,5/6,个中断源,其中,3,个内部中断源,,2,个外部中断源,通过软件可编程为两个中断优先级;,一个全双工的通过编程工作在异步方式的串行接口,使数据可一位一位在微机之间串行传送;,内部时钟产生电路,但石英晶体振荡器和微调电容需要外接,允许最高振荡频率为,12MHz,。,64K,字节外部程序存储器寻址空间;,64K,字节外部数据存储器寻址空间;,具有位寻址功能,,2,1,2,外部引脚功能,40,脚可分为六部分:,电源,VCC,、,VSS,、,VDD,、,VPD,时钟,XTAL1,、,XTAL2,I/O P0P3,地址总线,P0,、,P2,数据总线,P0,控制总线,地址锁存,ALE,复位输入,RST,编程脉冲输入,/PORG,外存选择,/PSEN,外存控制,/EA,2,1,3 CPU,主要部件与特殊功能寄存器,无论什么型号的微型计算机,一般都由微处理器 (,CPU,),存储器和,I/O,接口组成,将这三部分集中在一 块大规模集成电路芯片之中所构成的微型计算机称之为单片机。因此,将图,2-1,中去掉存储器电路和,I/O,部件,剰下的便是,CPU,。与别的微型计算机一样,,CPU,可分为运算器和控制器两部分。运算器功能部件包括算术逻辑运算部件,ALU,,累加器,A,,寄存器,B,、暂存器,TR,,程序计数器,PC,、程序状态寄存器,PSW,,堆栈指针,SP,,数据指针寄存器,DPTR,以及布尔处理器等。控制器功能部件包括指令寄存器、指令译码器、控制逻辑阵,PLA,等。,CPU,是单片机的指挥中心,执行机构,它的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。,1.,算术,/,逻辑运算部件,ALU,ALU,的作用是对传送到,CPU,的数据进行算术,/,逻辑运算操作。这些操作主要有,对,8,位信息进行,+,、,-,、*、,/,算术运算和与、或、异或等逻辑操作,移位、置位、清零、取反,加,1/,减,1,操作。此外,,MCS-51,系列的,ALU,还具有极强的位处理功能:置位、清零、取反、逻辑与、逻辑或、条件判断转移等。这在控制中特别有用,因为一些控制中常需要进行按位运行,位操作指令提供了把逻辑等式直接变换成软件的简单明了的方法,使得不使用过多的数据传送、字节屏蔽,/,组合和测试分支树等编程方法,也能实现较为复杂的组合逻辑功能,从而简化了程序逻的编制。为此,它获得了布尔处理器的称号。,2.,累加器,A,MCS-51,系列单片机虽然在结构上仍以累加器,A,作为基础。但由于内部电路采取了措施,使得累加器,A,在数据传送、逻辑控制等方面的核心作用受到了削载,数据可以在片内直接,/,间接地址的存储器之间直接传送而不必经过累加器,A,。直接地址存储器也可和常量直接进行逻辑运算。,在布尔处理器中,还有它自己的“位累加器”,C,。进位标志,C,在位操作中所起的作用,类似于累加器,A,在字节操作中所起的作用,在任何可位寻址的位与进位标志,C,之间,可进行逻辑“与”、“或”操作,其结果送回到进位标志,C,。,3.,程序状态字寄存器,PSW,程序状态字寄存器,PSW,是指令可以访问的、单片机中各有关标志寄存器的集合体。其各位的信息分配见表,2-2,。,表,2-2,程序状态字寄存器,PSW,信息位分配表,PSW,状态字,PSW.7,PSW.6,PSW.5,PSW.4,PSW.3,PSW.2,PSW.1,PSW.0,标志位,C,Y,AC,F,0,RS,1,RS,0,OV,P,CY,(,PSW.7,):进位标志,如果操作结果在最高位有进位输出(加法)或借位输入(减法)时置位,否则清零。,AC(PSW.6),:辅助进位标志,是低半进位位(累加器,A,中,A3,向,A4,位的进位),,BCD,码调整时用。,F0(PSW.5),:用户定义的状态标志位,可通过软件对它置位,/,复位或测试。,RS1(PSW.4)RS0(PSW.3),:工作寄存器组开关选择位,用于选择四组工作寄存器之一。由于各组寄存器在指令中使用同一名称,因而这种多寄存器组的结构形式可以节约程序调用时为保护寄存器内容而必须的进栈、出栈等语句,从而方便编程并提高运算速度。每个寄存器组有,8,个,8,位的工作寄存器,它们是内部,RAM,的一部分,各组的编码为:,RS1,RS0,寄存器组对应的地址,0,0,组,0 00H07H,0 1,组,1 08H0FH,1,0,组,2 10H17H,0 1,组,3 18H1FH,OV,(,PSW.2,):溢出标志位,用于表示有符号数算术运算溢出。当次高位发生向最高位进位而最高位不发生进位时,发生溢出,,OV,便由硬件置位,否则清零。,P(PSW.0),:奇偶标志位,它是每一指令周期累加器,A,中,8,位按位模,2,和的结果。因此,P,总是表示累加器,A,中内容的奇偶性,而与,PSW,中其它标志的变化无关。,4.,堆栈指针,SP,所谓堆栈,顾名思义就是一种以“堆”的方式工作的“栈”。我们知道,“堆”遵循“先进后出、后进先出”的原则,堆栈是按该工作方式工作的,用来暂时存放数据的寄存器或存储单元,它是只在一端进行存取的一块特别的存储区。,1,)堆栈的作用,在,CPU,响应中断或调用了程序时,需要把断点处的,PC,值以及现场的一些数据保存起来,在微型计算机中,它们就是保存在堆栈中的。同样,当发生中断嵌套(高级中断中断低级中断)或子程序嵌套(在执行一个子程序中,又调用另一个子程序)时,也要把各级断点的,PC,值以及一些现场数据都要保护起来,为了能保证逐级正确返回,要求后保存的值先取回即符合“先进后出、后进先出”的原则。堆栈正是为此目的而设计的。,2,)堆栈方式,硬件堆栈,在,CPU,内部设置一组专用的按堆栈工作方式存取数据的寄存器,称为硬件堆栈。其优点是工作速度快,缺点是不能做得容量太大。,软件堆栈,在,RAM,区中开辟一个任意大的区域用作为栈区,栈区可设置在,RAM,的任意区,在,CPU,内仅由一个专用的寄存器来管理堆栈的栈顶,这个寄存器叫做堆栈指示器(常称为堆栈指针)。,3),堆栈指针,SP,堆栈指针是一个地址寄存器,它指向,RAM,中的一个存储单元。堆栈指针的初值称为栈区的栈底,每当一个数据送到堆栈中(称为压入堆栈)或从堆栈中取出(称为弹出堆栈),堆栈指针都要随之作相应的变化,它始终指向栈区的顶端(栈顶)。,堆栈的生长方向有两种,当栈底设在,RAM,中地址号小的地方,堆栈指针增加后压入一个数据堆栈向地址号大的方向伸展,这叫做堆栈是向下生长的;反之为向上生长。,MCS-51,系列单片机堆栈是向下生长。需要入栈时(中断或执行,PUSH,或,CALL,指令时),,CPU,首先把,SP,加,1,,再把数据压栈;当需要把数据弹出时(为执行,POP,或返回指令时),,CPU,先把数据弹出,然后,SP,减,1,,这样保证,SP,所指的栈顶总是满的。,当复位时,堆栈指针初始化为,07H,,因此,堆栈从地址,08H,开始;堆栈指针也可由指令改变,因而堆栈可设置在片内数据存储器,RAM,的任何一个连续区间。,5.,特殊功能寄存器,SFR,MCS-51,系列单片机将物理上分散在片 内各处的具有某种特定功能的一些寄存器,在数学上把它们组织在特殊功能寄存器的地址空间中,使用统一后的直接寻址方式访问。这样,大多数指令能对它们进行操作,使单片机许多不同功能的实现在指令形式上变得极其简单和统一,从而减少了指令的种类和数量,使指令系统更加规整和有效。,8051,、,8751,、,8031,有,21,个特殊功能寄存器,,8052,、,8032,则有,26,个特殊功能寄存器。它们大致可分为以下几类(括号内为,8052,、,8032,所增加的,5,个特殊功能寄存器):,1),算术运算寄存器,A,:累加器(,E0H,),B,:寄存器(,F0H,),PSW,:程序状态字寄存器(,D0H,),2),指针寄存器,SP,:堆栈指针(,81H,),DPTR,:数据指针,分为,DPH,(高,8,位)和,DPL,(低,8,位),2,个,8,位寄存器(,83H,、,82H,),3),并行,I/O,口,P0,:口,0,(,80H,),P1,:口,1,(,90H,),P2,:口,2,(,A0H,),P3,:口,3,(,B0H,),4),串行,I/O,口,SCON,:串行控制,/,状态寄存器(,98H,),SBUF,:串行数据缓冲区(,99H,),PCON,:电源控制(,97H,),5),中断系统,IP,:中断优先级控制寄存器(,B8H,),IE,:中断允许控制寄存器(,A8H,),6,)定时,/,计数器,TMOD,:定时器方式寄存器(,98H,),TCON,:定时器控制寄存器(,88H,),TH0,:定时器,0,高,8,位(,8CH,),TL0,:定时器,0,低,8,位(,8AH,),TH1,:定时器,1,高,8,位(,8DH,),TL1,:定时器,1,低,8,位(,8BH,),T2CON,:定时器,2,控制寄存器高,8,位(,CBH,),RCAP2L,:定时器,2,陷阱寄存器低,8,位(,CAH,),这种特殊功能寄存器不连续地分布在地址空间,80HFFH,中,如表,2-3,所示。其中,地址号能被,8,整除的那些特殊功能寄存器单元中的位,可以直接位寻址,位地址空间为,80HFFH,,位地址分配见表,2-4,。,地址,符号,名称,地址,符号,名称,F0H,B,寄存器,98H,SCON,串行控制,/,状态寄存器,E0H,A,累加器,90H,P,1,口,1,D0H,PSW,程序状态字,8DH,TH,1,定时器,1,高,8,位,CDH,TH,2,定时器,2,高,8,位,8CH,TL,1,定时器,1,低,8,位,CCH,TL,2,定时器,2,低,8,位,8BH,TH,0,定时器,1,高,8,位,CBH,RCAP,2,H,定时器,2,陷阱寄存器高,8,位,8AH,TL,0,定时器,1,低,8,位,CAH,RCAP,2,L,定时器,2,陷阱寄存器低,8,位,89H,TMOD,定时器方式寄存器,C8H,T,2,CON,定时器,2,控制寄存器,88H,TCON,定时器控制寄存器,B8H,IP,中断口优先级控制寄存器器,87H,PCON,电源控制寄存器,B0H,P,3,口,3,83H,DPH,数据指针高,8,位,A8H,IE,中断允许控制寄存器,82H,DPL,数据指针低,8,位,A0H,P2,口,2,81H,SP,堆栈指针,99H,SBUF,串行数据缓冲器,80H,P,0,口,0,表,2-3,特殊功能寄存器映像,2,1,4,存储器,1,数据存储器,内部数据存储器结构,数据存储器主要用于暂存程序执行过程中的需要经常存取的一些数据。,51,系列单片机的片内数据存储器由两部分组成,一部分是,128/256,个字节的,RAM,区,另一部分是,128,个字节的特殊功能寄存器区。,8051,、,8751,、,8031,的,RAM,区为,128,个字节,地址空间为,00H7FH,;,8052,、,8032,的,RAM,区为,256,个字节,地址空间为,00HFFH,。所以,对于,8052,、,8032,来讲,,RAM,区,80HFFH,与特殊功能寄存器地址空间重叠,但这由不同寻址方式的指令来解决这个问题。,内部数据,RAM,阵列中,包括有工作寄存器,可直接寻址的,16,个单元和数据缓冲区。它们共用一个地址数据,从而减少了内部操作寄存器的数量。另外,,RAM,区的每个单元既有其独特的功能,又可以统一调度用作数据缓冲区。也就是说,,RAM,区的存储单元具有多种功能,因而可充分发挥内部有限数量,RAM,的作用。,片内,RAM,区单元的功能分配如图,2-5,。第,0,号到第,31,号共,32,个单元分为四组工作寄存器,每组有,R0R78,个工作寄存器;第,32,号到第,47,号共,16,个单元的,128,个位是可以直接位寻址的,位地址空间为,00H7FH,;从,48,号单元开始为用户数据缓冲区。堆栈可位于,RAM,区的任何单元,由软件设置堆栈指针,SP,,堆栈深度仅受内部数据,RAM,区的大小所限制。,2),工作寄存器,RAM,阵列中的四组工作寄存器由工作寄存器区开关选择位,RS0,,,RS1,来区分和选择,在指令中,每组均以,R0R7,名称出现。它们的主要功能如下:,(,1,)工作寄存器只需指令操作码字节中的,3,位地址来访问,这样,许多指令可视为单字节,操作方便,存取速度快,因此,经常用于存放一些常用的中间运算结果。,(,2,)四组工作寄存器中的,R0,、,R1,这,2,个工作寄存器,都可以用作为内部,/,外部数据存储器寄存器间接寻址的指针;这种寻址方式可寻址内部,/,外部数据存储器,00HFFH,范围内的任一单元。,(,3,)当它们不作为工作寄存器使用时,可以作为一般的数据缓冲区,由直接寻址方式或用,R0/R7,的寄存器间接寻址方式来访问。,(,4,)由于有四组工作寄存器,故给程序设计带来了方便,不同的程序数据可以选择不同的寄存器组,因而可以省去原先必须的因寄存器被重复使用时不得不采取的数据入栈保护的步骤。,3),直接寻址空间,RAM,阵列中可直接位寻址的,16,个单元的,128,个位的位地址分配如表,2-3,。当这些单元不用于位操作时,它们将和一般的,RAM,区单元一样作为用户的数据缓冲区。,4),外部数据存储器,当内部,RAM,区不够用时,,MCS-51,系列单片机提供了可以扩展,64K,外部数据存储器的手段。由于,MCS-51,系列单片机有,16,根地址线,所以扩展的外部数据存储器地址空间范围可用,16,位地址间接寻址,可访问全部,64K,外部数据存储器地址空间中的任一单元。这时,低,8,位地址由,P0,口输出,高,8,位地址从,P2,口引脚输出,在读,/,写周期持续期间保持不变,而,P2,口的特殊功能寄存器内容也不变,并在读,/,写选通信号结束后将又自动重新出现在,P2,口引脚上;如使用,8,位,R0/R1,间接寻址,则给出,8,位地址,地址由,P0,口给出,可访问,256,字节块(单片机又称为“页”)中的任一单元。这时,,P2,口的特殊功能寄存器的内容在读,/,写周期持续期间将保持在,P2,口引脚上,所以,所寻址的外部数据存储器地址页号只能由,P2,口的内容事先选定,这利于进行寻址。在访问外部数据存储器指令执行时,将相应产生,/RD,或,/WR,信号,用于选通外部数据存储器,并确定数据在总线上的数据流向。,2.,程序存储器,1,)寻址范围,程序存储器主要用于存放程序及一些常数。单片机的,16,位程序计数器,PC,和,16,根地址总线,使它们具有,64K,程序存储器的寻址能力。,8051/,(,8052,),/8751,片内,ROM/EPROM,占据了最低,4K,(,8K,)地址,若,EA=1,,则当,PC,在,04K,(,8K,)范围内时,不产生,/PSEN,信号,从片内程序存储器中取指,超过这个范围后,将自动从外部程序存储器取指;当,EA=0,,则所有取指操作均对外部程序存储器进行。,8031,(,8032,)没有内部程序存储器,因此,EA,必须接于,VSS,,从而使它们能从外接的程序存储器取指。,2,)专用地址矢量,程序存储器的某些单元保留用于某些特定的程序,首地址,0000H0002H,单元保留用于初始化程序,复位后,单片机总是从,0000H,号单元开始执行程序。,0003H002AH,号单元保留用于,5,个中断请求服务程序,每个占,8,个单元,每一个请求中断源的服务程序分别放在它们各自的保留单元中。,8052/8032,另外将,002BH0032H,的,8,个单元保留给定时器,2,中断请求服务程序。一般这些单元不够存放对应的程序,故往往存放一条转移指令使程序转移到对应的程序逻辑入口地址。当程序中没有某种中断时,保留给它的,8,个单元将释放出来,作为一般的程序存储单元使用。,MCS-51,系列单片机的专用地址矢量定义如下:,0000H,:复位地址矢量,0003H,:外部中断,0,地址矢量,000BH,:定时器,0,中断地址矢量,0013H,:外部中断,1,地址矢量,001BH,:定时器,1,中断地址矢量,0023H,:串行中断地址矢量,002BH,:定时器,2,中断地址矢量,3),程序存储器数据存储器空间的重叠,在一般情况下,按不同功能存储器分成程序存储器和数据存储器两个独立的部分,因而产生地址空间重叠,但这可由不同的控制信号来选通整个存储器。但在某些应用场合,需要执行存于数据存储器中的程序,这时把,RD,和,PSEN,信号逻辑“与”,产生一个低有效信号,作为合并外部程序存储器和外部数据存储器后的物理上重合的公共外部存储器的读选通信号,从而合并了外部程序存储器和外部数据存储器的地址空间。见图,2-4,。,图,2-4,存储器映像,2,2,并行,I/O,口,所谓并行,I/O,口,即各位的数据同时被输入或输出,它的最大特点是速度快。,2,2,1,结构特点,MCS-51,系列单片机的,32,根,I/O,线分为四个双向并行口,P0P3,,每根,I/O,线由一个锁存器(相对于特殊功能寄存器中的一位),一个输出驱动器(场效应管,FET,)和一个输入缓冲器(三态门)组成。由于功能的不同,,P0P3,各口的结构有所区别。各锁存器由,D,触发器构成,在,CPU“,写锁存器”信号的作用下,内部总线的数据写入,D,触发器。两个三态门分别用来读锁存器或读引脚的信息。,P1,、,P2,、,P3,口均有内部上拉电阻,而,P0,口的引脚是通过场效应管接到,VCC,。显然,当,P0,口的上、下两只场效应管均关断时,引脚相当于“浮空”状态,即可作为高阻抗的输入端口。,P0,、,P2,口的驱动器的输出与多路转换器,MUX,的状态有关,,P3,口的驱动器也与输出功能的类型有关,这些均为这些端口的多重作用创造了条件。,2,2,2,输入功能,单片机有两种读一个端口的方法:读锁存器和读引脚。在,CPU“,读锁存器”信号的作用下,锁存器的状态通过三态门送到内部总线,然后读到,CPU,中进行处理,而处理后的值将被重新写入锁存器。能实现这种功能的指令称为读,修改,写指令,它们有:,ANL,(逻辑与指令),例如:,ANL P1,,,A,ORL,(逻辑或指令),例如:,ORL P2,,,A,XRL,(逻辑异或指令),例如:,XRL P3,,,A,INC,(增量指令),例如:,INC P2,DEC,(减量指令),例如:,DEC P1,DJNZ,(循环判跳指令),例如:,DJNZ P2,,,LOOP,JBC,(位测试转移指令),例如:,JBC P1.1,LOOP,MOV,(位传送指令),例如:,MOV P1.3,C,CPL,(位取反指令),例如:,CPL P1.0,CLR,(位清“,0”,指令),例如:,CLR P1.0,SETB,(位置位指令),例如:,SETB P3.3,这些指令的一个共同点就是要先读入并行,I/O,口锁存器中的内容,作一定的修改,然后再写入该口的锁存器中。上述的后五条指令,属于位操作指令,实际上也是先要将,8,位锁存器的内容一起读入,再按指定位进行修改,然后再一起写入锁存器中。,在响应,CPU“,读引脚”信号时,接在该端口引脚的外部信号通过三态门读到内部总线,并送,CPU,处理,因而实现了数据的输入。但必须注意,在读引脚时,该端口的锁存储器必须事先写“,1”,。这是因为该端口的输出端也就是外部信号的输入端,两者在逻辑上构成了“线与”,如果该端口的状态此时为,0,,则驱动器的下方场效应管会导通,此时相当于输出“,0”,,尽管外部信号是高电平加到该引脚上,也会强行箝拉到低电平,故造成读到,CPU,中的数据为“,0”,。而事先给锁存器写“,1”,,对于,P0,口,此时上、下两只场效应管均夹断,则构成高阻输入;对于,P1,、,P2,和,P3,口,此时的输出给拉成高电平,故“线与”后的状态只取决于外部信号。,在复位时,各端口的锁存器均置成“,1”,。,当单片机执行改变锁存器值的输出指令时,在该指令的最后周期的状态时,,CPU,为、锁存器产生出有效的“写锁存器”信号,将内部总线上的新值写入锁存器(即,D,触发器)。,P0,口输出驱动器能驱动,8,个,LSTTL,输入,,P1,、,P2,、,P3,口可驱动,4,个,LSTTL,输入,2,2,3,输出功能与负载能力,2,2,4,特殊功能,除了以上的输入、输出指令外,,P0,、,P1,、,P3,口还有其特殊的功能。,P0,口(,BUS,),在,51,系列单片机中,,P0,口还起了数据总线和地址总线(低八位)的作用。在进行正常的输出时,“控制”端为“,0”,,多路转换器,MUX,接在锁存器的,Q,端。此时上方的场效应管关断,下方的场效应管受锁存器的控制,,P0,口具有开漏输出,这时驱动外部电路时需外加上拉电阻。在,CPU,进行外部存储器存,/,取时,,P0,口起数据总线或地址总线的作用,“控制”端为“,1”,,多路转换器,MUX,接反相器的输出端,即相当于接在“地址,/,数据”端。当这个“地址,/,数据”为“,1”,时,上方的场效应管导通而下主的场效应管关断,,P0.X,输出高电平,反之输出低电平。这时,P0,口不需外接上拉电阻,,P0,口的锁存器(,P0,的特殊功能寄存器,SFR,)必须写入“,1”,,以便进行外部存储器的读操作。,在,CPU,需要对外部存储器进行写操作时,“地址,/,数据”端应先送出地址,然后在把要写的数据输出。很显然,,P0,口的地址、数据是分时输出,这就是需要加入外部地址锁存器将先输出的地址锁存起来,地址锁存信号取自,ALE,。一般的情况下,,P0,口只在系统中用作总线,而不作为一般的,I/O,口,因而,P0,口不外加上拉电阻。,(a)P0.X,结构图,2)P2,口,与,P0,口类似,,P2,口除了作,I/O,口之外,还作为地址总线的高,8,位地址输出端。在作为,I/O,口用时,“控制”端为“,0”,,故多路转换器,MUX,接在锁存器的,Q,端,场效应管受锁存器的控制。在作为地址总线输出 时,“控制”端为“,1”,,多路转换器,MUX,接在“地址”端,故场效应管由“地址”端来控制,此时锁存器(,P2,的特殊功能寄存器,SFR,)的内容不变,在外部存储器读,/,写完毕时,,P2,口的地址输出的作用也结束,则“控制”端又变为“,0”,,,P2,口继续按锁存器原来的状态输出。由于,P2,口在,CPU,对外部存储器读,/,写过程中,始终能输出地址信号,所以,P2,的地址不需要外部锁存器的锁存。,(,b,),P1.X,结构图,(c)P2.X,结构图,3)P3,口,P3,口除了用作为一般,I/O,口外,每一根线都可以执行与口功能无关的第二种,I/O,功能。由图,2-5,可以看出,输出驱动器受控于锁存器的状态与第二输出功能的状态:若要进行第二输出功能时,锁存器必须先写入“,1”,,同理,在用作一般输出时,第二输出功能端为“,1”,,否则均不能进行正确的输出。,(,d,),P3.X,结构图,2.3,定时,/,计数器,在控制系统中,我们时常想要获得一定的时间间隔信号(即定时),或需要对外部的信号进行计数。虽然这些工作,CPU,都能完成,如通过执行延时程序来获得定时,或是对外部信号进行查询以判别计数器是否要计数等,但这样的后果是降低了,CPU,的工作效率。于是人们设计了硬件定时,/,计数器。它专用于定时和计数。通过编程可以选择为定时器功能,也可以选择为计数器的功能,对外部时间进行计数。定时计数器的核心是一个加,1,计数器,当定时的时间到或计数终止时,加计数器产生溢出或借位,同时向,CPU,产生中断请求。这样,CPU,平时可以做别的工作,只在定时,/,计数器初始时和,CPU,响应中断请求时才进行处理,所以使,CPU,的工作效率大大提高。,单片机的内部一般有,2,个,(8052,有,3,个,)16,位的定时,/,计数器,它们采用的都是加,1,计数。,当用作定时器功能时,加,1,计数器每一个机器周期加,1,,所以定时器可看作计算机器周期的计数器。由于每个机器周期包含,12,个振荡信号周期,所以加,1,计数器的计数脉冲频率为振荡器信号的,1/12,,当振荡器频率为,6MHz,时计数脉冲的最高频率为,500KHz,,或周期为,2s,。,当用作计数器功能时,加,1,计数器的计数脉冲取自外部输入端,T0,、,T1,(,8052,还有,T2,),只要这些引脚上有一个从“,1”,到“,0”,的负跳变,加,1,计数器就加,1,。,CPU,在每个机器周期对外部输入状态进行采样。计数器加,1,的执行是在检测到跳变后的那个机器周期时刻。,由于需要两个机器周期(,24,个振荡信号周期)来识别一个从“,1”,到“,0”,的负跳变,所以最大计数速率为振荡信号频率的,1/24,。显而易见,为了保障外部输入状态在改变之前至少采样一次,因此,信号必须至少保持一个完整的机器周期。,对于每个定时,/,计数器来讲,除了可以选择定时和计数两种功能之外,共有四种工作方式(方式,0,、方式,1,、方式,2,、方式,3,)可供选择(,8052,有三种工作方式:捕获、自动再装入、波特率发生器)。定时、计数的功能以及工作方式的选择,由特殊功能寄存器的有关位来定。,2,3,1,特殊功能寄存器,TMOD,、,TCON,51,系列单片机中有两个特殊功能寄存器,(TMOD/TCON),用于定义定时,/,计数器的工作方式和控制定时,/,计数器的有关功能,.,1.,特殊功能寄存器,TMOD,TMOD,用于定义工作方式以及操作方式。其格式为,:,高位,低位,GATE,C/T,M,1,M,0,GATE,C/T,M,1,M,0,定时,/,计数器,1,定时,/,计数器,0,TMOD,TMOD,的高,4,位控制定时,/,计数器,1,,低,4,位控制定时,/,计数,0,。其中,M1,、,M0,定义定时,/,计数器的工作方式。如表,2-6,所示。,表,2-6,定时,/,计数器的工作方式,M,1,M,0,工作方式,说明,0,0,0,13,位定时,/,计数器,0,1,1,16,位定时,/,计数器,1,0,2,具有自动重装入的,8,位定时,/,计数器,1,1,3,定时器,0,分为,2,个,8,位定时器,定时器,1,无此功能,C/T,:定时,/,计数器功能选择位。,1,:计数器功能;,0,:定时器功能,GATE,:门控制位,用于控制定时,/,计数器的启动是否受外部中断的影响。,GATE=0,,与外部中断无关;,GATE=1,,只有在没有外部中断请求信号情况下(即外部中断引脚,INT0/1=1,),才允许启动。,2.,定时器控制寄存器,TCON,特殊功能寄存器高,4,位分别为定时,/,计数器的启动控制和溢出中断标志,低,4,位与外部中断触发方式相关。其各位定义如下:,高位,低位,TF,1,TF,0,TR,1,TR,0,IE,1,IT,1,IE,0,IT,0,TCON,其中,,TF,1,:定时,/,计数器,1,溢出中断标志位,其中,,TF1,:定时,/,计数器,1,溢出中断标志位,当定时,/,计数器,1,溢出时,由硬件置位,并在允许中断情况下,发出内部中断请求信号。当主机转向其中断服务子程序时,由硬件自动清,0,。,TR1,:定时,/,计数器,1,运行位,1,:开启定时,/,计数器,1,;,0,:关闭定时,/,计数器,1,TF0:,定时,/,计数器,0,溢出中断标志位,当定时,/,计数器,0,溢出时,由硬件置位,并在允许中断情况下,发出内部中断请求信号。当主机转向其中断服务子程序时,由硬件自动清,0,。,TR0,:定时,/,计数器,0,运行位,1,:开启定时,/,计数器,0,;,0,:关闭定时,/,计数器,0,IE1,:外部中断,1,中断请求标志位,当检测到,INT1,发生,1,到,0,的跳变,且,IT1=1,时,由硬件置位,并在允许中断情况下,发出外部中断请求信号。当主机转向其中断服务子程序时,由硬件自动清,0,。,IT1,:外部中断,1,触发方式选择位,1,:跳变触发;,0,:电平触发,IE0,:外部中断,0,中断请求标志位,当检测到,INT0,发生,1,到,0,的跳变,且,IT0=1,时,由硬件置位,并在允许中断情况下,发出外部中断请求信号。当主机转向其中断服务子程序时,由硬件自动清,0,。,IT0,:外部中断,0,触发方式选择位,1,:跳变触发;,0,:电平触发,2,3,2,工作方式,通过编程对,TMOD M1,、,M0,的位的设置,定时,/,计数器可以有四种工作方式可供选择。,1,方式,0,当,M1,、,M0,位置成,00,时,工作方式为方式,0,,由图,2-6,可以看出,这时定时,/,计数器的加,1,计数器为,13,位,即,TL,的低,5,位和,TH,的,8,位。计数脉冲的来源由,TCOD,的,C/T,位来决定,,TL,和,TH,的计数值由全“,1”,变为全“,0”,时,,TMOD,的中断溢出标志位,TF,置位,定时,/,计数器向,CPU,申请中断。允许计数脉冲输入的条件是:,TR0/1=1,且,GATE=0,或,INT0/1=1,,这些均由软件设置。,图,2-6,定时器,0/1,方式,0,:,13,位计数器,当定时,/,计数器工作于定时功能且选为方式,0,时,应按照定时的时间选择一个时间常数作为计数器的初值,需要连续定时时,应在每次溢出产生中断后,在程序中为,TL,和,TH,装入初值。,方式,1,在,M1,与,M0,置为,01,时,工作于方式,1,。方式,1,与方式,0,唯一不同的地方是加,1,计数器是,16,位,此时,TL,也是,8,位。,方式,2,在,M1,与,M0,置为,10,时,工作于方式,2,。,方式,2,是将,16,位加,1,计数器组成一个可自动重新再装的,8,位加,1,计数器,其结构如图,2-7,所示。,由图,2-7,可知,,TL,作为,8,位的加,1,计数器,,TH,作为常数寄存器,通过编程对,TH,、,TL,预置安装值,启动后,当,TL,产生溢出时,不仅置位,TF,标志,而且自动控制,TH,的内容重新装入,TL,中,,TL,从定时初值开始重新计数。,图,2-8,定时器,0,工作方式,3,:分成,2,个,8,位定时,/,计数器,方式,3,方式,3,只适用于定时,/,计数器,0,,如果定时,/,计数器,1,也设定为方式,3,时,则它停止计数,其效果与置,TR1=0,相同,即关闭定时,/,计数器,1,。,定时,/,计数器,0,工作于方式,3,时,,TL0,和,TH0,变成,3,个分开的,8,位加,1,计数器,结构如图,2-8,所示。,此时,TL0,占用了定时,/,计数器,0,全部控制位,即,C/T,、,GATE,、,TR0,、,TF0,等,从而可以通过编程来选择为,8,位的定时器或计数器功能,而,TH0,只能固定为定时功能用法,对机器周期进行计数,运行控制位和益出标志位则借用,TR1,和,TF1,。这样当,TH0,有溢出时置位,TF1,,产生定时,/,计数器,1,的中断请求。所以,当选为方式,3,时,定时,/,计数器,1,仍可按方式,0,、,1,、,2,工作,不同的是这时定时计数器,1,不能使用溢出标志和中断。,2,3,3,定时,/,计数器初始化,由于定时,/,计数器是可编程的,因此在进行定时或计数之前要把程序进行初始化。初始化一般包括以下几个步骤:,1,确定工作方式,TMOD,寄存器赋值。,2,置定时,/,计数器的初值,直接将初值写入寄存器,TH0,、,TL0,和,TH1,、,TL1,。,3,根据需要,开放中断,对寄存器,IE,置初值。,4,启动,使,TCON,寄存器中的,TR1,或,TR0,置位,置位后,加,1,计数器按规定的工作方式和初值开始计数。,初值,N,的计算可以通过下式求得:,计数方式:,N=M-,计数值,定时方式时:,N=M-,定时值,(,fosc/12,)。,其中:,M,为加,1,计数器的最大值(在不同的工作方式中,,M,可以为,213,、,216,或,28,),,fosc,为振荡器频率(即主振频率)。,2.4,串行口,2,4,1,串行通信的基本概念,计算机除了与外部设备交换信息外,由多台微机组成的网络之间,微机与微机之间也需要交换信息。在计算机集散控制系统中,上位机和下位机之间更需要沟通联系,接受信息、数据或发送命令。由于微机之间的距离不同,要求传送信息的速度也不同,这就需要解决一个数据通信方式的选择问题。,51,单片机提供了两种数据通信方式可供用户选择:并行数据通信,I/O,接口,P1,和串行数据接口。单片机利用这个串行接口的通信能力,可以组成多机控制系统。,用多台计算机组成网络系统时,要求一台计算机和其他计算机之间交换信息,称之为通信。通信的基本方式可分为串行通信和并行通信两种。,1,串行通信指的是,数据按顺序一位一位地依次传送的通信方式。它的优点是只需要一根传输线就可以在系统间交换信息,特别适用于计算机与计算机之间、计算机与外部设备的远距离通信。由于串行通信可以用电话线,就可以大大地降低传输线成本,其缺点是传输速度较低。,2,并行通信指的是,在同一时刻数据的各位同时进行传送。在计算机内部,通常采用并行数据处理:以字节(,8,位)或字(,16,位)为单位处理。并行通信的优点是传送速度快,而且不需要作任何转换。缺点是占用口线太多,数据有多少位就要求多少根传输线,在较长距离通信时,使传输线的成本急剧增加,一般适用于短距离范围内。,2,4,2,串行通信的基本形式,1,异步传送方式,异步传送方式的特点是数据以一个字符或一帧为单位传送的,各个字符根据需要可以是连续传送的,也可以是间断传送的,由用户决定。另外,在进行异步传送时,发送方的同步时钟脉冲并不传送到接受方,即双方各用自己的时钟脉冲源来控制发送和接受。,由于每个字符发送是随机进行的,因此对于接受方来说,就有一个判别何时有字符送来的问题,这一点靠的是每个字符附加的起始位和终止位来识别的,所以叫“异步。在异步通信时,对字符必须规定一定的格式。异步通信格式如图,2-9,所示。一个字符一般由四部分组成:起始位、数据位、奇,/,偶校验位和停止位。一个字符的传送由起始位开始、停止位结束。起始位用低电平,0,占用一位,来通知接收端,表示一个新的字符开始传送,紧接着从数据的最低位,D0,开始逐位传送,最后以一个停止位高电平,1,结束。在线路上不传送字符时,拉开的空间位应保持高电平,1,。接收端不断检测传输线的状态,若连续收到若干个,1,以后又检测到一个,0,,就知道发送来的是一个新字符,接收端应马上准备接收。,图,2-9,异步通信的字符格式,数据位可以是,5,、,6,、,7,或,8,位。由于串行通信的速度与数据的位数成正比,所以要根据需要来确定数据的位数。,奇
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服