


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本文格式为Word版,下载可任意编辑单片机C语言编程空指令产生短延时怎么办 标准的C语言中没有空语句。但在单片机的C语言编程中,常常需要用几个空指令产生短延时的效果。这在汇编语言中很简单实现,写几个nop就行了。在keil C51中,直接调用库函数:#include / 声明白void _nop_(void);_nop_(); / 产生一条NOP指令作用:对于延时很短的,要求在us级的,采纳“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。对于延时比较长的,要求在大于10us,采纳C51中的循环语句来实现。
2、在选择C51中循环语句时,要留意以下几个问题第一、定义的C51中循环变量,尽量采纳无符号字符型变量。其次、在FOR循环语句中,尽量采纳变量减减来做循环。第三、在dowhile,while语句中,循环体内变量也采纳减减方法。这由于在C51编译器中,对不同的循环方法,采纳不同的指令来完成的。下面举例说明:unsigned char i;for(i=0;i255;i+);unsigned char i;for(i=255;i0;i-);其中,其次个循环语句C51编译后,就用DJNZ指令来完成,相当于如下指令:MOV09H,#0FFHLOOP: DJNZ09H,LOOP指令相当简洁,也很好计算精确的延
3、时时间。同样对dowhile,while循环语句中,也是如此例:unsigned char n;n=255;don-while(n);或n=255;while(n)n-;这两个循环语句经过C51编译之后,形成DJNZ来完成的方法,故其精确时间的计算也很便利。其三:对于要求精确延时时间更长,这时就要采纳循环嵌套的方法来实现,因此,循环嵌套的方法常用于达到ms级的延时。对于循环语句同样可以采纳for,dowhile,while结构来完成,每个循环体内的变量仍旧采纳无符号字符变量。unsigned char i,jfor(i=255;i0;i-)for(j=255;j0;j-);或unsigned
4、char i,ji=255;doj=255;doj-while(j);i-;while(i);或unsigned char i,ji=255;while(i)j=255;while(j)j-;i-;这三种方法都是用DJNZ指令嵌套实现循环的,由C51编译器用下面的指令组合来完成的MOVR7,#0FFHLOOP2: MOVR6,#0FFHLOOP1: DJNZR6,LOOP1DJNZR7,LOOP2这些指令的组合在汇编语言中采纳DJNZ指令来做延时用,因此它的时间精确计算也是很简洁,假上面变量i的初值为m,变量j的初值为n,则总延时时 间为:m×(n×T+T),其中T为DJN
5、Z指令执行时间(DJNZ指令为双周期指令)。这里的+T为MOV这条指令所使用的时间。同样对于更长时间的延 时,可以采纳多重循环来完成。只要在程序设计循环语句时留意以上几个问题。下面给出有关在C51中延时子程序设计时要留意的问题1、在C51中进行精确的延时子程序设计时,尽量不要或少在延时子程序中定义局部变量,全部的延时子程序中变量通过有参函数传递。2、在延时子程序设计时,采纳dowhile,结构做循环体要比for结构做循环体好。3、在延时子程序设计时,要进行循环体嵌套时,采纳先内循环,再减减比先减减,再内循环要好。unsigned char delay(unsigned char i,unsig
6、ned char j,unsigned char k)unsigned char b,c;b="j"c="k"dododok-;while(k);k="c"j-;while(j);j=b;i-;while(i);这精确延时子程序就被C51编译为有下面的指令组合完成delay延时子程序如下:MOV R6,05HMOV R4,03HC0012: DJNZ R3, C0012MOV R3,04HDJNZ R5, C0012MOV R5,06HDJNZ R7, C0012RET假设参数变量i的初值为m,参数变量j的初值为n,参数变量k的初值为l,则总延时时间为:l×(n×(m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年医院营养科考试题及答案
- 2025年企划部面试题及答案
- 2025年财务笔试题库及答案
- 2025年考研英语预测试题及答案
- 2025年大学英语考试试题及答案
- 2025年手术室泌尿组试题及答案
- 2025年口腔助理笔试题库及答案
- 2025年集美试题及答案5年级
- 2025年测绘类招聘考试题及答案
- “法律与生活”教学中民事法律关系客体的区分
- 幼儿园爱牙日儿童保护牙齿科普课件
- 档案销毁清册(封面)
- 机械制造投标书
- 手术分级目录(2023年修订)
- DB11 1889-2021 站城一体化工程消防安全技术标准
- 松果体细胞肿瘤护理查房
- 2024华中区域电力辅助服务管理实施细则
- 20以内减法口算练习题4000题74
- 2024年涉密人员考试试题库保密基本知识试题及答案解析
- DB65-T 4773-2024 生物安全实验室消毒技术指南
- 2024年1月份烟台市220kV公用变电站可开放容量信息明细表
评论
0/150
提交评论