RF無線傳輸模組問題 |
答題得分者是:aki
|
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
我用315MHZ RF來做無線的資料傳輸(僅僅是傳資料而已)
用RS232於發射端的8051的RXD端連接,將儀器的數值傳入(儀器類似於血壓計),再經由P2到HT12E在到發射端 接收端則相反,發射端到HT12D再經由P2傳到TXD,再由RS232連結TXD,將數值傳給電腦 但是問題是不知道要怎樣C語言編寫程式才能將RXD所輸入的資料,由P2送到HT12E在送到發射端輸出 接收端也一樣,懇請大大們給我一些編寫上的建議 以下是電路圖 |
暗黑破壞神
版主 發表:9 回覆:2301 積分:1627 註冊:2004-10-04 發送簡訊給我 |
編寫上的建議是你先找書.先上網查過那些東西怎麼用.
把你找到的讀過,跟大家"討論" 而不是上來要答案. 答案沒有絕對.你要自己思考. ===================引 用 旭日之心 文 章=================== 我用315MHZ RF來做無線的資料傳輸(僅僅是傳資料而已) 用RS232於發射端的8051的RXD端連接,將儀器的數值傳入(儀器類似於血壓計),再經由P2到HT12E在到發射端 接收端則相反,發射端到HT12D再經由P2傳到TXD,再由RS232連結TXD,將數值傳給電腦 但是問題是不知道要怎樣C語言編寫程式才能將RXD所輸入的資料,由P2送到HT12E在送到發射端輸出 接收端也一樣,懇請大大們給我一些編寫上的建議 以下是電路圖 |
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
樓上的大大說的是
我是有上網找過,也有去圖書館,借有關於8051的書籍來参考 也有試著打過程式,但是程式就是RUN不出來,感到很無力,才上網尋求大大們的建議看看能有甚麼進展嗎? 目前找的的資料,讓我想到說先將RXD的數值以四位元輸出在接收端再將2個四位元的資料組合成8位元輸出 但是問題是,上網看了很多的FDP有看到類似的題材,但是是用組合語言編寫的,而我卻只看的懂C語言 那我將我所打的程式PO上來,雖然是漏洞百出,但也不知道要從何下手,請大大們幫幫忙給個建議吧!!謝謝 再請教一個問題,如果在我所要接的儀器上已經有RS232的接頭,是不是就不用將類比信號轉換成數位信號?? 以下是程式:假設所輸入的數值為123 #include void INIT_RS232(void) { SCON=0x40; TMOD =0x20; TH1=230; TR1=230; } void RX(void) { while(!RI) { } RI=0; SBUF=123; SBUF=(SBUF-(SBUF))/10; A=SBUF; switch(A) { case 0: { P2=0x00; break; } case 1: { P2=0x01; break; } case 2: { P2=0x02; break; } case 3: { P2=0x03; break; } case 4: { P2=0x04; break; } case 5: { P2=0x05; break; } case 6: { P2=0x06; break; } case 7: { P2=0x07; break; } case 8: { P2=0x08; break; } case 9: { P2=0x09; break; } } } void main(void) { while(1) //LOOP 永久迴圈 { INIT_RS232(); //CALL INIT_RS232( 呼叫INIT_RS232函數(副程式 ) RX(); //CALL RX ( 呼叫 RX函數(副程式 ) } // JMP LOOP } |
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
這個問題不是在"雷兒電子"網看過了,
http://www.haifeng.idv.tw/leo/cgi-bin/topic.cgi?forum=53&topic=580&replynum=last#bottom 很多同好及網友部都提供了很多意見,及提供了很多資料. 類似這樣的架構下(MCU TG-11)傳心跳,溫度,濕度等資訊的方法, 我看過元智,中原醫工還有數校有詳細的論文可以參考. 我手上剛好有一本書,你也可以去找找看,適用C 寫的. 這一本書有一章的專題是介紹用 8051 cotrol HT-12E & 接收 HT-12D 的範例,是用 C 來寫,可以參考看看! 8051 C 語言專題製作 [B068]; 作者: 郭庭吉 ISBN:9861291326 504頁 / 套色 / 16開 初版日期:2004-09-29 最新出版日期:2004-09-29 定價:450元 本書特色 1. MCS51,AT89C51 簡介說明 2. TURBO C 語言由淺入深的介紹 3. ICC8051 範例操作說明 4. 基礎實習 I/O、計時/計數、中斷等應用 5. 串列通訊 ICL232 及電玩連線 SN75176 應用介紹 6. 音樂、步進馬達、印表機等應用 7. 電子號碼鎖專題:2816A、93C46、8870、95089、HT-12 等應用 8. A/D 轉換器 ADC0804、ICL7135 等應用 9. 週邊 IC8155、8255、8253、8279、6116、MC146818 等應用 10.專題製作:萬年曆、可程式 TIMER、三角函數及浮點運算等 ===================引 用 旭日之心 文 章=================== 我用315MHZ RF來做無線的資料傳輸(僅僅是傳資料而已) 用RS232於發射端的8051的RXD端連接,將儀器的數值傳入(儀器類似於血壓計),再經由P2到HT12E在到發射端 接收端則相反,發射端到HT12D再經由P2傳到TXD,再由RS232連結TXD,將數值傳給電腦 但是問題是不知道要怎樣C語言編寫程式才能將RXD所輸入的資料,由P2送到HT12E在送到發射端輸出 接收端也一樣,懇請大大們給我一些編寫上的建議 以下是電路圖
編輯記錄
aki 重新編輯於 2009-04-01 08:56:52, 註解 無‧
|
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
>樓上的大大說的是
>我是有上網找過,也有去圖書館,借有關於8051的書籍來参考 >也有試著打過程式,但是程式就是RUN不出來,感到很無力,才上網尋求大大們的建議看看能有甚麼進展嗎? 大家都是從學生/學徒走過來,你的心情我及大多數的網友都會有同感! 但如何從無力感中找出自己的方向來,是首要.看來你已經在努力了, 要加油! >目前找的的資料,讓我想到說先將RXD的數值以四位元輸出在接收端再將2個四位元的資料組合成8位元輸出 >但是問題是,上網看了很多的FDP有看到類似的題材,但是是用組合語言編寫的,而我卻只看的懂C語言 >那我將我所打的程式PO上來,雖然是漏洞百出,但也不知道要從何下手,請大大們幫幫忙給個建議吧!!謝謝 HT-12E 是傳 4 bit 的 data, 所以你的想法是對的, 傳兩次就是一個 Byte 了. 程式跟做硬體一樣,不是全部做完再來看對不對,是一點一點累積出來的. 像這種系統整合的開發,需要軟硬體都對了,整體才會是對, 我的建議是硬體,軟體驗證再加硬體,再軟體驗證這樣一點一點來累積, 直到完成,看來是很笨的方法, 但確是一步一腳印最實在的做法. >再請教一個問題,如果在我所要接的儀器上已經有RS232的接頭,是不是就不用將類比信號轉換成數位信號?? >以下是程式:假設所輸入的數值為123 > RS232 上的訊號已經是數位了,所以上面的問題看不懂? |
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
|
addn
高階會員 發表:64 回覆:221 積分:202 註冊:2005-03-21 發送簡訊給我 |
您好
你要先搞清楚,輸入是binary還是BCD碼 如果輸入是BCD接收後要變成bin就要將 BCD轉成bin 請問你RF輸出是什麼碼 接收到後又是什麼碼 接收下來的資料要怎處理 用BCD還BIN來處理 這些都要先釐清, ===================引 用 旭日之心 文 章=================== 謝謝樓上的大大們 那已經是數位化的資料的話,是不是代表要傳入8051的資料為123時,再傳入時就已經變成了0x7B嗎? 請問一下8位元要拆成兩個4位元,是讓他原本假如是0x7B,變成0x01、0x02、0x03嗎??若不是的話是要如何表示? |
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
binary還是BCD碼
這是甚麼意思?? ===================引 用 addn 文 章=================== 您好 你要先搞清楚,輸入是binary還是BCD碼 如果輸入是BCD接收後要變成bin就要將 BCD轉成bin 請問你RF輸出是什麼碼 接收到後又是什麼碼 接收下來的資料要怎處理 用BCD還BIN來處理 這些都要先釐清, ===================引 用 旭日之心 文 章=================== 謝謝樓上的大大們 那已經是數位化的資料的話,是不是代表要傳入8051的資料為123時,再傳入時就已經變成了0x7B嗎? 請問一下8位元要拆成兩個4位元,是讓他原本假如是0x7B,變成0x01、0x02、0x03嗎??若不是的話是要如何表示? |
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
也就是說如果你想傳 0x7B 這個 data, 則如果先傳低位元再傳高位元,
則為先傳 0x0B 再向右移 4 位 為 0x07, 再傳 0x07, 相反的接收端會先收到 0x0B, 再收到 0x07, 正確的接收為將後接收的 資料左移 4 位元(0x70)再加上 0x0B,就等於 0x7B 了. 我介紹的那書也有寫. 或者參考其他關於 "C 語言" 或 "8051" 相關的書應該都有提到. ===================引 用 旭日之心 文 章=================== 謝謝樓上的大大們 那已經是數位化的資料的話,是不是代表要傳入8051的資料為123時,再傳入時就已經變成了0x7B嗎? 請問一下8位元要拆成兩個4位元,是讓他原本假如是0x7B,變成0x01、0x02、0x03嗎??若不是的話是要如何表示? |
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
|
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
|
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
對了 ! 剛剛我找一下以前的資料庫, 相信應該是從 MicroChip PIC 的相關網站那下載來的,
但是從哪真的不記得了, 有人用 PIC 接 TG-11, 不採用用 HOLTEK HT-12E & HT-12D, 這部分用軟體寫了, 直接控制 PIC 將資料傳給 TG-11A, 接收端就直接接收 TG-11B 收到後解碼, 得到要的資訊, 含有 Source Code & Schenatic. 如果需要請 post E-mail address, I can forward to you. ===================引 用 旭日之心 文 章=================== 接收端: 假如我設定同步的數值0xfd和0xfb 在接收端先接收到0xfd後是0x06後是0xfb後是0x05,以上數值皆傳到P2 想要使P2=0xfd後接收0x06,當P2=0xfb後接收0x05 請大大們給個建議 |
旭日之心
一般會員 發表:3 回覆:10 積分:2 註冊:2009-03-31 發送簡訊給我 |
我是讓發射端發射0xed後是數值後是0xeb後是數值,
例如我要發射0x56,將x56拆成0x06、0x05我讓發射端先發射0xed後來才會發射0x06再發射0xeb後來才會發射0x05 我是想要讓接收端,當接收端接收到0xed後才接收0x06,後收到0xeb後才會接收0x05 但是問題是我的接收端資料都是由P2傳入資料的,就不知道說要怎樣設定讓它看到0xed及0xeb後會接收那之後的數值 還有一個問題是雖然是知道要如何使他回復成0X56但是一直不順利,要不是會卡住就是一直只跑出0x50 請大大們給我的建議 在我的程式大概是這樣 #include void delayms(unsigned int time); unsigned char A; unsigned char C; unsigned char D; main() { while(1) { if (P2==0xed) { P1=P2; } else if(P1==0xed) { A=P2; } else if(P2==0xeb) { P1=P2; } else if(P1==0xeb) { D=A; C=P2<<4; P3=A|C; } } } |
aki
版主 發表:30 回覆:696 積分:755 註冊:2004-01-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |