欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機匯編延時問題 [打印本頁]

作者: 418854190    時間: 2021-2-15 16:07
標題: 單片機匯編延時問題
這段程序是用來檢測是否有設備接入    三個設備有信號時分別給 01H 02H 03H會寫入#0  延時一段時間 如果這段時間內又收到設備信號  會從新給01H 02H 03H寫入#0  超過時間沒收到信號 圖中的程序就會調用顯示無信號輸入
按照圖中的程序延時大概5秒就執行調用顯示無信號    去掉21H或22H其中一個瞬間就計數到40 調用顯示無信號  21H和22H設置成任何數都不影響這段程序總體延時大概5秒左右   
為什么去掉DJNZ 20H,LOOP;或DJNZ 21H,LOOP;時間會差這么多    以前也遇到過 就是沒搞明白什么原因

51hei截圖20210215160830.png (31.89 KB, 下載次數: 53)

51hei截圖20210215160830.png

作者: dalaoshi    時間: 2021-2-16 17:15
LOOP:
DJNZ 20H, LOOP  ;這一句跑了255次才到zero,跳下一行
DINZ 21H. LOOP ;這句也會跑255次,而每跑一次都會跳回上面的loop處,直到最后一次zero才跳下一行。

因此第一行得跑255 X 255次= 65025次,才會跳出LOOPING,延時當然很長。


作者: 418854190    時間: 2021-2-17 07:52
dalaoshi 發表于 2021-2-16 17:15
LOOP:
DJNZ 20H, LOOP  ;這一句跑了255次才到zero,跳下一行
DINZ 21H. LOOP ;這句也會跑255次,而每跑 ...

為啥是255  不是放進去的0嗎     
作者: leehk88    時間: 2021-2-17 14:36
DJNZ 是 "先減一" 不為零則轉移的指令
0-1=?
作者: angmall    時間: 2021-2-17 17:24
418854190 發表于 2021-2-17 07:52
為啥是255  不是放進去的0嗎

DJNZ指令首先遞減第一個操作數指示的字節,如果結果值不為零,則跳轉到第二個操作數指定的地址。

0 遞減后 是255
作者: 418854190    時間: 2021-2-17 21:46
leehk88 發表于 2021-2-17 14:36
DJNZ 是 "先減一" 不為零則轉移的指令
0-1=?

我之前給20H21H#200 感覺和給#0的時間沒差別啊   
作者: leehk88    時間: 2021-2-18 13:22
418854190 發表于 2021-2-17 21:46
我之前給20H21H#200 感覺和給#0的時間沒差別啊

請問你根據甚麼數據定出 20H & 21H =200 =延遲5秒?
工作頻率,DJNZ時鐘週期,循環次數......




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1