chapter 1: công cụ cơ bản ñể làm việc với pic/dspic chương...

25
Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC Trang 1 http://books.rpc.vn – Tự học PIC “Nếu người Việt Nam không có ý thức tự làm chủ thì người nước ngoài sẽ làm chủ chúng ta” – Falleaf. Nội dung cơ bản: Mạch học vi ñiều khiển BOOK1 của [RP] Môi trường soạn thảo và các trình biên dịch Các mạch nạp và mạch gỡ rối, mô phỏng Sử dụng MPLAB IDE Tại sao lại cần công cụ? Cần các công cụ gì? Hàng nghìn năm trước, ñể nấu ăn, người ta cần phải ñi lượm củi về ñốt thành một ñống, rồi làm các cây chống hoặc ñặt các hòn gạch lên, rồi người ta phải tự ñắp ñất làm nồi, hoặc thậm chí không có nồi ñể nấu. Các món ăn hồi ñó ñơn giản như là… nướng mọi! Còn ñể ăn thì người ta dùng… tay! Nhưng ngày nay, người ta có thể nấu tới hàng chục nghìn món, nấu những bữa ăn cho hàng nghìn người ăn, làm ra những món ăn từ khổng lồ tới vài chục mét hay thậm chí những món ăn chỉ có vài mili mét. Ngay cả việc ăn cũng vậy, người ta có thể ăn bằng tay, bằng muỗng, bằng nĩa, bằng dao,… Một bữa ăn trong nhà hàng năm sao có thể có ñến một cái thúng ñồ dùng ăn uống ñặt trên bàn. Những kết quả ñạt ñược hôm nay của một bữa ăn, chính là nhờ các công cụ nấu nướng, các loại gia vị ñược bào chế mới, các món ñồ dùng ñược chau chuốt bằng ñủ loại vật liệu, nó giúp cho bữa ăn của chúng ta có thể ñược làm nhanh hơn, ngon hơn, ñẹp hơn, phong phú hơn, tuyệt vời hơn. Đó chính là nhờ các công cụ, dành cho việc “Nấu và Ăn”. Cũng tương tự như vậy, khi làm việc với vi ñiều khiển, nếu chúng ta muốn làm ra sản phẩm nhanh hơn, chính xác hơn, tối ưu hơn, chi phí thấp hơn, chúng ta sẽ cần các công cụ hỗ trợ chúng ta ngày càng hiệu quả hơn và mạnh mẽ hơn. Vậy “Nấu và Ăn” thì các công cụ tương ñối rõ ràng, và nếu ai chưa thấy rõ thì có thể ñeo kính vào rồi ñi vào nhà bếp ñể thấy cho rõ. Vậy các công cụ làm việc với PIC? C C h h ư ư ơ ơ n n g g 1 1 : : C C ô ô n n g g c c c c ơ ơ b b n n ñ ñ l l à à m m v v i i c c v v i i P P I I C C / / d d s s P P I I C C

Upload: others

Post on 31-Aug-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 1

http://books.rpc.vn – Tự học PIC

“Nếu người Việt Nam không có ý thức tự làm chủ

thì người nước ngoài sẽ làm chủ chúng ta” – Falleaf.

Nội dung cơ bản:

� Mạch học vi ñiều khiển BOOK1 của [RP] � Môi trường soạn thảo và các trình biên dịch � Các mạch nạp và mạch gỡ rối, mô phỏng � Sử dụng MPLAB IDE

Tại sao lại cần công cụ? Cần các công cụ gì?

Hàng nghìn năm trước, ñể nấu ăn, người ta cần phải ñi lượm củi về ñốt thành một ñống, rồi làm các cây chống hoặc ñặt các hòn gạch lên, rồi người ta phải tự ñắp ñất làm nồi, hoặc thậm chí không có nồi ñể nấu. Các món ăn hồi ñó ñơn giản như là… nướng mọi! Còn ñể ăn thì người ta dùng… tay!

Nhưng ngày nay, người ta có thể nấu tới hàng chục nghìn món, nấu những bữa ăn cho hàng nghìn người ăn, làm ra những món ăn từ khổng lồ tới vài chục mét hay thậm chí những món ăn chỉ có vài mili mét. Ngay cả việc ăn cũng vậy, người ta có thể ăn bằng tay, bằng muỗng, bằng nĩa, bằng dao,… Một bữa ăn trong nhà hàng năm sao có thể có ñến một cái thúng ñồ dùng ăn uống ñặt trên bàn. Những kết quả ñạt ñược hôm nay của một bữa ăn, chính là nhờ các công cụ nấu nướng, các loại gia vị ñược bào chế mới, các món ñồ dùng ñược chau chuốt bằng ñủ loại vật liệu, nó giúp cho bữa ăn của chúng ta có thể ñược làm nhanh hơn, ngon hơn, ñẹp hơn, phong phú hơn, tuyệt vời hơn. Đó chính là nhờ các công cụ, dành cho việc “Nấu và Ăn”.

Cũng tương tự như vậy, khi làm việc với vi ñiều khiển, nếu chúng ta muốn làm ra sản phẩm nhanh hơn, chính xác hơn, tối ưu hơn, chi phí thấp hơn, chúng ta sẽ cần các công cụ hỗ trợ chúng ta ngày càng hiệu quả hơn và mạnh mẽ hơn.

Vậy “Nấu và Ăn” thì các công cụ tương ñối rõ ràng, và nếu ai chưa thấy rõ thì có thể ñeo kính vào rồi ñi vào nhà bếp ñể thấy cho rõ. Vậy các công cụ làm việc với PIC?

CChhưươơnngg 11:: CCôônngg ccụụ ccơơ bbảảnn

ññểể llààmm vviiệệcc vvớớii PPIICC//ddssPPIICC

Vi ñiều khiển PIC – Nấu và Ăn

Trang 2

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Giờ chúng ta cùng khảo sát và tưởng tượng nhé, một sản phẩm ñiện tử sử dụng vi ñiều khiển, trên cơ bản sẽ là một cái bo mạch in, người ta có trên ñó các phần mạch ứng dụng, người ta có trên ñó con vi ñiều khiển, người ta bật ñiện… và nó chạy. Như vậy, trên cơ bản, vi ñiều khiển cần có những phần sau ñể chạy:

� Phần MẠCH NGOẠI VI: ñây là phần mạch dùng cho ứng dụng của các bạn. Ví dụ như các bạn muốn ứng dụng ñiều khiển ñộng cơ, thì các bạn sẽ có các mạch lái, mạch kích, mạch ñọc encoder,… và nó ñược nối trực tiếp ñến vi ñiều khiển.

� Phần NGUỒN: nếu không có nguồn ñiện thì không có cái gì gọi là ñiện cả. Nguồn ñiện có thể ñược cung cấp và ñược lấy từ nhiều nguồn và nhiều cách khác nhau. Nhưng nói chung, với vi ñiều khiển PIC, nguồn ñiện cơ bản nằm từ 2.5VDC ñến 5.5VDC. Không cần biết các bạn dùng cách nào, nhưng ñể PIC16F887 chạy ñược, thì các bạn phải cấp nguồn cho nó từ 4.5VDC ñến 5.5VDC.

� Phần DAO ĐỘNG: phần này là phần có thể nằm bên trong PIC, hoặc có thể nằm ngoài PIC, nhưng mục ñích cơ bản của nó là gõ trống nhịp cho PIC hoạt ñộng. Hãy tưởng tượng rằng, PIC hay bất kỳ vi ñiều khiển nào cũng chỉ là một ñống các con transistor ñược ghép lại với nhau, chúng hoạt ñộng ñơn giản bằng cách ñóng mở các con transistor này. Thế nhưng câu hỏi là khi nào ñóng, khi nào mở? Phần DAO ĐỘNG giúp vi ñiều khiển thực hiện việc này bằng cách “gõ” những nhịp ñiều ñều ñặn, gần với việc tạo ra một “thời gian tham chiếu” cho vi ñiều khiển vậy.

� Phần CHƯƠNG TRÌNH: tất nhiên rồi! Nhưng ở ñây, các bạn cần phải hiểu là chương trình ñã ñược ñưa vào bên trong PIC. Để phân biệt các thuật ngữ, chúng ta dùng từ tiếng anh là FIRMWARE.

Hình sau ñây giúp các bạn dễ nhớ hơn về các thành phần của một sản phẩm sử dụng vi ñiều khiển:

Hình 1: Những thành phần cơ bản của một bo mạch vi ñiều khiển PIC

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 3

http://books.rpc.vn – Tự học PIC

Vậy thiết kế một sản phẩm, có nghĩa là thiết kế và phối hợp các phần này với nhau ñể thực hiện tính năng (giá trị sử dụng) của sản phẩm ñó. Hiểu một cách ñơn giản như vậy, chúng ta cần có các công cụ ñể thực hiện từng phần trên. Tuy nhiên, trong giới hạn của cuốn sách này, chúng tôi không thể trình bày tất cả, ñặc biệt là phần MẠCH NGOẠI VI, vì nó liên quan trực tiếp tới ứng dụng của các bạn. Phần NGUỒN, có lẽ chúng tôi sẽ không ñề cập sâu, nhưng chúng tôi sẽ ñưa ra một vài ý tưởng thiết kế cho các bạn. Phần DAO ĐỘNG, liên quan trực tiếp tới PIC, chúng tôi sẽ trình bày nó chi tiết hơn ở các chương sau. Vậy, các bạn thấy rõ ràng rằng, ñể làm chủ ñược PIC, chúng ta cần học ñể làm chủ chương trình (firmware) nằm trong PIC. Câu chuyện của chúng ta trở thành, các công cụ nào ñể làm ñược FIRMWARE cho PIC?

Để có thể ñưa FIRMWARE vào PIC, chúng ta sẽ trải qua các công ñoạn sau:

Hình 2: Khái quát quy trình phát triển ứng dụng với PIC

Trong cuốn sách này, chúng tôi sẽ không ñề cập về Bootloader, ñây là một vấn ñề nâng cao và khá ñặc thù, tuy nhiên chúng tôi sẽ chỉ giới thiệu sơ qua khái niệm về bootloader ở Phụ lục: Tiny Bootloader

Vi ñiều khiển PIC – Nấu và Ăn

Trang 4

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Mạch học vi ñiều khiển BOOK1 của R&P

Hình 3: Mạch học PIC16F887 của R&P

Bo mạch học PIC không thể tách rời khỏi cuốn sách, do vậy, chúng tôi muốn các bạn nắm thật rõ các thông tin về bo mạch này.

Tên của bo mạch học là BOOK1. Tên BOOK1 thực ra là mã dự án của R&P, ñánh dấu dự án viết sách ñầu tiên của R&P.

Các chức năng của bo BOOK1:

� Phần mạch cấp nguồn sử dụng 7805. Vì ñây là ổn áp tuyến tính, do vậy, các bạn không cấp nguồn vào quá 12VDC.

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 5

http://books.rpc.vn – Tự học PIC

� Phần mạch PICKit 2 ñược “cải lùi” bởi anh TS. Nguyễn Quang Nam, tuy nhiên nó rất hiệu quả trong quá trình học tập và thực hành. Chúng tôi gọi mạch nạp này là PK2FUN (PICKit 2 Fun), mang ý nghĩa là làm ra cho vui.

� Module ñầu tiên là I/O, và Ngắt ngoài � Module Mux I/O thực chất là một kiểu thiết kế tiết kiệm chân, sử dụng 4 chân I/O

ñể ñiều khiển 6 LED và 4 nút bấm. � Module ADC, cho phép người dùng biến trở ñể ñiều chỉnh giá trị ADC, hoặc dùng 1

kênh ADC ñể nhận biết 2 nút bấm một cách ñộc lập. Thiết kế này chỉ là thiết kế gợi ý, trong thực tế ít người sử dụng giải pháp này.

� Module LCD 16x02, thực chất mà nói chỉ là một sự biến ñổi của chức năng I/O. Tuy nhiên, do nhu cầu ứng dụng module này khá cao, chúng tôi ñưa nó vào bài giảng, nhưng nếu các bạn cảm thấy không cần thiết lắm, các bạn có thể bỏ qua.

