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

關於無線模組RF11TG發射接收搭配HT-12E&HT-12D

尚未結案
kaen54000
一般會員


發表:1
回覆:3
積分:0
註冊:2011-12-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-12-07 00:11:06 IP:112.104.xxx.xxx 訂閱
 抱歉初次發表~尋求幫助!!在專題上碰到了問題!!
我是想利用如題無線模組跟8051搭配~藉由TG11發射器來簡單的控制8051的IO~我在網站上有找到如何接這些腳位!!但是對於程式
我完全不知如何下手!!希望有力人士能幫忙協助~
另一方面我也想了解一下紅外線遠端遙控如何去做,最主要是想學習無線控制8051上的IO但對於新手來說!不知道紅外線遠端控制或是
無線模組那個比較容易進入!!如果可以的話希望能拿到紅外線遠端控制或是無線模組的程式碼(因為使用KEILC)所以希望各位前輩能
提供一下有利資料!謝謝!!
PS無線模組是使用315MZ,TG-11A,TG11-B,HT-12E&HT-12D


謝謝版主的回應!!在請教一下(抱歉內容比較多)如附檔所看到的!發射接收!如何知道發射HT-12E的13~12~11~10腳的位置是多少?如果知道以後

我想要控制!low~high就是在接收模組的HT-12D的13.12.11.10腳全接到8051的晶片上如下圖程式碼:
<<<<發送部份>>>>
#include"reg51.h"
void delayms(unsigned int time);
unsigned char A; //宣告一個字元A
unsigned char C; //宣告一個字元C
main(void) //主程式
{
while(1) //重複執行以下敘述
{
ADC_WR = 1; //令ADC0804的接線WR=1<<<<請問這一段~我如果只是單純無線模組IO輸出而已要怎麼取代這一段??>>>>
while (ADC_INTR == 1); //等待ADC0804的接腳INTR=0<<<<請問這一段~我如果只是單純無線模組IO輸出而已要怎麼取代這一段??>>>>
{
<<<<請問以下這一段要如何更改??>>>>
delayms(100);
P2 = 0x0A; //考慮到P2只有接P21-P24,只有接四隻腳
delayms(100);
P2 = B; //將字元B內的數值傳入到P2
delayms(100);
P2 = 0x0B; //考慮到P2只有接P21-P24,只有接四隻腳
delayms(100);
P2 = C; //將字元C內的數值傳入到P2
delayms(100);
P2 = 0x0C; //考慮到P2只有接P21-P24,只有接四隻腳
}
}
}
void delayms(unsigned int time) //延遲的副程式
{
unsigned int n;
while(time > 0);
{
n = 120;
while(n > 0) n--;
time--;
}
}

<<<<接收部份>>>>
#include"reg51.h"

