第8章 单片机51单片机.ppt

上传人:s****8 文档编号:68704204 上传时间:2022-12-29 格式:PPT 页数:45 大小:1.10MB
返回 下载 相关 举报
第8章 单片机51单片机.ppt_第1页
第1页 / 共45页
第8章 单片机51单片机.ppt_第2页
第2页 / 共45页
点击查看更多>>
资源描述

《第8章 单片机51单片机.ppt》由会员分享,可在线阅读,更多相关《第8章 单片机51单片机.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第第8章章 16位单片机简介位单片机简介 主要内容:在MCS-51单片机基础上以8096为例简单介绍了16位单片机MCS-96的基本组成、结构、指令系统,目的在于抛砖引玉,为读者今后学习和应用16位单片机奠定基础。重点是16位单片机的特色(如:高速输入与高速输出、脉冲宽度调制PWM输出、模拟输入等)。难点是16位单片机与8位单片机的比较,在掌握8位单片机基础上较快地掌握16位单片机的应用。8.1 8.1 概述概述 MCS-96系列单片机与MCS-51系列单片机相比较,软、硬件资源远比较丰富,CPU采用寄存器寄存器结构,提高了操作速度和数据吞吐能力;具有更快的运算速度,更多的外围子系统,更高效的

2、指令系统,在89C196KC以后的芯片中,增加了一个外设事务服务器PTS,专门用于处理外设中断事务,大大减少了CPU的软件开销。MCS-96系列单片机的主要特点包括以下几个方面:系列单片机的主要特点包括以下几个方面:(1)16位CPU,具有高速处理能力,没有累加器,采用寄存器寄存器结构,具有232字节的寄存器阵列;(2)具有高效的指令系统,大大提高了编程效率;(3)4/8通道的10位A/D转换器;(4)脉宽调制PWM输出装置;(5)全双工的串行口,并有专门的波特率发生器;(6)高速的I/O系统;(7)5个8位的I/O端口;(8)可编程的8个优先级中断源;(9)16位监视定时器;(10)可动态配

3、置的总线;(11)ROM/EPROM的内容可加密;(12)2个16位的定时器/计数器,4个16位的软件定时器。应应用用范范围围:应用于自动控制系统、测试系统、智能仪器、外设控制器、家用电器等。8.2 MCS-96单片机的内部结构与引脚单片机的内部结构与引脚 8.2.1 8.2.1 CPUCPU结构与引脚结构与引脚 1 1型号与封装形式型号与封装形式 作为系列产品,MCS-96有不同的型号和封装形式。MCS-96系列产品包含2个子系列:8096和8096BH,8096BH兼容8096,但前者在性能上比后者更强,MCS-96系列的各型号产品如下表所示。MCS-96共有DIP,PGA,PLCC,LC

4、C四种不同的封装形式。图(a)、(b)分别给出了DIP、PLCC形式的封装图。(a)MCS-96单片机DIP封装形式 (b)MCS-96单片机PLCC封装形式 2引脚功能引脚功能 68引脚的引脚的MCS-96的各引脚功能分别说明如下:的各引脚功能分别说明如下:VCC:主电源电压(+5V)。VSS:数字地。VPD:RAM备用电源引脚(+5V)。VREF:A/D转换器的基准电源,也是其模拟部分的电源(+5V)。ANGND:A/D转换器的参考模拟地,通常与Vss端同电平。VBB:由片内的反偏置发生器发出的衬底电压。XTAL1:振荡器中反相器的输入和内部时钟发生器的输入。XTAL2:振荡器中反相器的输

5、出。CLKOUT:内部时钟发生器的输出端,其频率为1/3振荡频率。:复位输入端,在此引脚保待2个状态周期以上的低电平信号,将使芯片复位。TEST:输入为低时,可选通工厂测试方式。正常工作时,应把此脚接到Vcc。NMI:非屏蔽中断信号输入。INST:当对外部存储器进行读操作时,此引脚输出为高,表示是取指周期。ALE:地址锁存允许输出。:对外部存储器的读信号输出。:对外部存储器的写信号输出。:外部存储器总线的高字节允许信号输出。READY:加长存储器周期的输出控制信号。HSI.0HSI.3:高速输入单元的输入信号。HSO.0HSO.5:高速输出单元的输出信号。P0.0P0.7:8位高阻抗输入口。可

