单片机延时功能.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机延时功能

在P1.0输出1KHz方波。 ORG 00H AJMP MAIN ORG 30H MAIN: CPL P1.0 ACALL DELAY SJMP MAIN DELAY:MOV R2,#250 DJNZ R2,$ RET END 2.查表程序 表格是事先存放在ROM中的,一般为一串有序的常数,例如平方表、字型码表等。 表格可通过伪指令DB来确定。 通过查表指令MOVC A,@A+DPTR MOVC A,@A+PC来实现。 3.散转程序 散转程序是指通过修改某个参数后,程序可以有三个以上的流向,多用于键盘程序。 常用的指令是JMP @A+DPTR,该指令是把16位数据指针DPTR的内容与累加器A中的8位无符号数相加,形成地址,装入程序计数器PC,形成散转的目的地址。 程序设计概述--基本步骤 题意分析 画出流程图 分配内存及端口 编制源程序 仿真、调试程序 固化程序 养成在程序的适当位置上加上注释的好习惯。 4.3.6 数据排序程序设计 升序排,降序排。仅介绍无符号数据升序排。 冒泡法:相邻数互换的排序方法,类似水中气泡上浮 。排序时从前向后进行相邻两个数的比较,次序与要求的顺序不符时,就将两个数互换;顺序符合要求不互换。 假设有7个原始数据的排列顺序为: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 ;已完成排序 第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 LOOP1 ; SETB F0 ;互换标志位F0置1 MOV A,R3; ; XCH A,@R1 ;两个数互换 DEC R1 ; XCH A,@R1 ; INC R1 LOOP1: MOV A,@R1 DJNZ R5,LOOP JB F0,SORT RET * 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机器 DJN

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档