PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > PIC - Thiết kế và Ứng dụng

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC - Thiết kế và Ứng dụng Ý tưởng cho các sản phẩm sử dụng PIC/dsPIC và các sản phẩm của Microchip

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 11-06-2009, 04:36 PM   #1
cskiller
Đệ tử 4 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 89
:
PT2262/2272 Lập trình mã hóa/giải mã với PIC C

Cặp chip PT2262/2272 được sử dụng rất phổ biến trong việc điều khiển từ xa các thiết bị sử dụng RF. Việc sử dụng vi điều khiển để thay thế chức năng mã hóa/giải mã của PT2262/PT2272 sẽ giúp các thiết kế mạch đơn giản bằng việc sử dụng phần mềm để thay thế chức năng của nó.
Tài liệu này cung cấp 1 trong các cách phân tích phương thức mã hóa/giải mã của PT2262/2272 và hiện thực bằng ngôn ngữ CCS C với vi điều khiển PIC thông dụng.
Regards

Downloads:
__________________
Quang báo RG/RGB 6/8/12/16 bits màu
Phone No: 0905.034.086
Email: lmquyen@gmail.com
cskiller vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 16-12-2009, 01:49 PM   #2
cskiller
Đệ tử 4 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 89
:
Updated new link.
File Kèm Theo
File Type: zip PT2262_PT2272 Encoding_Decoding With PIC C.zip (1.11 MB, 2257 lần tải)
__________________
Quang báo RG/RGB 6/8/12/16 bits màu
Phone No: 0905.034.086
Email: lmquyen@gmail.com
cskiller vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 14-01-2011, 11:17 PM   #3
khaidang27
Nhập môn đệ tử
 
Tham gia ngày: Oct 2010
Bài gửi: 6
:
Trích:
Nguyên văn bởi cskiller View Post
Updated new link.
Chân thành cảm ơn anh rất nhiều, tài liệu tuy chưa đọc (đang chờ down xong), nhưng có lẽ rất là quý hiếm. Cảm ơn sự chia sẽ của anh rất nhiều. hihihihi
khaidang27 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-09-2010, 11:50 PM   #4
vu son
Nhập môn đệ tử
 
Tham gia ngày: Aug 2009
Bài gửi: 5
:
Thank bác ''cskiller'' nhiều em đang làm về cái này.
vu son vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 15-01-2011, 12:47 AM   #5
picvn_letruyen
Nhập môn đệ tử
 
Tham gia ngày: Jan 2011
Nơi Cư Ngụ: hồ chí minh
Bài gửi: 1
:
cảm ơn bạn đã chia sẽ tài liệu, chúc bạn thành công.
__________________
truyenle
--------------------------------------------
nenhuongyeu
picvn_letruyen vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-03-2011, 11:04 PM   #6
kenburo
Nhập môn đệ tử
 
Tham gia ngày: Mar 2011
Bài gửi: 1
:
Thanks bác vô cùng chúc bác thành công
kenburo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 25-03-2011, 09:55 PM   #7
motu
Đệ tử 4 túi
 
Tham gia ngày: Oct 2007
Bài gửi: 79
:
Thank bác nhiều lắm, dù bài viết đã lâu nhưng gãi đúng chỗ ngứa của em .
__________________
Dao nao cung la dao, dao cao dai cung la dao.
motu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2011, 07:37 PM   #8
motu
Đệ tử 4 túi
 
Tham gia ngày: Oct 2007
Bài gửi: 79
:
e đọc tài liệu này cả tháng nay mới hiểu được chút chút, có mấy thắc mắc không tài nào hiểu được, mong ae chỉ giúp.
1. Mấy dòng lệnh này có nghĩa gì:
Code:
#ifndef PT_SPEED
#error "not define PT_SPEED"
#endif
Code:
#define PT_MCU_CLOCK   getenv("CLOCK")
PT_MCU_CLOCK sẽ = bao nhiêu????
2. Về phần tính toán giá trị timing của tốc độ truyền:
Code:
#define PT_TIMER   (((((PT_MCU_CLOCK/4)/8)/(PT_SPEED/4))))
signed long PT_TX_TIMER = -(PT_TIMER/1);
em hiểu thế này không biết có đúng o
PT_MCU_CLOCK/4 là do 4 xung pic thực hiện 1 lệnh
PT_SPEED/4 cũng do 4 xung tạo thành 1 bit trong thuật toán mã hóa.
PT_TX_TIMER = -(PT_TIMER/1) dấu - là do đếm từ PT_TX_TIMER đến 65535, /1 là hệ số prescale mặc định là 1.
còn (PT_MCU_CLOCK/4)/8 e không hiểu tại sao có /8 ở chỗ này??? ae nào giải thích dùm e, e nghĩ hoài không ra.
3. Cái remote của e có Rosc = 4M3, vậy mình chọn PT_SPEED là bao nhiêu, e gà không biết cách đọc datasheet.
Thk cả nhà, chúc vui.!
__________________
Dao nao cung la dao, dao cao dai cung la dao.
motu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 27-04-2011, 08:33 PM   #9
motu
Đệ tử 4 túi
 
Tham gia ngày: Oct 2007
Bài gửi: 79
:
Không ai giúp e với. .
__________________
Dao nao cung la dao, dao cao dai cung la dao.
motu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 08-05-2011, 12:39 AM   #10
motu
Đệ tử 4 túi
 
