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

热点内容
如何做无线网络设备 浏览:817
excel更改后如何找回原文件 浏览:657
用哪个类表示数据库连接 浏览:751
苹果手机如何搜索pdf文件中的内容 浏览:162
ps保存的图片怎么弄成文件 浏览:35
桌面文件放u盘里另一个电脑打不开 浏览:234
linux文件操作系统 浏览:48
网络代发广告 浏览:244
苹果6s系统升级后恢复出厂设置 浏览:331
快播可以看片的版本 浏览:482
js调用浏览器打印 浏览:328
电脑上的压缩文件怎么看不到 浏览:516
安卓235升级40刷机包下载 浏览:523
win10安装苹果macos 浏览:631
居家养老app有哪些 浏览:233
win10电脑桌面怎么显示文件后缀 浏览:566
微信签名档拉长 浏览:541
钱少如何理财哪个网站好 浏览:250
51汇编程序怎么加循环延时 浏览:828
属于购物网站的是哪些 浏览:489

友情链接