� Module Motor Control, chủ yếu module này chúng tôi muốn người học sử dụng chức năng PWM.

� Module SFR05, người học sẽ học chức năng Capture � Module RS232, người học sẽ thực hành về chức năng UART của PIC � Module EEPROM, ñây EEPROM 25LC256-I/P của Microchip, giao tiếp SPI. Với

module này, các bạn sẽ làm việc cả với EEPROM và cả với SPI � Module cảm biến nhiệt ñộ, tương tự module EEPROM, chúng ta sẽ làm việc với cảm

biến nhiệt ñộ của Microcihp thông qua giao tiếp I2C. � Cuối cùng module mTouch, chúng ta sẽ dùng chức năng Analog Comparator.

Sơ ñồ khối nguyên lý của bo mạch BOOK1

Do sơ ñồ nguyên lý chi tiết của bo mạch tương ñối phức tạp, cho vậy, nếu trình bày toàn bộ hình ảnh của sơ ñồ nguyên lý trên trang giấy này, sơ ñồ sẽ rất nhỏ ñến ñộ không thể nhìn thấy ñược.

Chúng tôi sẽ trình bày ở ñây sơ ñồ khối ñể các bạn có cái nhìn tổng quát trước, sau ñó chúng tôi sẽ trình bày sơ ñồ nguyên lý trong một chương riêng.

Các bạn cũng có thể download và sử dụng sơ ñồ nguyên lý chi tiết tại http://books.rpc.vn (Trang web tự học PIC).

Vi ñiều khiển PIC – Nấu và Ăn

Trang 6

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Hình 4: Sơ ñồ khối bo học PIC BOOK1 của R&P

Môi trường soạn thảo và các trình biên dịch

Để tạo ra ñược file mã máy ñể nạp vào PIC, chúng ta cần lập trình bằng ngôn ngữ “thân thiện” với con người, sau ñó biên dịch ra ngôn ngữ “máy” và nạp vào PIC.

Chúng ta không chỉ có một môi trường soạn thảo duy nhất, và không phải chỉ có một trình biên dịch duy nhất dành cho PIC. Chúng ta có rất rất nhiều các công cụ khác nhau, chúng tôi sẽ giới thiệu với các bạn theo hai hệ thống: Một hệ thống dành cho người dùng Windows, một hệ thống khác dành cho người dùng Linux.

Chú ý: Các thông tin mà chúng tôi cung cấp ở ñây chỉ có thể là thông tin mới nhất vào thời ñiểm viết sách (năm 2010), hãy cập nhật các thông tin mới nhất nếu có thể.

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 7

http://books.rpc.vn – Tự học PIC

Dành cho người dùng sử dụng Windows

Trình biên dịch ASM (hợp ngữ)

Microchip cung cấp trình biên dịch MPASM miễn phí, và ñi kèm trong bộ cài MPLAB IDE. Tuy nhiên, các bạn ñừng lầm lẫn giữa việc cài ñặt MPLAB IDE (một môi trường soạn thảo), với việc cài ñặt MPASM. Sau khi cài ñặt MPLAB, các bạn có thể vào thư mục cài ñặt Microchip >> MPASM Suite ñể có thể sử dụng trực tiếp MPASM.

Khi không cần sử dụng trình soạn thảo chuyên dụng cho PIC, chúng ta hoàn toàn có thể sử dụng Notepad, hoặc Notepad Plus,… ñể soạn thảo chương trình, và sau ñó trực tiếp chạy MPASMWIN.exe ñể biên dịch.

Hình 5: Trình biên dịch MPASM trên Windows

Trình biên dịch các ngôn ngữ cấp cao

Nội dung này sẽ rất phức tạp, do vậy, chúng tôi muốn các bạn hiểu rõ cách phát triển của các doanh nghiệp phát triển phần mềm. Giai ñoạn ñầu, các doanh nghiệp chỉ tập trung phát triển trình dịch. Về sau, các doanh nghiệp tiếp tục phát triển các môi trường soạn thảo cho riêng mình. Nhưng khi càng phát triển, thì các doanh nghiệp sẽ mở ra các công cụ cho phép người dùng tích hợp các trình dịch khác vào môi trường soạn thảo của họ. Đây là một xu hướng tất yếu, bởi vì một thực tế là các lập trình viên không muốn cứ khi làm việc với một trình dịch mới, họ lại phải thay ñổi môi trường làm việc. Một xu hướng tất yếu ñang xuất hiện, ñó là những nhà phát triển trình dịch, sẽ tập trung vào việc phát triển trình dịch, và chọn một môi trường phát triển chung.

Vi ñiều khiển PIC – Nấu và Ăn

Trang 8

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Đối với dòng PIC10/12/16, Microchip không có trình biên dịch cấp cao. Tuy nhiên, Microchip ñã mua lại công ty HiTech Soft và chúng tôi sử dụng HiTech PICC trong giáo trình này.

Hi-Tech Soft: (www.htsoft.com)

TTrrììnnhh ssooạạnn tthhảảoo:: HI-TIDE (HiTech IDE) TTrrììnnhh bbiiêênn ddịịcchh:: HTPIC C (ngôn ngữ C) BBììnnhh lluuậậnn:: Có lẽ ñây là hệ thống trình biên dịch chuyên nghiệp nhất dành cho PIC, chúng tôi chọn trình biên dịch này ñể sử dụng trong giáo trình này.

Microchip MPLAB C (www.microchip.com) TTrrììnnhh ssooạạnn tthhảảoo:: MPLAB IDE TTrrììnnhh bbiiêênn ddịịcchh:: C18 (chỉ dành cho PIC18), C30 (chỉ dành cho PIC24, dsPIC), C32 (chỉ dành cho PIC32). BBììnnhh lluuậậnn:: Do không hỗ trợ PIC10/12/16, chúng tôi không sử dụng MPLAB C trong cuốn sách này. Tuy nhiên, MPLAB C sẽ là một lựa chọn tốt trong những dòng PIC cao hơn.

CCSInfo: (www.ccsinfo.com)

