廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 5940 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
台灣程程 手機
個人文章 個人相簿 個人日記 個人地圖
小有名氣
級別: 小有名氣 該用戶目前不上站
推文 x0 鮮花 x120
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 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


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


[ 此文章被台灣程程在2006-07-26 11:26重新編輯 ]



~~~淳淳老公永遠愛你唷~~~

獻花 x1 回到頂端 [樓 主] From:台灣亞太線上 | Posted:2006-07-20 17:43 |
rei 手機
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎
小人物
級別: 小人物 該用戶目前不上站
推文 x2 鮮花 x366
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

先把音樂的部份寫好(用timer0 或 timer1 或 timer2)
再把SETB TR0 ( 或TR1, TR2)放在想出現音樂的地方,就ok啦
然後在別的地方加 CLR TR0 ( 或TR1, TR2),看什麼情況發生,就關閉音樂

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

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

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


人生要是跟等巴士一樣...
  你願意搭哪一種車?
爆滿?髒車?舊車?新車?空車?還是...走路?
獻花 x1 回到頂端 [1 樓] From:台灣中華電信 | Posted:2006-07-25 20:41 |

首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.016718 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言