智能仪器仪表 3[1]_第1页
智能仪器仪表 3[1]_第2页
智能仪器仪表 3[1]_第3页
智能仪器仪表 3[1]_第4页
智能仪器仪表 3[1]_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第三章 96系列单片机简介及应用实例z主要内容y3.1 硬件结构y3.2 MCS-96指令系统y3.3 80C196KB单片机应用实例x目的:通过一种单片机的设计实例,掌握智能仪器仪表中CPU设计的一般方法。3.1 硬件结构z主要内容主要内容y3.1.1 内部定时y3.1.2 存储空间y3.1.3 芯片配置寄存器CCRy3.1.4 状态和控制寄存器y3.1.5 中断结构 ()重点y3.1.6 定时器y3.1.7 高速输入单元 ()y3.1.8 高速输出单元 ()y3.1.9 模拟接口y3.1.10 串行口 ()y3.1.11 监视定时器y3.1.12 复位和掉电保护3.1.1内部定时z 内部定

2、时(续)z8098为3分频结构,即每3个时钟周期为1个状态周期,在12M的晶振下:y1个状态周期=3个时钟周期=1/12000000*3s=1/4s (8T)z80C196为2分频结构:y1个状态周期=2个时钟周期=1/12000000*2s=1/6s3.1.2存储空间z寄存器组合空间 ()z专用寄存器空间z掉电保护空间zROM空间的寻址存储空间READW RITE00H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH10H11H12H13H14H15H16H17H18H19HR0(LO )R0(HI)AD_CMDHSI_MO DHSO _TIM(L)

3、HSO _TIM(H)HSO _CMDSBUF(TX)INT_MASKINT_PENW ATCHDO GR0(LO )R0(HI)AD_RES(L)AD_RES(H)HSI_TIM(L)HSI_TIM(H)HSI_STASBUF(RX)INT_MASKINT_PENTIMER1(L)TIMER1(H)TIMER2(L)TIMER2(H)PO RT0PO RT2SP_STATRESERVEDIO S0IO S1 STACKPSTACKPPW M_CO NIO C1IO C0RESERVEDSP_CO NPO RT2RESERVEDBAUD_RARESERVEDRESERVEDRAMPRO TEC

4、T PO W DERDO W N RAM0EFH1AH0F0H0FFH0000H00FFH0100H1FFDH1FFEH1FFFH2000H2011H2012H-2017H2018H2019H201AH-201BH201CH-201FH2020H-202FH2030H-207FH2080HFFFFHINER O R O UTERRESERVEDCO DERESERVEDJUMP SELFRESERVEDCCRRESERVEDINTERUPT VECTO RPO RT4PO RT3O UTER MEM I/OINNER RAMRO M RAM I/O etc.图 3.3 存 储 空 间 图3.1

5、.3芯片配置寄存器CCRzCCR的内容由用户预先写入018H单元(芯片配置字节),系统复位时,该芯片配置字节被自动送入CCR寄存器。(8位总线时一般为0BDH)3.1.4状态和控制寄存器z8098有两个I/O控制寄存器IOC0和IOC1yIOC0控制定时器2和高速输入线。yIOC1控制某些引脚功能、中断源和两个HSO引脚。控制寄存器HSI.0输入/分断定时器2复位,写1使之复位HSI.1输入/分断定时器2外部复位允许/禁止HSI.2输入/分断定时器2复位源HSI.0/T2RSTHSI.3输入/分断定时器2时钟源HSI.1/T2CLK01234567图3.5 I/0控制寄存器0PWM/P2.5选

6、择ACH7/EXTINT选择定时器1溢出中断允许/禁止定时器2溢出中断允许/禁止HSO.4输出允许/禁止TXD/P2.0选择HSO.5输出允许/禁止HIS中断源选择FIFO 满/保持寄存器已有数据01234567图3.6 I/0控制寄存器1状态寄存器HSO.0 现行状态01234567图 3.7 I/0 状态寄存器 0HSO.1 现行状态HSO.2 现行状态HSO.3 现行状态HSO.4 现行状态HSO.5 现行状态CAM 或保持寄存器满HSO 保持寄存器满软件定时器 0 到时软件定时器 1 到时软件定时器 2 到时软件定时器 3 到时定时器 2 溢出定时器 1 溢出HSI FIFO 已满HS

7、I 保持寄存器数据可用01234567图 3.8 I/0 状态寄存器 13.1.5中断结构 (详细)z 中断源中断向量地址优先级别软件2011H 2010H用户不可用外部中断200FH 200EH7(最高)串行口200DH 200CH6软件定时器200BH 200AH5HS1.02009H 2008H4高速输出2007H 2006H3HSI 数据2005H 2004H2A/D 转换完成2003H 2002H1定时器溢出2001H 2000H0(最低)设置中断向量z;设置HSI,TIME,SPCON 的中断向量zORG2000HzDCWTYCINT ;T1溢出中断zORG2004HzDCWHSI