6、作为8位数字量输入口,也可以作为片内A/D转换器的8个模拟量输入信号线。当对片内EPROM编程时,另有定义。P1.0P1.7:8位准双向I/O口。P2.0P2.7:8位多功能口,其中,6条引脚分别与RXD,TXD,EXTINT,T2CLK,T2RST,PWM功能线复用。P2.6和P2.7为准双向口线,当对片内EPROM编程时,另有定义。P3.0P3.7,P4.0P4.7:均为具有漏极开路输出的8位双向I/O口。这些引脚可用做多路转换的地址/数据总线,它们具有内部上拉功能。当对片内EPROM编程时,另有定义。3 3MCS-96MCS-96系列结钩特点系列结钩特点 MCS-96系列16位单片机内部

7、结构如下图所示。8096 CPU是由寄存器、算术逻辑单元(RALU)、寄存器阵列、指令寄存器、控制单元、地址译码寄存器等部分组成。其最大特点是RALU直接对232字节寄存器阵列及专用寄存器进行各种算术逻辑操作,而没有采用常规的累加器结构,从而加速了数据的处理能力,提高了CPU的吞吐能力。同时,由于可通过专用寄存器来直接控制I/O口,加速了I/O过程。(1)CPU总线 CPU内部的寄存器阵列通过一个控制器和2条总线(8位的A-BUS和16位的D-BUS)与RALU相连。D-BUS只用于RALU与寄存器之间传送数据,而A-BUS用做上述传送过程中的地址总线。当CPU访问片内、外存储器时,A-BUS

8、可作为多路转换的地址/数据总线。(2)RALU 8096的大多数运算是靠RALU完成的。它由一个17位的ALU(其中,1位为符号位)、程序计数器PC、程序状态字寄存器PSW、循环计数器和3个暂存寄存器组成的,其结构如图下所示。RALU中,所有的寄存器都是16位或17位的。高位字寄存器和低位字寄存器都有自己专用的移位逻辑,可进行数据规格化、乘除法等运算中的逻辑移位操作。延时环节用于把16位总线D-BUS上的地址/数据转换成8位总线A-BUS上的信息。常数0,1和2存储在RALU中,以加速某些运算,如取补或加1、减1运算。16位程序状态字PSW高位保留了用户程序所需的信息状态字。PSW的格式如下表

9、所示。1616位程序状态字位程序状态字PSWPSW的各位的定义如下:的各位的定义如下:Z:零标志,操作结果为零时置位。N:符号标志,操作结果为负值时置位,与溢出无关。V:溢出标志,当产生溢出时置位。VT:溢出陷阱标志,当V标志置位时,VT也置位。但VT置1后只能由专门的指令使其清0。C:进位标志,操作结果最高位产生进位时置位。减法操作产生借位时C置位。I:总的中断允许位。ST:黏附位,在右移操作时,一个1进入C,然后又移出时置位。ST与C一起使用,可以在右移操作后控制四舍五入。INT-MASK:中断屏蔽寄存器,控制每一种中断源是被允许还是禁止。(3)CPU寄存器阵列 寄存器阵列实际上是片内的R

