欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
下邊這個單片機匯編按鍵程序的按鈕為什么按第五次時不靈了?
[打印本頁]
作者:
mnliuzh
時間:
2020-9-23 16:56
標題:
下邊這個單片機匯編按鍵程序的按鈕為什么按第五次時不靈了?
下邊程序 在試驗時 ,前四次按開關 可以正常到循環次數后 停下,但第五次按開關時 就不停了,關電重啟后 也是一樣,只有四次開關有效,不論是 K0 K1,或者是隨便,只要達五次開關,就不停, 什么原因。
ORG 00H;
K0 EQU P0.0 ; 設定P0.0以 K0 代表示反轉
K1 EQU P0.1 ; 設定P0.1以 K1 表示正轉,
STOP: MOV P1 , #0FFH ; 電機停止; 開始掃描各按鈕狀態;
LOOP: JNB K0 , FM ; 是否按 K0 --是 則反轉
JNB K1 , ZM ; 是否按 K1 -- 是則正轉
JMP LOOP ; 跳到 LOOP 處循環掃描檢查開關狀況; ;開關消抖程序
K0XD: ACALL DELAY ; 按K0 的肖抖
JNB K0 , $ ; K0 放開否?
ACALL DELAY ; 放開削除抖動
JMP FM ; 轉到反轉處
K1XD: ACALL DELAY ; 按K1 的肖抖
JNB K1 , $ ; K1 放開否?
ACALL DELAY ; 放開削除抖動
JMP ZM ; 轉到ZM處 ;反轉300步子程序;
FM: MOV R1 , #00;
MOV R1 , #75 ; 走300步的脈沖數循環次數
FM1: MOV P1, #0F3H ; 第一步
ACALL DELAY ; 延時4MS
MOV P1, #0F9H ; 第二步
ACALL DELAY ; 延時4MS
MOV P1, #0FCH ; 第三步
ACALL DELAY ; 延時4MS
MOV P1, #0F6H ; 第四步
ACALL DELAY ; 延時4MS
DJNZ R1, FM1; 循環
RET; ; 正轉300子程序ZM:
MOV R1 , #00 ;
MOV R1 , #75 ; 走300步的脈沖數循環次數
ZM1: MOV P1 , #0F6H ; 第一步
ACALL DELAY ; 延時4MS
MOV P1 , #0FCH ; 第二步
ACALL DELAY ; 延時4MS
MOV P1 , #0F9H ; 第三步
ACALL DELAY ; 延時4MS
MOV P1 , #0F3H ; 第四步
ACALL DELAY ; 延時4MS
DJNZ R1, ZM1; 循環
RET;
DELAY: MOV TMOD , #00000001B ; 延時時間4MS
SETB TR0 ;
MOV TL0 , #LOW(65336-4000);
MOV TH0 , #HIGH(65336-4000);
JNB TF0 , $ ;
CLR TF0 ;
RET ;
END
作者:
418854190
時間:
2020-9-23 18:15
實測把RET換成 LJMP STOP;可以無限按
51hei截圖202009231813331.jpg
(162.71 KB, 下載次數: 32)
下載附件
2020-9-23 18:15 上傳
作者:
mnliuzh
時間:
2020-9-23 20:58
行了,謝謝!原因是什么呢
作者:
hhdsdy
時間:
2020-9-24 00:45
程序寫得很亂,消抖的K0XD和K1XD根本就沒用到。
程序錯亂,應該是你胡亂使用RET造成的,JNB是跳轉而不是調用,子程序結束后使用RET就會將堆棧彈出作為程序返回的地址,所以按沙發說的改用跳轉指令就會正常了,RET只有在用ACALL或者LCALL調用的子程序結束后使用,不過也不是絕對的,也有特殊利用的時候。
作者:
wufeng391
時間:
2020-9-25 10:04
還真有能看懂匯編的高手,真是強!看到匯編就頭暈!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1