8、INT ;HSIINT-高速输入中断zORG200AHzDCWTIMEINT ;TIMEINT-软件定时中断3.1.6定时器z系统中有两个16位定时器,定时器1和定时器2。定时器1作为实时时钟用来同步其他事件。它自由运行,每8个状态周期加1。(定时器+1时间为8T=?)z该计数器在任何时刻均可读出,但一般不可改写,且除芯片复位之外也没有其他手段使其停止计数并恢复为0。定时器(续)z定时器1产生高速输入单元HSI和高速输出单元HSO的基准时间。z定时器溢出时可用来产生中断,溢出间隔时间(在12M晶振下):y0 F F F F H * 8 * T = 6 5 5 3 5 * 8 * 1 / 4 1

9、 3 1 m s (三分频系列,如8098)y0 F F F F H * 8 * T = 6 5 5 3 5 * 8 * 1 / 6 8 7 m s (二分频系列,如80C196)T1溢出中断服务子程序zTYCINT:PUSHFzz POPFz RET3.1.7高速输入单元zHSI运行方式zHSI状态寄存器(HSI_STATUS)zHSI的控制和操作 ()z(详细)高速输入概述z高速输入单元HSI可用定时器1作实时时钟来记录外部事件发生的时间。“高速”表示事件的获取无需CPU的干预。z该单元有四条高速输入线(HSI.0-3),其中HSI.2-3为双向引线,和HSO.4-5共用同一引脚。由IOC

10、0和IOC1确定。 一一 HSIHSI运行方式运行方式HSI_MODEHSI_MODEz HSI.0方式选择位01234567图3.9 HSI_MODE寄存器HSI.1方式选择位HSI.2方式选择位HSI.3方式选择位z方式选择位 事件定义z 008个正跳变为一个事件z 01 每个正跳变为一个事件z 10每个负跳变为一个事件z 11每个跳变(正和负)均为事件 二二HSIHSI状态寄存器状态寄存器HSI_STATUSHSI_STATUS)z各位的定义同图3.9y其中低位表示本引脚上是否有事件发生;y高位表示本引脚的现行状态。三三HSIHSI的控制和操作的控制和操作z有关控制见HSI_MODE、I

11、OC0、IOC1、INT_MASK、INT_PENDING以及中断向量。z中断发生后:先读HSI的状态,后读其中断时间。(两者均得读,且顺序读)HSIINT 子程序(记录脉冲)z HSIINT: PUSHFzLDBHSIBJ,HSISTAzJBSHSIBJ,0,HI0 ;判断是否0口中断zJBSHSIBJ,2,HI1 ;判断是否1口中断zJBSHSIBJ,4,HI2 ;2zJBSHSIBJ,6,HI3 ;3zSJMPHSIFHz HI0:STHSITIM ,HI0T ;读时间到HI0T中z z POPFz RET3.1.8高速输出单元zHSO输出控制y LDB HSO_COMMAND, #WH

12、AT_TO_DOy ADD HSO_TIME,TIMER1, #WHEN_TO_DO_IT高速输出单元(续)通 道 : 0-5 HSO.0-5 相 应 各 位 6 HSO.0-1 两 位 同 时 7 HSO.2-3 两 位 同 时 8-B 软 件 定 时 器 0-3 E 定 时 器 2 复 位 F 启 动 A/D 转 换中 断 /无 中 断置 位 /清 0定 时 器 2/101234567图 3.10 HSO 命 令 格 式软件定时1ms中断服务子程序z TIMEINT:PUSHFzDIzLDBHSOCOM ,#38H ;重设TIMEINTzADDHSOTIM ,TIMER1 ,#TIJG ;

13、12M=#750 6M=#375zEIzINCZDCS ;中断次数加1zPOPFzRET3.1.9模拟接口z 模拟输入z AD_COMMANDz z AD_RESULT脉冲宽度调制输出(PWM)z数/模转换可以通过脉冲宽度PWM输出来实现,PWM输出波形是一个重复周期为256个状态周期,而占空比可变,占空比的变化通过向PWM寄存器写入新值来实现。对此波形进行积分,那么,即可得到一个DC电平,通过改变占空比,可使该电平分256个阶梯变化。AD变换子程序z ADBH:ADBH:LDBLDBTDHAO,ACHTDHTDHAO,ACHTDH;TDHAO;TDHAO标记标记ACHTDHACHTDHzOR

14、BORBTDHAO,#00001000BTDHAO,#00001000BzLDBLDBADCOM,TDHAOADCOM,TDHAO; ;立即启动立即启动ADAD变换变换zNOPNOPzNOPNOPzNOPNOPz ADDD1:ADDD1:LDBLDBBL,ADLBL,ADL; ;等待等待ADAD变换的完成变换的完成zJBSJBSBL,3,ADDD1BL,3,ADDD1zLDBLDBBL,ADLBL,ADLzLDBLDBBH,ADHBH,ADHzSHRSHRBX,#6BX,#6zADDADDADLJD,BXADLJD,BX ; ;累计累计A/DA/D变换值变换值zADDCADDCADLJG,#0

15、ADLJG,#0zINCINCADBHCSADBHCS ;A/D;A/D变换次数变换次数+1+1zRETRET3.1.10串行口z方式0:同步方式,通常用在以移位寄存器为基础的I/O扩展方面z方式1:标准异步通讯方式。串行口(续)z方式2和方式3:用于多机通讯串行口(续)z串行口的控制串行口波特率设置串行口波特率设置 z1. 98:方式0= y z 方式1、2、3=yy z因为波特率寄存器的最高位用于对内部时钟源的选择 ,当用XTAL1时,固定为“1”XTALBB1410();XTALB1641()BAUDRATE方式0方式1、2、312M6M96008137H8013H8009H480082

16、70H8026H8000H+19 2. 96系列单片机的波特率设置z z方式0=z 方式1、2、3=X T A LBB1210();X T A LB11 61()BAUDRATE6M8M10M12M960038516477480077103129155基于串行口的多机通讯基于串行口的多机通讯z串行口方式2和方式3是提供给多机通讯用的。在方式2下若所接收到的第9位数据非1,则不会发生串行口中断,而方式3则均会中断。在多机系统中,当主机欲向某从机发送数据时,它首先发出一帧地址以确定目的从机。地址帧和数据帧的不同点在于,前者之第9位数据位为1,后者之该位为0。z在方式2下,数据帧不会引起任何从机中断

17、。然而,地址帧却将在所有从机中激发中断。这样,各从机便在各自的中断服务程序中检查所收到的字节是否等于自己的地址。相等者即为被呼叫的从机,于是它便切换到方式3下运行,以接收此后主机发来的数据;并回送主机数据后恢复到方式2下等待。未被呼叫的多个从机则仍留在方式2下继续自己的作业。主机12nz通讯举例:主机和2号从机进行数据交换z1、主机和全部从机工作于方式2;z2、主机以第9位为1发送地址码2;z3、全部从机接收中断,2号判定被呼叫转入方式3;其它从机仍然工作与方式2;z4、主机发送数据,DB9=0,2号中断接收;z5、2号反送主机数据,主机接收;z6、主机和2号从机再转入方式2待命。串口中断服务

18、程序z SERINT: PUSHFSERINT: PUSHFz RDAGA:RDAGA:LDBLDBSPTEMP,SPSTATSPTEMP,SPSTATzORBORBTEMP,SPTEMPTEMP,SPTEMPzANDBANDBSPTEMP,#60HSPTEMP,#60HzJNEJNERDAGARDAGAzJBSJBSTEMP,5,TRANSTEMP,5,TRANSzJBSJBSTEMP,6,GETTEMP,6,GETzSJMPSJMPSEROUTSEROUTz 3.1.11监视定时器z在12M晶振下:y 98:WATCHDOG溢出时间为:16msy 96:WATCHDOG溢出时间为:10.6

19、7msz监视定时器的驱动:(连续写入)y DIy LDB WATCHD,#1EHy LDB WATCHD,#0E1Hy EI3.1.12复位和掉电保护z在电源处于正常范围且振荡器稳定后,RESET引脚上至少保持两个状态周期的低电平就可使系统复位。zRESET引脚电压升高后,系统将执行10个状态周期的内部复位序列。在此期间,芯片配置字节CCR被从2018H单元读出并进而写入芯片CCR寄存器。z上电复位可用电容、单稳或其他方法实现,条件是它们能够提供一个宽度要比Vcc和振荡器稳定下来所需的时间至少长两个状态周期的负脉冲。对于96系列单片机,复位电平是低电平有效。 3.2 MCS-96指令系统z主要

