


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本文格式为Word版,下载可任意编辑单片机汇编延时程序 单片机汇编实现延迟的程序代码: DELAY: MOV R7,#250 ; D1: MOV R6,#250 ; D2: DJNZ R6,D2 ; DJNZ R7,D1 ; RET 假如用高级语言编程,只需要简洁地调用延时函数就可以实现,但是计算机详细是怎么实现的呢?要想知其所以然,还得从汇编开头学起。 冒号前面的“DELAY”、“D1”、“D2”为语句行的名字,是为了程序的条件语句跳转用的,分号后面为解释,计算机执行时将过滤掉这些信息,最大限度削减代码长度,提高效率。 DELAY: MOV R7,#250 ; 名字为“DELAY”的语句:意
2、思是将CPU内部内存RAM的R7位置填写为250(原来为0,为什么是0呢?由于任何程序开头执行前都要复位,就像我们准备盘要将算子复位一样,或者我们用沙盘写字,要将沙盘抹平类似) D1: MOV R6,#250 ; 名字为“D1”的语句:将R6位置填写为250 D2: DJNZ R6,D2 ; 名字为“D2”的语句:将R6位置的250减1,假如为0就连续执行下一条,不为0就连续执行D2这一句,由于R6=250,所以这个语句要原地踏步执行250次! DJNZ R7,D1 ; 这句没出名字,由于没有别的语句要跳到这里,所以就省略了。R7同样等于250,但它不是原地踏步,而是跳回了D1,这么干,D!、
3、D2和本句将被循环执行250遍,需要强调的是:D2语句自身每次都要执行250遍,也就是执行了250*250=62500遍! RET ;子程序结束(由于延时程序一般不作为独立程序存在,它只是一个子程序,也就是高级语言中的一个函数,看到这个字符,子程序将跳回到母程序,进行下一步)。 这个子程序这么反复地循环指令,究竟有什么意义呢?又是怎么实现的延时程序呢?说起来计算机真是有点笨,它是*数程序执行的次数来累加时间的!也就是说语句本身就是为了铺张时间!哈哈,可笑吧?这就像你没有钟表,但是你知道你跑操场一圈是一分钟,然后就围着操场跑了60圈,时间过了正好一小时一样。 假如是人的话,谁也不会笨到干这么累的
4、活儿来计时,但计算机不一样,它不论静止还是运动,程序总是一拍一拍地运行着,所以它不累。 那么,计算机执行一个语句耗费的时间是多少呢? 以51型单片机为例:假如采纳12MHz的晶振,运行一个机器周期为1微秒,详细为什么临时不管。单片机的指令系统分为单周期、双周期和三周期指令(三周期实际上占用四个周期,多余一个周期铺张掉),这是有指令的内容打算的,内容多的单周期执行不完,确定要延长了。子程序里面的MOV是单周期、DJNZ是双周期。 这样,我们就可以算算这个子程序累计进行了多少个周期,然后乘以1微秒,就算出它占用的时间,也就是延时的时长了! 第一句:DELAY: MOV R7,#250 ;执行了一次
5、,没有任何语句跳转给它,单周期。1 其次句:D1: MOV R6,#250 ;执行了250次,全部是第四句跳过来的,单周期。250 第三句:D2: DJNZ R6,D2 ;原地执行了250次,从其次句顺延(其次句执行完,没有其它跳转的话确定要执行第三句)过来250次,也就是250*250=62500次,双周期*2。125000 第四句:DJNZ R7,D1 ; 从第三句顺延过来250次,双周期*2。500 总计:1+250+125000+500=1257501次,乘以1微秒,换算约为0.13秒。 我们可以通过调整R6、R7的数值来调整延时的长度。事实上,8位计算机中,R6之类的工作寄存器地址最大只能放下255的十进制数值,因此要通过上述程序达到更长的延时是办不到的。 那怎么办呢? 我们可以再增加一个R4,让上述的程序最多可以循环255遍,这样,0.13秒的200多倍就是30秒上下了,不够的话再增加循环,又可以扩大200多倍,当然,工作寄存器的数量是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新零售模式下的电商变革-深度研究
- 生物药物安全性评价-深度研究
- 药物相互作用研究-第9篇-深度研究
- 跨文化美术交流-深度研究
- 仓储行业盈利增长动力-深度研究
- 借款合同范本 租金
- epc融资合同范本
- 利用合同范本制定
- 劳务招工接人合同范本
- 会议现场保障合同范本
- 2025年企业法务顾问聘用协议范本
- 教育部人文社科 申请书
- 无菌手术台铺置的细节管理
- 《康复评定技术》课件-第五章 运动控制
- 议论文8(试题+审题+范文+点评+素材)-2025年高考语文写作复习
- 【理特咨询】2024生成式人工智能GenAI在生物医药大健康行业应用进展报告
- 2025新人教版英语七年级下单词默写表(小学部分)
- 2025年春新外研版(三起)英语三年级下册课件 Unit6第1课时Startup
- 2025江苏苏州高新区狮山商务创新区下属国企业招聘9人高频重点提升(共500题)附带答案详解
- 《蒙牛集团实施财务共享过程中存在的问题及优化建议探析》8800字(论文)
- 平抛运动的经典例题
评论
0/150
提交评论