导航:首页 > 编程知识 > 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汇编程序怎么加循环延时相关的资料

热点内容
ps淘宝女包修图教程 浏览:568
55公里app 浏览:556
欠费多少充多少为啥还用不了数据 浏览:607
苹果7如何使用万能钥匙 浏览:254
微信文件传送电脑 浏览:600
什么app可以解压百度云rar 浏览:627
苹果6sp换壳 浏览:956
海盗船k70rgb灯光配置文件 浏览:336
linuxfsstat 浏览:926
电脑文件有个锁 浏览:441
ps多张pdf文件夹 浏览:2
怎样压缩文件能传到qq邮箱 浏览:923
南昌房管局网站怎么查备案 浏览:884
如何设置ipad下载密码 浏览:458
ae信号干扰教程 浏览:548
电脑之前删掉的文件怎么找 浏览:805
索尼z1刷什么系统升级 浏览:466
自创字体怎么编程序 浏览:381
成都的苹果售后服务电话号码 浏览:698
文件放笔记本哪个盘 浏览:745

友情链接