TTrrììnnhh ssooạạnn tthhảảoo:: CCS IDE TTrrììnnhh bbiiêênn ddịịcchh:: CCS C (ngôn ngữ C) BBììnnhh lluuậậnn:: Đây là một trình biên dịch rất dễ dàng cho người dùng. Thậm chí tài liệu hướng dẫn chi tiết tới ñộ chỉ cần biết ñọc tiếng Anh là có thể sử dụng PIC, thậm chí không cần hiểu gì về PIC!? Chính ñiều này gây ra hai khó khăn cơ bản. Một là ñể tạo ra sự dễ dàng cho người dùng, CCS phải tốn nhiều thời gian phát triển hơn, do vậy, các phiên bản CCS C hỗ trợ các dòng chip mới thường rất chậm. Hai là ñối với người dùng việc sử dụng quá dễ dàng, mà không hiểu gì về PIC sẽ khiến cho người học có ngày càng chủ quan ñối với việc thiết kế. Chính vì vậy, ñối với mức ñộ sản xuất vừa và nhỏ, chúng tôi khuyên dùng CCS C, vì giá thành phần mềm thấp, không tốn nhiều thời gian ñể tìm hiểu, ñặc biệt ñối với những người ñang sử dụng các họ vi ñiều khiển khác, muốn chuyển qua sử dụng PIC. Đây là một cơ hội tuyệt vời ñể thử nghiệm.

Mikro Elektronika: (www.mikroe.com)

TTrrììnnhh ssooạạnn tthhảảoo:: MikroE IDE TTrrììnnhh bbiiêênn ddịịcchh:: MikroC (ngôn ngữ C), MikroBasic (ngôn ngữ Basic), MikroPascal (ngôn ngữ Pascal) BBììnnhh lluuậậnn:: Chúng tôi ñánh giá ñây là một công ty phát triển cực nhanh trong “làng PIC”, chỉ mất vài năm, ñi từ việc thiết kế những bo học PIC ñơn giản, giờ ñây họ ñã là một ñơn vị phát triển cả trình biên dịch cho Microchip. Đặc biệt, họ hỗ trợ cả C, Basic và Pascal. Giá trình dịch của họ cực kỳ thấp, và ñược nâng cấp suốt ñời. Đối với những doanh nghiệp vừa và nhỏ, việc trang bị MikroE thực sự không phải là vấn ñề, vì so với việc trang bị HTPIC quả là một sự chênh lệch lớn.

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 9

http://books.rpc.vn – Tự học PIC

SourceBoost: (www.sourceboost.com) TTrrììnnhh ssooạạnn tthhảảoo:: SourceBoost IDE TTrrììnnhh bbiiêênn ddịịcchh:: Boost C (ngôn ngữ C), Boost C++ (ngôn ngữ C++), BoostBasic (ngôn ngữ Basic), Novo RTOS (hệ ñiều hành), Flowcode (ngôn ngữ flowchart). BBììnnhh lluuậậnn:: Chúng tôi tiếp cận SourceBoost từ những năm 2004, 2005, khi ñó, SourceBoost chưa phát triển mạnh, nhưng dường như là công ty ñầu tiên phát triển trình biên dịch cho PIC trên nền tảng hướng ñối tượng C++. Chính từ ñịnh hướng từ ban ñầu này, SourceBoost ñã phát triển thành công Flowcode, việc lập trình trở nên cực kỳ ñơn giản, khi mà người lập trình chỉ cần có ý tưởng, vẽ lên flowchart, thì chỉ cần biên dịch ra C và nạp vào PIC.

BKND (www.bknd.com)

TTrrììnnhh ssooạạnn tthhảảoo:: không có TTrrììnnhh bbiiêênn ddịịcchh:: CC5X (ngôn ngữ C), CC8E (ngôn ngữ C) BBììnnhh lluuậậnn:: Chúng tôi không thử nghiệm nhiều với hai trình biên dịch này, vì hai trình dịch này hỗ trợ tương ñối giới hạn. CC5X và CC8E ñã ñược phát triển từ rất lâu, nhưng BKND dường như vẫn không phát triển gì trong suốt 5 năm qua, do vậy, chúng tôi không khuyên những người dùng mới tiếp cận trình biên dịch này.

ooPIC (www.oopic.com) TTrrììnnhh ssooạạnn tthhảảoo:: ooPIC TTrrììnnhh bbiiêênn ddịịcchh:: Bản thân ooPIC là một kiểu làm việc hướng ñối tượng khá riêng biệt. BBììnnhh lluuậậnn:: Người ta không xây dựng một môi trường ñể viết các ñoạn code, và thậm chí không bị phụ thuộc vào một loại ngôn ngữ nào, ooPIC tạo ra các ñối tượng có sẵn, dùng cho các ứng dụng cơ bản thường gặp. Chúng tôi không khuyên các bạn sử dụng trình dịch loại này nếu muốn phát triển chuyên nghiệp, tuy nhiên, nếu các bạn muốn hướng dẫn cho các cấp học sinh phổ thông, cách phát triển này là một cách phát triển lý thú.

SDCC – Small Device C Compiler (sdcc.sourceforge.net) TTrrììnnhh ssooạạnn tthhảảoo:: không có TTrrììnnhh bbiiêênn ddịịcchh:: SDCC (ngôn ngữ C) BBììnnhh lluuậậnn:: Đây là một trình biên dịch hoàn toàn miễn phí, ñược phát triển bởi cộng ñồng mã nguồn mở. Hiện nay, SDCC ñang hướng tới việc phát triển cho Microchip PIC, và ñã chấm dứt việc hỗ trợ cho AVR và Z80.

Còn rất nhiều trình biên dịch khác nữa, nhưng chúng tôi e rằng không có ñiều kiện trình bày hết, chúng tôi hy vọng các bạn sẽ tiếp tục cập nhật thông tin và bình luận về các trình biên dịch trên PIC Việt Nam. Quan ñiểm của chúng tôi là không phải lúc nào trình biên dịch ngôn ngữ cấp cao cũng tuyệt ñối tốt, trong quá trình phát triển, sẽ có nhiều vấn ñề. Đặc biệt, ñối với dòng PIC10/12/16, khi muốn ñưa ra sản xuất hàng loạt thì các bạn nên kiểm tra kỹ mã nguồn ASM (sau khi ñã biên dịch từ ngôn ngữ cấp cao).