20、内容z3.2.1操作数类型 ()z3.2.2操作数的寻址 ()z3.2.3程序状态字PSWz3.2.4指令系统3.2.1操作数类型z字节型(BYTE)z字型(WORD)z短整数型(SHORT_INTEGER)z整数型(INTEGER)z位型(BIT)z双字型(DOUBLE_WORD)z长整数型(LONG_INTEGER)3.2.2 操作数的寻址 (详细)z寄存器直接寻址 (LD AX,BX)z间接寻址 (LD AX,BX)z自动增量间接寻址 (LD AX,BX+)z立即寻址 (LD AX,#1234)z短变址寻址 (LD AX,123BX)z长变址寻址 (LD AX,1234BX)z栈指针寄存

21、器寻址 (LD AX,2SP)3.2.3程序状态字PSWz 位151413121110987 6 5 43 2 1 0标志ZNVVTCIST中断屏蔽寄存器INT_MASK1. Z:0标志,若为1,则表示刚刚进行的操作所得结果为0;3.2.4指令系统z8098单片机共有100条指令。z80C196单片机共用112条指令,其中的100条与8098完全相同。专用指令如:CMPL/MOVB/JNZW等都是98所没有的。z(详细)1. 数据传送指令zLD LDB ST STB LDBSE(短整数整数) LDBZE(字节字)yLD AX,BX; LDB AL,BLyST AX,BX; STB AL,BLy

22、LDBSE LDBZE不常用2. 算术运算指令zADD ADDB ADDC ADDCB SUB SUBB SUBC SUBCB CMP CMPB MULU MULUB MUL MULB DIVU DIVUB DIV DIVB CMPL(双字比较80C196)y注意有无符号和操作数类型yMULU(16*16=32) MULUB(8*8=16) 无符号yDIVU(32/16=16 低16=商 高16=余数)yDIVUB(16/8=8 低8=商 高8=余数)y课堂练习:将1234分解为BCD码BCD变换子程序 BCSD为入口,AX BX为转换的压缩BCD码z BCDBH:CLRAXzCLRBCSGz

23、DIVUBCSD,#1000zORAX,BCSDzSHLAX,#4zLDBCSD,BCSGzCLRBCSGzDIVUBCSD,#100zORAX,BCSDzSHLAX,#4zLDBCSD,BCSGzCLRBCSGz DIVUBCSD,#10zORAX,BCSDzSHLAX,#4zORAX,BCSGzSTBAL,BLzSTBAL,BHHzSHRBBL,#4zANDBBHH,#00001111BzSTBAH,ALzSHRBAL,#4zANDBAH,#00001111Bz PMXYH:RET3. 逻辑操作指令zAND ANDB OR ORB XOR XORByANDB AL,#11101111B ;

24、指定位清0yORB AL,#00010000B ;指定位置1yXORB AL,#00010000B ;指定位取反4. 栈操作指令zPUSH PUSHF POP POPF PUSHA POPA(双字进栈80C196专用)yPUSHFyPUSH AX ;96的堆栈向下生成SP=SP-2yPUSH BX ;若SP原为0F0H,BX压栈后SP=0EEH yyPOP BX ;先入后出yPOP AX yPOPF5. 转移操作指令zLJMP SJMP BR LCALL SCALL RET TRAP(软件中断陷井,用户不用)6. 条件转移指令zJC JNC JNH JE JH JNE JV JNV JGE J

25、LT JVT JNVT JGT JLE JST JNSTyCMPBAL,BLyJNHADDRESS0 ;当AL=BL时跳转7. 位为0或位为1的转移指令zJBS(位为1跳转) JBC(位为0跳转)yJBS AL,0,ADDRESS1 ;当AL的第0位=1时跳转yJBC AL,0,ADDRESS2 ;当AL的第0位=0时跳转8. 循环控制指令zDJNZ DJNZW(一个字的递减,80C196所有)y LDB AL,#8yLOOP1: LDBBL,#0F0HyLOOP0: NOPy DJNZ BL,LOOP0y DJNZ AL,LOOP19. 单寄存器指令zDEC DECB NEG NEGB IN

26、C INCB EXT EXTB(符号扩展) NOT NOTB CLR CLRByNEG 求补=求反1 例如:-1=11111111By1=00000001,1求反=11111110B,求反+1=11111111By再例如DS1820输出的温度值为补码,若收到00000001B则为1,若收到11111111B则为-1。10. 移位指令zSHL SHLB SHLL SHR SHRB SHRL SHRA SHRAB SHRALy注:SHRA 为带符号右移,移位后左边补1ySHRAL AL(AL=#11000011B);AL结果=#11100001B11. 专用指令zzSETC CLRC CLRVT RST DI EI NOP SKIP NORMLyRST 机器码为0FFH ,软件复位y数据总线D0D7接上拉排阻,若程序跑飞到无效地址,取回指令为0FFH使系统复位。12. 块移动(80C196所有)zBMOV BMOVIzyBMOV LREG,WREG y其中LREG为源地址(低16位)指针和目的地址(高16位)指针的组合,WREG为移动的字数yBMOV LREG(高16位=5000H 低16位=4000H),WREG(16位=100)y上面语句的作用为将以4000H为首地址的100个字的数块移到以5000H为首地址的存储器中中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论