单片机实例教程秒脉冲发生器电路课件.ppt
- 【下载声明】
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#
展开阅读全文