有關8051UART的傳送問題 |
尚未結案
|
harries408002
一般會員 發表:1 回覆:4 積分:1 註冊:2015-04-17 發送簡訊給我 |
各位大大你好:我目前在做一個實驗,就是利用兩顆8051作互相傳送資料的電路顯示輸出資料的方式是用LED,輸入資料是按壓開關,想利用第一顆8051傳送資料
但是我試了好久,就是只能第一顆傳送到第一顆輸出LED而已,第二顆也是一樣, 兩邊的TX RX都有做連接,不知道是不是程式的問題,以下是我用的程式 BUFFER EQU 30H ORG 0 JMP RESET ORG 23H JMP UART_INT RESET: MOV SP,#6FH MOV TMOD,#00100000B ANL PCON,#01111111B MOV TH1,#0FFH MOV TL1,#0FFH SETB TR1 MOV SCON,#01010000b SETB EA SETB ES MOV BUFFER,#0 WAIT: JNB P1.0,CASE0 JNB P1.1,CASE1 CJNE A,BUFFER,SWChange JMP WAIT SWChange:MOV BUFFER,P1 MOV SBUF,A Transmit_Wait:JBC TI,Transmit_Ok JMP Transmit_Wait Transmit_Ok: JMP WAIT Uart_Int: PUSH ACC PUSH PSW SETB RS0 CLR RS1 JBC RI,ReceiveInt JMP Return ReceiveInt:MOV A,SBUF MOV P2,A Return: POP PSW POP ACC CASE0: MOV P2,#00111111B MOV R5,#100 ACALL DELAY MOV P2,#11001111B MOV R5,#100 ACALL DELAY MOV P2,#00001111B MOV R5,#100 ACALL DELAY MOV P2,#11111111B MOV R5,#100 ACALL DELAY AJMP CASE0 CASE1: MOV P3,#11001111B MOV R5,#100 ACALL DELAY MOV P2,#00111111B MOV R5,#100 ACALL DELAY MOV P2,#11111111B MOV R5,#100 ACALL DELAY MOV P2,#00001111B MOV R5,#100 ACALL DELAY AJMP CASE1 DELAY: MOV R6,#40 DL1: MOV R7,#249 DL2: DJNZ R7,DL2 DJNZ R6,DL1 DJNZ R5,DELAY RETI END |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
harries408002
一般會員 發表:1 回覆:4 積分:1 註冊:2015-04-17 發送簡訊給我 |
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
harries408002
一般會員 發表:1 回覆:4 積分:1 註冊:2015-04-17 發送簡訊給我 |
|
jxchen
一般會員 發表:5 回覆:13 積分:3 註冊:2007-02-14 發送簡訊給我 |
將你的程式修改過了,請你將 TX ,RX 分別組譯後,燒在不同8051上,在去驗證看看
;--------------------------------------------------- ; UART TX PROGRAM BUFFER EQU 30H ORG 0 JMP RESET RESET: CLR EA MOV SP,#6FH MOV P1,#0FFH MOV TMOD,#00100000B ANL PCON,#01111111B MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 MOV SCON,#01010000b CLR TI MOV BUFFER,#0FFH WAIT: MOV A,P1 CJNE A,BUFFER,SWChange JMP WAIT SWChange: MOV BUFFER,A MOV SBUF,A Transmit_Wait: JBC TI,Transmit_Ok JMP Transmit_Wait Transmit_Ok: JMP WAIT END ;;---------------------------------------------------------- ;----------------------------------------------------------- ; UART RX PROGRAM BUFFER EQU 30H ORG 0 JMP RESET ORG 23H JMP UART_INT RESET: CLR EA MOV SP,#6FH MOV P1,#0FFH MOV P2,#0FFH MOV TMOD,#00100000B ANL PCON,#01111111B MOV TH1,#0FDH MOV TL1,#0FDH SETB TR1 MOV SCON,#01010000b CLR TI CLR RI SETB ES SETB EA ;---------------------------------------------------------- UART_INT: PUSH ACC PUSH PSW SETB RS0 CLR RS1 JBC RI,ReceiveInt JMP Return ReceiveInt: MOV A,SBUF MOV P2,A Return: POP PSW POP ACC RETI ;;================================================================= END |
harries408002
一般會員 發表:1 回覆:4 積分:1 註冊:2015-04-17 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |