8051接紅外線利用RS232與電腦溝通... |
答題得分者是:src
|
DIU
一般會員 發表:2 回覆:2 積分:0 註冊:2005-09-10 發送簡訊給我 |
請問一下...我現在利用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 發送簡訊給我 |
引言: 請問一下...我現在利用8051的P2.4腳與紅外線感測器的OUT腳相接, 當紅外線感測到有人時,便會變成高電位,然後當8051偵測到時, 便會傳送一個訊息至電腦...你好 程式的標記$1:重複,將標記名稱更改即可,標記名稱不要用$開頭;---------------------------------------- ;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沒有定義... 我是照其它範例改的...請大大指導一下 順便一問,訊息傳送至電腦只需要設定超級終端機嗎? 因為我不需要電腦回傳值回來,我只要讓電腦知道有人來了... |
DIU
一般會員 發表:2 回覆:2 積分:0 註冊:2005-09-10 發送簡訊給我 |
|
src
高階會員 發表:1 回覆:94 積分:154 註冊:2005-08-23 發送簡訊給我 |
|
DIU
一般會員 發表:2 回覆:2 積分:0 註冊:2005-09-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |