收藏 分享(赏)

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

上传人:tkhy51908 文档编号:9358379 上传时间:2019-08-03 格式:PPT 页数:45 大小:1.10MB
下载 相关 举报
第8章 单片机  51单片机.ppt_第1页
第1页 / 共45页
第8章 单片机  51单片机.ppt_第2页
第2页 / 共45页
第8章 单片机  51单片机.ppt_第3页
第3页 / 共45页
第8章 单片机  51单片机.ppt_第4页
第4页 / 共45页
第8章 单片机  51单片机.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

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

2、KC以后的芯片中,增加了一个外设事务服务器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)可动态配置的总线;(11)ROM/EPROM的内容可加密;(12)

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

4、-96单片机PLCC封装形式,2引脚功能,68引脚的MCS-96的各引脚功能分别说明如下:VCC:主电源电压(+5V)。VSS:数字地。VPD:RAM备用电源引脚(+5V)。VREF:A/D转换器的基准电源,也是其模拟部分的电源(+5V)。ANGND:A/D转换器的参考模拟地,通常与Vss端同电平。VBB:由片内的反偏置发生器发出的衬底电压。XTAL1:振荡器中反相器的输入和内部时钟发生器的输入。XTAL2:振荡器中反相器的输出。CLKOUT:内部时钟发生器的输出端,其频率为1/3振荡频率。:复位输入端,在此引脚保待2个状态周期以上的低电平信号,将使芯片复位。TEST:输入为低时,可选通工厂测

5、试方式。正常工作时,应把此脚接到Vcc。,NMI:非屏蔽中断信号输入。 INST:当对外部存储器进行读操作时,此引脚输出为高,表示是取指周期。 ALE:地址锁存允许输出。:对外部存储器的读信号输出。:对外部存储器的写信号输出。:外部存储器总线的高字节允许信号输出。 READY:加长存储器周期的输出控制信号。 HSI.0HSI.3:高速输入单元的输入信号。 HSO.0HSO.5:高速输出单元的输出信号。 P0.0P0.7:8位高阻抗输入口。可作为8位数字量输入口,也可以作为片内A/D转换器的8个模拟量输入信号线。当对片内EPROM编程时,另有定义。 P1.0P1.7:8位准双向I/O口。 P2.

6、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编程时,另有定义。 3MCS-96系列结钩特点MCS-96系列16位单片机内部结构如下图所示。8096 CPU是由寄存器、算术逻辑单元(RALU)、寄存器阵列、指令寄存器、控制单元、地址译码寄存器等部分组成。其最大特点是RALU直接对232字节寄存器阵列及

7、专用寄存器进行各种算术逻辑操作,而没有采用常规的累加器结构,从而加速了数据的处理能力,提高了CPU的吞吐能力。同时,由于可通过专用寄存器来直接控制I/O口,加速了I/O过程。 (1)CPU总线CPU内部的寄存器阵列通过一个控制器和2条总线( 8位的A-BUS和16位的D-BUS )与RALU相连。 D-BUS只用于RALU与寄存器之间传送数据,而A-BUS用做上述传送过程中的地址总线。当CPU访问片内、外存储器时,A-BUS可作为多路转换的地址/数据总线。,(2)RALU 8096的大多数运算是靠RALU完成的。它由一个17位的ALU(其中,1位为符号位)、程序计数器PC、程序状态字寄存器PS

8、W、循环计数器和3个暂存寄存器组成的,其结构如图下所示。,RALU中,所有的寄存器都是16位或17位的。高位字寄存器和低位字寄存器都有自己专用的移位逻辑,可进行数据规格化、乘除法等运算中的逻辑移位操作。延时环节用于把16位总线D-BUS上的地址/数据转换成8位总线A-BUS上的信息。常数0,1和2存储在RALU中,以加速某些运算,如取补或加1、减1运算。16位程序状态字PSW高位保留了用户程序所需的信息状态字。PSW的格式如下表所示。,16位程序状态字PSW的各位的定义如下:Z:零标志,操作结果为零时置位。N:符号标志,操作结果为负值时置位,与溢出无关。V:溢出标志,当产生溢出时置位。VT:溢

9、出陷阱标志,当V标志置位时,VT也置位。但VT置1后只能由专门的指令使其清0。C:进位标志,操作结果最高位产生进位时置位。减法操作产生借位时C置位。I:总的中断允许位。ST:黏附位,在右移操作时,一个1进入C,然后又移出时置位。ST与C一起使用,可以在右移操作后控制四舍五入。INT-MASK:中断屏蔽寄存器,控制每一种中断源是被允许还是禁止。,(3)CPU寄存器阵列寄存器阵列实际上是片内的RAM,它包含232字节的RAM单元,这些单元可以按字节、字或双字进行访问,每个单元都可以为RALU所用。(4)时钟信号MCS-96具有内部振荡器电路和3相时钟发生器,如图所示,一般在XTALl和XTAL2端

