廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 4373 個閱讀者
 
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
23037392 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
請懂8051的高手幫個忙。
這是一台紅外線自走車的程式,但是我希望有人能夠把註解寫的再詳細些。
以及告訴我每個英文所代表的一為何。
;*************************************************************************
; 程 式 開 始
;*************************************************************************
;宣告區
;*************************************************************************
TIMETEMP0 EQU 30H
TIMETEMP1 EQU 31H
RUN_FLAG REG 32H.0
GOFORWARD EQU 3 ;伺服馬達使之前轉的時間常數
GOBACK EQU 25 ;伺服馬達使之後轉的時間常數
MOTOR1 REG P2.6 ;伺服馬達1使用8051的P2.6來控制
MOTOR2 REG P2.7 ;伺服馬達2使用8051的P2.7來控制
;*************************************************************************
;程式開始
;*************************************************************************
ORG 00H ;程式開始進入點
JMP START ;跳到START初始化

ORG 0BH ;計時中斷0進入點
JMP TIMER0_INT ;跳到TIMER0_INT執行程式
;----------------------------------------------------------
START:
CLR RUN_FLAG ;將自動走膠帶狀態清除
CLR MOTOR1 ;將伺服馬達1號的輸出清為LOW電位
CLR MOTOR2 ;將伺服馬達2號的輸出清為LOW電位
CALL INIT_TIMER ;呼叫INIT_TIMER初始化計時器
;----------------------------------------------------------
MAIN:
CALL BOTTOM_CHECK ;呼叫BOTTOM_CHECK執行啟動按鍵判斷
CALL AUTO_RUN ;呼叫AUTO_RUN執行膠帶路線判斷
JMP MAIN ;跳到MAIN重新前面程序
;----------------------------------------------------------
BOTTOM_CHECK:
JB P3.0,EXIT_BOTTOM_CHECK ;如果P2.0按鈕沒被按下,跳離開
MOV R5,#2 ;將R5設定為2
CALL DELAY ;呼叫DELAY副程式
JB P3.0,EXIT_BOTTOM_CHECK ;如果P2.0按鈕沒被按下,跳離開
SETB RUN_FLAG ;將啟動旗標設為1
EXIT_BOTTOM_CHECK:
JNB P3.0,EXIT_BOTTOM_CHECK ;如果按鍵還在按下的狀態,在原地跳躍
RET ;離開副程式
;----------------------------------------------------------
AUTO_RUN:
JNB RUN_FLAG,JMP_POINT ;如果目前不為自動走膠帶狀態,跳離開
MOV A,P1 ;將P1的資料送到A(感測器狀態)
ANL A,#00011111B ;只保留下五位元的資料
CJNE A,#0,CHECK1 ;如果A的資料為0(全壓到線狀態),執行下面程式
MOV R5,#200 ;將R5設定為200
CALL DELAY ;呼叫DELAY副程式
WAIT_LOOP:
MOV R0,#1 ;將R0設定為1(馬達移動1單位)
CALL MOTORGOF ;呼叫MOTORGOF執行車體前進副程式
MOV A,P1 ;將P1的資料送到A(感測器狀態)
ANL A,#00011111B ;只保留下五位元的資料
CJNE A,#0,WAIT_LOOP2 ;如果A的資料為0(全壓到線狀態),執行下面程式
JMP WAIT_LOOP ;跳到WAIT_LOOP
WAIT_LOOP2:
MOV R0,#1 ;將R0設定為1(馬達移動1單位)
CALL MOTORGOF ;呼叫MOTORGOF執行車體前進副程式
JNB P1.0,CHECK2 ;如果P1.0為壓到線狀態,跳到CHECK2
JNB P1.4,CHECK2 ;如果P1.4為壓到線狀態,跳到CHECK2
JMP EXIT_AUTO_MODE ;跳到EXIT_AUTO_MODE離開
WAIT_LOOP3:
JMP EXIT_AUTO_MODE ;跳到EXIT_AUTO_MODE離開
CHECK1:
JNB P1.0,CHECK2 ;如果P1.0為壓到線狀態,跳到CHECK2
JNB P1.1,CHECK2 ;如果P1.1為壓到線狀態,跳到CHECK2
JNB P1.2,CHECK2 ;如果P1.2為壓到線狀態,跳到CHECK2
JNB P1.3,CHECK2 ;如果P1.3為壓到線狀態,跳到CHECK2
JNB P1.4,CHECK2 ;如果P1.4為壓到線狀 ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容




獻花 x0 回到頂端 [樓 主] From:台灣中華電信 | Posted:2006-10-13 20:18 |
shadowy 手機
個人頭像
個人文章 個人相簿 個人日記 個人地圖
小人物
級別: 小人物 該用戶目前不上站
推文 x0 鮮花 x27
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

看起來已經很詳細了呀~
只是有點太詳細了, 逐一解釋外沒有區塊解釋很難理解 表情
這程式..應該不是樓主寫的吧?


獻花 x0 回到頂端 [1 樓] From:台灣 | Posted:2006-10-19 11:21 |

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