Hướng dẫn thêm trình biên dịch hi tech vào mplab năm 2024

[1] Chạy chương trình nền MPLAB IDE v3. Hình 1. 1. Chương trình nền MPLAB IDE v3. [2] New Project để Tạo project mới Hình 1. 2. Tạo project mới trên MPLAB IPE v3. I.4. Các bước tiến hành trên phần mềm lập trình MPLAB IDE v3.

I. Phần mềm lập trình và mô phỏng

Copy thư mục 9 vào thư mục: C:\Program Files [x86]\HI-TECH Software\PICC\

2

[3] Chọn chip: Baseline 8-bit MCU; 16F877A Hình 1. 3. Chọn MCU Baseline 8-bit MCU Hình 1. 4. Chọn chip 16F877A [4] Next, chọn mạch nạp [Ví dụ Pickit 2]

4

[6] Next, browse đến project của mình Hình 1. 7. Browse đến project của mình [7] Đặt tên project rồi bấm Finish - > Tạo xong project trên MPlab-X Hình 1. 8. Đặt tên project

5

Hình 1. 9. Tạo xong project trên MPlab-X [8] Tạo main file [mặc định newmain], copy chương trình trên web/tự viết dán vào newmain, và copy các file thư viên khác vào cùng thư mục newmain, sau đó add các file thư viên này vào project [Ví dụ bài ngắt timer là lcd và timer] Hình 1. 10. Tạo main file và add các file, add thư viên vào project

7

Hình 1. 13. Ra lệnh add các file, add thư viên vào project Hình 1. 14. Lựa chọn các file và thư viên add vào project

8

Hình 1. 15. Kết quả project sau khi add các file và thư viện [9] Bấm vào biểu tượng [cái búa] để biên dich Hình 1. 16. Biên dịch thành công sẽ báo Hình 1. 17. Kết quả biên dich [10] Lấy file .hex trong dist để nạp [Proteus hoặc dùng Pickit 2 vì đã chọn từ đầu] Lưu ý rằng file hex cho mô phỏng trên Proteus không cần config, còn file hex để nạp cho KIT thực hành bắt buộc phải có config, thông thường là lệnh để khóa [off] các tính năng không sử dụng đến trong chương trình đó [Tính năng tích hợp chung chân nhiều mục đích].

10

Nạp file .hex vào chip Pic 16F877A [Timer_Interrupt.X.production] và bấm chạy chương trình Proteus quan sát kết quả. Hình 1. 20. Kết quả mô phỏng trên Proteus Các bước tiến hành được thực hiện trực tiếp trên máy tính của tác giả sử dụng bộ biên dịch HITECH 9. Hiện tại, hãng đã cập nhật phần mềm biên dịch XC8 và có hướng dẫn cụ thể. Tuy nhiên, cần lưu ý tính tương thích giữa các trình dịch và cả giữa các phiên bản của cùng một trình biên dịch. Có thể tham khảo phần tiếng Việt tại website của blogchipntn theo các đường link sau: blogchipntn/huong-dan-cai-dat-mplab-x-ide/ blogchipntn/huong-dan/microchip-pic12f_16f/ Tuy nhiên, càn lưu ý rằng trình dịch XC8 và bản MPLABX trên trang giới thiệu của blogchiptn khác với bản được sử dụng trong tài liệu này, là MPLAB X IDE v3 và HITECH 9ên khi biên dịch sẽ bị lỗi do IDE của Microchip không đảm bảo tính tương thích. Thêm thư viện cho phần mềm Proteus 8 với SnapEDA theo link sau: youtube/watch?v=8fS_hygYL4s&feature=emb_logo

Chúng tôi luôn hỗ trợ các bạn về PIC, và mong chờ các bạn đóng góp các kiến thức để cùng chúng tôi hoàn thành tài liệu hướng dẫn PIC

mọi chi tiết, liên hệ phungtbinh@yahoo.com hoặc falleaf.pic@gmail.com

chúc vui.