Tham gia ngày: Oct 2007
Bài gửi: 79
:
Chào cả nhà, dựa theo bài viết trên, e đã viết code cho con pic877a như sau:
Code:
#include <16F877A.H>
#include <def_877a.h>
#FUSES NOWDT, HS, PUT, NOPROTECT, NODEBUG, BROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
#define PT_MCU_CLOCK          getenv("CLOCK")
#define PT_SPEED              (9600)
#define PT_MAX_FRAME_CHECK    2
#define PT_TX_PIN             PIN_B0
#define PT_RX_PIN             PIN_B1
#define PT_TIMER              (((((PT_MCU_CLOCK/4)/8)/(PT_SPEED/4))))
#define PT_BIT_0              0b00010001
#define PT_BIT_1              0b01110111
#define PT_BIT_F              0b01110001
#define PT_SENDING            0
#define PT_IDLE               1
const char PT_BIT_TABLE[3]={PT_BIT_0,PT_BIT_1,PT_BIT_F};
signed long PT_TX_TIMER = -(PT_TIMER/1);
unsigned long TIME_0a_75_BIT = (float)(PT_TIMER)*(float)0.75;
unsigned long TIME_1a_25_BIT = (float)(PT_TIMER)*(float)1.25;
unsigned long TIME_2a_75_BIT = (float)(PT_TIMER)*(float)2.75;
unsigned long TIME_3a_25_BIT = (float)(PT_TIMER)*(float)3.25;
unsigned long TIME_30a_75_BIT = (float)(PT_TIMER)*(float)30.75;
unsigned long TIME_31a_25_BIT = (float)(PT_TIMER)*(float)31.25;
unsigned long data, addr;
unsigned int Pt2262BuffCurrent, Pt2262BuffCounter, Pt2262LoopCounter;
char PtBuff[16];
int1 PtState;

void Pt2262TxCheck()
   {
    unsigned short b;
    
    if (Pt2262BuffCurrent!=Pt2262BuffCounter)
     {
      b = PtBuff[Pt2262BuffCurrent>>3]>>(Pt2262BuffCurrent&0x07);
      output_bit(PT_TX_PIN,b);
      Pt2262BuffCurrent++;
     }
    if (Pt2262BuffCurrent==Pt2262BuffCounter)
     {
      if (--Pt2262LoopCounter>0)
       {
        Pt2262BuffCurrent=0;
       }
      else
       {
        Pt2262BuffCurrent=0;
        Pt2262LoopCounter = 4;
        output_low(PT_TX_PIN);
        clear_interrupt(INT_EXT);
        enable_interrupts(INT_EXT);
        PtState = PT_IDLE;
       }
     }
   }  
   
#int_timer1
void Timer1_ISR()
   {
    set_timer1(PT_TX_TIMER);
    if(PtState==PT_SENDING)
     {
      Pt2262TxCheck();
     }
    else
     {
      PtState=PT_IDLE;
     }
   } 

void main()
   {
    int i;
    set_tris_b(0b00000010);
    portB=0x00;
    addr = 22222222;
    data = 1111;
    for (i=0;i<8;i++)
     {
      PtBuff[i] = PT_BIT_TABLE[(addr%10)%3];
      addr = addr/10;
     }
    PtBuff[8] = ((data>>3)&0x01)?PT_BIT_1:PT_BIT_0;
    PtBuff[9] = ((data>>2)&0x01)?PT_BIT_1:PT_BIT_0;
    PtBuff[10] = ((data>>1)&0x01)?PT_BIT_1:PT_BIT_0;
    PtBuff[11] = ((data>>0)&0x01)?PT_BIT_1:PT_BIT_0;
    PtBuff[12] = 0b00000001;
    PtBuff[13] = PtBuff[14] = PtBuff[15] = 0b00000000;
    PtState = PT_IDLE;
    enable_interrupts(global);
    enable_interrupts(int_timer1);
    setup_timer_1(T1_INTERNAL | T1_DIV_BY_1);
    set_timer1(PT_TX_TIMER);
    Pt2262BuffCurrent=0;
    Pt2262BuffCounter = 16*8;
    Pt2262LoopCounter = 4;
    while(1)
     {    
      PtState = PT_SENDING;
     }
   }
không biết sai sót chỗ nào mà mạch thu không nhận được tín hiệu, pic dùng thạch anh 4MHz, mạch thu dùng pt2272, Rosc = 820K. Ai giúp e với, thk.
__________________
Dao nao cung la dao, dao cao dai cung la dao.
motu vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-05-2012, 07:01 PM   #11
sontvak42
Đệ tử 2 túi
 
sontvak42's Avatar
 
Tham gia ngày: May 2012
Bài gửi: 30
:
Chào anh motu! Hiện tại em cũng mới đang nghiên cứu về phần trên và đang còn gặp phải nhiều vướng mắt về các lệnh đó, chắc anh cũng đã từng làm qua rồi nên có thể giải thích cho em về các dòng lệnh đó cái được không ạ. Nếu có code mẫu phiền anh gửi lên cho em tham khảo chút được không ạ!
Em cám ơn nhiều
sontvak42 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 05:07 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam