8051自走車程式要如何加上音樂?

Home Home
引用 | 編輯 台灣程程
2006-07-20 17:43
樓主
推文 x0
這一次暑假要寫一個自走車程式~
但要更改程式~他音樂程式我寫的出來
但我不會把他加上去,所以我想請教一下會8051的大大要如何在倒車的時候放音樂?
還有惠按INT0鍵時他會放音樂...還有...在按另INT1鍵時會啟動7段顯示器並加一
按一下就加一,按T0鍵按一次會減一
要如何在這程式改寫??
;********************************************
;     自走車控制程式 (有後退修正板本)
;********************************************
Right_Motor:   .REG   P2.0     ;右馬達on/off的位元宣告
Rev_Right:     .REG     P2.1     ;右馬達正/反轉的位元宣告
Left_Motor:     .REG   P2.2     ;左馬達on/off的位元宣告
Rev_Left:     .REG     P2.3     ;左馬達正/反轉的位元宣告
MIC:         .REG     P3.5     ;哨音電路檢測器的位元宣告

    ORG   0H         ;宣告以下程式由位址0000H儲存
    JMP   MAIN
    ORG   50H         ;宣告程式由位址0050H儲存
MAIN:
    MOV     P2,#11110000B     ;初始化,令左右馬達正轉,停止
    MOV     P3,#0FFH
    MOV     R5,#50         ;呼叫延遲副程式,延遲1秒
    ACALL     DELAY        
    JB     MIC,$         ;等待哨音啟動
;----------------------------------------
START:
    MOV   A,P0         ;取出光感測器信號
    MOV   P1,A         ;顯示在LED上
    ANL   A,#7         ;取出P0的最低三位元L、C、R

    CJNE   A,#2,MOTOR1   ;與010比較,若不相同則往下一控制模式比較
    SETB   Right_Motor
    SETB   Left_Motor     ;執行<前進>對策,即左前進,右前進
    JMP   START
MOTOR1: CJNE   A,#3,MOTOR2   ;與011比較,檢查機身是否稍偏左
    SETB   Right_Motor
    SETB   Left_Motor     ;執行<繼續前進>對策,即左前進,右前進
    JMP   START
MOTOR2: CJNE   A,#1,MOTOR3   ;與001比較,檢查機身是否偏左
    CLR   Right_Motor
    SETB   Left_Motor     ;執行<向右修正>對策,即左前進,右停止
    JMP   START
MOTOR3: CJNE   A,#6,MOTOR4   ;與110比較,檢查機身是否稍偏右
    SETB   Right_Motor
    SETB   Left_Motor     ;執行<繼續前進>對策,即左前進,右前進
    JMP   START
MOTOR4: CJNE   A,#4,MOTOR5   ;與100比較,檢查機身是否偏右
    SETB   Right_Motor
    CLR   Left_Motor     ;執行<向左修正>對策,即左停止,右前進
    JMP   START
MOTOR5: CJNE   A,#7,START     ;與111比較,若不相同則代表所有控制模式已比較完成,跳回至START
    CLR   Right_Motor
    CLR   Left_Motor     ;執行<停止>對策,即左停止,右停止
    JMP   START

;****************************************
;     延遲副程式: R5*20ms
;****************************************
DELAY:
    MOV   R6,#40
$1:   MOV   R7,#249
    DJNZ   R7,$         ;R7減1不為0跳至本列
    DJNZ   R6,$1         ;R6減1不為0跳至 $1 列
    DJNZ     R5,DELAY
    RET
    END

本帖包含附件
檔名: zip 簡易自走電路圖(全).rar   (2022-06-09 14:01 / 21 KB)  
這是電路圖
下載次數:49


獻花 x1
引用 | 編輯 rei
2006-07-25 20:41
1樓
  
先把音樂的部份寫好(用timer0 或 timer1 或 timer2)
再把SETB TR0 ( 或TR1, TR2)放在想出現音樂的地方,就ok啦
然後在別的地方加 CLR TR0 ( 或TR1, TR2),看什麼情況發生,就關閉音樂

\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

以上是問朋友所提供的= =

希望會對您有用處!? 表情

獻花 x1