单片机延时功能.ppt_第1页
单片机延时功能.ppt_第2页
单片机延时功能.ppt_第3页
单片机延时功能.ppt_第4页
单片机延时功能.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、1.循环程序设计,延时程序中延时时间的设定:,源程序: 指令周期 DELAY: MOV R3, #( X )H 2个T机器 DEL2: MOV R4,#( Y )H 2个T机器 DEL1: NOP 1个T机器 NOP 1个T机器 DJNZ R4,DEL1 2 个T机器 DJNZ R3,DEL2 2个T机器 RET,指令周期、机器周期T机器与时钟周期T时钟的关系: T机器=12T时钟=121/fosc=1s (假设晶振频率fosc为12M),延时时间的简化计算结果: (1+1+2) X Y,若想延时100ms,只需修改计数初始值,即 (1+1+2) 125200s=100ms,循环程序设计,1S

2、延时程序,源程序: DELAY: MOV R2, #10 DEL3: MOV R3, #200 DEL2: MOV R4,#125 DEL1: NOP NOP DJNZ R4,DEL1 DJNZ R3,DEL2 DJNZ R2, DEL3 RET,在P1.0输出1KHz方波。,ORG 00H AJMP MAIN ORG 30HMAIN: CPL P1.0 ACALL DELAY SJMP MAINDELAY:MOV R2,#250 DJNZ R2,$ RET END,2.查表程序,表格是事先存放在ROM中的,一般为一串有序的常数,例如平方表、字型码表等。 表格可通过伪指令DB来确定。 通过查表

3、指令MOVC A,A+DPTR MOVC A,A+PC来实现。,在LED显示和键盘处理程序中将会用到。,用查表法计算平方 ORG 0000H MOV DPTR,#TABLE ;表首地址送DPTR MOV A,#05;被查数字05A MOVC A,A+DPTR;查表求平方 SJMP $ TABLE:DB 0,1,4,9,16,25,36,49,64,81 END,3.散转程序,散转程序是指通过修改某个参数后,程序可以有三个以上的流向,多用于键盘程序。 常用的指令是JMP A+DPTR,该指令是把16位数据指针DPTR的内容与累加器A中的8位无符号数相加,形成地址,装入程序计数器PC,形成散转的目

4、的地址。,DPTR,+,A,PC,16位地址数,程序清单如下: JUMP1: MOV DPTR,JPTAB1 ;跳转表首送数据指针 MOV A,R7 ADD A,R7 ;R72A (修正变址值) JNC NOAD ;判有否进位 INC DPH ;有进位则加到高字节地址NOAD: JMP A+DPTR ;转向形成的散转地址人口 JPTAB1: AJMP OPR0 ;直接转移地址表 AJMP OPR1 . . . AJMP OPRn,例: 根据R7的内容,转向各自对应的操作程序 (R7= 0,转入OPR0;R7= 1,转入OPR1R7= n,转入OPRn),程序设计概述-基本步骤,题意分析 画出流

5、程图 分配内存及端口 编制源程序 仿真、调试程序 固化程序 养成在程序的适当位置上加上注释的好习惯。,汇编语言程序的基本结构形式 常采用以下几种基本结构: 顺序结构、分支结构和循环结构,再加上广泛使用的子程序和中断服务子程序。 1顺序结构 2分支结构 程序中含有转移指令,无条件分支,有条件分支。 有条件分支又分为:单分支结构和多分支结构。 3循环结构 4子程序,4.3.6 数据排序程序设计 升序排,降序排。仅介绍无符号数据升序排。 冒泡法:相邻数互换的排序方法,类似水中气泡上浮 。排序时从前向后进行相邻两个数的比较,次序与要求的顺序不符时,就将两个数互换;顺序符合要求不互换。 假设有7个原始数

6、据的排列顺序为:6、4、1、2、5、7、3。第一次冒泡的过程是: 6、4、1、2、5、7、3 ;原始数据的排列 4、6、1、2、5、7、3 ;逆序,互换 4、1、6、2、5、7、3 ;逆序,互换 4、1、2、6、5、7、3 ;逆序,互换 4、1、2、5、6、7、3 ;逆序,互换,4、1、2、5、6、7、3 ;正序,不互换 4、1、2、5、6、3、7 ;逆序,互换,第一次冒泡结束 如此进行,各次冒泡的结果如下: 第1次冒泡结果:4、1、2、5、6、3、7 第2次冒泡结果:1、2、4、5、3、6、7 第3次冒泡结果:1、2、4、3、5、6、7 第4次冒泡结果:1、2、3、4、5、6、7 ;已完成排

7、序 第5次冒泡结果:1、2、3、4、5、6、7 第6次冒泡结果:1、2、3、4、5、6、7 对于n个数,理论上应进行(n-1)次冒泡,有时不到(n-1)次就已完成排序 。,如何判定排序是否已完成,看各次冒泡中是否有互换发生,如果有数据互换,则排序还没完成。 在程序设计中,常使用设置互换标志的方法,该标志的状态表示在一次冒泡中是否有互换进行。 例4-10 一批单字节无符号数,以R0为首地址指针,R2中为字节数,将这批数进行升序排列。程序框图如图4-2所示。 SORT:MOV A,R0 ; MOV R1,A MOV A,R2;字节数送入R5 MOV R5,A CLR F0;互换标志位F0清零 DEC R5; MOV A,R1;,LOOP:MOV R3,A; INC R1; CLR C; MOV A,R1;比较大小 SUBB A,R3; JNC LOOP

温馨提示

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

评论

0/150

提交评论