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

8051接紅外線利用RS232與電腦溝通...

答題得分者是:src
DIU
一般會員


發表:2
回覆:2
積分:0
註冊:2005-09-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-24 11:08:37 IP:163.25.xxx.xxx 未訂閱
請問一下...我現在利用8051的P2.4腳與紅外線感測器的OUT腳相接, 當紅外線感測到有人時,便會變成高電位,然後當8051偵測到時, 便會傳送一個訊息至電腦...  
;----------------------------------------
;RS232.ASM 8051 TX  TO PC VIA RS232
;<9600 N 8 1>
;----------------------------------------
   LF EQU 0AH
   CR EQU 0DH      
;----------------------------------------
   ORG 0H          ;程式由位址0開始執行
   JMP BEGIN
;----------------------------------------
BEGIN:MOV SP,#60H  ;設定堆疊指標至RAM位址60H
   CALL INIT_RS232 ;設定串列通訊協定
   MOV DPTR,#MESS
   CALL TX_STR    SCAN:
   SETB P3.7       ;使一開始LED不亮(1)
   JNB P2.4, $     ;檢測P2.4是否為高電位
   MOV DPTR,#MESS1
   CALL TX_STR    $1:CPL P3.7           ;讓LED閃爍
   MOV R5,#10
   CALL DELAY
   JB P2.4,$1       JMP SCAN
;----------------------------------------
INIT_RS232:           ;通訊協定:<9600 N 8 1>
   MOV SCON,#50H   ;設定串列工作於模式1接收資料致能
   MOV TMOD,#20H   ;設定計時器1工作於模式2
   MOV TH1,#0FDH   ;設定鮑率9600bps
   SETB TR1
   SETB T1
   RET
;----------------------------------------
TX_CHAR:
   JNB T1,$
   CLR T1
   MOV SBUF,A
   RET
;----------------------------------------
TX_STR:
   CLR A
   MOVC A,@A DPTR
   CJNE A,#'$',$1
   RET
$1:
   CALL TX_CHAR
   INC DPTR
   JMP TX_STR
   RET
;----------------------------------------
MESS:        DB "TEST 8051 RS232 TX...", LF, CR, "$"
;----------------------------------------
MESS1:        DB "Somebody comes here", LF, CR, "$"
;----------------------------------------
; DELAY Xms   R5*10 ms
DELAY:
   MOV R6,#50
D1:MOV R7,#100
   DJNZ R7,$
   DJNZ R6,D1
   DJNZ R5,DELAY
   RET
;----------------------------------------
我去編譯的時候... 顯示LE、CR、MESS與MESS1沒有定義... 我是照其它範例改的...請大大指導一下 順便一問,訊息傳送至電腦只需要設定超級終端機嗎? 因為我不需要電腦回傳值回來,我只要讓電腦知道有人來了...
src
高階會員


發表:1
回覆:94
積分:154
註冊:2005-08-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-24 12:57:56 IP:220.139.xxx.xxx 未訂閱
引言: 請問一下...我現在利用8051的P2.4腳與紅外線感測器的OUT腳相接, 當紅外線感測到有人時,便會變成高電位,然後當8051偵測到時, 便會傳送一個訊息至電腦...
;----------------------------------------
;RS232.ASM 8051 TX  TO PC VIA RS232
;<9600 N 8 1>
;----------------------------------------
   LF EQU 0AH
   CR EQU 0DH      
;----------------------------------------
   ORG 0H          ;程式由位址0開始執行
   JMP BEGIN
;----------------------------------------
BEGIN:MOV SP,#60H  ;設定堆疊指標至RAM位址60H
   CALL INIT_RS232 ;設定串列通訊協定
   MOV DPTR,#MESS
   CALL TX_STR    SCAN:
   SETB P3.7       ;使一開始LED不亮(1)
   JNB P2.4, $     ;檢測P2.4是否為高電位
   MOV DPTR,#MESS1
   CALL TX_STR    $1:CPL P3.7           ;讓LED閃爍
   MOV R5,#10
   CALL DELAY
   JB P2.4,$1       JMP SCAN
;----------------------------------------
INIT_RS232:           ;通訊協定:<9600 N 8 1>
   MOV SCON,#50H   ;設定串列工作於模式1接收資料致能
   MOV TMOD,#20H   ;設定計時器1工作於模式2
   MOV TH1,#0FDH   ;設定鮑率9600bps
   SETB TR1
   SETB T1
   RET
;----------------------------------------
TX_CHAR:
   JNB T1,$
   CLR T1
   MOV SBUF,A
   RET
;----------------------------------------
TX_STR:
   CLR A
   MOVC A,@A DPTR
   CJNE A,#'$',$1
   RET
$1:
   CALL TX_CHAR
   INC DPTR
   JMP TX_STR
   RET
;----------------------------------------
MESS:        DB "TEST 8051 RS232 TX...", LF, CR, "$"
;----------------------------------------
MESS1:        DB "Somebody comes here", LF, CR, "$"
;----------------------------------------
; DELAY Xms   R5*10 ms
DELAY:
   MOV R6,#50
D1:MOV R7,#100
   DJNZ R7,$
   DJNZ R6,D1
   DJNZ R5,DELAY
   RET
;----------------------------------------
我去編譯的時候... 顯示LE、CR、MESS與MESS1沒有定義... 我是照其它範例改的...請大大指導一下 順便一問,訊息傳送至電腦只需要設定超級終端機嗎? 因為我不需要電腦回傳值回來,我只要讓電腦知道有人來了...
你好 程式的標記$1:重複,將標記名稱更改即可,標記名稱不要用$開頭
DIU
一般會員


發表:2
回覆:2
積分:0
註冊:2005-09-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-24 17:20:50 IP:163.25.xxx.xxx 未訂閱
嗯嗯...我改過之後就沒有錯誤了... 可是使用紅外線偵測之後,我的P3.7腳LED腳並沒有一直閃爍... 那是什麼問題? 那超級終端機要怎麼收到8051傳送過來的訊息? 我有接RS232,可是不知道怎麼確定它有傳送訊息3... 是程式有什麼問題?
src
高階會員


發表:1
回覆:94
積分:154
註冊:2005-08-23

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-24 18:31:37 IP:220.139.xxx.xxx 未訂閱
建議PC端RS232的傳輸可以下載下面的檔案http://myweb.hinet.net/home11/macgyvertek/data/Com&PGM51.zip 此檔案為AT89S52的ISP燒錄程式及RS232傳輸不需設定 測試時P2.4直接接HI或LOW看看有沒有反應 發表人 - src 於 2005/09/24 18:37:02
DIU
一般會員


發表:2
回覆:2
積分:0
註冊:2005-09-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-25 12:53:58 IP:163.25.xxx.xxx 未訂閱
3Q~我已經解決了...
系統時間:2024-07-07 1:42:03
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!