10、外接一个612MHz的晶体。振荡器的频率信号被3分频后产生3个内部定时信号,称为A,B,C相,每一相的占空比为33%,每3个满周期为1个状态周期。XTALl与A,B,C相定时信号的关系如图所示。,8.2.2 存储器与I/O端口,1存储器MCS-96具有一个逻辑上完全统一的存储器空间,寻址范围为64KB。存储器空间分配如右图所示。,0000H00FFH为内部RAM(寄存器阵列和专用寄存器),1FFEH和1FFFH分别留给P3和P4口,9个中断向量放在2000H2011H 中,2012H207FH存放厂家的测试编码。所以系统复位时,PC指向2080H。片内的程序存储器配置在2000H3FFFH上。

11、如果用户系统需要配置RAM,建议将其配置在 0100H1FFFH上,使这8KB的RAM 与片内的RAM连在一起,便于使用。内部RAM的分配如下页图所示。 00H17H为专用寄存器,26个专用寄存器名及其功能列于下页表中。其中,18H19H用于存放堆栈指针。从18H到FFH是用户使用的内部RAM区,可按字节、字、双字存取。RALU能直接对它们读写。F0HFFH用于掉电时存放需保护的数据,这16个单元可由VPD引脚单独对其供电(+5V,1mA),以保护其内容。 RALU与内、外存储器的通信是由存储器控制管理的,其间有A-BUS和一些控制信号相连。因为A-BUS是8位的,为加快取指速度,控制器内有一

12、个辅助程序计数器,存储器控制器中有一个3字节的指令队列,均用以加快指令的执行。,2外部存储器的扩展,8096扩展2764的电路与8位单片机的连接电路类似。ALE用于锁存地址。8096中可以按字或按字节访问外部存储器。其电路如下图所示。,1中断系统MCS-96的中断系统允许9种中断源,对应的中断向量和优先权如下表所示,其中,用户可以使用的只有8种中断源。但每一种中断源均可对应多种激活方式,如下页图所示。从这个意义上讲,8096有多至20个中断源。,8.2.3 中断系统,2中断控制,MCS-96有2个寄存器与中断控制密切相关,它们分别为中断悬挂寄存器和中断屏蔽寄存器,两者的定义是类似的,相应的位对

13、应于同一种中断源,如下图所示。,09H为中断悬挂寄存器(INT-PENDING),当CPU检测到上述8种中断源有由低到高跳变时,就把该寄存器的相应位置位,即把此中断悬挂(悬挂是指有中断申请而尚未得到响应的状态)起来。一旦被悬挂的中断得到响应,相应位被清除。中断悬挂寄存器可以用指令写入,故可以靠对该寄存器的某位置1来产生软件中断,也可以靠清除相应位来撤除已悬挂的中断。08H为中断屏蔽寄存器(INT-MASK),用来控制是否允许某个中断源的中断申请。当某位置1时,相应的中断被允许,否则被禁止。对8种中断源总的控制要用EI和DI指令。8个中断源是有优先权的,当有多种中断同时挂起时,CPU先响应优先权

14、最高的一种中断。,8.2.4 高速I/O部件和定时器/计数器,高速I/O部件是由高速输入单元(HSI)、高速输出单元(HSO),一个定时器(定时器1),一个事件计数器(定时器2)组成。“高速”的含义是这个部件的工作只与内部的定时器有关(由定时器同步),而不用CPU的干预。HSI用来记录事件发生的时间,HSO能按程序设定的时间触发一个事件。定时器也能单独地工作。 1定时器定时器的工作一般要和HSI,HSO部件配合协调工作。 定时器1:是一个16位的计数器,其时钟信号来自内部时钟发生电路,每8个状态周期计数器加1。当计满时,能触发一个中断,对I/O状态寄存器(IOSl)的位5置位。作为系统实时时钟

15、的定时器1,它一直在循环计数,任何时候都可以读它,只有用系统复位操作才能使它停止计数。 定时器2:定时器2也是一个16位的计数器,其时钟来自引脚HSIl/T2CLK,实际上是个外部事件计数器。每当引脚上有正和负跳变时,计数器加1。当计满时,也触发一个中断,并对IOS1.4置位。定时器2可以有多种清零方式。,2高速输入单元HIS,高速输入单元HSI是用来记录外部事件发生时刻及转入相应的处理程序的,其结构如右图所示。它包括HSI方式寄存器和HSI状态寄存器(如下页图所示)。720先进先出(FIFO)寄存器阵列、保持寄存器、HSI时间寄存器、HSI事件检测器和定时器1等部分。,HSI事件检测器可测出

16、HIS.0HSI.3中任一引脚上发生的变化事件,定时器1记录事件发生的时间,事件的形式可以由方式寄存器设定。定时器1所记录的时间及表示哪一个引脚上发生事件的信息存入FIFO中。HSI也可产生中断。一种是利用IOCl的位7控制,这种中断称为HSI数据有效中断,其中断向量地址为2004H2005H。另一种是在HSI.0引脚上有0到1的跳变时所产生的中断,称为HSI.0中断,其中断向量地址为2008H2009H。在读取HSI的内容时,先读HSI状态寄存器,以获知HSI引脚的目前状态,以及是哪些引脚在记录时刻发生了变化事件。再读HSI的时间寄存器,每读一次时间寄存器,就使FIFO失掉一项数据。因此,若

