chả là đang muốn làm mạch thu phát dùng avr điều khiển modul thu phát mua sẵn,nhưng phần mã hóa bằng vi điều khiển khó nhai quá,có ai giúp em phần này với ạ:mã hóa như thế nào,rồi lập trình ra sao
Thông báo
Collapse
No announcement yet.
mã hóa bằng VĐK trong RF
Collapse
X
-
Thường thì mua ở chỗ nào kêu người ta hướng dẫn cách dùng chứ !!! ? Mỗi loại sản phẩm đều có các thông số khác nhau nên chưa chắc đã hoạt động giống nhau với cùng 1 mã code .Nguyên văn bởi vietran2708 Xem bài viếtchả là đang muốn làm mạch thu phát dùng avr điều khiển modul thu phát mua sẵn,nhưng phần mã hóa bằng vi điều khiển khó nhai quá,có ai giúp em phần này với ạ:mã hóa như thế nào,rồi lập trình ra sao
( Bạn nghiên cứu dựa trên mã module TX13 - RX13 của Quế Dương xem) ( Hàng ở ngoài không biết có chạy được không !) ( cái này thì mình chịu ) và không có giải thích.
Transmitter CODE :
Receiver CODE :Code:////////////////// Transmitter TX13 : ATmega8 - 8Mhz . Man + SYNC + ID + checksum /////////// #include <mega8.h> #include <delay.h> #define button_on PINB.0 #define button_off PINB.1 #define TX PORTD.4 // out RF-TX module #define ID 0x25 unsigned char TX_packet[3],TX_data; unsigned char i,j; unsigned int checksum; void Transmitter_Mode(); void main() { DDRB=0b00100100; // PB2-PB5 output DDRC=0b00000000; // All input DDRD=0b00010010; // PD1-PD4 output TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x00; ACSR=0x80; SFIOR=0x00; TX=0; // Low-TX pin WDTCR=0x1E; // Watchdog time out 1 sec WDTCR=0x0E; #asm("wdr") while(1) { #asm("wdr") if(button_on) // Transmitter Mode ( button ON pressed ! ) { do { TX_data =0x01; // 0x01 send to Receiver module ON LED #asm("wdr") Transmitter_Mode();// Do Transmitter_Mode } while(button_on); delay_ms(200); // button debouncer } else if(button_off) // Transmitter Mode ( button OFF pressed ! ) { do { TX_data =0x02; // 0x02 send to Receiver module OFF LED #asm("wdr") Transmitter_Mode();// Do Transmitter_Mode } while(button_off); delay_ms(200); // button debouncer } } // End while(1) } // END MAIN //////////////////////////// Functions //////////////////////////// void Transmitter_Mode() { checksum=0; TX_packet[0]=ID; checksum+= TX_packet[0]; TX_packet[1]=TX_data; checksum+= TX_packet[1]; TX_packet[2]=checksum; for (i=0;i<35;i++) // send preamble { #asm("wdr") TX=0; delay_us(416); // Delay 416 uS TX=1; delay_us(416); // } delay_us(1248); // Delay 1248 uS or 3Te for syn bit #asm("wdr") //----------------- TX=0; // start bit delay_us(416); TX=1; delay_us(416); //----------------- for (j=0;j<3;j++) // Extract and Send 3 byte in TX_packet[3] to Receiver Module { #asm("wdr") for(i=0;i<8;i++) { #asm("wdr") if ((TX_packet[j] & 0x80) == 0x80) { TX=0; delay_us(416); TX=1; delay_us(416); } else { TX=1; delay_us(416); TX=0; delay_us(416); } TX_packet[j]=TX_packet[j]<<1; } } //------ send stop bit ------- TX=0; delay_us(416); TX=1; delay_us(416); delay_ms(2); // delay gaurd TX =0; #asm("wdr") }
Code:///// RX13 receiver : 8 MHz , ID + checksum////// #include <mega8.h> #include <delay.h> #define LED PORTB.2 // Yellow Led #define RX PIND.3 // in RF-RX module #define ID 0x25 unsigned char RX_packet[3]; bit rx_bit; unsigned char i,j,k; unsigned int checksum; char Receiver_packet(unsigned char *buff); void main() { DDRB=0b00100100; // PB2-PB5 output DDRC=0b00000000; // All input DDRD=0b00010010; // PD1-PD4 output TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x00; ACSR=0x80; SFIOR=0x00; WDTCR=0x1E; // Watchdog time out 1 sec WDTCR=0x0E; LED=0; // Led off #asm("wdr") while(1) { #asm("wdr") // Do Receiver_Mode checksum=0; while(Receiver_packet(RX_packet)); for(k=0;k<2; k++) checksum+= RX_packet[k]; checksum&= 0x0FF; if(checksum==RX_packet[2]) { #asm("wdr") if (RX_packet[0]==ID)// check ID { if (RX_packet[1]==0x01) {LED=1;} // Turn ON LED else if (RX_packet[1]==0x02) {LED=0;} // Turn OFF LED } } } // End while(1) } // END MAIN //////////////////////////// Functions //////////////////////////// char Receiver_packet(unsigned char *buff) { unsigned char T0,count; #asm("wdr") i=35; count=0; TCCR0=0x03; // 125 Khz step=8us while(--i) // wait preamble { #asm("wdr") #asm{ NOP NOP NOP } #endasm while(RX); TCNT0=0; #asm("wdr") #asm{ NOP NOP NOP } #endasm while(!RX); T0=TCNT0; if (T0==0xFF) {return 1;} // error if ((T0>=49) && (T0<=55)) // 49x8 =392----> 55x8 =440 uS it OK. +-24us { count++; if ((count>=1)|| (i==0)) break; } } if ((count==0)&&(i==0)) {return 1;} // error TCCR0=0x03; // step 8us T0=0; while (!((T0>=188) && (T0<=228))) // 1504 - 1824 uS it OK. syn bit for 3Te + start or 1664 uS { #asm("wdr") #asm{ NOP NOP NOP } #endasm while(RX); // wait syn TCNT0=0; #asm("wdr") #asm{ NOP NOP NOP } #endasm while(!RX); T0=TCNT0; } #asm("wdr") while(RX); //wait start bit go low delay_us(580); // delay before sampling (1.5Te) #asm("wdr") for (j=0;j<3;j++) { i=8; buff[j]=0; while(i--) { buff[j]=buff[j]<<1; rx_bit=RX; // sampling buff[j]=buff[j] | rx_bit; if (rx_bit==0) while(!RX); else while(RX); delay_us(580); // delay for 1,5Te #asm("wdr") } #asm("wdr") } if (rx_bit==0) if (!RX) return 1; // error (no stop bit found) else if (!RX) return 1; // error (no stop bit found) return 0; }Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
-
Vấn đề này em cũng đang quan tâm vì dạo này nghe tin bọn trộm có thể dò được mã cửa cuốn. Nhà em cũng dùng cửa cuốn nên muốn lắp thêm 1 bộ khóa điện RF được mã hóa bằng MCU để cắt nguồn cửa cuốn. Khóa cũ chỉ dùng nâng hạ thôi. Vậy các bác cho em hỏi mã hóa bằng MCU thế này bọn trộm có thể dò được nữa không ạ?
@ queduong: Em xem sản phẩm trên trang web của bác nhưng không thấy có modul TX-13 và RX-13 đã tích hợp MCU. Vậy bác đã có sản phẩm tích hợp chưa hay đặt hàng bác mới làm? Thanks!Mưu sự tại nhân, thành sự tại thiên,
Comment
-
Module không tích hợp mã hóa/ giai mã . Ma hóa/ giải mã bằng MCU là bạn vận dụng kiến thức, cái đầu để có sự sáng tạo một quy luật mã hóa/ giải mã nào đó " bí mật " , mấy cái mã trên chỉ là một cách đơn thuần ( ví dụ ) ...Nguyên văn bởi thwcs Xem bài viếtVấn đề này em cũng đang quan tâm vì dạo này nghe tin bọn trộm có thể dò được mã cửa cuốn. Nhà em cũng dùng cửa cuốn nên muốn lắp thêm 1 bộ khóa điện RF được mã hóa bằng MCU để cắt nguồn cửa cuốn. Khóa cũ chỉ dùng nâng hạ thôi. Vậy các bác cho em hỏi mã hóa bằng MCU thế này bọn trộm có thể dò được nữa không ạ?
@ queduong: Em xem sản phẩm trên trang web của bác nhưng không thấy có modul TX-13 và RX-13 đã tích hợp MCU. Vậy bác đã có sản phẩm tích hợp chưa hay đặt hàng bác mới làm? Thanks!
Bạn hỏi là trộm nó có dò được không ? thế thì tôi cũng chịu không biết nói là thế nào ... Tốt nhất là phải đi hỏi thằng trộm thôi.Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com
Comment
-
thuat toan cua bac la thuat toan gi day a?Nguyên văn bởi queduong Xem bài viết
Thường thì mua ở chỗ nào kêu người ta hướng dẫn cách dùng chứ !!! ? Mỗi loại sản phẩm đều có các thông số khác nhau nên chưa chắc đã hoạt động giống nhau với cùng 1 mã code .
( Bạn nghiên cứu dựa trên mã module TX13 - RX13 của Quế Dương xem) ( Hàng ở ngoài không biết có chạy được không !) ( cái này thì mình chịu ) và không có giải thích.
Transmitter CODE :
Receiver CODE :Code:////////////////// Transmitter TX13 : ATmega8 - 8Mhz . Man + SYNC + ID + checksum /////////// #include <mega8.h> #include <delay.h> #define button_on PINB.0 #define button_off PINB.1 #define TX PORTD.4 // out RF-TX module #define ID 0x25 unsigned char TX_packet[3],TX_data; unsigned char i,j; unsigned int checksum; void Transmitter_Mode(); void main() { DDRB=0b00100100; // PB2-PB5 output DDRC=0b00000000; // All input DDRD=0b00010010; // PD1-PD4 output TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x00; ACSR=0x80; SFIOR=0x00; TX=0; // Low-TX pin WDTCR=0x1E; // Watchdog time out 1 sec WDTCR=0x0E; #asm("wdr") while(1) { #asm("wdr") if(button_on) // Transmitter Mode ( button ON pressed ! ) { do { TX_data =0x01; // 0x01 send to Receiver module ON LED #asm("wdr") Transmitter_Mode();// Do Transmitter_Mode } while(button_on); delay_ms(200); // button debouncer } else if(button_off) // Transmitter Mode ( button OFF pressed ! ) { do { TX_data =0x02; // 0x02 send to Receiver module OFF LED #asm("wdr") Transmitter_Mode();// Do Transmitter_Mode } while(button_off); delay_ms(200); // button debouncer } } // End while(1) } // END MAIN //////////////////////////// Functions //////////////////////////// void Transmitter_Mode() { checksum=0; TX_packet[0]=ID; checksum+= TX_packet[0]; TX_packet[1]=TX_data; checksum+= TX_packet[1]; TX_packet[2]=checksum; for (i=0;i<35;i++) // send preamble { #asm("wdr") TX=0; delay_us(416); // Delay 416 uS TX=1; delay_us(416); // } delay_us(1248); // Delay 1248 uS or 3Te for syn bit #asm("wdr") //----------------- TX=0; // start bit delay_us(416); TX=1; delay_us(416); //----------------- for (j=0;j<3;j++) // Extract and Send 3 byte in TX_packet[3] to Receiver Module { #asm("wdr") for(i=0;i<8;i++) { #asm("wdr") if ((TX_packet[j] & 0x80) == 0x80) { TX=0; delay_us(416); TX=1; delay_us(416); } else { TX=1; delay_us(416); TX=0; delay_us(416); } TX_packet[j]=TX_packet[j]<<1; } } //------ send stop bit ------- TX=0; delay_us(416); TX=1; delay_us(416); delay_ms(2); // delay gaurd TX =0; #asm("wdr") }
Code:///// RX13 receiver : 8 MHz , ID + checksum////// #include <mega8.h> #include <delay.h> #define LED PORTB.2 // Yellow Led #define RX PIND.3 // in RF-RX module #define ID 0x25 unsigned char RX_packet[3]; bit rx_bit; unsigned char i,j,k; unsigned int checksum; char Receiver_packet(unsigned char *buff); void main() { DDRB=0b00100100; // PB2-PB5 output DDRC=0b00000000; // All input DDRD=0b00010010; // PD1-PD4 output TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00; ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; MCUCR=0x00; TIMSK=0x00; ACSR=0x80; SFIOR=0x00; WDTCR=0x1E; // Watchdog time out 1 sec WDTCR=0x0E; LED=0; // Led off #asm("wdr") while(1) { #asm("wdr") // Do Receiver_Mode checksum=0; while(Receiver_packet(RX_packet)); for(k=0;k<2; k++) checksum+= RX_packet[k]; checksum&= 0x0FF; if(checksum==RX_packet[2]) { #asm("wdr") if (RX_packet[0]==ID)// check ID { if (RX_packet[1]==0x01) {LED=1;} // Turn ON LED else if (RX_packet[1]==0x02) {LED=0;} // Turn OFF LED } } } // End while(1) } // END MAIN //////////////////////////// Functions //////////////////////////// char Receiver_packet(unsigned char *buff) { unsigned char T0,count; #asm("wdr") i=35; count=0; TCCR0=0x03; // 125 Khz step=8us while(--i) // wait preamble { #asm("wdr") #asm{ NOP NOP NOP } #endasm while(RX); TCNT0=0; #asm("wdr") #asm{ NOP NOP NOP } #endasm while(!RX); T0=TCNT0; if (T0==0xFF) {return 1;} // error if ((T0>=49) && (T0<=55)) // 49x8 =392----> 55x8 =440 uS it OK. +-24us { count++; if ((count>=1)|| (i==0)) break; } } if ((count==0)&&(i==0)) {return 1;} // error TCCR0=0x03; // step 8us T0=0; while (!((T0>=188) && (T0<=228))) // 1504 - 1824 uS it OK. syn bit for 3Te + start or 1664 uS { #asm("wdr") #asm{ NOP NOP NOP } #endasm while(RX); // wait syn TCNT0=0; #asm("wdr") #asm{ NOP NOP NOP } #endasm while(!RX); T0=TCNT0; } #asm("wdr") while(RX); //wait start bit go low delay_us(580); // delay before sampling (1.5Te) #asm("wdr") for (j=0;j<3;j++) { i=8; buff[j]=0; while(i--) { buff[j]=buff[j]<<1; rx_bit=RX; // sampling buff[j]=buff[j] | rx_bit; if (rx_bit==0) while(!RX); else while(RX); delay_us(580); // delay for 1,5Te #asm("wdr") } #asm("wdr") } if (rx_bit==0) if (!RX) return 1; // error (no stop bit found) else if (!RX) return 1; // error (no stop bit found) return 0; }
Comment
Bài viết mới nhất
Collapse
-
bởi ittcChào các bác, sau thời gian tìm hiểu về máy khoan dùng cho gia đình thì em chốt được gần chục model máy như dưới đây, nhờ các bác tư vấn chốt hạ giúp em nên lấy con nào. Nhu cầu gia đình thì loanh quanh khoan lên sắt, vd sắt V sắt hộp, khoan...
-
Channel: Tâm tình dân kỹ thuật
hôm nay, 07:37 -
-
bởi dinhthuong92Cần chờ một vài giây, thời gian trễ cho mạch tính toán đáp ứng đã bác. Mà phải hàng đắt tiền xíu mới thựcsu75 có MPPT, đa phần dối gạt. Ngay hãng khá lớn, chuyên là SRNE mà còn có 4 5 model nói láo!...
-
Channel: Hướng dẫn sử dụng diễn đàn
hôm nay, 05:32 -
-
bởi chinhnguyen9Sản phẩm không có thương hiệu rõ ràng gồm 3 kiểu 30A;60A và 100A có vẽ ngoaài khá bắt mắt. Tôi đã tin và mua 1 con 30A
Lắp vào hệ thống thấy dấu hiệu:
Phận hiển thị điện áp pin lưu trữ và dòng sạc ổn
Sau khi lắp pin lưu trữ , khi hở mach điên...-
Channel: Hướng dẫn sử dụng diễn đàn
Hôm qua, 03:30 -
-
bởi Abril9Chào mọi người, động cơ bước có hộp số (https://www.oyostepper.es/category-2...eductores.html) trên thiết bị của tôi đã được sử dụng khoảng sáu tháng. Gần đây, tôi nhận thấy dầu rò rỉ từ trục đầu ra. Mỡ bôi trơn đã bị chảy và nhỏ giọt...
-
Channel: Các hệ thống tự động hóa khác
27-03-2026, 13:26 -
-
bởi AbirChào mọi người, gần đây tôi có một ý tưởng mới.
Tôi muốn nâng cấp thiết bị của mình để tăng tốc độ, vì vậy tôi đã thay đổi nguồn cấp cho mạch điều khiển từ 24V lên 48V. Động cơ vẫn giữ nguyên và dòng điện định...-
Channel: Điện tử công nghiệp
27-03-2026, 09:49 -
-
bởi nguyendinhvanCó một chi tiết sai cơ bản trong kỹ thuật điện tử....
-
Channel: Tâm tình dân kỹ thuật
26-03-2026, 19:31 -
-
Trả lời cho Yêu thơ mê nhạc, mời các bác vào đây!bởi dinhthuong92Bài hát mới, nhạc Phật: Về Giữa Chiêm Bao, sáng tác: Hoàng Đình Thường.
[Verse 1] Nhân gian bao thay đổi
ĐỜI là giấc CHIÊM BAO
Người mê lầm tranh đấu
KHỔ ĐAU mãi LUÂN HỒI.
VÔ THƯỜNG nào ai thấu
THAM vơ...-
Channel: Tâm tình dân kỹ thuật
25-03-2026, 19:01 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi davidcopyBạn muốn hỏi nguyên lý làm việc của mạch nào...
-
Channel: Hỗ trợ học tập
24-03-2026, 22:50 -
-
Trả lời cho Giúp mình vẽ sơ đồ và phân tích nguyên lý làm việc của khảo sát các mạch nguồn ổn áp vớibởi N_Tu_Hoc_HoiBạn cần sơ đồ mạch ổn áp bao nhiêu Volt, Nếu giống anh bạn guiwr có khả năng ổn áp dùng iC họ 78XX, 79XX. Những mạch này bạn tim kiếm trên google sẽ thấy!!
-
Channel: Hỗ trợ học tập
23-03-2026, 02:32 -

Comment