全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1216
推到 Plurk!
推到 Facebook!

請問如何將8051這個程式按鍵3讓循環不會自動停止按下按鍵4停止

尚未結案
jorden0504
一般會員


發表:3
回覆:1
積分:0
註冊:2012-03-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-07-16 11:18:25 IP:120.118.xxx.xxx 訂閱
請問如何將這個程式按鍵3讓循環不會自動停止按下按鍵4停止
把CASE3的JMP LOOP改成 JMP CASE3會停不下來但是又想不到要用什麼方式讓他可以無限循環又可以停下來的方法
;====================
;== TAST ==
;====================


ORG 0000H

LOOP: JNB P2.3 , CASE1
JNB P2.2 , CASE2
JNB P2.1 , CASE3
JNB P2.0 , CASE4
JMP LOOP

;====================
;== 按鍵對應輸出 ==
;====================

CASE1: MOV P1,#11111110B
JMP LOOP
CASE2: MOV P1,#11111101B
JMP LOOP
CASE3: MOV P1,#11111110B ;----------------------
CALL DELAY ;
MOV P1,#11111101B ;
CALL DELAY ;
JMP LOOP ;----------------------
CASE4: MOV P1,#11111111B
JMP LOOP


;====================
;== 延遲副程式 ==
;====================

DELAY:MOV R5,#100
DL1:MOV R6,#250
DL2:MOV R7,#200
DL3:DJNZ R7,DL3
DJNZ R6,DL2
DJNZ R5,DL1
RET


END

編輯記錄
jorden0504 重新編輯於 2012-07-15 21:23:51, 註解 無‧
kib72377
高階會員


發表:1
回覆:217
積分:238
註冊:2004-11-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-07-16 12:26:31 IP:114.38.xxx.xxx 未訂閱
  LOOP:
JNB P2.1 , CASE3 ;按鍵3最優先處理
JNB XX.0,LOOP ;停止狀態下,不受理其他按鍵,繼續LOOP 白話:如果某變數為0 則跳去LOOP...
JNB P2.3 , CASE1
JNB P2.2 , CASE2
JNB P2.0 , CASE4
JMP LOOP

;====================
;== 按鍵對應輸出 ==
;====================

CASE1: MOV P1,#11111110B
JMP LOOP
CASE2: MOV P1,#11111101B
JMP LOOP
CASE3: MOV P1,#11111110B ;----------------------
CALL DELAY ;
MOV P1,#11111101B ;
CALL DELAY ;
SETB XX.0 設定某變數為1,你也可以用 MOV XX,#1
JMP LOOP ;----------------------
CASE4: MOV P1,#11111111B
CLR XX.0 設定某變數為0,你也可以用 MOV XX,#0
JMP LOOP

重點就是: 加入一個變數,來幫助控制程式的流程.
編輯記錄
kib72377 重新編輯於 2012-07-16 03:42:05, 註解 無‧
kib72377 重新編輯於 2012-07-16 03:44:27, 註解 無‧
kib72377 重新編輯於 2012-07-16 03:44:46, 註解 無‧
kib72377 重新編輯於 2012-07-16 03:50:28, 註解 無‧
kib72377 重新編輯於 2012-07-16 03:51:33, 註解 無‧
jorden0504
一般會員


發表:3
回覆:1
積分:0
註冊:2012-03-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-07-16 12:55:56 IP:120.118.xxx.xxx 訂閱
不好意思我不太了解紅字的意思 是指 我JNB給一個按鍵 例如P2.0

SETB P2.1 CLR P2.1嗎? 小弟測試完setb p2.1的話下次要再按一次case3才會有動作

===================引 用 kib72377 文 章===================
LOOP:
JNB P2.1 , CASE3 ;按鍵3最優先處理
JNB XX.0,LOOP ;停止狀態下,不受理其他按鍵,繼續LOOP
JNB P2.3 , CASE1
JNB P2.2 , CASE2
JNB P2.0 , CASE4
JMP LOOP

;====================
;== 按鍵對應輸出 ==
;====================

CASE1: MOV P1,#11111110B
JMP LOOP
CASE2: MOV P1,#11111101B
JMP LOOP
CASE3: MOV P1,#11111110B ;----------------------
CALL DELAY ;
MOV P1,#11111101B ;
CALL DELAY ;
SETB XX.0
JMP LOOP ;----------------------
CASE4: MOV P1,#11111111B
CLR XX.0
JMP LOOP
編輯記錄
jorden0504 重新編輯於 2012-07-15 23:15:24, 註解 無‧
系統時間:2017-12-17 12:11:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!