找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

单片机汇编延时问题

查看数: 3030 | 评论数: 6 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-2-15 16:07

正文摘要:

这段程序是用来检测是否有设备接入    三个设备有信号时分别给 01H 02H 03H会写入#0  延时一段时间 如果这段时间内又收到设备信号  会从新给01H 02H 03H写入#0  超过时间没 ...

回复

ID:809671 发表于 2021-2-18 13:22
418854190 发表于 2021-2-17 21:46
我之前给20H21H#200 感觉和给#0的时间没差别啊

請問你根據甚麼數據定出 20H & 21H =200 =延遲5秒?
工作頻率,DJNZ時鐘週期,循環次數......
ID:261025 发表于 2021-2-17 21:46
leehk88 发表于 2021-2-17 14:36
DJNZ 是 "先减一" 不為零則轉移的指令
0-1=?

我之前给20H21H#200 感觉和给#0的时间没差别啊   
ID:155507 发表于 2021-2-17 17:24
418854190 发表于 2021-2-17 07:52
为啥是255  不是放进去的0吗

DJNZ指令首先递减第一个操作数指示的字节,如果结果值不为零,则跳转到第二个操作数指定的地址。

0 递减后 是255
ID:809671 发表于 2021-2-17 14:36
DJNZ 是 "先减一" 不為零則轉移的指令
0-1=?
ID:261025 发表于 2021-2-17 07:52
dalaoshi 发表于 2021-2-16 17:15
LOOP:
DJNZ 20H, LOOP  ;这一句跑了255次才到zero,跳下一行
DINZ 21H. LOOP ;这句也会跑255次,而每跑 ...

为啥是255  不是放进去的0吗     
ID:283954 发表于 2021-2-16 17:15
LOOP:
DJNZ 20H, LOOP  ;这一句跑了255次才到zero,跳下一行
DINZ 21H. LOOP ;这句也会跑255次,而每跑一次都会跳回上面的loop处,直到最后一次zero才跳下一行。

因此第一行得跑255 X 255次= 65025次,才会跳出LOOPING,延时当然很长。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表