sbit k1=P1^0;//接到HT12D的10
sbit k2=P1^1;/接到HT12D的11
sbit k3=P1^2;/接到HT12D的12
sbit k4=P1^3;/接到HT12D的13
void send(unsigned char E);
void delayms(unsigned int time);
unsigned char A; //宣告一個字元A
unsigned char C; //宣告一個字元C
unsigned char D; //宣告一個字元D
unsigned char E;
main(void) //主程式
{
TMOD=0X20;
TH1=243;
TL1=243;
TR1=1;
SCON=0X50;
TI=1;
EA=1;
while(1) //重複執行以下敘述
{
if (SBUF== 0x0a) //假設HT12D腳位10是0x0a
{
k1=0;
}
if SBUF== 0x0b)假設HT12D腳位11是0x0b
{
k2=0;
}
if (SBUF == 0x0c) //假設HT12D腳位12是0x0c
{
k3=0;
}

if (SBUF == 0x0d) //假設HT12D腳位13是0x0d
{
k4=0;
}
void delayms(unsigned int time) //延遲的副程式
{
unsigned int n;
while (time>0)
{
n=120;
while(n>0) n--;
time--;
}
}
void send(unsigned char E)
{
TI=0;
SBUF=E;
while (TI==0) ;
TI=0;
}

麻煩請各位幫忙更改!!謝謝
編輯記錄
kaen54000 重新編輯於 2011-12-13 10:21:59, 註解 無‧
kaen54000 重新編輯於 2011-12-13 10:25:27, 註解 無‧
kaen54000 重新編輯於 2011-12-13 10:30:21, 註解 無‧
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-12-07 06:57:32 IP:220.137.xxx.xxx 訂閱

很巧的你所附的電路圖就是在下畫的.
TG-11 是當時光華商場可以買得到的 RF Module 有 433.96MHz, 318MHz 等頻率.
HT-12E & HT-12D 是編解碼器,是一對, IrDA 如何用,你可以參考 HT-12E or HT-12D 的 datasheet 有說明,
至於程式怎麼寫,可以參閱
(1)
PC/8051 無線遙控專題製作
陳龍三,許榮庭著 松崗出版
ISBN957-22-2161-2

(2) 張正賢著 8051 的書內有提到用 TG-11 的遙控線路及程式,不過是 8051 組合語言寫的.
===================引 用 kaen54000 文 章===================
抱歉初次發表~尋求幫助!!在專題上碰到了問題!!
我是想利用如題無線模組跟8051搭配~藉由TG11發射器來簡單的控制8051的IO~我在網站上有找到如何接這些腳位!!但是對於程式
我完全不知如何下手!!希望有力人士能幫忙協助~
另一方面我也想了解一下紅外線遠端遙控如何去做,最主要是想學習無線控制8051上的IO但對於新手來說!不知道紅外線遠端控制或是
無線模組那個比較容易進入!!如果可以的話希望能拿到紅外線遠端控制或是無線模組的程式碼(因為使用KEILC)所以希望各位前輩能
提供一下有利資料!謝謝!!
PS無線模組是使用315MZ,TG-11A,TG11-B,HT-12E&HT-12D






kaen54000
一般會員


發表:1
回覆:3
積分:0
註冊:2011-12-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-12-07 21:55:04 IP:175.180.xxx.xxx 訂閱
 謝謝版主!!但我還是找不到這本書!請問這本是沒在出版了嗎
PC/8051 無線遙控專題製作
ISBN957-22-2161-2
在請問版主有程式碼(c語言)可以提供我作參考嗎?
ps:請問 IrDA中文是紅外線數位轉類比嗎
抱歉還在學習當中
編輯記錄
kaen54000 重新編輯於 2011-12-07 06:57:31, 註解 無‧
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-12-08 22:35:33 IP:111.243.xxx.xxx 訂閱
(1) example for TX of TG-11

/*
???
from:
http://delphi.ktop.com.tw/board.php?cid=173&fid=1167&tid=98375
我是想接收數類比訊號,將類比訊號轉換成數位訊號後,將轉換後的8 BIT 資料 ,
分為兩個 4 BIT 傳送到接收端 ,接收端再將這兩個 4BIT 資料組合回 8 BIT 資料,
傳送到電腦簡單來說就是要將訊號經由無線的方式傳送到電腦裡,將其顯現出來
我的無線模組是用TG11的發射模組接收模組,訊號轉換的IC是用ADC0804的,RS232是 25PIN的
找不出問題點在哪,因為真的沒有辦法了,懇請大大們幫幫忙,以下是程式及電路圖
這是我的發射端程式
for TX
Original Revised : Kousaku Yoshida ;8 channel, decimal output
Date : 23 May 2009
File : TG-11_TX1.C
Compiler : KEIL C7.0
*/
#pragma DEBUG OBJECTEXTEND CODE // pragma lines can contain state C51
#include // declarations for I/O functions
#include // 8052 & ADuC812 predefined symbols
//#include
//#include
void delayms(unsigned int time);
sbit P1_7 = 0x97;
sbit P1_6 = 0x96;
#define ADC_WR P1_7 //定義接腳WR的接線
#define ADC_INTR P1_6 //定義接腳INTR的接線
#define DB P3 //定義接腳DB的接線
unsigned char A; //宣告一個字元A
unsigned char C; //宣告一個字元C
main(void) //主程式
{
while(1) //重複執行以下敘述
{
//啟動ADC0804
ADC_WR = 0; //令ADC0804的接線WR=0
ADC_WR = 1; //令ADC0804的接線WR=1
while (ADC_INTR == 1); //等待ADC0804的接腳INTR=0
{
A = P3; //將P3的值傳入字元A
B = A&0x0f; //使A內的數值變為0x01,將數值傳入到字元B
C = A&0xf0 >>4; //
delayms(100);
P2 = 0x0A; //考慮到P2只有接P21-P24,只有接四隻腳
delayms(100);
P2 = B; //將字元B內的數值傳入到P2
delayms(100);
P2 = 0x0B; //考慮到P2只有接P21-P24,只有接四隻腳
delayms(100);
P2 = C; //將字元C內的數值傳入到P2
delayms(100);
P2 = 0x0C; //考慮到P2只有接P21-P24,只有接四隻腳
}
}
}
void delayms(unsigned int time) //延遲的副程式
{
unsigned int n;
while(time > 0);
{
n = 120;
while(n > 0) n--;
time--;
}
}


===================引 用 kaen54000 文 章===================
謝謝版主!!但我還是找不到這本書!請問這本是沒在出版了嗎
PC/8051 無線遙控專題製作
ISBN957-22-2161-2
在請問版主有程式碼(c語言)可以提供我作參考嗎?
ps:請問IrDA中文是紅外線數位轉類比嗎
抱歉還在學習當中
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2011-12-08 22:36:27 IP:111.243.xxx.xxx 訂閱
(2) example for RX of TG-11

/*
???
information from:
http://delphi.ktop.com.tw/board.php?cid=173&fid=1167&tid=98375
我是想接收數類比訊號,將類比訊號轉換成數位訊號後,將轉換後的8 BIT 資料 ,
分為兩個 4 BIT 傳送到接收端 ,接收端再將這兩個 4BIT 資料組合回 8 BIT 資料,
傳送到電腦簡單來說就是要將訊號經由無線的方式傳送到電腦裡,將其顯現出來
我的無線模組是用TG11的發射模組接收模組,訊號轉換的IC是用ADC0804的,RS232是 25PIN的
找不出問題點在哪,因為真的沒有辦法了,懇請大大們幫幫忙,以下是程式及電路圖
這是我的發射端程式
for RX
這是我的接收端程式
*/
#pragma DEBUG OBJECTEXTEND CODE // pragma lines can contain state C51
#include // declarations for I/O functions
#include // 8052 & ADuC812 predefined symbols
//#include
//#include
void send(unsigned char E);
void delayms(unsigned int time);
unsigned char A; //宣告一個字元A
unsigned char C; //宣告一個字元C
unsigned char D; //宣告一個字元D
unsigned char E;
main(void) //主程式
{
TMOD=0X20;
TH1=243;
TL1=243;
TR1=1;
SCON=0X50;
TI=1;
EA=1;
while(1) //重複執行以下敘述
{
if (P2 == 0x0a) //若P2為0x0a時,做以下動作
{
D=P2;//將P2的值存到字元D
}
if (D == 0x0a && P2<=0x0F) //當D為0X0A以即P2為小於或等於0X0F時,做以下動作
{
P1=P2;//將P2的值存到字元A
A=P1;
}
if (P2==0x0b) //當P2為0X0B時,做以下動作
{
C=P2;//將P2的值存到字元C
}
if (C==0x0b && P2<=0x0F) //當D為0X0B以即P2為小於或等於0X0F時,做以下動作
{
P0=P2<<4;//將P2的值向左移四位後存到字元B
B=P0;
}
if (P2==0x0C) //當P2為0X0C時,做以下動作
{
E=A|B;//做A or B,即為將A與B的數值做結合,再由P3輸出
send (E);
}
}
}
void delayms(unsigned int time) //延遲的副程式
{
unsigned int n;
while (time>0)
{
n=120;
while(n>0) n--;
time--;
}
}
void send(unsigned char E)
{
TI=0;
SBUF=E;
while (TI==0) ;
TI=0;
}


===================引 用 kaen54000 文 章===================
謝謝版主!!但我還是找不到這本書!請問這本是沒在出版了嗎
PC/8051 無線遙控專題製作
ISBN957-22-2161-2
在請問版主有程式碼(c語言)可以提供我作參考嗎?
ps:請問IrDA中文是紅外線數位轉類比嗎
抱歉還在學習當中
kaen54000
一般會員


發表:1
回覆:3
積分:0
註冊:2011-12-06

發送簡訊給我
#6 引用回覆 回覆 發表時間:2011-12-10 00:44:58 IP:112.104.xxx.xxx 訂閱
 謝謝版主的回應!!不好意思!!在請教一下,如果我只是想先單純的用無線模組控制io的high和low需要用到ADC0804嗎?
再者!!請問如果有需要用到的話!可以請教你ADC的腳位要怎麼接嗎!
還有請問#include 這個標頭檔跟ADC0804有關聯嗎?抱歉因為剛學習!
PS:我有下載ADC0804的datasheet但是看不太懂!

編輯記錄
kaen54000 重新編輯於 2011-12-09 09:52:41, 註解 無‧
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2011-12-12 06:36:10 IP:220.137.xxx.xxx 訂閱

===================引 用 kaen54000 文 章===================
(1)謝謝版主的回應!!不好意思!!在請教一下,如果我只是想先單純的用無線模組控制io的high和low需要用到ADC0804嗎?
=>不需要
>再者!!請問如果有需要用到的話!可以請教你ADC的腳位要怎麼接嗎!
=> 很多 8051 的專題相關的書,都有提到 8051 和 ADC0804 的接法,或是參閱 ADC0804 的 datasheet 也有提到.

>還有請問#include 這個標頭檔跟ADC0804有關聯嗎?抱歉因為剛學習!
這個程式寫的時候我用的 8051 是 ADI ADuC812/831 (8051 Core),用 C 語言寫的,所以要 include header file.

>PS:我有下載ADC0804的datasheet但是看不太懂!
這樣的問法看不懂,我也沒法救你,是哪裡難不懂呢?我建議你去找一些中文的 8051 的專題的書,已經有很多寫有關於 8051 接 0804 的接法及詳細的電路圖,及程式範例,對於一位初學者來說是絕對需要的.


kaen54000
一般會員


發表:1
回覆:3
積分:0
註冊:2011-12-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2011-12-14 01:24:09 IP:203.67.xxx.xxx 訂閱
 在痲煩版主幫忙看我打的程式碼!!麻煩您了
內容以改!!
編輯記錄
kaen54000 重新編輯於 2011-12-14 08:45:11, 註解 無‧
系統時間:2024-04-27 6:18:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!