17、在读状态寄存器之前读取时间寄存器,就会丢失状态寄存器中的信息。,HSI.0HSI.3都是多功能引脚,要把它们用做高速输入功能时,需要用IOC0进行控制,下图是IOC0对HSI引脚功能的控制。,3高速输出部件HSO高速输出部件用来在预定的时间内触发外部事件并申请中断。由HSO命令寄存器、HSO时间寄存器、HSO保持寄存器、按内容访问的存储器(CAM)阵列、比较器、多路开关、控制逻辑、输出部件和两个定时器组成,如下页图所示。,这些事件包括:启动A/D转换、复位定时器2、设置4个软件定时器标准、接通6根输出线。当这些事件中任一种被触发时,就能产生中断请求。其中的内容为可寻址的存储器阵列CAM,它由8

18、个23位长度的寄存器阵列组成,其中,16位存放触发某一事件的预定时间,7位存放命令。HSO命令寄存器如右图所示,位03(000FH通道)表示这一帧命令是对哪一种事件发出的。,4软件定时器,HSO通过编程可设定4个16位的软件定时器(ST0ST3),当4个定时器中有一个时间到,就自动在IOS1中设置一个标志。如果对命令寄存器的位4置位,就能产生一个软件定时器中断。中断服务程序通过检测IOC1能获知是哪一个定时器时间到了,多个软件定时器同时发生中断将产生多重中断。,8.2.5 脉冲宽度调制PWM,大多数控制系统都需要用A/D和D/A两种转换器,但要在同一芯片上同时完成A/D和D/A转换是很困难的。

19、MCS-96用脉冲宽度调制PWM的方法来实现D/A转换的功能。其原理如右图所示。其中主要部件有脉宽控制寄存器、比较器和计数器。,通过设定脉宽寄存器的值PWM可以获得256种不同脉宽的波形,如下图所示(图中给出了5种不同占空比的输出波形)。当脉宽寄存器为0时,输出始终为低电平,当脉宽寄存器为255时,输出基本上为高电平。从图8中看出PWM的输出不是理想的直流模拟信号,还要在外电路中加以平滑。但是很多电机和开关电源可以直接使用PWM的输出信号。,8.2.6 模拟输入,MCS-96系列的部分产品中有一个逐次逼近型的10位A/D转换器,共有8个通道。当采用12MHz晶振时,每次转换时间为42s。A/D

20、转换8个通道的模拟电压输入引脚与P0口的8根口线复用,通过写命令寄存器可以控制通道选择和启动A/D转换,命令寄存器如下图所示。每启动一次A/D转换都必须对命令寄存器进行一次写操作。用HSO触发转换时也不例外。,当一次转换正在进行时,又启动了另一次新的转换,会把正在进行的转换撤销掉,A/D转换结果寄存器的内容也会被消除掉。因此在新的转换开始前,应把原转换结果读走。结果寄存器是16位的,读出时应按字节分两次读出。结果寄存器如下图所示。,8.2.7 其他部件 1串行口MCS-96有一个全双工的串行口,能同时收发信息。与MCS-51串行口是兼容的,也有4种工作模式(请参考MCS-51串行口),通过对串

21、行口控制寄存器的编程设定其工作模式。MCS-96有一个单独的波特率发生器专供串行口使用,故HSI,HSO和定时器的功能不受影响,这一点有别于MCS-51。,2输入/输出口MCS-96有5个8位口,有的只作输入,有的只作输出,也有的是输入/输出双向口且有替换功能。5个8位口功能如下: P0口:仅用作输入,与A/D转换器的模拟输入信号复用引脚。 P1口:准双向8位口。 P2口:多功能双向口。其功能如下表所示。 P3口与P4口:P3口与P4口具有两种功能。当访问外部存储器时,用作系统的地址/数据分时复用总线。若引脚接高电平,则它们是漏极开路的双向输入/输出口。输入/输出口有2个控制寄存器IOC0和I

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

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

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

25、个操作数采用这种寻址方式。如:ADD 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, 1234HLDB AX, BX+ ; 把1234H单元

26、的内容送AX的地位字节,执行后 (BX)=1235H (3)立即寻址操作数直接放在指令中。一条指令中只能有一个立即数,其他操作数必须采用寄存器直接寻址。 如: PUSH #1234HADD 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)=(

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

28、下面通过典型指令进行概述。 (1)ADD dwreg, 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 功能:操作数的低

29、位字的符号位扩展到高位字,即当低位字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 功能:源字节操作数的值存入目的操作数。 目的码格式:10110

30、0aa 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.3 8.4 8.6 8.9,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报