版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章16位单片机简介主要内容:
在MCS-51单片机基础上以8096为例简单介绍了16位单片机MCS-96的基本组成、结构、指令系统,目的在于抛砖引玉,为读者今后学习和应用16位单片机奠定基础。重点是16位单片机的特色(如:高速输入与高速输出、脉冲宽度调制PWM输出、模拟输入等)。难点是16位单片机与8位单片机的比较,在掌握8位单片机基础上较快地掌握16位单片机的应用。
8.1概述
MCS-96系列单片机与MCS-51系列单片机相比较,软、硬件资源远比较丰富,CPU采用寄存器——寄存器结构,提高了操作速度和数据吞吐能力;具有更快的运算速度,更多的外围子系统,更高效的指令系统,在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)可动态配置的总线;(11)ROM/EPROM的内容可加密;(12)2个16位的定时器/计数器,4个16位的软件定时器。应用范围:应用于自动控制系统、测试系统、智能仪器、外设控制器、家用电器等。
MCS-96共有DIP,PGA,PLCC,LCC四种不同的封装形式。图(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:振荡器中反相器的输出。CLKOUT:内部时钟发生器的输出端,其频率为1/3振荡频率。:复位输入端,在此引脚保待2个状态周期以上的低电平信号,将使芯片复位。TEST:输入为低时,可选通工厂测试方式。正常工作时,应把此脚接到Vcc。NMI:非屏蔽中断信号输入。INST:当对外部存储器进行读操作时,此引脚输出为高,表示是取指周期。ALE:地址锁存允许输出。:对外部存储器的读信号输出。:对外部存储器的写信号输出。:外部存储器总线的高字节允许信号输出。READY:加长存储器周期的输出控制信号。HSI.0~HSI.3:高速输入单元的输入信号。HSO.0~HSO.5:高速输出单元的输出信号。P0.0~P0.7:8位高阻抗输入口。可作为8位数字量输入口,也可以作为片内A/D转换器的8个模拟量输入信号线。当对片内EPROM编程时,另有定义。P1.0~P1.7:8位准双向I/O口。P2.0~P2.7:8位多功能口,其中,6条引脚分别与RXD,TXD,EXTINT,T2CLK,T2RST,PWM功能线复用。P2.6和P2.7为准双向口线,当对片内EPROM编程时,另有定义。(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的格式如下表所示。
(3)CPU寄存器阵列
寄存器阵列实际上是片内的RAM,它包含232字节的RAM单元,这些单元可以按字节、字或双字进行访问,每个单元都可以为RALU所用。
(4)时钟信号
MCS-96具有内部振荡器电路和3相时钟发生器,如图所示,一般在XTALl和XTAL2端外接一个6~12MHz的晶体。振荡器的频率信号被3分频后产生3个内部定时信号,称为A,B,C相,每一相的占空比为33%,每3个满周期为1个状态周期。XTALl与A,B,C相定时信号的关系如图所示。8.2.2存储器与I/O端口1.存储器
MCS-96具有一个逻辑上完全统一的存储器空间,寻址范围为64KB。存储器空间分配如右图所示。
0000H~00FFH为内部RAM(寄存器阵列和专用寄存器),1FFEH和1FFFH分别留给P3和P4口,9个中断向量放在2000H~2011H中,2012H~207FH存放厂家的测试编码。所以系统复位时,PC指向2080H。片内的程序存储器配置在2000H~3FFFH上。如果用户系统需要配置RAM,建议将其配置在0100H~1FFFH上,使这8KB的RAM与片内的RAM连在一起,便于使用。内部RAM的分配如下页图所示。00H~17H为专用寄存器,26个专用寄存器名及其功能列于下页表中。其中,18H~19H用于存放堆栈指针。从18H到FFH是用户使用的内部RAM区,可按字节、字、双字存取。RALU能直接对它们读写。F0H~FFH用于掉电时存放需保护的数据,这16个单元可由VPD引脚单独对其供电(+5V,1mA),以保护其内容。
RALU与内、外存储器的通信是由存储器控制管理的,其间有A-BUS和一些控制信号相连。因为A-BUS是8位的,为加快取指速度,控制器内有一个辅助程序计数器,存储器控制器中有一个3字节的指令队列,均用以加快指令的执行。2.外部存储器的扩展
8096扩展2764的电路与8位单片机的连接电路类似。ALE用于锁存地址。8096中可以按字或按字节访问外部存储器。其电路如下图所示。1.中断系统
MCS-96的中断系统允许9种中断源,对应的中断向量和优先权如下表所示,其中,用户可以使用的只有8种中断源。但每一种中断源均可对应多种激活方式,如下页图所示。从这个意义上讲,8096有多至20个中断源。8.2.3中断系统2.中断控制
MCS-96有2个寄存器与中断控制密切相关,它们分别为中断悬挂寄存器和中断屏蔽寄存器,两者的定义是类似的,相应的位对应于同一种中断源,如下图所示。
09H为中断悬挂寄存器(INT-PENDING),当CPU检测到上述8种中断源有由低到高跳变时,就把该寄存器的相应位置位,即把此中断悬挂(悬挂是指有中断申请而尚未得到响应的状态)起来。一旦被悬挂的中断得到响应,相应位被清除。中断悬挂寄存器可以用指令写入,故可以靠对该寄存器的某位置1来产生软件中断,也可以靠清除相应位来撤除已悬挂的中断。08H为中断屏蔽寄存器(INT-MASK),用来控制是否允许某个中断源的中断申请。当某位置1时,相应的中断被允许,否则被禁止。对8种中断源总的控制要用EI和DI指令。8个中断源是有优先权的,当有多种中断同时挂起时,CPU先响应优先权最高的一种中断。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置位。作为系统实时时钟的定时器1,它一直在循环计数,任何时候都可以读它,只有用系统复位操作才能使它停止计数。定时器2:定时器2也是一个16位的计数器,其时钟来自引脚HSIl/T2CLK,实际上是个外部事件计数器。每当引脚上有正和负跳变时,计数器加1。当计满时,也触发一个中断,并对IOS1.4置位。定时器2可以有多种清零方式。
HSI事件检测器可测出HIS.0~HSI.3中任一引脚上发生的变化事件,定时器1记录事件发生的时间,事件的形式可以由方式寄存器设定。定时器1所记录的时间及表示哪一个引脚上发生事件的信息存入FIFO中。HSI也可产生中断。一种是利用IOCl的位7控制,这种中断称为HSI数据有效中断,其中断向量地址为2004H~2005H。另一种是在HSI.0引脚上有0到1的跳变时所产生的中断,称为HSI.0中断,其中断向量地址为2008H~2009H。在读取HSI的内容时,先读HSI状态寄存器,以获知HSI引脚的目前状态,以及是哪些引脚在记录时刻发生了变化事件。再读HSI的时间寄存器,每读一次时间寄存器,就使FIFO失掉一项数据。因此,若在读状态寄存器之前读取时间寄存器,就会丢失状态寄存器中的信息。这些事件包括:启动A/D转换、复位定时器2、设置4个软件定时器标准、接通6根输出线。当这些事件中任一种被触发时,就能产生中断请求。其中的内容为可寻址的存储器阵列CAM,它由8个23位长度的寄存器阵列组成,其中,16位存放触发某一事件的预定时间,7位存放命令。HSO命令寄存器如右图所示,位0~3(00~0FH通道)表示这一帧命令是对哪一种事件发出的。4.软件定时器
HSO通过编程可设定4个16位的软件定时器(ST0~ST3),当4个定时器中有一个时间到,就自动在IOS1中设置一个标志。如果对命令寄存器的位4置位,就能产生一个软件定时器中断。中断服务程序通过检测IOC1能获知是哪一个定时器时间到了,多个软件定时器同时发生中断将产生多重中断。8.2.5脉冲宽度调制PWM
大多数控制系统都需要用A/D和D/A两种转换器,但要在同一芯片上同时完成A/D和D/A转换是很困难的。MCS-96用脉冲宽度调制PWM的方法来实现D/A转换的功能。其原理如右图所示。其中主要部件有脉宽控制寄存器、比较器和计数器。
通过设定脉宽寄存器的值PWM可以获得256种不同脉宽的波形,如下图所示(图中给出了5种不同占空比的输出波形)。当脉宽寄存器为0时,输出始终为低电平,当脉宽寄存器为255时,输出基本上为高电平。从图8中看出PWM的输出不是理想的直流模拟信号,还要在外电路中加以平滑。但是很多电机和开关电源可以直接使用PWM的输出信号。
8.2.6模拟输入
MCS-96系列的部分产品中有一个逐次逼近型的10位A/D转换器,共有8个通道。当采用12MHz晶振时,每次转换时间为42μs。A/D转换8个通道的模拟电压输入引脚与P0口的8根口线复用,通过写命令寄存器可以控制通道选择和启动A/D转换,命令寄存器如下图所示。每启动一次A/D转换都必须对命令寄存器进行一次写操作。用HSO触发转换时也不例外。
当一次转换正在进行时,又启动了另一次新的转换,会把正在进行的转换撤销掉,A/D转换结果寄存器的内容也会被消除掉。因此在新的转换开始前,应把原转换结果读走。结果寄存器是16位的,读出时应按字节分两次读出。结果寄存器如下图所示。
8.2.7其他部件1.串行口
MCS-96有一个全双工的串行口,能同时收发信息。与MCS-51串行口是兼容的,也有4种工作模式(请参考MCS-51串行口),通过对串行口控制寄存器的编程设定其工作模式。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和IOC1,用来控制I/O口线的功能。IOC0控制定时器2和HSI的4个引脚的功能;IOC1控制其他一些口线的功能。此外,还有2个状态寄存器IOS1和IOS0,用来记录一些口线的当前状态和HSO,HSI的某些状态。
3.监视定时器WDT和系统复位
监视定时器WDT是一个16位计数器,在启动后,每个状态周期其计数器加1,当计数器溢出时,把引脚电平拉低至少2个状态周期的时间,使系统复位,重新初始化。监视定时器提供了一种使系统能从瞬间故障中自动恢复的能力,如果出观故障,程序不能正常运行,则WDT没有按时清0而产生超时(溢出)时,WDT溢出就会使系统复位,这样就能保证在非正常工作时间不会超过16ms。
8.3MCS-96单片机指令系统简介
MCS-96指令系统的功能是极其丰富的,包括数据传送、算术运算、内外的堆栈操作、转移(无条件转移、条件转移、位测试转移)和调用、循环控制、单寄存器操作、移位、控制和规格化等功能。8.3.1操作数类型
MCS-96指令操作数类型有7种:字节Byte、字Word、短整数Short-Integer:、整数Integer、位bit、双字Double-Word、长整数Long-Integer。与一般单片机不同,在MCS-96指令系统中,所用工作寄存器并不是特定地址的寄存器,是通过用户在编程时把内部RAM中一些单元定义为工作寄存器。指令中的操作数也不是寄存器名,而是广义的符号,它们是:
①Breg:内部RAM中的一个字节寄存器。有时,为了区分是目的操作数,还是源操作数,可用前缀“D”或“S”来标志。②Wreg:内部RAM中的一个字寄存器。也可在前面加“D”或“S”,以识别它是目的操作数,还是源操作数。③Baop:可用任一种寻址方式的字节操作数。④Waop:可用任一种寻址方式的字操作数。⑤Bitno:操作码中的三位,由这三位选择一个字节中的某一位。⑥Lreg:内部RAM中的一个双字寄存器。⑦Cadd:程序中代码的地址。8.3.2寻址方式
MCS-96指令系统中具有6种基本寻址方式:(1)寄存器直接寻址
直接访问片内256字节的RAM,一条指令中可以有多至3个操作数采用这种寻址方式。
如:ADDAX,BX,CX ;(AX)=(BX)+(CX)MULAX,BX, ;(AX)=(AX)×(BX)INCBCL ;(CL)=(CL)+1(2)间接寻址
访问整个存储空间,被访问数的地址应放在一个16位的寄存器中,一条指令中只能有一个操作数采用间接寻址,其他操作数必须采用寄存器直接寻址。如:ADDBAL,BL,[DX] ;(AL)=(BL)+((DX))POP[AX]
在这类寻址方式中还包含自动增量间接寻址,但需根据操作数是字节还是字,指令执行后地址寄存器要自动加1或2。
如:
LDBX,1234H LDBAX,[BX]+;把1234H单元的内容送AX的地位字节,执行后(BX)=1235H(3)立即寻址
操作数直接放在指令中。一条指令中只能有一个立即数,其他操作数必须采用寄存器直接寻址。
如:
PUSH#1234HADDAX,#340H(4)变址寻址
①短变址寻址:有效地址是由基地址加偏移量组成的,基址寄存器为内部RAM中的一个16位寄存器,偏移量为一个带符号的8位数。可访问整个存储空间。
如:MULBAX,BL,3[CX] ;(AX)=(BL)×((CX)+3)LDAX,12[BX] ;(AX)=((BX)+12)
②长变址寻址:与短变址类似,只是偏移量是16位数。
如:ANDAX,BX,TABLE[CX];(AX)=(BX)∧((CX)+TABLE)
其中:TABLE是一个16位的地址变量。(5)零寄存器寻址方式
硬件把内部RAM的00H和01H单元固定为零,故称为零寄存器。除了在一些计算和比较运算中用来做常数零外,还可用在长变址寻址中,从而可以直接访问整个存储空间。
如:ADDAX,1234[0];(AX)←((寄存器0)+1234)(6)堆栈指针寄存器寻址
堆栈指针也可以当做一般的寄存器用,因此可做短变址寻址中的地址寄存器.如:LDAX,[SP] ;(AX)←(SP)(SP+1)
8.3.3MCS-96指令系统简介
教材P310表8.3.1中列出了全部指令的助记符、操作数、操作码、寻址方式、执行时间、字节数等。下面通过典型指令进行概述。(1)ADDdwreg,swreg,waop功能:两个源操作数swrge,waop相加后,存于目的操作数dwreg。目的码格式:[010001aa][waop][wreg][dwreg]字节
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026初级经济师资格考试(旅游经济专业知识和实务)历年参考题库含答案详解
- 2026初级会计-初级会计实务(官方)-财务报表参考试题库历年考点答案详解
- 2026军队士兵职业技能鉴定考试(警卫)历年参考题库含答案详解
- 2026军队专业技能岗位文职人员招聘考试(数据维护员)历年参考题库含答案详解
- 2026内蒙古自治区警务辅助人员招聘考试(公共基础知识)历年参考题库含答案详解
- 2026内蒙古正高级经济师考试(高级经济实务·农业经济)历年参考题库含答案详解
- 2026内河船员考试(轮机管理2603·三类轮机员)历年参考题库含答案详解
- 2026公卫执业医师-第三单元考试历年参考题库含答案详解
- 2026年湖南水运投资建设集团有限公司人员招聘考试参考题库及详细答案解析
- 2026年广州酒家集团股份有限公司人员招聘笔试参考试题及详细答案解析
- 鄂尔多斯市国有资产投资控股集团有限公司招聘笔试真题2024
- 辅导员工作岗位知识培训课件
- 地产尾盘培训知识课件
- DR体位操作技术规范与临床应用
- 一次性医疗用品管理课件
- 公司员工上岗证管理制度
- 列车开行方案列车开行方案高速铁路运营技术64课件
- 江苏省2025年中职职教高考文化统考数学试题
- 2024年人教版六年级语文上册《第4单元语文园地四》教学课件
- 春季中学田径运动会开幕式议程
- 2024年上半年教师资格证《初中化学》真题及答案
评论
0/150
提交评论