10、AM,它包含232字节的RAM单元,这些单元可以按字节、字或双字进行访问,每个单元都可以为RALU所用。(4)时钟信号 MCS-96具有内部振荡器电路和3相时钟发生器,如图所示,一般在XTALl和XTAL2端外接一个612MHz的晶体。振荡器的频率信号被3分频后产生3个内部定时信号,称为A,B,C相,每一相的占空比为33%,每3个满周期为1个状态周期。XTALl与A,B,C相定时信号的关系如图所示。8.2.2 存储器与存储器与I/O端口端口1 1存储器存储器 MCS-96具有一个逻辑上完全统一的存储器空间,寻址范围为64KB。存储器空间分配如右图所示。0000H00FFH为内部RAM(寄存器阵

11、列和专用寄存器),1FFEH和1FFFH分别留给P3和P4口,9个中断向量放在2000H2011H 中,2012H207FH存放厂家的测试编码。所以系统复位时,PC指向2080H。片内的程序存储器配置在2000H3FFFH上。如果用户系统需要配置RAM,建议将其配置在 0100H1FFFH上,使这8KB的RAM 与片内的RAM连在一起,便于使用。内部RAM的分配如下页图所示。00H17H为专用寄存器,26个专用寄存器名及其功能列于下页表中。其中,18H19H用于存放堆栈指针。从18H到FFH是用户使用的内部RAM区,可按字节、字、双字存取。RALU能直接对它们读写。F0HFFH用于掉电时存放需

12、保护的数据,这16个单元可由VPD引脚单独对其供电(+5V,1mA),以保护其内容。RALU与内、外存储器的通信是由存储器控制管理的,其间有A-BUS和一些控制信号相连。因为A-BUS是8位的,为加快取指速度,控制器内有一个辅助程序计数器,存储器控制器中有一个3字节的指令队列,均用以加快指令的执行。2 2外部存储器的扩展外部存储器的扩展 8096扩展2764的电路与8位单片机的连接电路类似。ALE用于锁存地址。8096中可以按字或按字节访问外部存储器。其电路如下图所示。1 1中断系统中断系统 MCS-96的中断系统允许9种中断源,对应的中断向量和优先权如下表所示,其中,用户可以使用的只有8种中

13、断源。但每一种中断源均可对应多种激活方式,如下页图所示。从这个意义上讲,8096有多至20个中断源。8.2.3 中断系统中断系统2 2中断控制中断控制 MCS-96有2个寄存器与中断控制密切相关,它们分别为中断悬挂寄存器和中断屏蔽寄存器,两者的定义是类似的,相应的位对应于同一种中断源,如下图所示。09H为中断悬挂寄存器(INT-PENDING),当CPU检测到上述8种中断源有由低到高跳变时,就把该寄存器的相应位置位,即把此中断悬挂(悬挂是指有中断申请而尚未得到响应的状态)起来。一旦被悬挂的中断得到响应,相应位被清除。中断悬挂寄存器可以用指令写入,故可以靠对该寄存器的某位置1来产生软件中断,也可

14、以靠清除相应位来撤除已悬挂的中断。08H为中断屏蔽寄存器(INT-MASK),用来控制是否允许某个中断源的中断申请。当某位置1时,相应的中断被允许,否则被禁止。对8种中断源总的控制要用EI和DI指令。8个中断源是有优先权的,当有多种中断同时挂起时,CPU先响应优先权最高的一种中断。8.2.4 8.2.4 高速高速I/OI/O部件和定时器部件和定时器/计数器计数器 高速I/O部件是由高速输入单元(HSI)、高速输出单元(HSO),一个定时器(定时器1),一个事件计数器(定时器2)组成。“高速”的含义是这个部件的工作只与内部的定时器有关(由定时器同步),而不用CPU的干预。HSI用来记录事件发生的

15、时间,HSO能按程序设定的时间触发一个事件。定时器也能单独地工作。1 1定时器定时器 定时器的工作一般要和HSI,HSO部件配合协调工作。定定时时器器1 1:是一个16位的计数器,其时钟信号来自内部时钟发生电路,每8个状态周期计数器加1。当计满时,能触发一个中断,对I/O状态寄存器(IOSl)的位5置位。作为系统实时时钟的定时器1,它一直在循环计数,任何时候都可以读它,只有用系统复位操作才能使它停止计数。定定时时器器2:定时器2也是一个16位的计数器,其时钟来自引脚HSIl/T2CLK,实际上是个外部事件计数器。每当引脚上有正和负跳变时,计数器加1。当计满时,也触发一个中断,并对IOS1.4置

