標(biāo)題: 幫我看看這個程序應(yīng)如何寫 [打印本頁]

作者: sjztjk    時間: 2013-8-18 00:08
標(biāo)題: 幫我看看這個程序應(yīng)如何寫
硬件見下圖,要求當(dāng)開關(guān)S1與S2均接通時D1才亮,S1與S2隨便一個斷開或兩個均斷開時D1滅,請大俠幫寫個匯編程序,C的看不懂,謝謝!

兩個開關(guān)控制一個LED.JPG (67.96 KB, 下載次數(shù): 152)

兩個開關(guān)控制一個LED.JPG

作者: 青蘋果    時間: 2013-8-18 16:07
LOOP:
MOV    A,P3
ANL     a,#3
JZ       L_SETON

SETB  P1.0
JMP   LOOP
L_SETON:
CLR    P1.0
JMP   LOOP
僅供參考!
作者: 青蘋果    時間: 2013-8-18 16:07
LOOP:
MOV    A,P3
ANL     a,#3
JZ       L_SETON

SETB  P1.0
JMP   LOOP
L_SETON:
CLR    P1.0
JMP   LOOP
僅供參考!
作者: ahshmj    時間: 2013-8-18 16:56
在亮的狀態(tài)下,關(guān)一個開關(guān)不會滅。
作者: ahshmj    時間: 2013-8-18 16:56
在亮的狀態(tài)下,關(guān)一個開關(guān)不會滅。
作者: ahshmj    時間: 2013-8-18 17:07
LOOP:
MOV  P3, #0ffh
MOV  A,P3
ANL a,#3
cjne  A, #3,L_SETON
;JZ  L_SETON

SETB P1.0
JMP LOOP
L_SETON:
CLR  P1.0
JMP LOOP     
    END

作者: 青蘋果    時間: 2013-8-18 20:12
亂說,,,
作者: sjztjk    時間: 2013-8-18 22:32
青蘋果 發(fā)表于 2013-8-18 16:07
LOOP:
MOV    A,P3
ANL     a,#3

經(jīng)試驗,這個程序完全滿足要求,讓我學(xué)習(xí)了,謝謝!
作者: sjztjk    時間: 2013-8-18 22:34
ahshmj 發(fā)表于 2013-8-18 17:07
LOOP:
MOV  P3, #0ffh
MOV  A,P3

這個程序試驗過,相當(dāng)于是兩個并聯(lián)的開關(guān),不過還是謝謝你的回答!
作者: ahshmj    時間: 2013-8-19 00:23
sjztjk 發(fā)表于 2013-8-18 22:34
這個程序試驗過,相當(dāng)于是兩個并聯(lián)的開關(guān),不過還是謝謝你的回答!

真搞不懂你。
究竟那一個程序“相當(dāng)于是兩個并聯(lián)的開關(guān)”?

作者: ahshmj    時間: 2013-8-19 03:46
青蘋果 發(fā)表于 2013-8-18 20:12
亂說,,,

刮目相看。
作者: 青蘋果    時間: 2013-8-19 13:21
ahshmj 發(fā)表于 2013-8-19 03:46
刮目相看。


作者: sjztjk    時間: 2013-8-19 23:25
6樓ahshmj所寫的程序,經(jīng)試驗S1與S2相當(dāng)于兩個并聯(lián)的開關(guān),隨便按一個D1均亮!

LOOP:
MOV  P3, #0ffh
MOV  A,P3
ANL a,#3
cjne  A, #3,L_SETON
;JZ  L_SETON

SETB P1.0
JMP LOOP
L_SETON:
CLR  P1.0
JMP LOOP     
    END
作者: ahshmj    時間: 2013-8-20 06:20
本帖最后由 ahshmj 于 2013-8-20 06:45 編輯
sjztjk 發(fā)表于 2013-8-19 23:25
6樓ahshmj所寫的程序,經(jīng)試驗S1與S2相當(dāng)于兩個并聯(lián)的開關(guān),隨便按一個D1均亮!

LOOP:

LOOP:
MOV  P3, #0ffh
MOV  A,P3
ANL a,#3
cjne  A, #3,L_SETON
;JZ  L_SETON

SETB P1.0
JMP LOOP
L_SETON:
CLR  P1.0
JMP LOOP     
    END
這個程序中的“cjne  A, #3,L_SETON”這一句,只有P3.0、P3.1都為“1”時,P1.1=1,。其中一個為0,或者都為0,則P1.1=0 。
(若換成  “JZ  L_SETON  ” 則相反,“ACC=0” 則跳轉(zhuǎn),P1.1=0 。否則ACC=3,ACC=2,ACC=1,則P1.1=1。)

將 MOV  P3, #0ffh  ,改為SETB  P3.0     SETB  P3.1 更合理。
  

作者: livingliving    時間: 2015-4-10 09:16
雖然不懂,但還是要頂,畢竟每一位老手都是從新手蛻變而來的,贊一個。。。。。。




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