Vi ñiều khiển PIC – Nấu và Ăn

Trang 10

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Dành cho người dùng Linux

Ngoại trừ việc sử dụng WINE hoặc các môi trường mô phỏng Windows, chúng ta có thể ñiểm qua một số trình biên dịch ñiển hình phục vụ trực tiếp trên Linux.

Trình biên dịch ASM (hợp ngữ)

Chúng tôi biết rằng nếu các bạn ñã dùng Linux, chúng tôi sẽ không cần phải viết hay ñánh giá nhiều, bởi bản thân các bạn ñã hiểu rất rõ thế mạnh của việc dùng Linux.

GPUTILS là một bộ công cụ tổng hợp, bao gồm GPASM, GPLINK, GPLIB, ñược phát triển từ năm 2001, phiên bản ñầu tiên chỉ có thể vượt qua chương trình test 53 file trên tổng số 500 file cần kiểm tra. Quả là một kết quả… rất tồi. Tuy nhiên, cho tới nay, GPULTILS ñã hầu như phát triển và hỗ trợ rất nhiều.

Các bạn có thể download tại: gputils.sourceforge.net

Trình biên dịch ngôn ngữ cấp cao

Trình biên dịch ngôn ngữ cấp cao mã nguồn mở cho PIC là SDCC và GCC. Bên cạnh các phần mềm mã nguồn mở, hai công ty CCSInfo và HI-TECH Soft cũng cung cấp các phần mềm trên nền Linux.

Môi trường soạn thảo

PIKLab (piklab.sourceforge.net) là môi trường soạn thảo mã nguồn mở tốt nhất dành cho PIC, ñược hỗ trợ tương ñối mạnh mẽ.

Các bạn có thể trao ñổi về việc sử dụng Linux và PIC trong diễn ñàn PIC Việt Nam và Điện Tử Việt Nam. Chúng tôi không trao ñổi nhiều về PIC và Linux trong giáo trình này.

Các mạch nạp và mạch gỡ rối, mô phỏng

Như chúng ta ñã khẳng ñịnh, một vi ñiều khiển mà không có chương trình nằm bên trong nó (firmware), thì nó chẳng khác nào một cục ñá. Do ñó, mạch nạp là một phần không thể thiếu. Không có mạch nạp cũng giống như việc các bạn “nấu” mà không có bếp vậy.

Có rất nhiều mạch nạp trên thị trường thế giới, cũng như Việt Nam. Tuy nhiên, tựu chung lại, tất cả các mạch nạp ñều tập trung phục vụ 3 thị trường chủ yếu:

� Mạch nạp và gỡ rối dành cho sinh viên: Loại này chủ yếu là giá rẻ, chức năng tương ñối hạn chế, và chủ yếu chỉ ñảm nhiệm chức năng nạp chương trình (firmware).

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 11

http://books.rpc.vn – Tự học PIC

� Mạch nạp và gỡ rối dành cho các nhà thiết kế: Loại này trang bị nhiều tính năng hơn, chủ yếu tập trung vào tính năng gỡ rối và mô phỏng. Giá cả không phải là vấn ñề lớn. Tuy nhiên, ñối với thị trường Việt Nam, giá thành luôn là vấn ñề, vì vậy, hầu hết các nhà thiết kế ở Việt Nam chấp nhận bỏ qua tính năng mô phỏng (emulator) mà chỉ dừng ở tính năng gỡ rối (debugger) nhằm giảm chi phí trang thiết bị.

� Mạch nạp dành cho sản xuất: Chỉ tập trung vào tính năng duy nhất là tính năng nạp, ñiều quan trọng nhất là phải nạp nhanh, thao tác ñơn giản, bền vững, ñảm bảo cho công nhân kỹ thuật có thể sử dụng.

Mạch nạp và gỡ rối dành cho sinh viên (Programmer, Debugger)

Hiện nay mạch nạp dành cho sinh viên rất phong phú, ñặc biệt với mục tiêu hạ giá sản phẩm tới tối ña, các sản phẩm mạch nạp “tự chế” (DIY – Do It Yourself) trở nên hấp dẫn trong thị trường này.

Mạch nạp PICKit 2, PICKit 3 của Microchip

Hình 6: Mạch nạp PICKit 2 và PICKit 3

Tính năng: nạp hầu hết các dòng sản phẩm Microchip PIC/dsPIC, hỗ trợ Programmer To Go (không cần sử dụng máy tính, nạp chương trình vào PICKit, sau ñó cấp nguồn và bấm nút ñể nạp vào PIC), Logic Analyser, cấp nguồn từ USB qua PICKit 2,3 ñể cấp cho PIC. Giá thành: khoảng 30$ ñến 50$ Tham khảo: www.microchip.com/pickit2, www.microchip.com/pickit3 Bình luận: Cho tới nay PICKit 3 ñã có giá rẻ ở thị trường VN, vì vậy, chúng tôi khuyên các bạn nên quan tâm tới những sản phẩm mới nhất, sản phẩm càng mới thì giá sẽ càng rẻ.

Vi ñiều khiển PIC – Nấu và Ăn

Trang 12

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Mạch gỡ rối ICD2 LE (phiên bản giới hạn)

Tính năng: nạp và debug hầu hết các dòng Microchip PIC/dsPIC, không hỗ trợ cấp nguồn từ ICD2 LE. Tính năng giống hệt ICD2, tuy nhiên ñược thiết kế nhỏ gọn hơn ñể làm quà tặng cho các kỳ hội thảo. Bề ngoài nhìn giống PICKit 2, nhưng có màu xanh dương. Do là phiên bản giới hạn (Limited Edition), cho nên sản phẩm không ñược phổ biến lắm. Giá thành: khoảng 60$ ñến 80$ Tham khảo: Chỉ có thể mua tại R&P Bình luận: Chúng tôi ñánh giá ICD2 LE và PICKit 2 là ngang nhau, nếu một nhà thiết kế chuyên nghiệp muốn có các công cụ giá rẻ, có thể sử dụng ICD2 kèm với PICKit 2, thì hầu như mọi tính năng cần thiết ñều có trong tay.

Mạch nạp PK2FUN của R&P