Falleaf Công ty TNHH Thương mại và Giao nhận R&P 58/57 Nguyễn Minh Hoàng - Phường 12 - Quận Tân Bình - TP.HCM mail@falleaf.net - VP: [04] 36408561 - [08] 38119870

  • Thành viên tích cực
  • Tham gia: Jul 2005
  • Bài viết: 100 Hi-Tech PIC compiler và nhúng vào MPLAB Cài MPLAB download free tại //microchip.com mới có phiên bản mới 7.20. Sau đó cài Hi-Tech PIC compiler. Sau đó chọn Project -> Set Language Tool Location. Sau đó chọn trình biên dịch mà bạn dùng. Nếu không có thì bạn phải cải plugin cho nó. Bạn vào //htsoft.com download MPLABConfig.exe. Với CCS bạn cũng làm tương tự bạn download file mplab-ccs-plugin-install.exe thế là OK. Attached Files
  • ![Click image for larger version Name: Resize of resize1_676.gif Views: 6873 Size: 75.8 KB ID: 1324875][////i0.wp.com/www.dientuvietnam.net/forums/forum/vi-%C4%91i%E1%BB%81u-khi%E1%BB%83n-mcu-b%E1%BB%99-%C4%91i%E1%BB%81u-khi%E1%BB%83n-t%C3%ADn-hi%E1%BB%87u-s%E1%BB%91-dsc/t%E1%BB%AB-pic-t%E1%BB%9Bi-dspic/filedata/fetch?id=1324875]
  • ![Click image for larger version

    Name: Resize of resize2_161.gif Views: 6710 Size: 92.6 KB ID: 1324876][////i0.wp.com/www.dientuvietnam.net/forums/forum/vi-%C4%91i%E1%BB%81u-khi%E1%BB%83n-mcu-b%E1%BB%99-%C4%91i%E1%BB%81u-khi%E1%BB%83n-t%C3%ADn-hi%E1%BB%87u-s%E1%BB%91-dsc/t%E1%BB%AB-pic-t%E1%BB%9Bi-dspic/filedata/fetch?id=1324876]

    Comment

  • Thành viên tích cực
  • Tham gia: Jul 2005
  • Bài viết: 100

    Viết các câu lệnh trong C như thế nào ? Câu trả lời giống ANSI C về cấu trúc nên bạn không có gì phải lo. Thực ra PIC hay các loại vi điểu khiển khác thậm chí là CPU nó cũng chẳng hiểu AX, BX, CX... hay OPTION, INTCON, TRISA, PORTB là đâu mà nó chỉ hiểu đó là thanh ghi n bít tại địa chỉ bao nhiêu đó thôi. khi viết trong chương trình bằng Hi-Tech PIC bạn phải có dòng lệnh include bạn thử mở thư mục cài Hi-tech PIC vào thư mục include xem sao ? Hi-Tech PIC compiler đã định nghĩa cho bạn các thanh ghi...đó bằng các tên giống trong datasheet điều này rất quan trọng. Bạn có thể thay đổi các tên này nhưng như vậy sẽ chẳng có ai hiểu chương trình của bạn cả. Cuối cùng các bạn chỉ cần hiểu các thanh ghi trong PIC đã được định nghĩa giống với tên trong datasheet.

    Last edited by 4MD; 29-08-2005, 04:03.

    Comment

  • Thành viên tích cực
  • Tham gia: Jul 2005
  • Bài viết: 565

    Tôi vẫn dùng HT-PIC mặc dù CCS có phần tiện lợi hơn bởi thư viện đồ sộ. Nhưng bộ compiler của HT-PIC của PIC16 là 950USD trong khi CCS lại giá chỉ chưa đến 1/2. Nghĩa là HT-PIC đắt gấp hơn 2 lần... một số bạn bè tui có đánh giá là vì lý do HT-PIC sinh mã tối ưu hơn CCS? Cái này CCS tự khoe, và đem ra so sánh: //www.ccsinfo.com/compare.shtml Tuy nhiên HT-PIC thời điểm đó là:HI-TECH PICC V7.86, bây giờ đã là V8.05PL2 rùi, còn CCS thì đã là đời cao hơn rồi. //www.hitech.com.au/purchase/pricelist.php //www.hitech.com.au/products/picccompiler.php Bởi lý do trên, ai trung thành với HT-PIC thì đừng buồn :P

    Comment

  • Thành viên tích cực
  • Tham gia: Jul 2005
  • Bài viết: 100 Làm thế nào để dùng được Add Watch trong Hi-Tech PIC như trong ANSI C ? Chọn View -> Watch Attached Files
  • ![Click image for larger version Name: watch1.gif Views: 6621 Size: 44.7 KB ID: 1324873][////i0.wp.com/www.dientuvietnam.net/forums/forum/vi-%C4%91i%E1%BB%81u-khi%E1%BB%83n-mcu-b%E1%BB%99-%C4%91i%E1%BB%81u-khi%E1%BB%83n-t%C3%ADn-hi%E1%BB%87u-s%E1%BB%91-dsc/t%E1%BB%AB-pic-t%E1%BB%9Bi-dspic/filedata/fetch?id=1324873]
  • ![Click image for larger version

    Name: watch.gif Views: 6633 Size: 45.5 KB ID: 1324874][////i0.wp.com/www.dientuvietnam.net/forums/forum/vi-%C4%91i%E1%BB%81u-khi%E1%BB%83n-mcu-b%E1%BB%99-%C4%91i%E1%BB%81u-khi%E1%BB%83n-t%C3%ADn-hi%E1%BB%87u-s%E1%BB%91-dsc/t%E1%BB%AB-pic-t%E1%BB%9Bi-dspic/filedata/fetch?id=1324874]

    Comment

  • Thành viên mới
  • Tham gia: Jul 2005
  • Bài viết: 3

    4MD này trong HT PIC mình có viêt được theo kiểu vòng lặp các cổng không nhỉ chẳng hạn tôi muốn viết tất cả các cổng ở PORTB là mức cao dùng vòng lặp for sao không được nhỉ ? 4MD trả lời nhanh nhé

    Comment

  • Thành viên tích cực
  • Tham gia: Jul 2005
  • Bài viết: 100

    Bạn post chương trình lên xem sao ? Bạn đang lập trình I/O để định nghĩa các cổng thì viết rất đơn giản thôi.

    include

    __CONFIG[UNPROTECT & WDTEN & HS & PWRTEN & BOREN & LVPDIS & DUNPROT & DEBUGDIS]; void main[]{ TRISB = 0x00; //Thanh gi huong port B, 0=Output; 1=Input; PORTB = 0xff; //Dat port B len muc cao while[1] { NOP[]; //Lenh nay khong lam gi ca CLRWDT[]; //Clear Watchdog Timer } }

    Comment

  • Thành viên mới
  • Tham gia: Aug 2005
  • Bài viết: 4

    Sao tôi làm như bạn bảo mà không được thế ? Bạn có thể post vài ví dụ để tui hình dung rõ hơn việc viết chương trình bằng Hi-Tech PICC không ? vì tui nghe nói Hi-Tech PICC viết chương trình tối ưu hơn CCS. Tui đang dùng CCS nên không hiểu rõ lắm. Bạn có thể chỉ rõ hơn cách DEBUG không ?

    Comment

  • Thành viên tích cực
  • Tham gia: Jul 2005
  • Bài viết: 100

    Trước tiên bạn phải chọn Debugger -> MPLAB SIM sau đó vào Debugger chạy Step... Hoặc ấn F7 để chạy từng bước.

    Comment

  • Thành viên tích cực
  • Tham gia: Jul 2005
  • Bài viết: 100

    Còn đây là một hàm delay

    void delayms[unsigned int delayms] //Ham tre delayms Fosc=18,432Mhz { unsigned int i; T1CON = 0x00; TMR1IE = 0; TMR1L = 0x00; TMR1ON = 1; for[i=0;i++;i 18000/200 = 90. Đây là số vòng lặp for để có được khoảng thời gian chính xác 1 giây. -> muốn trễ 400ms thì số vòng lặp for là: 90*0.4 = 36. TMR0 là thành ghi có thể đọc và viết. Mình viết TMR0=56 nó sẽ tăng từ 56->255 [Số 200 chia ở trên]. Tương tự với TMR1 và TMR2 cũng thế. Và ở trên mình có post một ví dụ về TMR1 rồi đó. :o

    Comment

  • Thành viên chính thức
  • Tham gia: Jul 2005
  • Bài viết: 113

    Dùng Timer để trễ thời gian 4MD viết [code:1]void delay_400_ms&

    40;void&

    41;

    &

    123;

    unsigned int i=0; for&

    40;i=0;i

Chủ Đề