导航:首页 > 编程知识 > 51汇编程序怎么加循环延时

51汇编程序怎么加循环延时

发布时间:2024-10-16 20:31:21

❶ 求做个汇编编程,用双层循环实现100ms的延时

设主频12MHz的51单片机,编一个100ms二重循环的延时程序如下,供参考。其它汇编可以类似编程。
SSSS:MOV R0,#99;本指令是单周期指令,用时1us
KKKK0:DJNZ R0,KKKKK;2us
MOV R1,#125;1us
LLLL0:DJNZ R1,LLLLL;2us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
LLLLL:SJMP LLLL0;2us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
KKKKK:SJMP KKKK0;2us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
NOP;1us
RET;2us
这段程序延时时间是
1+99*[2+1+125*(2+1+1+1+1+2)+1+1+1+1+1+2]+1+1+1+1+2=100000us=100ms
可以适当调整循环常数99、125以求减小NOP(空操作指令),使程序更加精练。
dshxxf程序不错,但延时时间是50301us,计算如下1+100*(1+2*250+3)

❷ 51单片机延时函数的问题。晶振是12MHz..需要延时1秒

很简单,for循环也是需要时间的.

当你使用仿真的时候,通常可以在编译器里面查看这段代码的汇编指令.

你可以看书它的用到了多少个汇编指令,然后在你的芯片手册上查询,每一个汇编指令执行需要多少个最小指令周期.最小指令周期才是你说的1um,全部加起来,你就知道你这句话用掉了多少个最小指令.

很明显远远超过了1个最小指令.9秒的的误差算少的了...

所以说,假如你要做1s的延迟,最好使用内部时钟中断来做,直接在程序内部delay延时的话,占用系统资源还算不准...

具体解释下上图,为了拿这5分还真不容易...

首先,进入函数就需要5个汇编指令,这些指令主要是入栈,备份指针的操作,不同的编译器指令不同,但都差不多....当然这5个指令是进入函数只跑一次,占用时间不多,消耗时间最多的是你for循环内部的指令,一个for循环需要8条汇编指令才能实现,而每个汇编指令通常都需要消耗1-2个最小指令循环,具体那个指令消耗几个循环我懒的查手册,不同的芯片不一样,你自己看看你用的芯片手册把....

以上...应该清楚了把..不明白追问,我要是再次无聊的话,会修改回答.

❸ 51单片机用汇编语言设计1S延时子程序,晶振为12MHz。 (麻烦附上详细计算过程以及详细说明,

DELAY1S:
MOV R2,#10 ;1
DELAY1:
MOV R3,#200 ;1*10
DELAY2:
MOV R4,#249 ;1*199*20
DJNZ R4,$ ;2*249*199*10
DJNZ R3,DELAY2 ;2*199*10
DJNZ R2,DELAY1 ;2*10
MOV R2,#250 ;1
DJNZ R2,$ ;2*250
MOV R2,#243 ;1
DJNZ R2,$ ;2*243
RET ;2
以上注释值之和就是延时总时间:T=1000001US约1S

阅读全文

与51汇编程序怎么加循环延时相关的资料

热点内容
如何将文件隐藏到图片 浏览:278
泉州哪些租房子app靠谱 浏览:800
少儿编程是什么行业 浏览:768
纯小白怎么开始学编程 浏览:659
微信多次验证请求 浏览:557
wps文件咋发微信 浏览:352
110的阶乘怎么编程 浏览:266
从qq里怎么传文件 浏览:285
jdg格式文件怎么转cad 浏览:949
苹果手机怎么调成墨屏 浏览:205
有什么编程问题群 浏览:34
plc的st编程是什么 浏览:488
美团骑手app如何导航送货 浏览:663
APP联系过的域什么意思 浏览:33
编程g198是什么指令 浏览:300
什么都不懂咋学编程 浏览:304
java中判断字符大小写 浏览:727
dnf90版本魔界深渊 浏览:609
系统调用失败文件夹打不开 浏览:600
数控编程和模具设计师哪个工资高 浏览:591

友情链接