书签 分享 收藏 举报 版权申诉 / 144
上传文档赚钱

类型单片机实例教程秒脉冲发生器电路课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3346583
  • 上传时间:2022-08-22
  • 格式:PPT
  • 页数:144
  • 大小:1.13MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《单片机实例教程秒脉冲发生器电路课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    单片机 实例教程 脉冲 发生器 电路 课件
    资源描述:

    1、秒脉冲发生器电路学习目标学习目标n通过本项目的学习,能够阐述寻址方式的种类和功能;能够理解汇编指令,包括数据传送指令、算术运算指令、逻辑操作指令、移位类指令、跳转指令、转移和循环控制指令、相关堆栈指令及其他各种指令;熟悉伪指令概念及用途。n能够根据上述汇编指令编写简单的汇编程序。学习要求学习要求n能够阐述寻址方式的种类和功能n能够理解汇编指令熟悉伪指令概念及用途n能够根据上述汇编指令编写简单的汇编程序项目导入项目导入n由飞思卡尔MC9S08GB60单片机组成最小应用系统,产生一个秒脉冲信号,控制发光二极管(LED)每一秒亮一次。即设定控制LED发光二极管每1s亮一次,秒脉冲的周期T=1s,若每

    2、隔0.5s将PTA0端口取反,即可以在PTA0端口输出1Hz的方波。如图1-1所示。项目分析项目分析n1用最少的元器件构成一个单片机的最小应用系统。n2LED发光二极管的“定时亮灭”控制,可以利用延时方法来实现,现常用的有两种方法:一是用定时器中断来实现(定时器的硬件和寄存器知识将在项目8介绍),二是用指令循环来实现。在系统控制内容允许的情况下,可以采用第二种方法。n在动手实现利用单片机的最小应用系统控制LED发光二极管的定时亮灭(即秒脉冲发生器)时,先让我们学习飞思卡尔单片机的寻址方式和汇编指令系统的相关知识。项目分析项目分析n在动手实现利用单片机的最小应用系统控制LED发光二极管的定时亮灭

    3、(即秒脉冲发生器)时,先让我们学习飞思卡尔单片机的寻址方式和汇编指令系统的相关知识。相关知识相关知识n3.1 寻址方式寻址方式n3.2 汇编指令系统及应用举例汇编指令系统及应用举例 n3.3 伪指令伪指令n3.4 基本程序设计范例基本程序设计范例3.1 寻址方式寻址方式n指令的一个重要组成部分是操作数,由它指定参与运算的数据或数据所在的存储器单元或寄存器或I/O接口的地址。指令中所规定的寻找操作数的方式就是寻址方式。每一种计算都具有多种寻址方式,寻址方式越多,单片机的功能就越强,灵活性就越大。寻址方式的多少及寻址功能是反映指令系统优劣的主要因素之一。要掌握指令系统也可从寻址方式入手。3.1 寻

    4、址方式寻址方式nHCS08系列单片机采用的寻址方式有7种:隐含寻址方式(INH)、相对寻址方式(REL)、立即寻址方式(#IMM)、直接寻址方式(DIR)、扩展寻址方式(EXT)、变址寻址方式(间接寻址方式)。每种寻址方式分述如下:3.1 寻址方式寻址方式n3.1.1隐含寻址方式隐含寻址方式(INH)n隐含寻址方式(Inherent addressing mode,INH)是当CPU 知道要完成指令的所有信息而源码中却没有提供地址时使用的一种寻址方式。在隐含寻址方式中,执行指令的所有信息均在操作码中,CPU不需要从寄存器、存储器中取操作数,操作数隐含在累加器、变址寄存器或状态标志寄存器中。具有

    5、隐含寻址方式的指令全为单字节指令,汇编后生成的操作码在程序存储器中只占用一个字节的空间。3.1 寻址方式寻址方式n例如:nINCA;累加器A中的内容加1nINCX;变址寄存器X中的内容加1nDECA;累加器A中的内容减1nSEI;中断屏蔽位I置1nCLI;中断屏蔽位I清03.1 寻址方式寻址方式n3.1.2相对寻址方式相对寻址方式(REL)n相对寻址方式(Relative addressing mode,REL)是将程序计数器PC中的当前内容与指令第二个字节所给出的数相加,其和为跳转指令的偏移地址。在这种寻址方式中,CPU首先测试给定的条件,如果满足条件,则发生相对转移,即把当前程序计数器PC

    6、的值加上指令码所占字节数,再加上指令操作码后的8位有符号数,使程序转移到PC指定的新地址处,否则CPU执行该条指令的下一条指令。具有相对寻址方式的指令为2字节指令,一个字节为操作码,另一个字节为相对偏移量。3.1 寻址方式寻址方式n例如:nBRA rel;无条件转移到标号为rel的指令处执行程序nBSRInit;调用子程序Initn3.1.3立即寻址方式立即寻址方式(IMM)n隐含寻址方式(Immediate addressing mode,IMM)是单片机的指令系统查找数据的一种信息定位方式,在一定程度上可以把它和高级语言的常数对应起来。字面上的解释,是指数据本身直接出现在指令中,也就是说数

    7、据本身是整个指令编码的一部分。具有立即寻址方式的指令主要用于访问常数,多为2字节指令,第一个字节为操作码,后面字节为立即数,立即数前面的符号前缀“#”说明操作码后面的是操作数值而不是操作数地址。3.1 寻址方式寻址方式n例如:nMOV#$100,PTAD;给一个寄存器PTAD赋初值,这里的100是直接出现在指令中的操作数,它就是立即数,它的寻址方式就是立即寻址方式.如果查看它转换的对应的机器语言代码,会发现100是指令编码的一部分nADC#$30;将累加器A中的内容与十六进制立即数30进行带进位n 加运算,结果存放至累加器A中n立即操作数的长度是根据指令隐含的CPU 寄存器大小来定义。编译器会

    8、自动缩位或扩展操作数去匹配指令需要的长度。例如:nLDA#$08;将立即操作数08传送给累加器A,立即操作数的长度n 为8位操作数nSTAPTAD;将累加器A内容传送给寄存器PTAD,立即操作数的长n 度为8位操作数nLDHX#$012A;将立即操作数012 A 传送给变址寄存器H:X,立即操作n 数的长度为16位操作数nSTHX VOLM;将变址寄存器H:X传送给变量VOLM:VOLM+1,操n 作数的长度为16位操作数3.1 寻址方式寻址方式n3.1.4直接寻址方式直接寻址方式(DIR)n在直接寻址方式(Direct addressing mode,DIR)中,操作数的有效地址包含于操作码

    9、后的一个字节中。由于操作数的有效地址公为一个字节,因此直接寻址方式只能对存储器0页的256B空间($0000$00FF)进行操作。0页存储区含有I/O控制和状态寄存器,还有部分用户数据RAM区。一般将经常要访问的数据放在0页的用户数据RAM中,以节省程序空间,提高数据访问速度。具有直接寻址方式的指令为2字节指令,指令的第一个字节是操作码,第地个字节为操作数的有效地址。3.1 寻址方式寻址方式n例如:nLDA#$00;将$0000单元中的内容送入累加器A中nSTA$04 ;将累加器A中的内容传送给$0004单元地址中 3.1 寻址方式寻址方式n3.1.5扩展寻址方式扩展寻址方式(EXT)n在扩展

    10、寻址方式(Extended addressing mod,EXT)中,操作数的有效地址包含于操作码后的两个字节中。由于操作数的有效地址仅为2字节,因此,采用扩展寻址方式的指令可以访问64KB内的任何存储器空间。具有该寻址方式的指令一般为3字节指令,指令的第一个字节是操作码,第二、三个字节是操作数的有效地址。3.1 寻址方式寻址方式n例如:nLDA$0A0D;将$0A0D单元中的内容送入累加器A中nSTA$0809;将累加器A中的内容送入$0809单元中 3.1 寻址方式寻址方式n3.1.6 变址寻址方式变址寻址方式n变址寻址方式有时被称为间接寻址方式,是以CPU 变址寄存器H:X作为参考地址加

    11、上偏移地址,其结果作为目的地址来存取操作数的寻址方式。有些情况下变址寄存器中的值会自动增加用来存取目的操作数。变址寻址方式的重要特征是:操作数地址取决于当前CPU 变址寄存器的内容而不是常数地址。变址寻址方式可分为以下几种类型:3.1 寻址方式寻址方式n(1)无偏移量变址方式(IX)n(2)无偏移量变址、变址加1寻址方式(IX+)n(3)8位偏移量变址方式(IX1)(4)8位偏移量变址、变址加1寻址方式(IX1+)(5)16位偏移量变址方式(IX2)3.1 寻址方式寻址方式n例如:nLDA$0110,X;将以H:X 寄存器中的值加上$0110所得的值为地址的存储单n 元的内容送至累加器A中nA

    12、ND$1030,X;将以H:X 寄存器中的值加上$1030所得的值为地址的存储单n 元的内容与累加器A中的值进行逻辑运算,结果存至累加器n A中 3.1 寻址方式寻址方式n3.1.7 堆栈寻址方式堆栈寻址方式n在堆栈寻址方式或,操作数的有效地址由16位堆栈指针SP中的内容和跟在操作码后的无符号偏移量决定,根据偏移量的多少,堆栈寻址又分为8位偏移量堆栈寻址和16位偏移量堆栈寻址两种寻址方式。用堆栈方式寻址的指令功能与对应变址寻址指令相似,只是与堆栈指针SP有关的指令要求预先访问一个字节,因此它要比对应的变址指令多用一个时钟周期。3.1 寻址方式寻址方式n(1)8位偏移量堆栈寻址方式(SP1)n例

    13、如:nLDA$20,SP;将以SP中的值加上$20所得的和为地址的存储单元中的值送n 至累加器A中nINC$20,SP;将以SP中的值加上$20所得的和为地址的存储单元中的值加13.1 寻址方式寻址方式n(2)16位偏移量堆栈寻址方式(SP2)n在这种变址方式中,无符号的16 位偏移量与堆栈指针(SP)相加,得到要访问的操作数地址。该寻址方式用于访问栈中深度超过255 的数据。如果偏移量小于或等于255,编译器将自动使用更有效率的SP1 寻址方式。3.1 寻址方式寻址方式n例如:nLDA$0110,SP;将以SP中的值加上$0110所得的和为地址的存储单元中n 的值送至累加器A中 3.2汇编指

    14、令系统及应用举例汇编指令系统及应用举例nHCS08系列单片机指令系统有数据传送指令、算术运算指令、逻辑操作指令、移位类指令、跳转指令、转移和循环控制指令、相关堆栈指令及其他各种指令。本节将按照类型分别介绍各条指令的功能、指令代码及其使用。3.2汇编指令系统及应用举例汇编指令系统及应用举例n3.2.1数据传送指令数据传送指令n这组指令主要用于CPU 寄存器、立即数、内部存储器单元之间的数据传送。在读入、存储和数据传送时指令会根据数据的值自动更新条件码,这使得BEQ、BNE、BPL 和BMI 等指令不需要运行特殊的测试或比较指令就可以立即进行条件转移。3.2汇编指令系统及应用举例汇编指令系统及应用

    15、举例n1.LDA指令指令n将存储器的数值送到累加器A中 n2.LDHX指令指令 n将存储器的数值传送到变址寄存器H:X n3.LDX指令指令 n将存储器的数值送到寄存器X(变址寄存器)n4.STA指令指令 n将累加器A的内容传送到存储器中 3.2汇编指令系统及应用举例汇编指令系统及应用举例n5.STHX指令指令 n将变址寄存器H:X的内容送到目的地址 n6.STX指令指令 n将变址寄存器X内容送到目的地址 n7.MOV指令指令 n将存储器内容送到目的地址 n8.TAX指令指令 n将累加器A的内容送到变址寄存器X中 3.2汇编指令系统及应用举例汇编指令系统及应用举例n9.TXA指令指令 n将变址

    16、寄存器X的内容送到累加器中n 10.TAP指令指令 n将累加器A的内容送到寄存器CCR中n 11.TPA指令指令n将寄存器CCR的内容送到累加器A中n 12.NSA指令指令n半字节交换累加器A的数值 3.2汇编指令系统及应用举例汇编指令系统及应用举例n13.BSET指令指令 n将存储器opr8a中的第n位置1n 14.BCLR指令指令 n将存储器opr8a中的第n位清0 3.2汇编指令系统及应用举例汇编指令系统及应用举例n例如:nLDA#$55 ;将十六进制立即数55送到累加器A中nLDA$01 ;将$01单元中的内容送入累加器A 中(寻址范围:256B)nLDHX#%010111111010

    17、;将二进制立即数送入变址寄存器H:X中nLDHX$20 ;将$20单元的内容送入变址寄存器H,将$20+1单元的内容送入变址寄存器X中3.2汇编指令系统及应用举例汇编指令系统及应用举例nLDX PTAPE ;将PTAPE单元的内容送入变址寄存器X中nLDX#$5A ;将十六进制数5A送入变址寄存器X中nSTA PTAD ;将累加器A的内容送至PTAD寄存器中nSTA X ;将累加器A的内容送至X寄存器中3.2汇编指令系统及应用举例汇编指令系统及应用举例nSTX PTEDD;将变址寄存器X内容送到PTEDD寄存器nSTX DATA ;将变址寄存器X内容送到变量DATAnMOV#$03,PTAD

    18、;将十六制立即数03传送给寄存器PTAD中n MOV#$0F,PTADD ;将十六制立即数0F传送给寄存器PTADD中3.2汇编指令系统及应用举例汇编指令系统及应用举例nLDA#$55 ;将十六进制立即数55送到累加器A中n TAX ;将累加器内容55送到变址寄存器X中nLDA#$55 ;将十六进制立即数55送到累加器A中n TAP ;将累加器内容送到寄存器CCR中3.2汇编指令系统及应用举例汇编指令系统及应用举例nBSET 1,PTAD ;将寄存器PTAD的第1位置1nBSET 7,PTCDD ;将寄存器PTCDD的第7位置1nBSET TE,SCI1C2 ;将寄存器SCI1C2的第TE位置

    19、1nBCLR 2,PTCD;将寄存器PTCD的第2位清03.2汇编指令系统及应用举例汇编指令系统及应用举例n3.2.2 算术运算指令算术运算指令n算术运算指令包含了传统的加、减、乘和除操作,还包含常用的指令,如加一、减一、清零、求补(2 进制补码)、比较、测试和为处理BCD 码的十进制调整指令。比较指令实际上就是减操作,影响CCR 状态位但结果不返回到CPU 寄存器。测试指令影响着N和Z 位,但是不影响被测试的数据。3.2汇编指令系统及应用举例汇编指令系统及应用举例n1.ADC指令指令 n带进位的加法运算 n2.ADD指令指令 n不带进位的加法运算 n3.AIX指令指令 n变址寄存器H:X的内

    20、容加上立即数再送入变址寄存器中,AIX 指令不影响CCR 位n4.SUB指令指令 n将累加器A 中的数据减去存储器中的数据,然后将结果存储到累加器A中。对于这个指令,进位状态位是借位指示器,3.2汇编指令系统及应用举例汇编指令系统及应用举例n5.SBC指令指令 n将累加器A 中的数据减去由前一次操作所影响的借位,再减去存储器中的数据,然后将结果存储回寄存器A 中 n6MUL指令指令 n将寄存器X 中无符号8 位2 进制数与累加器A 中的无符号的8 位2 进制数相乘,然后存储16 位结果到X:A 中,高8 位的结果存储在X 中,低8 位存储在A中。这种情况下不可能发生进位(或者是溢出),其结果将

    21、总是适合X:A 的大小。因此进行这个操作后C 将被清零。3.2汇编指令系统及应用举例汇编指令系统及应用举例n7DIV指令指令 n将H:A 中16位无符号数值除以X中无符号的8位数值,所得的结果(8位)存储到累加器A中,余数存储到H 寄存器中。在计算中,X 中的除数数值无变化,因此它能够在随后的操作中继续被使用。如果商为0 则Z 标志被置1。如果商大于255 就会有溢出发生,发生溢出或除数为0时C 位将被置1。3.2汇编指令系统及应用举例汇编指令系统及应用举例n8INC指令指令 n操作数自加 n9DEC指令指令 n操作数自减1 n10CLR指令指令 n操作数清零 n11.NEG指令指令 n取补指

    22、令执行了二进制数的补码操作,求补指令等同于将一个8 位有符号数乘以-1。功能上等同于将寄存器A、X 或者存储器中的数据全部取反,然后加一。3.2汇编指令系统及应用举例汇编指令系统及应用举例n12.CMP指令指令 nCMP 指令是将累加器A的内容与存储器的内容进行比较,所得的结果会影响CCR寄存器的位,但其结果不会存储回累加器A中,因此累加器A和存储器的数值在运算后是不发生变化的。注意,比较指令是比较累加器A、变址寄存器X(或H:X)的内容与存储器中的内容。3.2汇编指令系统及应用举例汇编指令系统及应用举例n13.CPHX指令指令 n在CPHX 指令执行时,存储单元M指向存储单元位置的首地址,变

    23、址寄存器H与存储器位置M相对应,变址寄存器X与存储器位置M+1 相对应。CPHX 执行一个16 位减法指令时,存储结果不返回H:X 中。3.2汇编指令系统及应用举例汇编指令系统及应用举例n14.CPX指令指令 n将X变址寄存器和存储单元相比较,运算后CCR寄存器相应的位会发生变化,但操作数不改变 n15.TST指令指令 n该指令用于测试累加器A、变址寄存器X、存储单元的值是否小于等于0,它执行减0的操作,但不改变原操作数的值,只是根据结果改变CCR寄存器的N、Z标志位。3.2汇编指令系统及应用举例汇编指令系统及应用举例n16.DAA指令指令 n该指令用于BCD码的调整。在BCD 码数值中,用十

    24、六进制数表示十进制数值0 9。当两个8 位的BCD 数值相加时,CPU 实际上执行的是普通的二进制加法,对于BCD 码,这个运算结果可能不再是一个有效的BCD 码了。DAA 指令根据加法(ADD 或ADC)指令运算所改变的标志位(如H 和C标志位)对结果进行修正,使其结果成为有效的BCD 数值,而且还修正了C 标志位的内容,使其正确的表示使用BCD 加法后的结果。在早期的单片机系统中,由于还没出现该条指令,要完成这些操作是非常复杂的过程,而现在,DAA 指令则能很简单的完成这个操作。3.2汇编指令系统及应用举例汇编指令系统及应用举例n;-CMP指令例子 n LDA#$0Fn CMP#$3Fn

    25、MOV#$0E,VOLMn CMP VOLMn n LDHX#$0005n CMP ,Xn 结果是?n 3.2汇编指令系统及应用举例汇编指令系统及应用举例n;-NEGA指令例子n LDA#$02n NEGAn NEG VOLMn NEGXn LDHX#$0021n NEG ,Xn 结果是?3.2汇编指令系统及应用举例汇编指令系统及应用举例n n ;-CPHX指令例子n LDHX#$0080n STA ,Xn INCXn STA ,Xn LDHX#$0201n CPHX VOLMn结果是?n n 3.2汇编指令系统及应用举例汇编指令系统及应用举例n;-CPX指令例子n LDX#$05n CPX#

    26、$04n n ;-TST指令例子n LDA#$01n TSTAn LDX#$00n TSTXn结果是?3.2汇编指令系统及应用举例汇编指令系统及应用举例n3.2.3 逻辑操作指令逻辑操作指令n这组指令执行8 位操作数的并行布尔运算,包括与操作、或操作、异或操作、取反操作和位测试操作。取反指令是将指定的寄存器或者存储器中的操作数按位取反,其他逻辑指令均包括了两个操作数,一个是累加器A,另一个是存在存储器中。立即寻址、直接寻址、扩展寻址或变址寻址等寻址方式都可应用该组指令来访问操作数。注意,累加器A的每个位都可执行与、或和异或操作,操作的结果返回累加器A中,覆盖原来的操作数。3.2汇编指令系统及应

    27、用举例汇编指令系统及应用举例n1.AND指令指令 n该指令进行逻辑与操作,将累加器A中的内容与相应的操作数进行按位与操作,再将操作结果存入累加器A中,同时把CCR寄存器中的标志位V清为0,影响N、Z标志位,对其他标志位无影响 3.2汇编指令系统及应用举例汇编指令系统及应用举例n2.ORA指令指令 n该指令进行逻辑或操作,将累加器A中的内容与相应的操作数进行按位或操作,再将操作结果存入累加器A中,结果对CCR寄存器的影响同AND指令一样。n 3.EOR指令指令 n该指令进行逻辑异或操作,将累加器A中的内容与相应的操作数进行按位异或操作,再将操作结果存入累加器A中,结果对CCR寄存器的影响同AND

    28、指令一样。3.2汇编指令系统及应用举例汇编指令系统及应用举例n4.COM指令指令 n该指令进行取反操作,该指令简单地转换操作数的每个位,但与求补指令是不同的,取反指令执行的是一条算术运算指令,即等效于与一个-1 相乘。3.2汇编指令系统及应用举例汇编指令系统及应用举例n5.BIT指令指令 n该指令进行位测试,将相应存储地址中的操作数与累加器A的每个位进行“与操作”,但是结果不存储在累加器A中。在执行位测试指令后,根据“与操作”的结果来置位或清零CCR条件码寄存器的N 和Z 位,以实现条件跳转。如果使用“掩码”方法进行编程,则掩码中的每个对应位将被测试,执行BIT位测试指令后,若测试位均不是1,

    29、则Z 位被置位。3.2汇编指令系统及应用举例汇编指令系统及应用举例n;-DAA指令例子n LDA#$0En ADD#$06n DAAn n n ;-AND指令例子n LDA#$5Bn AND#$0Fn n LDHX#$0080n AND ,Xn n 3.2汇编指令系统及应用举例汇编指令系统及应用举例n;-ORA指令例子n LDA#$0Cn ORA#$0An n ;-EOR指令例子n LDA#$5An EOR#$03n STA VOLMn n ;-COM指令例子n LDA#$05n COMAn 3.2汇编指令系统及应用举例汇编指令系统及应用举例n;-BIT指令例子n LDA#$02n MOV#$

    30、01,VOLMn BIT VOLMn 3.2汇编指令系统及应用举例汇编指令系统及应用举例n3.2.4 移位指令移位指令n移位指令的操作是在9位的空间上进行的,这个空间是由8 位的累加器A、变址寄存器X 或者存储单元和CCR寄存器中的C 位组成。移位指令的操作包括逻辑左移、逻辑右移、算术左移、算术右移、循环左移和循环右移等操作 3.2汇编指令系统及应用举例汇编指令系统及应用举例n 1.LSL指令指令 n该指令进行逻辑左移操作,就是简单地把0移位到有效值的最低位b0,有效值的最高位b7移到进位C中 3.2汇编指令系统及应用举例汇编指令系统及应用举例n2.LSR指令指令 n该指令进行逻辑右移,就是简

    31、单地把0移位到有效值的最高位b7,有效值的最低位移b0到进位C中 3.2汇编指令系统及应用举例汇编指令系统及应用举例n3.ASL指令指令 n该指令进行算术左移(和LSL相似),类似于乘2 操作,在功能上与LSL指令没有较大的区别 3.2汇编指令系统及应用举例汇编指令系统及应用举例n4.ASR指令指令 n该指令进行算术右移,类似于除2 操作。算术右移(ASR)指令复制最初的最高有效位(b7)返回到b7,以保护操作数符号 3.2汇编指令系统及应用举例汇编指令系统及应用举例n5.ROL指令指令 n该指令进行循环左移,就是简单地将有效值的最高位b7移位到进位C,进位C原来的值移位到有效值的最低位b0,

    32、其余各位向左移一位 3.2汇编指令系统及应用举例汇编指令系统及应用举例n6.ROR指令指令 n该指令进行循环右移,就是简单地将有效值的最低位b0移位到进位C,进位C原来的值移位到有效值的最高位b7,其余各位向右移一位 3.2汇编指令系统及应用举例汇编指令系统及应用举例n;-LSL指令例子n LDA#$01n LSLAn LSLAn n ;-LSR指令例子n LDA#$80n LSRAn LSRA3.2汇编指令系统及应用举例汇编指令系统及应用举例n3.2.5 转移类指令转移类指令n这组指令分类有条件转移类指令和无条件转移类指令。有条件转移指令在条件满足时转移到程序计数器PC指定的相应地址处执行,

    33、否则顺序执行程序。有条件转移类指令又可分为累加器A比较相等转移指令、减1不为转移指令、CCR转移指令、位测试转移指令等。无条件转移指令(也称跳转指令)则无条件限制,直接转移到程序计数器PC指定的地址处执行程序,例如,BRA、JMP指令。另外,循环控制指令也属于有条件转移类指令的范畴。3.2汇编指令系统及应用举例汇编指令系统及应用举例n有条件转移指令和循环控制指令都使用了相对寻址方式,有条件地转移到一个与转移相关的位置。CCR寄存器根据条件分支或循环控制指令,决定执行新的地址还是继续顺序执行下一条指令。注意,BRA指令是个特殊的指令,因为无条件转移总是会发生;BRN指令也一样,因为无条件转移从不

    34、发生;BIL 和BIH指令也是很特别的,是因为它们决定是否需要转移,查看IRQ引脚的状态而不是CCR寄存器中的条件位。3.2汇编指令系统及应用举例汇编指令系统及应用举例n1.JMP指令指令 nJMP指令是将其后面所接的操作数为地址值送至16位程序计数器PC,使程序跳至该指令所指定的地址处执行,该指令可以实现64KB($0000$FFFF)空间任一有效地址的跳转。它具有5种寻址方式,而且不影响CCR寄存器的标志位。3.2汇编指令系统及应用举例汇编指令系统及应用举例n2.BRA指令指令 n该指令是无条件转移指令的其中一种,只有相对寻址方式(REL),实现无条件相对转移,由于是相对寻址,本身又为2字

    35、节指令,故其无条件相对转移的范围为相对于存放BRA机器指令码地址的-126+129字节空间。3.2汇编指令系统及应用举例汇编指令系统及应用举例n3.BRN指令指令 n该指令无条件不转移,即是不具有任何转移功能,它只是消耗3个总线周期的空操作。3.2汇编指令系统及应用举例汇编指令系统及应用举例n4.BEQ指令指令 n该指令主要用于表格查找子程序的快速跳转,它检测累加器A中的值是否与某一立即数或存储单元的值相等,若相等则CC寄存器的Z标志位被置为1,如果(Z)=1则使程序转移到指令所指定的地址处执行,否则顺序执行下一指令,它不改变任何原操作数的值。3.2汇编指令系统及应用举例汇编指令系统及应用举例

    36、n5.BNE指令指令 n该指令的功能恰好与BEQ指令相反,若累加器A中的值与某一立即数或存储单元的值不相等则转移指令。3.2汇编指令系统及应用举例汇编指令系统及应用举例n6.BCC指令指令 n该指令根据CC寄存器的进位标志位C的情况决定是否转移,若进位为0则转移,否则顺序执行程序。3.2汇编指令系统及应用举例汇编指令系统及应用举例n7.BCS指令指令 n该指令的功能恰好与BCC指令相反,若进位为1则转移指令,否则顺序执行程序。n 8.BPL指令指令 n该指令根据CC寄存器的负标志位N的情况决定是否转移,若负标志位N=0则转移,否则顺序执行程序。3.2汇编指令系统及应用举例汇编指令系统及应用举例

    37、n9.BMI指令指令 n该指令的功能恰好与BPL指令相反,若负标志位N=1则转移,否则顺序执行程序。n10.BIL指令指令 n该指令根据IRQ引脚电平的高低来决定是否进行转移操作,如果IRQ引脚为低电平则程序计数器PC转移至指定的地址处执行程序。3.2汇编指令系统及应用举例汇编指令系统及应用举例n11.BIH指令指令 n该指令的功能恰好与BIL指令相反,如果IRQ引脚为高电平则程序计数器PC转移至指定的地址处执行程序。n12.BMC指令指令 n该指令根据CC寄存器的中断屏蔽标志位I的情况决定是否转移,若中断屏蔽标志位I=0则转移,否则顺序执行程序 3.2汇编指令系统及应用举例汇编指令系统及应用

    38、举例n13.BMS指令指令 n该指令的功能恰好与BMC指令相反,若中断屏蔽标志位I=1则转移,否则顺序执行程序。n14BHCC指令指令 n该指令根据CC寄存器的半进位标志位H的情况决定是否转移,若半进位标志位H=0则转移,否则顺序执行程序。3.2汇编指令系统及应用举例汇编指令系统及应用举例n15BHCS指令指令 n该指令的功能恰好与BHCC指令相反,根据CC寄存器的半进位标志位H的情况决定是否转移,若半进位标志位H=1则转移,否则顺序执行程序。3.2汇编指令系统及应用举例汇编指令系统及应用举例n16BLT指令指令 n该指令根据CC寄存器的溢出标志位V和负标志位N的情况决定是否转移,若溢出标志位

    39、V和负标志位N状态不一致时则转移,否则顺序执行程序。也就是两个操作数进行比较,若前一个操作数小于后一个操作数则转移。该指令通常与比较指令、减法运算指令配合使用。3.2汇编指令系统及应用举例汇编指令系统及应用举例n17BLE指令指令 n该指令根据CC寄存器的零标志位Z、溢出标志位V和负标志位N的情况决定是否转移,若(Z)|(N V)=1时则转移,否则顺序执行程序。也就是两个操作数进行比较,若前一个操作数小于或等于后一个操作数则转移,同样该指令也与比较指令、减法运算指令配合使用。3.2汇编指令系统及应用举例汇编指令系统及应用举例n18BGE指令指令 n该指令根据CC寄存器溢出标志位V和负标志位N的

    40、情况决定是否转移,若(N V)=0时则转移,否则顺序执行程序。也就是两个操作数进行比较,若前一个操作数大于或等于后一个操作数则转移。3.2汇编指令系统及应用举例汇编指令系统及应用举例n19BGT指令指令 n该指令的功能与BLT指令相反,它根据CC寄存器的零标志位Z、溢出标志位V和负标志位N的情况决定是否转移,若(Z)|(N V)=0时则转移,也就是两个操作数进行比较,若前一个操作数大于后一个操作数则转移。同样该指令也与比较指令、减法运算指令配合使用 3.2汇编指令系统及应用举例汇编指令系统及应用举例n20BLO指令指令n 该指令根据CC寄存器的进位标志位C的情况决定是否转移,如果(C)=1,程

    41、序计数器PC则转移。也就是两个操作数进行比较,若前一个操作数小于后一个操作数则转移,它与BCS指令相似。3.2汇编指令系统及应用举例汇编指令系统及应用举例n21BLS指令指令 n该指令根据CC寄存器的进位标志位C和零标志位Z的情况决定是否转移,如果(C)|(Z)=1,程序计数器PC则转移。也就是两个操作数进行比较,若前一个操作数小于或等于后一个操作数则转移。3.2汇编指令系统及应用举例汇编指令系统及应用举例n22BHS指令指令 n该指令根据CC寄存器的进位标志位C的情况决定是否转移,如果(C)=0,程序计数器PC则转移。也就是两个操作数进行比较,若前一个操作数大于或等于后一个操作数则转移,它与

    42、BCC指令相似,3.2汇编指令系统及应用举例汇编指令系统及应用举例n23BHI指令指令 n该指令根据CC寄存器的进位标志位C和零标志位Z的情况决定是否转移,如果(C)|(Z)=0,程序计数器PC则转移。也就是两个操作数进行比较,若前一个操作数大于后一个操作数则转移。3.2汇编指令系统及应用举例汇编指令系统及应用举例n24BRCLR指令指令 n该指令是根据存储单元的位的状态来决定是否转移,如果存储单元中第n位为0则转移 n25BRSET指令指令 n该指令的功能与BRCLR指令相反,如果存储单元中第n位为1则转移指令 3.2汇编指令系统及应用举例汇编指令系统及应用举例nCBEQ指令指令 nCBEQ

    43、 指令是比较累加器A和某个存储单元的内容,如果它们彼此相等就转移至指定的地址处执行。即是两操作数相比较,相等则转移。注意,CBEQA指令是累加器A与一个立即数相比较,CBEQX 指令是变址寄存器X与一个立即数相比较。CBEQ 指令采用变址寻址方式时,当比较累加器A和变址存储单元的内容后,变址寄存器H:X 会自动加1。3.2汇编指令系统及应用举例汇编指令系统及应用举例n27DBNZ n该指令是累加器A、变址寄存器X或存储单元的内容先进行减1操作,再判断结果是否为0,如果不为0则程序计数器PC转移指定的地址处执行程序。3.2汇编指令系统及应用举例汇编指令系统及应用举例nJMP LOOP ;跳转到标

    44、号LOOPnBRA Wei ;无条件转移到标号 WeinCMP PTAD ;寄存器PTAD与累加器相比较nBEQ YY ;两者比较若相等,(Z)=1,则转移到标号YnCMP PTBD ;寄存器PTBD与累加器相比较n BNE JJ ;两者比较若不相等,(Z)=0,则转移到标号JJ3.2汇编指令系统及应用举例汇编指令系统及应用举例nBPL TK ;如果(N)=0则转移到标号TKnBMI TT ;如果(N)=1则转移到标号TTnBIH DELAY ;如果IRQ引脚=1,则程序计数器PC转移至标号 n DELAYn CLI ;把CC寄存器的中断屏蔽标志位I清0nBMC LOOP;经过上一条指令的执行

    45、,(I)=0,则程序计数器n PC转移至标号LOOPnCLI;把CC寄存器的中断屏蔽标志位I清0n BMC LOOP;经过上一条指令的执行,(I)=0,则程 n 序计数器PC没有转移到 标号LOOP,而是n 顺序执行下一条指令n LDA#$0A;这时程序计数器PC跳到此处执行3.2汇编指令系统及应用举例汇编指令系统及应用举例nADD#$01;累加器A的内容加上二进制立即数00000001n BHCC KEY;假设累加器A的内容00001111,运算后(H)=1,累加器A的内容00010000,此时程序计数器PC不转移至标号KEYn STA PTAD;程序计数器PC继续顺序执行程nADD#$01

    46、;累加器A的内容加上二进制立即数00000001n BHCS KEY;假设累加器A的内容00001111,运算后(H)=1,累加器A的内容00010000,此时程序计数器PC转移至标号KEYnCPM#$08 ;将累加器A的内容与十六进制立即数08进行比较n BLT LK ;若累加器A的内容小于十六进制立即数08,(N V)=1,程序计数器PC转移至标号LK3.2汇编指令系统及应用举例汇编指令系统及应用举例n SUB#$02;将累加器A的内容减去十六进制立n 即数02n BGE YY ;如果累加器A的内容大于或等于十六n 进制立即数,取02(N V)=0,n 程序计数器PC 转移至标号YYnCP

    47、M#$09;将累加器A的内容与十六进制数09n 相比较n BGE YY ;如果累加器A的内容大于十六进制数09,(Z)|n (N V)=0,程 序计数器PC 转移至标号YYnSUB#$02;将累加器A的内容减去十六进制立即数02n BLO WW ;假设累加器A的内容小于十六进制数02,(C)n =1,程序计数器PC 转移至标号WW3.2汇编指令系统及应用举例汇编指令系统及应用举例n3.2.6 相关堆栈指令相关堆栈指令n堆栈指令包括入栈指令和出栈指令。HCS08系列单片机的堆栈指令只能将累加器A、变址寄存器H:X中的内容压入堆栈,或者将堆栈中的内容弹出到累加器A、变址寄存器H:X中。入栈操作按照

    48、先压入,后堆栈指针寄存器SP减1的规则;出栈操作先执照堆栈指针寄存器SP加1,后弹出的规则。它不影响CCR寄存器的标志位。3.2汇编指令系统及应用举例汇编指令系统及应用举例n1RSP指令指令n堆栈指针复位(RSP)指令的操作是采用隐含寻址方式,它兼容于早期的M6805系列单片机。该指令使用存储单元$FF加载到堆栈指针寄存器SP 的低8 位,但不影响堆栈指针寄存器SP的高8 位。在早期的体系结构中,SP寄存器的高8 位难以改为$00,因此RSP 需要强迫堆栈指针寄存器SP复位到其原始状态($00FF)。在HCS08 系列中,$00FF 很少被用来作为堆栈的起始指针。所以,也不能够确定高半部分会保

    49、持$00,因此,RSP 在新的HCS08 程序中通常不是太常用。3.2汇编指令系统及应用举例汇编指令系统及应用举例n2PSHA 指令指令n该指令将累加器A的内容压入堆栈,然后堆栈指针寄存器SP自减1。n3PSHH指令指令 n该指令将变址寄存器H的内容压入堆栈,然后堆栈指针寄存器SP自减1。n4PSHX指令指令 n该指令将变址寄存器X压入堆栈,堆栈指针寄存器SP自减1。3.2汇编指令系统及应用举例汇编指令系统及应用举例n5PULA指令指令 n该指令将累加器A的内容出栈,指令执行的步骤是:堆栈指针寄存器SP自加1,再把累加器A的内容弹出 n6PULH指令指令 n该指令将变址寄存器H的内容出栈,指令

    50、执行的步骤是:堆栈指针寄存器SP自加1,再把变址寄存器H的内容弹出。3.2汇编指令系统及应用举例汇编指令系统及应用举例n7PULX指令指令 n该指令将变址寄存器X的内容出栈,指令执行的步骤是:堆栈指针寄存器SP自加1,再把变址寄存器X的内容弹出 n8AIS指令指令 n该指令是将堆栈指针寄存器SP加上立即数,所得的结果作为新的堆栈指针指向的地址。3.2汇编指令系统及应用举例汇编指令系统及应用举例nLDHX#$107F;将十六进制立即数107F送至变址寄存器n H:XnTXS;将变址寄存器H:X送至堆栈指针寄存器SP,此 n 时,堆栈就处于存储器中107F地址处nLDA#$08;将十六进制数08适

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:单片机实例教程秒脉冲发生器电路课件.ppt
    链接地址:https://www.163wenku.com/p-3346583.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库