16、位。定时器2可以有多种清零方式。2 2高速输入单元高速输入单元HISHIS 高速输入单元HSI是用来记录外部事件发生时刻及转入相应的处理程序的,其结构如右图所示。它包括HSI方式寄存器和HSI状态寄存器(如下页图所示)。720先进先出(FIFO)寄存器阵列、保持寄存器、HSI时间寄存器、HSI事件检测器和定时器1等部分。HSI事件检测器可测出HIS.0HSI.3中任一引脚上发生的变化事件,定时器1记录事件发生的时间,事件的形式可以由方式寄存器设定。定时器1所记录的时间及表示哪一个引脚上发生事件的信息存入FIFO中。HSI也可产生中断。一种是利用IOCl的位7控制,这种中断称为HSI数据有效中断

17、,其中断向量地址为2004H2005H。另一种是在HSI.0引脚上有0到1的跳变时所产生的中断,称为HSI.0中断,其中断向量地址为2008H2009H。在读取HSI的内容时,先读HSI状态寄存器,以获知HSI引脚的目前状态,以及是哪些引脚在记录时刻发生了变化事件。再读HSI的时间寄存器,每读一次时间寄存器,就使FIFO失掉一项数据。因此,若在读状态寄存器之前读取时间寄存器,就会丢失状态寄存器中的信息。HSI.0HSI.3都是多功能引脚,要把它们用做高速输入功能时,需要用IOC0进行控制,下图是IOC0对HSI引脚功能的控制。3 3高速输出部件高速输出部件HSOHSO 高速输出部件用来在预定的

18、时间内触发外部事件并申请中断。由HSO命令寄存器、HSO时间寄存器、HSO保持寄存器、按内容访问的存储器(CAM)阵列、比较器、多路开关、控制逻辑、输出部件和两个定时器组成,如下页图所示。这些事件包括:这些事件包括:启动A/D转换、复位定时器2、设置4个软件定时器标准、接通6根输出线。当这些事件中任一种被触发时,就能产生中断请求。其中的内容为可寻址的存储器阵列CAM,它由8个23位长度的寄存器阵列组成,其中,16位存放触发某一事件的预定时间,7位存放命令。HSO命令寄存器如右图所示,位03(000FH通道)表示这一帧命令是对哪一种事件发出的。4 4软件定时器软件定时器 HSO通过编程可设定4个

19、16位的软件定时器(ST0ST3),当4个定时器中有一个时间到,就自动在IOS1中设置一个标志。如果对命令寄存器的位4置位,就能产生一个软件定时器中断。中断服务程序通过检测IOC1能获知是哪一个定时器时间到了,多个软件定时器同时发生中断将产生多重中断。8.2.5 脉冲宽度调制脉冲宽度调制PWM 大多数控制系统都需要用A/D和D/A两种转换器,但要在同一芯片上同时完成A/D和D/A转换是很困难的。MCS-96用脉冲宽度调制PWM的方法来实现D/A转换的功能。其原理如右图所示。其中主要部件有脉宽控制寄存器、比较器和计数器。通过设定脉宽寄存器的值PWM可以获得256种不同脉宽的波形,如下图所示(图中

20、给出了5种不同占空比的输出波形)。当脉宽寄存器为0时,输出始终为低电平,当脉宽寄存器为255时,输出基本上为高电平。从图8中看出PWM的输出不是理想的直流模拟信号,还要在外电路中加以平滑。但是很多电机和开关电源可以直接使用PWM的输出信号。8.2.6 8.2.6 模拟输入模拟输入 MCS-96系列的部分产品中有一个逐次逼近型的10位A/D转换器,共有8个通道。当采用12MHz晶振时,每次转换时间为42s。A/D转换8个通道的模拟电压输入引脚与P0口的8根口线复用,通过写命令寄存器可以控制通道选择和启动A/D转换,命令寄存器如下图所示。每启动一次A/D转换都必须对命令寄存器进行一次写操作。用HS

