RS232傳輸問題 |
答題得分者是:penguin5
|
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
我現在遇到一的問題
我的電路需要使用RS232傳輸資料到電腦,我只有DB25的線,我已經查過書了,已經接了相對應的腳位了,但還是無法傳輸成功,可是去借DB9的線路就傳輸成功,所以想問問看大大們我的電路哪裡有錯誤嗎 我的DB25與NPN電晶體(2N系列的,忘了型號)相接,腳位分別是接第2接RXD、第3接TXD、4&5相接、6&20相接、7接地,E接地、B接rs232、C接8051以及1k電阻接正極 請問是哪裡有錯誤嗎?? |
penguin5
資深會員 發表:116 回覆:317 積分:431 註冊:2004-05-09 發送簡訊給我 |
|
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
感謝樓上大大的答覆,我也是這樣接的,但是就沒有反應,是否可幫我看看倒底是哪裡有錯誤,我忙這個已經忙了好幾個禮拜了,也找了很多的書籍,寫了發射及接收的程式
我是想接收數類比訊號,將類比訊號轉換成數位訊號後,將轉換後的8 BIT 資料 ,分為兩個 4 BIT 傳送到接收端 ,接收端再將這兩個 4BIT 資料組合回 8 BIT 資料, 傳送到電腦 簡單來說就是要將訊號經由無線的方式傳送到電腦裡,將其顯現出來 我的無線模組是用TG11的發射模組接收模組,訊號轉換的IC是用ADC0804的,RS232是 25PIN的 找不出問題點在哪,因為真的沒有辦法了,懇請大大們幫幫忙,以下是程式及電路圖 這是我的發射端程式 void delayms unsigned int time #define //WR INTR P1_6定義接腳的接線#define DB P3定義接腳的接線unsigned char A;宣告一個字元unsigned char C;宣告一個字元main主程式{while 1 重複執行以下敘述{ //ADC0804 //ADC0804WR=0 //ADC0804WR=1 //ADC0804INTR=0 A=P3;將的值傳入字元B=A&0x0f; //A0x01BC= A&0xf0 >>4;// P2=0x0A; // P2=B; //BP2 P2=0x0B; // P2=C;將字元內的數值傳入到delayms 100 ; 考慮到P2只有接P21-P24,只有接四隻腳} } void delayms unsigned int time 延遲的副程式{ n; { while n>0 time--; } 這是我的接收端程式 void send unsigned char E ; ; 宣告一個字元unsigned char C; //C 宣告一個字元unsigned char E; 主程式{TMOD=0X20; TH1=243; TL1=243; TR1=1; SCON=0X50; TI=1; EA=1; // if P2==0x0a 若為時,做以下動作 { 將的值存到字元 } 當為以即為小於或等於時,做以下動作{ P1=P2;//P2A A=P1; } 當為時,做以下動作 { 將的值存到字元 } 當為以即為小於或等於時,做以下動作{ 將的值向左移四位後存到字元if P2==0x0C //P20X0C E=A|B;//A or BABP3 ; } } } // unsigned intwhile time>0 n=120; n--; } void send unsigned char E TI=0; while TI==0 ; } 這是我電腦VB6.0的程式,只有接收,我假設傳入的訊號為二進位的訊號,所以已寫入二進位轉十進位的程式 Private Sub Command1_Click() MSComm1.PortOpen = False End End Sub Private Sub Command2_Click() MSComm1.PortOpen = True End Sub Private Sub Command3_Click() MSComm1.PortOpen = False End Sub Private Sub Form_Load() MSComm1.Settings = "2400,n,8,1" MSComm1.PortOpen = True Timer2.Interval = 1000 InputMode = comInputModeBinary Timer2.Enabled = True End Sub Private Sub MSComm1_OnComm() MSComm1.CommPort = 2 MSComm1.Settings = "2400,n,8,1" MSComm1.PortOpen = True End Sub Private Sub Timer1_Timer() If (Mid(buf, i, 1) = 1) Then N1 = N1 2 ^ (Len(buf) - i) Next i 0" Else Text2 = "現在的數值 :" & "End Sub 這是我的發射端電路圖 這是我接收端的電路圖 |
penguin5
資深會員 發表:116 回覆:317 積分:431 註冊:2004-05-09 發送簡訊給我 |
|
mymj
版主 發表:132 回覆:486 積分:608 註冊:2002-10-25 發送簡訊給我 |
DB25不行DB9可以很顯然是接線的問題
善用三用電表利用下面的對照表量量看,是否斷線 還有要連到rs-232端子之前要利用rs-232晶片來調整輸出電壓準位 mymj ===================引 用 penguin5 文 章===================
|
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
|
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
|
loveforme
一般會員 發表:22 回覆:39 積分:22 註冊:2009-03-24 發送簡訊給我 |
|
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
===================引 用 aki 文 章=================== 這一位同學所提供的 8051 TX & RX 的 Source Code, 是標準的 ANSI C or Keil 51C 嘛?姑且不說邏輯對與錯, 我用 Keil C 編譯有錯誤一堆! 唉, 請把基本功作好,好嗎? ------------------------------------ aki 版大,我的程式還在實驗階段,而且會出現錯誤一堆,是因為不知如何的將程式PO上來後括號全都消失,打不上去,且我的include後面有at89X51也是因為相同原因消失的 所以才會錯誤一堆,謝謝樓上大大們如此熱情的告訴小弟相關的回覆,謝謝!! |
lishang83
初階會員 發表:12 回覆:44 積分:31 註冊:2005-07-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |