線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1325
推到 Plurk!
推到 Facebook!

矩陣鍵盤搭配電子琴再加音樂盒 音樂盒作動不正常

答題得分者是:阿信
cheng07
一般會員


發表:8
回覆:12
積分:4
註冊:2005-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-18 11:32:04 IP:140.109.xxx.xxx 未訂閱
我的想法是 4*4矩陣鍵盤 1~9是電子琴 A~F是個別的音樂盒 現在遇到的瓶頸是  當我鍵盤按下A時  音樂盒只會響該曲目的第一個音 後面的音都不會出來 又得麻煩各位了>___<     
        ORG     0000H
;
CKEY:   MOV     P2,#01111111B
        JNB     P2.3,KEY0
        JNB     P2.2,KEY1
        JNB     P2.1,KEY2
        JNB     P2.0,KEY3
;
        MOV     P2,#10111111B
        JNB     P2.3,KEY4
        JNB     P2.2,KEY5
        JNB     P2.1,KEY6
        JNB     P2.0,KEY7
;
        MOV     P2,#11011111B
        JNB     P2.3,KEY8
        JNB     P2.2,KEY9
        JNB     P2.1,KEYA
        JNB     P2.0,KEYB
;
        MOV     P2,#11101111B
        JNB     P2.3,KEYC
        JNB     P2.2,KEYD
        JNB     P2.1,KEYE
        JNB     P2.0,KEYF
        AJMP    CKEY
;
KEY0:   MOV     R6,#170
        AJMP    AOUT
KEY1:   MOV     R6,#150
        AJMP    AOUT
KEY2:   MOV     R6,#134
        AJMP    AOUT
KEY3:   MOV     R6,#126
        AJMP    AOUT
KEY4:   MOV     R6,#113
        AJMP    AOUT
KEY5:   MOV     R6,#100
        AJMP    AOUT
KEY6:   MOV     R6,#95
        AJMP    AOUT
KEY7:   MOV     R6,#85
        AJMP    AOUT
KEY8:   MOV     R6,#75
        AJMP    AOUT
KEY9:   MOV     R6,#67
        AJMP    AOUT
KEYA:   MOV     DPTR,#MUSA         ;問題所在
CONT:   CLR     A                                                 
        MOVC    A,@A DPTR                                        
        CJNE    A,#40,OK                                       
        AJMP    CKEY                                              
OK:     PUSH    ACC                                                 
        INC     DPTR                                          
        CLR     A                                       
        MOVC    A,@A DPTR                                       
        MOV     R4,A                                             
        POP     ACC
KEYB:   MOV     R6,#67
        AJMP    AOUT
KEYC:   MOV     R6,#75
        AJMP    AOUT
KEYD:   MOV     R6,#85
        AJMP    AOUT
KEYE:   MOV     R6,#95
        AJMP    AOUT
KEYF:   MOV     R6,#100
        AJMP    AOUT
;
CHK1:   CJNE    A,#01,CHK2                                           
        ACALL   DOL                                    
CHK2:   CJNE    A,#02,CHK3                                        
        ACALL   REL                                       
CHK3:   CJNE    A,#03,CHK4                                       
        ACALL   MIL                                               
CHK4:   CJNE    A,#04,CHK5                                          
        ACALL   FAL                                                
CHK5:   CJNE    A,#05,CHK6                                           
        ACALL   SOL                                               
CHK6:   CJNE    A,#06,CHK7                                        
        ACALL   LAL                                                
CHK7:   CJNE    A,#07,CHK11                                         
        ACALL   SIL                                             
CHK11:  CJNE    A,#11,CHK12                                    
        ACALL   DO                                                
CHK12:  CJNE    A,#12,CHK13                                  
        ACALL   RE                                                  
CHK13:  CJNE    A,#13,CHK14                                        
        ACALL   MI                                                 
CHK14:  CJNE    A,#14,CHK15                                        
        ACALL   FA                                               
CHK15:  CJNE    A,#15,CHK16                                        
        ACALL   SO                                                 
CHK16:  CJNE    A,#16,CHK17                                          
        ACALL   LA                                                 
CHK17:  CJNE    A,#17,CHK21                                     
        ACALL   SI                                           
CHK21:  CJNE    A,#21,CHK22                                       
        ACALL   DOH                                             
CHK22:  CJNE    A,#22,CHK23                                    
        ACALL   REH                                             
CHK23:  CJNE    A,#23,CHK24                                       
        ACALL   MIH                                               
CHK24:  CJNE    A,#24,CHK25                                          
        ACALL   FAH                                             
CHK25:  CJNE    A,#25,CHK26                                        
        ACALL   SOH                                                
CHK26:  CJNE    A,#26,CHK27                                      
        ACALL   LAH                                             
CHK27:  CJNE    A,#27,CHK0                                       
        ACALL   SIH
CHK0:   CJNE    A,#00,CONT2
        ACALL   NON                                          
CONT2:  INC     DPTR                                                 
        AJMP    CONT
;                                       
DOL:    MOV     R6,#254                                       
        MOV     R5,#16                                       
        AJMP    OUTPUT                                       
REL:    MOV     R6,#226                                     
        MOV     R5,#18                                         
        AJMP    OUTPUT                                           
MIL:    MOV     R6,#201                                      
        MOV     R5,#21                                        
        AJMP    OUTPUT                                            
FAL:    MOV     R6,#190                                           
        MOV     R5,#22                                         
        AJMP    OUTPUT                                 
SOL:    MOV     R6,#170                                           
        MOV     R5,#25                                         
        AJMP    OUTPUT                                             
LAL:    MOV     R6,#150                                              
        MOV     R5,#28                                          
        AJMP    OUTPUT                                            
SIL:    MOV     R6,#134                                      
        MOV     R5,#31                                          
        AJMP    OUTPUT                                         
DO:     MOV     R6,#126                                  
        MOV     R5,#33                                    
        AJMP    OUTPUT                                       
RE:     MOV     R6,#113                              
        MOV     R5,#37                                 
        AJMP    OUTPUT                                      
MI:     MOV     R6,#100                                      
        MOV     R5,#41                                          
        AJMP    OUTPUT                                          
FA:     MOV     R6,#95                                       
        MOV     R5,#44                                  
        AJMP    OUTPUT                                     
SO:     MOV     R6,#85                                          
        MOV     R5,#49                                       
        AJMP    OUTPUT                                          
LA:     MOV     R6,#75                                          
        MOV     R5,#55                                            
        AJMP    OUTPUT                                             
SI:     MOV     R6,#67                                        
        MOV     R5,#62                                           
        AJMP    OUTPUT                                            
DOH:    MOV     R6,#63                                         
        MOV     R5,#65                                         
        AJMP    OUTPUT                                           
REH:    MOV     R6,#56                                             
        MOV     R5,#73                                             
        AJMP    OUTPUT                                          
MIH:    MOV     R6,#50                                            
        MOV     R5,#82                                           
        AJMP    OUTPUT                                          
FAH:    MOV     R6,#47                                         
        MOV     R5,#88                                          
        AJMP    OUTPUT                                            
SOH:    MOV     R6,#42                                           
        MOV     R5,#98                                           
        AJMP    OUTPUT                                           
LAH:    MOV     R6,#37                                        
        MOV     R5,#110                                           
        AJMP    OUTPUT                                             
SIH:    MOV     R6,#33                                              
        MOV     R5,#124                                        
        AJMP    OUTPUT
NON:    MOV     R6,#33                                          
        MOV     R5,#124                                
        AJMP    OUTPUT    OUTPUT: PUSH    05                                         
LOOP:   CJNE    A,#00,SOUND                                 
        AJMP    MUTE                                          
SOUND:  CLR     P3.4                                       
MUTE:   ACALL   DELAY                                       
        SETB    P3.4                                           
        ACALL   DELAY                                        
        DJNZ    R5,LOOP                                     
        POP     05                                   
        DJNZ    R4,OUTPUT 
                                                      
REST:   MOV     R6,#170        
        MOV     R5,#50                                          
WAIT:   ACALL   DELAY                                          
        DJNZ    R5,WAIT                                            
        RET   
;
AOUT:   CLR     P3.4
        ACALL   DELAY
        SETB    P3.4
        ACALL   DELAY
        AJMP    CKEY
;
DELAY:  MOV     B,R6
DL:     MOV     R7,#6
        DJNZ    R7,$
        DJNZ    R6,DL
        MOV     R6,B
        RET
;
MUSA:   DB      16,06,21,06,25,06,24,06,17,06,17,06,16,02,16,06,15,06,23,06,24,06,25,06,21,06,21,06
        DB      17,02,17,06,16,06,16,02,17,02,21,06,21,06,22,02,14,08,22,02,22,06,23,06,21,06,15,06
        DB      17,06,16,06,15,06,16,06,16,06,21,06,25,06,24,06,17,06,17,06,16,02,16,06,15,06,23,06
        DB      24,06,25,06,25,06,25,06,23,02,25,06,24,06,22,06,23,06,24,06
        DB      40                                                             
;
        END     
阿信
版主


發表:111
回覆:983
積分:813
註冊:2005-03-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-18 14:27:42 IP:211.21.xxx.xxx 未訂閱
KEY9:   MOV     R6,#67
        AJMP    AOUT
KEYA:   MOV     DPTR,#MUSA         ;問題所在
CONT:   CLR     A                                                 
        MOVC    A,@A DPTR                                        
        CJNE    A,#40,OK                                       
        AJMP    CKEY                                              
OK:     PUSH    ACC                                                 
        INC     DPTR                                          
        CLR     A                                       
        MOVC    A,@A DPTR                                       
        MOV     R4,A                                             
        POP     ACC
KEYB:   MOV     R6,#67
        AJMP    AOUT
不是要把查到的值給R5 R6再call OUTPUT嗎 (OUTPUT改為用call) 沒看到你的JMP OUTPUT 請使用單步執行做除錯 ------------------- 美好的事物 稍縱即逝
cheng07
一般會員


發表:8
回覆:12
積分:4
註冊:2005-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-18 19:29:16 IP:220.139.xxx.xxx 未訂閱
我剛剛才發現我少了JUMP的指令 現在問題已經解決了 感覺真的超級讚的!! 感謝
系統時間:2024-04-30 4:03:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!