21、O触发转换时也不例外。当一次转换正在进行时,又启动了另一次新的转换,会把正在进行的转换撤销掉,A/D转换结果寄存器的内容也会被消除掉。因此在新的转换开始前,应把原转换结果读走。结果寄存器是16位的,读出时应按字节分两次读出。结果寄存器如下图所示。8.2.7 其他部件其他部件1 1串行口串行口 MCS-96有一个全双工的串行口,能同时收发信息。与MCS-51串行口是兼容的,也有4种工作模式(请参考MCS-51串行口),通过对串行口控制寄存器的编程设定其工作模式。MCS-96有一个单独的波特率发生器专供串行口使用,故HSI,HSO和定时器的功能不受影响,这一点有别于MCS-51。2 2输入输入/输

22、出口输出口 MCS-96有5个8位口,有的只作输入,有的只作输出,也有的是输入/输出双向口且有替换功能。5个8位口功能如下:P0P0口:口:仅用作输入,与A/D转换器的模拟输入信号复用引脚。P1P1口:口:准双向8位口。P2P2口:口:多功能双向口。其功能如下表所示。P3P3口口与与P4P4口口:P3口与P4口具有两种功能。当访问外部存储器时,用作系统的地址/数据分时复用总线。若引脚接高电平,则它们是漏极开路的双向输入/输出口。输入/输出口有2个控制寄存器IOC0和IOC1,用来控制I/O口线的功能。IOC0控制定时器2和HSI的4个引脚的功能;IOC1控制其他一些口线的功能。此外,还有2个状

23、态寄存器IOS1和IOS0,用来记录一些口线的当前状态和HSO,HSI的某些状态。3 3监视定时器监视定时器WDTWDT和系统复位和系统复位 监视定时器WDT是一个16位计数器,在启动后,每个状态周期其计数器加1,当计数器溢出时,把引脚电平拉低至少2个状态周期的时间,使系统复位,重新初始化。监视定时器提供了一种使系统能从瞬间故障中自动恢复的能力,如果出观故障,程序不能正常运行,则WDT没有按时清0而产生超时(溢出)时,WDT溢出就会使系统复位,这样就能保证在非正常工作时间不会超过16ms。8.3 8.3 MCS-96MCS-96单片机指令系统简介单片机指令系统简介 MCS-96指令系统的功能是

24、极其丰富的,包括数据传送、算术运算、内外的堆栈操作、转移(无条件转移、条件转移、位测试转移)和调用、循环控制、单寄存器操作、移位、控制和规格化等功能。8.3.1 8.3.1 操作数类型操作数类型 MCS-96指令操作数类型有7种:字节Byte、字Word、短整数Short-Integer:、整数Integer、位bit、双字Double-Word、长整数Long-Integer。与一般单片机不同,在MCS-96指令系统中,所用工作寄存器并不是特定地址的寄存器,是通过用户在编程时把内部RAM中一些单元定义为工作寄存器。指令中的操作数也不是寄存器名,而是广义的符号,它们是:Breg:内部RAM中的

25、一个字节寄存器。有时,为了区分是目的操作数,还是源操作数,可用前缀“D”或“S”来标志。Wreg:内部RAM中的一个字寄存器。也可在前面加“D”或“S”,以识别它是目的操作数,还是源操作数。Baop:可用任一种寻址方式的字节操作数。Waop:可用任一种寻址方式的字操作数。Bitno:操作码中的三位,由这三位选择一个字节中的某一位。Lreg:内部RAM中的一个双字寄存器。Cadd:程序中代码的地址。8.3.2 8.3.2 寻址方式寻址方式 MCS-96指令系统中具有6种基本寻址方式:(1)寄存器直接寻址 直接访问片内256字节的RAM,一条指令中可以有多至3个操作数采用这种寻址方式。如:如:AD

26、D AX,BX,CX;(AX)=(BX)+(CX)MUL AX,BX,;(AX)=(AX)(BX)INCB CL;(CL)=(CL)+1(2)间接寻址 访问整个存储空间,被访问数的地址应放在一个16位的寄存器中,一条指令中只能有一个操作数采用间接寻址,其他操作数必须采用寄存器直接寻址。如:如:ADDB AL,BL,DX;(AL)=(BL)+(DX)POP AX 在这类寻址方式中还包含自动增量间接寻址,但需根据操作数是字节还是字,指令执行后地址寄存器要自动加1或2。如:如:LD BX,1234H LDB AX,BX+;把1234H单元的内容送AX的地位字节,执行后(BX)=1235H(3)立即寻

27、址 操作数直接放在指令中。一条指令中只能有一个立即数,其他操作数必须采用寄存器直接寻址。如:如:PUSH#1234H ADD AX,#340H(4)变址寻址 短变址寻址:有效地址是由基地址加偏移量组成的,基址寄存器为内部RAM中的一个16位寄存器,偏移量为一个带符号的8位数。可访问整个存储空间。如:如:MULB AX,BL,3CX;(AX)=(BL)(CX)+3)LD AX,12 BX ;(AX)(BX)+12)长变址寻址:与短变址类似,只是偏移量是16位数。如:如:AND AX,BX,TABLECX ;(AX)=(BX)(CX)+TABLE)其中:其中:TABLE是一个16位的地址变量。(5

28、)零寄存器寻址方式 硬件把内部RAM的00H和01H单元固定为零,故称为零寄存器。除了在一些计算和比较运算中用来做常数零外,还可用在长变址寻址中,从而可以直接访问整个存储空间。如如:ADD AX,12340;(AX)(寄存器0)+1234)(6)堆栈指针寄存器寻址 堆栈指针也可以当做一般的寄存器用,因此可做短变址寻址中的地址寄存器 如:LD AX,SP;(AX)(SP)(SP+1)8.3.3 8.3.3 MCS-96MCS-96指令系统简介指令系统简介 教材P310表8.3.1中列出了全部指令的助记符、操作数、操作码、寻址方式、执行时间、字节数等。下面通过典型指令进行概述。(1)ADD dwr

29、eg,swreg,waop功能:功能:两个源操作数swrge,waop相加后,存于目的操作数dwreg。目的码格式:目的码格式:010001aa waop wreg dwreg字节:字节:3+BEA执行时间:执行时间:3+CEA其其中中:BEA表示对所选择的寻址方式不同而需要附加的代码字节数。CEA表示对所选择的寻址方式不同而需要附加的状态周期数。(2)ANDB brag,baop功能:功能:两个字节操作数对应位相与,结果存入目的操作数。目的码格式目的码格式:011100aa baop breg字节:字节:2+BEA执行时间:执行时间:4+CEA(3)EXT lreg功功能能:操作数的低位字的

30、符号位扩展到高位字,即当低位字8000H时,0000H送高位字;否则,FFFFH送高位字。目的码格式:目的码格式:00000110 lreg字节:字节:2执行时间:执行时间:4(4)JBC brag,bltno,cadd功功能能:被测试的指定位为0时,把此指令结束处至目标标号的偏移加到PC值上,造成跳转。此偏移量的取值范围为128+127,若被测试位为1,则顺序执行下一条指令。目的码格式:目的码格式:00110bbb brag bltno其中:其中:bbb是指令寄存器内的位号字节:字节:3执行时间:执行时间:不跳转时为5,跳转时为9(5)LDB breg,baop功能:功能:源字节操作数的值存

31、入目的操作数。目的码格式:目的码格式:101100aa baop breg字节:字节:2+BEA执行时间:执行时间:4+CEA(6)SHRAB breg,count或SHRAB breg,breg功功能能:一个字节寄存器的8位右移n次,n由COUUNT或另一字节寄存器的内容确定。当最高位初始为0时,每次右移都以0填入最高位;当最高位初始为1,则把1填入。这样可以保持数的符号。这种移位称为算术右移。目的码格式:目的码格式:00011010 cut/breg breg字节:字节:3执行时间:执行时间:7+移位次数注:注:BEA-对所选择的寻址方式不同而需要附加的代码字节数。CEA-对所选择的寻址方式不同而需要附加的T状态数。作业与练习:8.2 8.38.4 8.68.9

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