台灣程程
|
分享:
▼
x0
|
[學習] 8051自走車程式要如何加上音樂?
這一次暑假要寫一個自走車程式~ 但要更改程式~他音樂程式我寫的出來 但我不會把他加上去,所以我想請教一下會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
[ 此文章被台灣程程在2006-07-26 11:26重新編輯 ]
|