Khi các bạn mua cuốn sách này, mạch PK2FUN ñã sẵn sàng cho các bạn sử dụng.

Tính năng: giống PICKit 2, nhưng bỏ ñi 2 tính năng chính là tính năng Programmer To Go và tính năng cấp nguồn từ USB. Do vậy, khi sử dụng PK2FUN, các bạn phải cấp nguồn cho PIC thì mới sử dụng ñược. Giá thành: khoảng 10$ Tham khảo: www.dientu.rpc.vn Bình luận: Chúng tôi sẽ phát triển chương trình mã nguồn mở cho PK2FUN, khi ñó các bạn sinh viên có thể tự làm PK2FUN. Mạch PK2FUN ñã ñi kèm với bo mạch BOOK1 (có ñường V-Cut), các bạn có thể bẻ mạch này ra ñể sử dụng sau khi ñã học xong với bo BOOK1.

Mạch nạp gUSB của PDuyTech

Tính năng: ñây là một mạch phát triển từ mạch GTP-USB, sử dụng với chương trình nạp WinPIC800. Tuy nhiên, sau ñó PDuyTech ñã phát triển lại phần mềm và phát triển khá tốt. Giá thành: khoảng 10$ Tham khảo: www.pduytech.com Bình luận: Chúng tôi cùng PDuyTech hợp tác ñưa sản phẩm này ra thị trường, bởi vì PDuyTech ñã thực sự làm chủ cả firmware và software của mạch nạp và chương trình nạp. Đây là một sản phẩm có sự ñầu tư chất xám thực sự. Nó ñược phát triển khi GTP-USB còn là một dự án mã nguồn mở, có thể coi ñây là một sản phẩm ñược phát triển hoàn toàn tại Việt Nam.

Mạch nạp và gỡ rối dành cho các nhà thiết kế (Debugger, Emulator)

Đối với các nhà thiết kế, những người sẽ kiếm ñược tiền từ việc phát triển các sản phẩm với Microchip PIC/dsPIC, chúng tôi khuyên các bạn nên sử dụng các mạch nạp và gỡ rối của Microchip với những lý do như sau:

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 13

http://books.rpc.vn – Tự học PIC

� Microchip muốn bán ñược dòng sản phẩm PIC/dsPIC của mình, họ phải tăng cường hỗ trợ các nhà thiết kế từ khâu thiết kế sản phẩm.

� Các dòng sản phẩm của Microchip hầu hết sẽ ñược thiết kế cho việc sản xuất hàng loạt, nó cần qua nhiều khâu kiểm tra, ñánh giá. Chất lượng ñược kiểm soát sẽ ñảm bảo cho việc phát triển sản phẩm ổn ñịnh

� Khi làm thiết kế, các bạn cần làm việc với những dòng chip mới nhất của Microchip, các mạch nạp và gỡ rối của Microchip sẽ hỗ trợ nhanh nhất cho các bạn

Chúng tôi khuyên các bạn sử dụng các sản phẩm sau:

ICD3 – In Circuit Debugger 3

Hình 7: MPLAB ICD3 - công cụ nạp và gỡ rối

Tính năng: Là một phiên bản cải tiến từ ICD2, tuy nhiên hiện nay ICD2 không còn sản xuất nữa. ICD3 tăng tốc ñộ nạp chip ñáng kể, khả năng gỡ rối ñược tăng cường nhiều ñiểm breakpoint. Giá thành: khoảng 200$ Tham khảo: www.microchip.com/icd3 Bình luận: Chúng tôi khuyên các nhà thiết kế nên chọn sử dụng ICD3. R&P ñã sử dụng ICD3 ngay từ khi sản phẩm này ra mắt, và chúng tôi thấy việc lựa chọn ICD3 là một giải pháp rất tối ưu về giá/tính năng. Đồng thời, tính năng ñủ ñể ñảm bảo cho các nhà thiết kế phát triển sản phẩm hiệu quả.

Vi ñiều khiển PIC – Nấu và Ăn

Trang 14

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

REAL ICE – In Circuit Emulator

Hình 8: MPLAB REAL ICE - In Circuit Emulator

Tính năng: Mô phỏng trực tiếp trên mạch. Chủ yếu sử dụng cho các mạch phức tạp, thuật toán phức tạp. Giá thành: khoảng 550$ Tham khảo: www.microchip.com/realice Bình luận: Những người làm việc với PIC32, hoặc dsPIC cần xử lý các thuật toán phức tạp, chúng tôi khuyên dùng REAL ICE. Tuy nhiên, về mặt giá thành REAL ICE còn có giá tương ñối cao so với mức sống ở Việt Nam, do vậy, có thể vào lúc này, nó chỉ phù hợp dùng trong các phòng thí nghiệm, trung tâm nghiên cứu. Dù vậy, với khả năng mô phỏng trên mạch, chắc chắn nó là một công cụ ñắc lực nhất hiện nay cho việc phát triển sản phẩm trên nền Microchip PIC/dsPIC.

Mạch nạp dành cho sản xuất (Gang Programmer)

Vấn ñề chính của các nhà sản xuất chính là tỉ số giữa tốc ñộ nạp chip và số lượng nhân công. Một bài toán rất rõ ràng như sau, khi nhà sản xuất sản xuất lên tới khoảng 100.000 sản phẩm mỗi năm, việc nạp chip trở thành một vấn ñề rất lớn.

Giải pháp bắt buộc là phải nạp cùng lúc nhiều sản phẩm, vì thời gian ñể nạp cho chip gần như là khó có thể giảm, tùy theo dung lượng của chip và kích thước firmware.

Các loại Gang Programmer trên thị trường hiện nay cho phép nạp cùng lúc từ 4 chip ñến 32 chip cùng lúc. Chúng tôi giới thiệu 2 loại mạch nạp Gang Programmer dành cho Microchip PIC/dsPIC sau ñây:

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 15

http://books.rpc.vn – Tự học PIC

softLog ICP2GANG

Tính năng: Mỗi lần nạp 4 chip, có thể ghép nối với 16 mạch ICP2GANG với nhau ñể nạp tới 64 chip cùng lúc. Giá thành: khoảng 1600$ Tham khảo: www.softlog.com Bình luận: SoftLog là ñơn vị thứ ba (third party ) từ năm 1998. Các sản phẩm của SoftLog hiện nay cũng ñang ñược bán tại www.microchipdirect.com. Sản phẩm này phù hợp cho các dây chuyền sản xuất lớn và cực lớn (vì có thể nạp lên tới 64 sản phẩm cùng lúc).

CCSInfo PRIME8

Tính năng: Mỗi lần nạp ñược 8 chip, không cần sử dụng máy tính, chỉ cần nạp firmware vào PRIME8, sau ñó chỉ cần cấp nguồn ñể nạp. Giá thành: khoảng 900$ Tham khảo: www.ccsinfo.com Bình luận: Chúng tôi ñã cung cấp một số mạch nạp này cho các nhà sản xuất ở Việt Nam. Chúng tôi cho rằng sản phẩm này tương ñối phù hợp với thị trường Việt Nam, khi mà nền sản xuất ở Việt Nam chưa ñến mức quá lớn, nhân công Việt Nam giá rẻ. Với giá chỉ bằng một nửa so với SoftLog ICP2GANG, sản phẩm của CCSInfo có ưu thế về giá. Việc không sử dụng máy tính ñể nạp chương trình có một ưu thế rõ rệt về việc bảo mật firmware cho sản phẩm.

PICKit 2 và PICKit 3

Tính năng: Sử dụng tính năng Programmer To Go, chỉ nạp ñược 1 chip một lần. Giá thành: khoảng 30$ ñến 50$ Tham khảo: www.microchip.com/pickit2, www.microchip.com/pickit3 Bình luận: Đây là một “mẹo” nhỏ dành cho các nhà sản xuất vừa và nhỏ, khi không cần sản xuất với tốc ñộ cao, nhân công rẻ, việc sử dụng PICKit 2 và PICKit 3 xem như một mô hình “giảm tốc” 8 tới 10 lần so với PRIME8 của CCS Info, và chi phí ñầu tư ban ñầu giảm ñi từ 10 ñến 20 lần.

Sử dụng MPLAB IDE

Chúng tôi thích nói chuyện theo kiểu “nấu và ăn”, không phải vì chúng tôi… có vợ rồi, mà bởi vì chúng tôi muốn tìm ra mối liên hệ giữa những gì thường ngày nhất với những gì sẽ phải trở nên cực kỳ bình thường ñối với những nhà thiết kế trong tương lai.

Việc sử dụng MPLAB IDE sẽ phải ñược hình dung giống như việc bạn rửa xoong nồi, ñặt lên bếp, và cất chúng vào chạn bếp vậy. Bất kỳ món ăn nào, dù ngon ñến mấy, thì cũng không thể bỏ qua những bước cơ bản này. Mỗi người ñầu bếp với các thói quen khác nhau, sẽ có sự chuẩn bị khác nhau.

Vi ñiều khiển PIC – Nấu và Ăn

Trang 16

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Bây giờ hãy xem nhé, chúng ta sẽ bắt ñầu từ việc mở MPLAB IDE lần ñầu tiên, và tạo một project cơ bản nhất.

Tùy chọn MPLAB IDE

Mặc dù MPLAB IDE khá mạnh mẽ và thân thiện, nhưng một nhược ñiểm trong cách trình bày, mà có thể ñội ngũ phát triển MPLAB IDE lại cho là hiệu quả, ñó là việc ñặt các chế ñộ mặc ñịnh cho môi trường soạn thảo.

Những tính năng hầu như rất quen thuộc với các lập trình viên như mở nhiều file mã nguồn, người ta thường tổ chức theo dạng Tab ñể dễ chuyển từ file này sang file khác, hoặc như việc sử dụng auto indent (tự canh lề),… hay như các tính năng Dockable ñể sắp xếp các cửa sổ làm việc một cách ngăn nắp.

Dẫu sao thì chỉ mất công một lần thôi, các bạn có thể tự trình bày giao diện của MPLAB theo ý muốn của mình. Chúng tôi chỉ giới thiệu ở ñây một vài tùy chọn mà hầu hết mọi người ñều dùng, còn các tùy chọn khác, các bạn có thể tự thiết kế theo ý mình.

Tùy chọn Dockable

Ban ñầu, khi mới cài ñặt, cửa sổ làm việc sẽ ñơn giản như hình dưới ñây

Hình 9: MPLAB IDE khi mới khởi ñộng

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 17

http://books.rpc.vn – Tự học PIC

Chúng ta thấy các cửa sổ làm việc ñều nằm khá “chơi vơi”, và tốn không gian. Chúng ta có thể ñưa nó sát vào các khung workspace bằng cách bấm chuột lên góc trái phía trên của cửa sổ, và chọn Dockable.

Sau khi chọn Dockable, chúng ta có thể giữ chuột trái, và rê cửa sổ này sát vào các mép không gian làm việc (workspace). Nó sẽ tự ñộng “dính” vào các lề của workspace như hình dưới ñây.

Figure 10: Chuyển các khối cửa sổ vào vị trí

Vi ñiều khiển PIC – Nấu và Ăn

Trang 18

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Tùy chọn Auto Indent và Tabbed Windows

Figure 11: Cần có tính năng Tabbed Window và Auto Indent

Tuy nhiên, chúng ta lại thấy, nếu ñể các cửa sổ soạn thảo cũng “chơi vơi”, nhất là khi mở nhiều cửa sổ file, chúng ta có thể chọn các chế ñộ cho nó bằng cách chọn Edit >>

Properties

Chúng ta chọn các tùy chọn sau:

Figure 12: Tùy chọn cho MPLAB IDE

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 19

http://books.rpc.vn – Tự học PIC

Phóng lớn màn hình làm việc lên, chúng ta ñã có Tab ñể mở nhiều file, và có auto indent ñể viết code.

Kết quả, sau khi khởi ñộng lại, màn hình sẽ như thế này:

Hình 13: Giao diện làm việc MPLAB IDE do người dùng tùy chọn

Để lưu lại màn hình làm việc này, chúng ta sẽ chọn Window >> Create Window Set…

Vi ñiều khiển PIC – Nấu và Ăn

Trang 20

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Đặt tên cho giao diện, và lưu lại. Từ sau, khi các bạn mở một Project mới, chỉ cần chọn Window >> Window Sets > Bạn sẽ có ngay giao diện thân thiện mà bạn quen làm việc.

Còn rất nhiều tiện ích khác, nhưng chúng tôi sẽ ñể các bạn tự khám phá thêm trong quá trình làm việc và tìm hiểu. Điều này cũng sẽ giúp ích hơn, bởi vì các phiên bản MPLAB IDE sẽ ñược nâng cấp liên tục, các bạn hãy làm quen với những thay ñổi nhỏ của mỗi phiên bản mới, và các bạn sẽ thấy nó ngày càng thân thiện hơn với mình.

Các bạn có thể góp ý về các phiên bản MPLAB IDE bằng cách gửi email về: [email protected], chúng tôi sẽ gửi các thông tin phản hồi này về cho Microchip và hỗ trợ các bạn nhiều hơn.

Tạo dự án (Project) với MPLAB IDE

Chúng ta sẽ bắt ñầu bằng một project nhỏ, ñó là bật một ñèn LED trên chân RE1. Ở ñây các bạn không cần chú ý ñến việc viết code như thế nào, chúng ta chỉ cần xem qua quy trình ñể hoàn tất một dự án mà thôi.

Chúng ta bắt ñầu từ màn hình cơ bản nhất bằng cách vào Project >> Project Wizard…

Hình 14: Tạo dự án mới

Bước ñầu tiên, chúng ta sẽ phải chọn loại PIC mà chúng ta cần làm việc. Ở ñây, bo học PIC BOOK1 sử dụng PIC16F887.

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 21

http://books.rpc.vn – Tự học PIC

Hình 15: Bước 1 - Chọn dòng PIC sử dụng cho dự án

Bước thứ hai, chúng ta cần phải chọn ngôn ngữ lập trình. Ở ñây, khi ñã cài ñặt sẵn HTPIC C, chúng ta sẽ thấy trong danh sách các ngôn ngữ có mục HI-TECH Universal Toolsuite. Nếu chưa cài ñặt, hãy tắt MPLAB ñi và cài ñặt HTPIC C trước ñã.

Vi ñiều khiển PIC – Nấu và Ăn

Trang 22

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Hình 16: Bước 2 - Chọn trình biên dịch (ñồng nghĩa với chọn ngôn ngữ lập trình)

Bước thứ ba, các bạn ñặt tên cho dự án và tạo thư mục cho dự án.

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 23

http://books.rpc.vn – Tự học PIC

Hình 17: Bước 3 - Đặt tên cho dự án bắt ñầu viết mã nguồn

Xem như mọi việc ñã xong xuôi rồi ñấy, các bạn ñã có thể bắt ñầu làm việc với PIC.

Sau khi tạo dự án xong, bạn ñã có thể tải lại giao diện Window Sets ñã lưu ñể có giao diện quen thuộc khi làm việc.

Bây giờ, các bạn cần mở một file mới hoàn toàn và lưu lại ở dạng .c

Vi ñiều khiển PIC – Nấu và Ăn

Trang 24

Công ty TNHH Thương Mại và Giao Nhận R&P – www.rpc.vn

Hình 18: Lập trình

Bây giờ các bạn hãy thử ñoạn code với nội dung như sau:

#include <htc.h>

__CONFIG(INTIO & WDTDIS & PWRTEN & MCLREN & UNPROTECT & DUNPROTECT & BORDIS & IESODIS & FCMDIS & LVPDIS);

void main() { ANSEL = 0; ANSELH = 0; TRISE = 0b11111001; PORTE = 0b00000010;

while(1); }

Sau cùng, các bạn bấm (1) F10 ñể biên dịch.

Cắm ñiện vào mạch học PIC BOOK1, cắm dây USB, cắm cáp nạp từ PICKit 2 sang phần mạch phát triển.

Bấm vào (2) Programmer >> PICKit 2 ñể kết nối với PICKit 2 trên mạch học PIC

Chapter 1: Công cụ cơ bản ñể làm việc với PIC/dsPIC

Trang 25

http://books.rpc.vn – Tự học PIC

Bấm vào nút (3) Program ñể nạp chương trình ñã biên dịch vào PIC.

Như vậy, PIC ñã chạy rồi, bạn chỉ cần rút dây nối giữa PK2FUN và phần mạch chạy, bạn sẽ thấy LED ở chân RE1 sẽ sáng. Quá trình này sẽ lặp ñi lặp lại ñối với mỗi dự án của các bạn. Đó là công thức cơ bản nhất.

Những ñiểm cần lưu ý trong chương này

� Các công cụ làm việc với PIC bao gồm: o Môi trường soạn thảo o Trình biên dịch o Công cụ mô phỏng MPLAB SIM o Mạch nạp, Mạch gỡ rối, Mạch mô phỏng phần cứng o Bo mạch ứng dụng, ở ñây chúng ta ñang học về PIC16F887 và sử dụng bo

mạch ứng dụng BOOK1 của R&P � MPLAB IDE có những tính năng rất tốt, nhưng thường không ñược kích hoạt mặc

ñịnh, do vậy, khi làm việc với MPLAB IDE, các bạn cần tìm hiểu thêm và trao ñổi ñể sử dụng các tùy chọn ñó theo thói quen sử dụng cá nhân

� Mạch học PIC BOOK1 ñã bao gồm mạch nạp PICKit 2 “cải lùi”, gọi là PK2FUN, các bạn không cần thêm công cụ nạp nào khác. Khi ñã làm việc với PIC, và có nhiều kinh nghiệm, chúng tôi khuyên các bạn nên trang bị ICD3 ñể thiết kế và phát triển sản phẩm.

� Trình biên dịch ñược sử dụng trong cuốn sách này là trình biên dịch HTPIC C, ngôn ngữ ñược sử dụng là ANSI C, các bạn cần biết lập trình C ñể làm việc với PIC, tuy nhiên, các bạn có thể tham khảo Phụ lục: Ngôn ngữ ANSI C ñể tìm hiểu thêm nếu bạn chưa biết lập trình C.