单片机C语言编程空指令产生短延时怎么办.doc
(6页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
7.9 积分
个人收集整理-仅供参考单片机语言编程空指令产生短延时怎么办 标准地语言中没有空语句.但在单片机地语言编程中,经常需要用几个空指令产生短延时地效果.这在汇编语言中很容易实现,写几个就行了. 在 中,直接调用库函数: 声明了 (); (); 产生一条指令 作用:对于延时很短地,要求在级地,采用“”函数,这个函数相当汇编指令,延时几微秒指令为单周期指令,可由晶振频率算出延时时间,对于晶振,延时.对于延时比较长地,要求在大于,采用中地循环语句来实现. 在选择中循环语句时,要注意以下几个问题 第一、定义地中循环变量,尽量采用无符号字符型变量. 第二、在循环语句中,尽量采用变量减减来做循环. 第三、在…,语句中,循环体内变量也采用减减方法. 这因为在编译器中,对不同地循环方法,采用不同地指令来完成地. 下面举例说明: ; (); ; (); 其中,第二个循环语句编译后,就用指令来完成,相当于如下指令: , : , 指令相当简洁,也很好计算精确地延时时间. 同样对…,循环语句中,也是如此 例: ; ; {} (); 或 ; () {}; 这两个循环语句经过编译之后,形成来完成地方法, 故其精确时间地计算也很方便. 其三:对于要求精确延时时间更长,这时就要采用循环嵌套地方法来实现,因此,循环嵌套地方法常用于达到级地延时.对于循环语句同样可以采用,…,结构来完成,每个循环体内地变量仍然采用无符号字符变量. () (); 或 ; {; {} (); ; } (); 或 ; () {; () {}; ; } 这三种方法都是用指令嵌套实现循环地,由编译器用下面地指令组合来完成地 , : , : , , 这些指令地组合在汇编语言中采用指令来做延时用,因此它地时间精确计算也是很简单,假上面变量地初值为,变量地初值为,则总延时时 间为:×(×),其中为指令执行时间(指令为双周期指令).这里地为这条指令所使用地时间.同样对于更长时间地延 时,可以采用多重循环来完成. 只要在程序设计循环语句时注意以上几个问题. 下面给出有关在中延时子程序设计时要注意地问题 、在中进行精确地延时子程序设计时,尽量不要或少在延时子程序中定义局部变量,所有地延时子程序中变量通过有参函数传递. 、在延时子程序设计时,采用…,结构做循环体要比结构做循环体好. 、在延时子程序设计时,要进行循环体嵌套时,采用先内循环,再减减比先减减,再内循环要好. ( ) { ; “”; “”; { { {}; (); “”; ;}; (); ; ;}; (); } 这精确延时子程序就被编译为有下面地指令组合完成 延时子程序如下: , , : , , , , , 假设参数变量地初值为,参数变量地初值为,参数变量地初值为,则总延时时间为:×(×(×)),其中为 和指令执行地时间.当时,精确延时为,最短;当时,精确延时到,最长. 6 / 6 关 键 词: 指令 产生 c语言 编程 延时 怎么办 单片机
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文