簡體   English   中英

68K按鈕

[英]Push Button on 68K

我想編寫一個程序來從按鈕中讀取一個值並在LED上顯示該值。 該程序應連續運行,並且隨着按鈕的改變,顯示也會改變。 我嘗試了很多方法,但是它沒有顯示任何內容。有人可以幫助我知道問題出在哪里。

LEDS       EQU     $E00010                 ;LEDS adress
BUTTON     EQU     $E00014                 ;BUTTON address
           ORG     $400                    ;start of program area

START
Loop        MOVE.B  #2,D0                             
            MOVE.B  BUTTON,D1               ;move the value of button to D1   
            MOVE.B  D2,LEDS 
            NOT.B   D1                      ;take NOT to flip the value in order to present it in LEDS                                    
           MOVE.B  D1,D2                    ;move the value to LEDS                        
           SUB.B    #2,D0                   ; if D0 =0 then loop again
            BEQ     Loop                     



          SIMHALT       
            END     START

一些缺少的東西。

  1. 按鈕通常是單個位,而不是整個字節,因此應在按鈕輸入上應用某種形式的掩碼。 同樣,設置LED通常涉及設置一位而不是字節,除非它是某種形式的多色LED。 我假設您有8個按鈕和8個相應的LED

  2. 您說明的代碼將連續運行,因為在LOOP標簽后將D2裝入2,然后在循環結束時從D0中減去2(其值為2),如果結果等於零,則循環,即始終。 如果您確實想要連續循環,則根本沒有必要使用D0。

     LEDS EQU $E00010 ;LEDS address BUTTON EQU $E00014 ;BUTTON address ORG $400 ;start of program area START LOOP MOVE.B BUTTON,D1 ; Read buttons NOT.B D1 ; LEDs are inverse of button MOVE.B D1,LEDS ; write to LEDs BRA.S LOOP ; do continously SIMHALT ; doesn't get here but still END START 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM