1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

Tài liệu học PIC

Thảo luận trong 'Phòng huấn luyện' bắt đầu bởi kid_pro, 19 Tháng tám 2010.

  1. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
    Chào các bạn, mình cũng mới nghiên cứu PIC, nói chung là bddaausddf gặp nhiều khó khăn trong việc học tập. mình lập topic này để chúng ta có thể chia sẻ tài liệu về PIC. mong chúng ta cùng tiến. chúc các bạn học tốt.
  2. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
  3. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
    trong quá trình học pic và 89c mình thấy có các vấn đề nảy sinh như sau:
    nếu chỉ sử dụng đơn thuần vào các mạch ứng dụng trong thực tế không đòi hỏi sự chi tiết và không cần tối ưu hóa thì các bạn có thể không nắm vững về phần cứng. nhưng nếu muốn am hiểu sâu sắc về nó để giải quyết công việc thì học phần cứng vi điều khiển lại là một điều quan trọng. tôi nói về vấn đề này có rất nhiều bạn sẽ nghĩ rằng việc đó là quá hàn lâm, không cần thiết. okie, tôi không phản đối. trong quá trình làm việc các bạn sẽ thấy rõ điều này, hơn nữa chúng ta là " kĩ sư" , học hiểu. OK
    - vấn đề thứ 2 tôi muốn tạo ra luồng này không phải vì một lí do gì đặc biệt. nếu bạn nào thích thú có thể tìm thấy rất nhiều tài liện trê các diễn đàn hay như dientuvietnam.net, picvietnam, hocdelam, vagam... vân vân. nhưng xin các bạn lưu ý một điều rằng không ai trong chúng ta có thể học hết và cũng có thể không sát với những gì chúng ta học trên trường. rất nhiều người trong đó có tôi ban đầu tiếp xúc tự học vi điều khiển là một điều khó khăn, không biết bắt đầu từ đâu hết, khái niệm , định nghĩa mù tịt, thâm chí còn chẳng biết MPLAB là gì, altium là gì, nó làm được cái gì và học hành thế nào. vì vậy lập lên thread này mong anh em sinh viên chúng ta cùng nhau trao đổi, đi từ vấn đề đơn giản cho đến phức tạp... vân vân

    tôi cũng rất phân vân trong việc học, tôi cũng như các bạn , nhiều khi chúng ta có quá nhiều sự lựa chọn về hướng nghiên cứu, học cái gì để làm được, để sau này "kiếm kơm" được phải không? pic hay 89, orcad hay proteus hay altium hay eagle? quá mệt mỏi phải không nào? ngay cả trong vấn đề thread này tôi không chỉ muốn trao đổi về 89 mà còn về pic. tôi có một lời khuyên chân thành với tất cả các bạn mình đã học gì thì học cho thật tốt, nhiều người chê con 89 nhưng chúng ta đã sử dụng hết công năng của "em" 89 nhà bác atmel chưa? tôi cũng từng lưng chừng học 89 rồi bỏ qua pic, thật sự là sai lầm vì cuối cùng chẳng ra sao hết. pic cũng dở mà 89 cũng gà mờ. ..hehe

    thôi, phàn nàn như thế là quá đủ rồi phải không? bây giờ là chuyên môn chính của thread này, tôi xin trình bày có anh em đọc nhiều mỏi mắt:

    kính thưa anh em, tài liệu học pic hiện nay không nói gì đến trường ta mà cả các diễn đàn lớn cũng rất khó có thể tìm được một cuốn sách ngon lành về mà nghiền ngẫm Microchip, tài liệu về em pic không như tài liều về 89 là có nhiều, trái lại phần lớn các bài viết về pic đều ở dạng sơ khai, ít khi đề cập về phần cứng của PIC nên việc học khó khăn hơn 89 rất nhiều. nếu bạn nào có tìm hiểu thì thấy chủ yếu các diễn đàn đi sâu vào việc lập trình chứ không dạy về phần cứng, với những người nào đã biết thì tôi không dám có ý kiến gì, còn với anh em mới nhập môn thì sao? quá mệt mỏi phải không? đa số tài liệu có được của tôi đều bằng tiếng anh,và cũng down trên trang chủ của microchip.com về nghiền ( mờ mắt và mệt, anh văn tăng lên. nhưng cũng kô quá khó)........


    => tôi có ý kiến là tất cả các thành viên yêu thích sẽ cùng nhau viết một tutorial về pic, từ cấu tạo phần cứng, tập lệnh , ứng dụng trong thực tế để đưa lên cho anh em học tập. hiện nay tôi cũng có một số tài liệu bằng tiếng việt đã tìm được. anh em nào muốn có thể liên hệ viehanguyen@gmail.com tôi sẽ chia sẻ.
    chúc anh em một năm học mới thành công và may mắn.
    OPENLAB _ Nơi giấc mơ bắt đầu
  4. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
  5. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
  6. tintincom New Member

    Số bài viết: 18
    Đã được thích: 0
    Điểm thành tích: 0
    Mình cũng đồng ý với bạn kid_pro gì đó! Mà các bạn dùng gì để viết chương trình cho PIC vậy Asembly hay C! Nếu ai viết bằng Asembly thì tôi xin bái phục và khuyên nên tiếp tục! Còn ai dùng C thì tôi nghĩ nên dùng HT-PIC gần với phần cứng PIC hơn còn với CCS thì thà đừng vào trang này thì hơn! Mong được chia sẻ cùng các bạn nhiều hơn! Ai viết chương trình cho PIC dùng HT-PIC thì Post chương trình lên mình tham khảo với nhé! Tất nhiên mình cũng sẽ chia sẻ những hiểu biết hạn hẹp của mỉnh với các bạn! Mong mọi người tham gia nhiều hơn cho thread càng sôi nổi nhé!
  7. hoantien Member

    Số bài viết: 359
    Đã được thích: 1
    Điểm thành tích: 18
    các anh có ai có cuốn c programming and the microchip PIC hok, cho em mươn photo, trong thư viện trường cũng có nhưng hỏi ông thây quản thư thì ổng nói phải photo với số lượng >3 cuôn thì ỗng mới chiu photo cho.
  8. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
    bạn mượn đi, mình cũng chưa biết mặt mũi cuốn đó thể nào cả. bạn hỏi anh Luân coi cuốn đó có tốt không nhé. nếu được thì photo ra cho anh em tham khảo nhé bạn.thanks nhiều
  9. hoantien Member

    Số bài viết: 359
    Đã được thích: 1
    Điểm thành tích: 18
    cuốn này cùng tác giả với cuốn avr của thầy cường, nhieu vd de học lắm, nhưng mà nó nằm trong phong đọc, hok mang ra ngoài đc, nếu mấy anh muốn thì mình nói ông thư viên phôt ra. ổng chỉ phôt với số lượng lớn thui
  10. hotronghieu Member

    Số bài viết: 128
    Đã được thích: 0
    Điểm thành tích: 16
    quyển này bạn search trên mạng rồi in ra!mình không có đường link nhưng nếu bạn muốn thì liên hệ mình chép cho, mình có cả cuốn avr nữa
  11. 07112066 New Member

    Số bài viết: 30
    Đã được thích: 0
    Điểm thành tích: 0
    Cuốn này viết về con 16f877 . Tác giả dùng CCS để lập trình. Có điều nó có nhiều ví dụ nên xem cũng bổ ích lắm. Bạn muốn photo thì nộp tièn thế chân 100k, còn không thì liên hệ với tôi duyphuoca404@gmail.com tôi sẽ cho mượn photo lại.
    Let's share to be share.
  12. Le Quang Active Member

    Số bài viết: 1,091
    Đã được thích: 7
    Điểm thành tích: 38
  13. hoantien Member

    Số bài viết: 359
    Đã được thích: 1
    Điểm thành tích: 18
    vậy anh duyphuoc_a404 cho em mượn cuốn đó đi photo đi, chứ photo ở thư viện chắc hok đẹp và rẻ bằng ở ngoài đâu
    anh cho em số dt liên lạc đi.
  14. hoantien Member

    Số bài viết: 359
    Đã được thích: 1
    Điểm thành tích: 18
    em có ebook rùi nhưng không dám in ra, mấy trăm trang mà đi in chắc đi bán vé số quá, híc
  15. tranhongphucdt Member

    Số bài viết: 86
    Đã được thích: 2
    Điểm thành tích: 8
  16. hoantien Member

    Số bài viết: 359
    Đã được thích: 1
    Điểm thành tích: 18
  17. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
  18. hotronghieu Member

    Số bài viết: 128
    Đã được thích: 0
    Điểm thành tích: 16
    nếu có sáchroii62 đi in ra cũng tốt nhung theo mình thì thích xem file tên máy tính hơn, vì quyển sách dày như thế khi bạn muốn tra cứu thì trên máy tính bạn dễ dàng tìm hơn. còn cầm quyển sách mà lật thì lâu lắm
  19. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
    ^^ mỗi người một kiểu mà, mình thích sách hơn. vừa xem vừa thực hành ngon hơn nhiều. bạn là Phúc à? nghe quen quá
  20. tintincom New Member

    Số bài viết: 18
    Đã được thích: 0
    Điểm thành tích: 0
    Chà toàn dùng CCS! Có ai xài HT-PIC không tham gia cho rôm rả! Mình từng xài CCS nhưng từ bỏ rồi! Lập trình dùng CCS rất nhanh nhưng không biết gì về phần cứng hoặc biết nhưng mờ mờ! Có ai xài HT-PIC thì lên tiếng chia sẻ kinh nghiệm nhé! Đây là quan điểm của mình ai có cùng quan điểm thì góp vui nhé!
  21. kekhokekho2001 New Member

    Số bài viết: 3
    Đã được thích: 0
    Điểm thành tích: 0
  22. 07112066 New Member

    Số bài viết: 30
    Đã được thích: 0
    Điểm thành tích: 0
    Uhm! Mình cũng cùng quan điểm với bạn ddt06 đó, có điều là mình cũng mới học cái HT-Pic đó thôi. Ở Openlad đang có lớp học lập trình vđk Pic dùng HT-Pic đó bạn. Bạn chịu khó đọc datasheet kết hợp với cái Manual của HT-Pic. Anh Luân ở OpenLad hồi trước chắc cũng bắt đầu từ đó, chứ làm gì có tài liệu tiếng Việt mà học. Thân!
  23. 07112066 New Member

    Số bài viết: 30
    Đã được thích: 0
    Điểm thành tích: 0
    Bạn lật ra sau sách, ở đó có trang Index rất tiện lợi để bạn tra từ và tiềm kiếm. Sách tiếng Anh có cài hay là trang Index đó, sách tiếng Việt chưa thấy bao giờ. Thân!
  24. tintincom New Member

    Số bài viết: 18
    Đã được thích: 0
    Điểm thành tích: 0
    Thì mình cũng đang chập chững những bước đi đầu tiên thôi! Có lẽ cái này ít có tài liệu tiếng việt nên cũng khó thật! Lần sau mình sẽ pót vài bài lập trình của mình lên cho mọi người đánh giá nhé!
  25. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
    mình nghĩ muốn học sâu thì nghiền asembly chơi chơi thôi. quan trọng nhất là nghiền xong datasheet của nó, sau đó thì bắt đầu làm ứng dụng. từng ứng dụng nhỏ nhỏ 1, vừa làm vừa kết hợp các module nhỏ lại với nhau.

    ví dụ như port B có điện trở kéo lên bên trong. để làm gi? sử dụng thế nào, thế nào là TTL cực thu mạch hở?? lập trình được là một chuyện, còn hiểu sâu để xoay chuyển nó như lòng bàn tay mới khó.
    chúc anh em học tốt
    à mà mình thấy CCS có vẻ dễ xài hơn MPLAB, mình cũng chưa biết sự khác nhau giữa chúng nhiều. bạn nào am hiểu thì nói anh em nghe nhé.thân
  26. tintincom New Member

    Số bài viết: 18
    Đã được thích: 0
    Điểm thành tích: 0
    Lập trình dùng HT-Pic khó hơn CCS một chút , vì trong CCS các hàm cho module ngoại vi đã được xây dựng sẵn chỉ việc lấy ra thêm thông số và kết hợp theo một trình tự hợp lý là chạy được! Rất phù hợp cho những ai thích lập trình cho PIC thật nhanh! Còn với HT-PIC thì các hàm xây dựng sẵn thì rất hạn chế vì vậy khi lập trình bạn phải kết hợp đọc và nghiền ngẫm thật nhiều Datasheet của vi điều khiển mới làm được! Cái hay của CCS là file Help rất đầy đủ chỉ cần đọc file này thôi thì cũng đủ lập trình được! Còn với HT thì còn lâu! Với lại CCS có thể dùng như trình biên dịch độc lập còn HT-PIC thường sử dụng khi nhúng vào MPLAB gây khó khăn khi cài đặt thiết lập!
  27. tintincom New Member

    Số bài viết: 18
    Đã được thích: 0
    Điểm thành tích: 0
    #include<pic.h>

    __CONFIG(HS & PWRTEN & BOREN & LVPDIS & WDTDIS);
    #define _XTAL_FREQ 20000000//khai bao thach anh su dung
    const unsigned char ht[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//khai bao mang du lieu cho led 7 doan
    unsigned int ad,tem1,tem2;//khai bao bien su dung trong chuong trinh
    unsigned char tram1,tram2,chuc1,chuc2,dvi1,dvi2;
    //ham thiet lap ADC
    void thietlapADC()
    {
    PCFG0=1;
    PCFG1=0;
    PCFG2=0;
    PCFG3=1;//AN0~AN5 la ngo vao tuong tu VREF+=VCC,VREF-=GND
    //AN6~AN7 ngo vao ra so
    CHS0=0;
    CHS1=0;
    CHS2=0;//mac dinh luc dau chon kenh 0

    ADCS2=1;
    ADCS1=0;
    ADCS0=0; // chon xung clock chuyen doi=FOSC/16
    ADON=1; // mo nguon cho ADC hoat dong
    ADFM=1; //canh le doc ket qua byte thap o thanh ghi ADRESL 2 bit cao o thanh ghi ADRESH

    }
    //ham thiet lap PWM
    void thietlapPWM()
    {
    PR2=0xff;//thiet lap chu ky xung PWM
    CCPR1L=0;//do rong xung ban dau cua CCP1 la 0
    CCPR2L=0;//do rong xung ban dau cua CCP2 la 0
    T2CKPS1=1;// chon ti so chia Prescaler cua TIMER2=1/16
    T2CKPS0=1;//co the khong can set bit nay
    TMR2ON=1;//cho phep TIMER2 chay

    CCP1M3=1;//set 2 bit nay de chon CCP1 hoat dong o che do PWM
    CCP1M2=1;
    CCP2M3=1;//set 2 bit nay de chon CCP2 hoat dong o che do PWM
    CCP2M2=1;

    }
    //ham truyen do rong xung vao cac thanh ghi dieu khien do rong xung
    void dorongxung(unsigned int dorong,unsigned char i)
    {
    if(i==1)
    {
    CCPR1L=dorong>>2;
    CCP1Y=dorong-((dorong>>1)<<1);//lay hai bit thap cho thanh ghi chua gia tri do rong xung
    CCP1X=(dorong>>1)%2;
    }
    if(i==2)
    {
    CCPR2L=dorong>>2;
    CCP2Y=dorong-((dorong>>1)<<1);
    CCP2X=(dorong>>1)%2;
    }

    }
    //ham chon kenh ADC de doc ket qua
    void chonkenh(char sel)
    {
    switch(sel)
    {
    case 1: CHS0=0;//chon kenh 0
    CHS1=0;
    CHS2=0;
    break;
    case 2: CHS0=1;//chon kenh 1
    CHS1=0;
    CHS2=0;
    break;
    /* dung doan chuong trinh nay luc dung nhieu kenh
    case 3: CHS0=0;//chon kenh 2
    CHS1=1;
    CHS2=0;
    break;
    case 4: CHS0=1;//chon kenh 3
    CHS1=1;
    CHS2=0;
    break;
    case 5: CHS0=0;//chon kenh 4
    CHS1=0;
    CHS2=1;
    break;
    case 6: CHS0=1;//chon kenh 5
    CHS1=0;
    CHS2=1;
    break;
    case 7: CHS0=0;//chon kenh 6
    CHS1=1;
    CHS2=1;
    break;
    case 8: CHS0=1;//chon kenh 7
    CHS1=1;
    CHS2=1;
    break;
    */
    }
    }

    //ham doc ket qua ADC va tra ve
    unsigned int docADC(void)
    {

    GODONE=1;
    loop: if(GODONE==1)
    goto loop;
    else
    {
    ad=ADRESH<<8;
    ad=ad|ADRESL;//OR kq voi thanh ghi ADRESL
    return (ad);
    }
    }


    //ham giai ma gia tri do rong xung sang LED
    void giaima()
    {
    //unsigned char tam;
    tem1=(tem1)/10; //dorong=(ad/(PR2+1)*4)*100 lay gan bang la ad/1024
    tram1=tem1/100;//do gia tri tinh toan ko chinh xac nen can gan them dien tro bu
    chuc1=(tem1%100)/10;
    dvi1=(tem1%100)%10;

    tem2=tem2/10; //dorong=ad/(PR2+1)*4
    tram2=tem2/100;
    chuc2=(tem2%100)/10;
    dvi2=(tem2%100)%10;

    }
    //ham quet led
    void hienthi()
    { //for(unsigned char j=0;j++;j<1)


    PORTD=0x1;
    PORTB=ht[tram1];
    __delay_us(100);
    PORTB=0xff;

    PORTD=0x2;
    PORTB=ht[chuc1];
    __delay_us(100);
    PORTB=0xff;

    PORTD=0x4;
    PORTB=ht[dvi1];
    __delay_us(100);
    PORTB=0xff;

    PORTD=0x8;
    PORTB=ht[tram2];
    __delay_us(100);
    PORTB=0xff;

    PORTD=0x10;
    PORTB=ht[chuc2];
    __delay_us(100);
    PORTB=0xff;

    PORTD=0x20;
    PORTB=ht[dvi2];
    __delay_us(100);
    PORTB=0xff;


    }

    void main(void)
    {
    TRISB=0;
    TRISC=0;
    TRISD=0;
    thietlapADC();
    thietlapPWM();

    while(1)
    {
    chonkenh(1) ;
    tem1=docADC();
    dorongxung(tem1,1);
    chonkenh(2) ;
    tem2=docADC();
    dorongxung(tem2,2);
    giaima();
    hienthi();
    }
    }
    /*chu y: -cach khai bao chuong trinh con tra ve tri nhu ham doc ADC
    -thuat toan chuyen doi du lieu vao thanh ghi dieu khien do rong xung va du lieu nay la du lieu 10 bit
    -thuat toan nhan ket qua chuyen doi tu hai thanh ghi ADRESL va ADRESH, ket qua cung la 10 bit
    */


    Đây là đoạn chương trình tớ viết bằng HTPIC đã mô phỏng bằng protues thành công!
    Chương trình dùng PIC đề đọc giá trị điện áp từ 2 biến trở diều khiển độ rộng xung của hai kênh PWM của PIC 16F877A! Dùng 6 led 7 doạn hiển thị % độ rộng xung của mỗi kênh(mỗi kênh 3 led)
    Hơi củ chuối tí mong anh em góp ý thông cảm nếu trình độ còn thấp kém!
    Tớ có tham khảo thêm về thuật toán lấy dữ liệu 10 bít từ ADC từ diễn đàn PICVIETNAM!
    Mong có cao nhân chỉ giáo thêm!
  28. tintincom New Member

    Số bài viết: 18
    Đã được thích: 0
    Điểm thành tích: 0
    Prorues mình xài 7.5sp3 có cập nhật thư viện mô phỏng đề mô phỏng chế độ PWM!
    máy tính đem cho em xài nên ko chia sẻ được nhiều với lại nhà tớ ko có mạng nên hơi khó khăn tí! Thông cảm nhé!
  29. tintincom New Member

    Số bài viết: 18
    Đã được thích: 0
    Điểm thành tích: 0
  30. agreement New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
  31. 07112066 New Member

    Số bài viết: 30
    Đã được thích: 0
    Điểm thành tích: 0
    ddt06 gửi cho mình vài project cua bạn nhé, mình cũng là tay mơ thôi nên còn phải học hỏi nhiều, rất mong được sự chỉ giáo của mọi người. Bạn gửi vào mail của mình nhe!
    duyphuoc_a404@yahoo.com
    Ah! sao bạn không nối net để tiện công việc học hành nghiên cứu, tiền bạn ra tiệm net ngồi tìm kiếm tài liệu cũng đủ tiền thuê bao ADSL hàng tháng rồi. VNPT có gói 1,5MB giá trọn gói 165k, giảm 20% trong 12 tháng, rất sinh viên đúng không. Thân!
  32. kid_pro Member

    Số bài viết: 208
    Đã được thích: 6
    Điểm thành tích: 18
    Có một vấddeffe trong quá trình học mình thấy nổi lên đó là kiến thức về kỹ thuật số và điện tử cơ bản của các bạn cũng có nhiều khó khăn do chuyên ngành không phải điện tử. mình đang dịch data sheet của 16f887 , trong đó mình thấy có nhiều vấn đề , mình sẽ post lên để anh em tham khảo.

    các bạn nào có nhu cầu thì chúng ta sẽ trao đổi 2 buổi về 2 môn này trong một hoặc 2 bữa để có cái nhìn tổng quan về kiến thức nền điện tử trước khi bắt tay vào học vi điều khiển. bạn nào có cùng ý tưởng thì liên hệ với mình. thân

    3 môn học các bạn nên nắm vững một chút trước khi học vi điều khiển lá.
    1. kỹ thuật số ( kiếm cuốn mạch số của Thầy Nguyễn Hữu Phương về nghiền)
    2. điện tử cơ bản 1 và 2( bán ngoài tiệm photo hoặc 2 cuốn kỹ thuâddiiejnje tử của ĐHBK thành phô
    3. tìm hiểu cơ bản về lập trình, khái niệm lập trình, thuật giải và lựa chọn một ngôn ngữ để học

    chúc các bạn may mắn.
    bạn nào có nhu cầu tìm hiểu về Kỹ thuật số và điện tử cơ bản thì liên hệ mình. mình hy vọng giúp được một phần nào đó.
  33. tintincom New Member

    Số bài viết: 18
    Đã được thích: 0
    Điểm thành tích: 0
  34. 07112066 New Member

    Số bài viết: 30
    Đã được thích: 0
    Điểm thành tích: 0
    Mình nhận được file bạn gửi lâu rồi, nhưng lâu nay bận quá không vào lại topic, bạn thông cảm nhé. Thank!
  35. vth_87 Member

    Số bài viết: 297
    Đã được thích: 2
    Điểm thành tích: 18
  36. xzthanhzx New Member

    Số bài viết: 13
    Đã được thích: 3
    Điểm thành tích: 3
  37. bachckm1 Member

    Số bài viết: 608
    Đã được thích: 3
    Điểm thành tích: 18

Chia sẻ trang này