Tài liệu giáo trình học lập trình PIC. nguyenvanbientbd47@gmail.comI. Bạn cần những gì để
học tài liệu này ?1. Từ việc
lập trình trên máy tính, đến hoạt động của một con vi điều khiểnSơ đồ của toàn bộ quá
trình được mô tả trong hình vẽ sau :Giao diện soạn thảo >>
Trình biên dịch >> File .HEX >> Chương
trình nạp >> Mạch nạp >> PIC (vẽ sơ đồ này ra)Nhưng mà thế này, hiện nay việ
c lập trình các giao diện phần mềm đã trở nên quá đơn giản, cho nên
giao diện soạn thảo,
trình biên dịch, và ngay cả chương
trình nạp cũng được tích hợp vào trong chung một phần mềm, phần mềm đó được gọi là môi trường làm việc. MPLAB IDE là một thí dụ.Do vậy, để hiểu rõ hơn các khái niệm, chúng tôi
trình bày thao tác từ việc
lập trình trên
giao diện soạn thảo, đến việc nạp chương
trình cho PIC mà không dùng MPLAB IDE. Chúng ta sẽ dùng Notepad làm
giao diện soạn thảo, MPASM là chương
trình dịch, dùng mạch nạp PG2C và chương
trình nạp IC PROG.Phần này các bạn không cần làm theo, chỉ cần xem thôi, vì chúng tôi chỉ minh họa về các khái niệm để các bạn hiểu. Các bạn cũng chưa cần biết chương
trình ở đâu ra, chỉ cần thấy
giao diện khác nhau là biết chương
trình khác nhau rồi.Trước tiên, chúng ta sẽ soạn thảo trên màn hình Notepad một
chương trình bằng ngôn ngữ lập trình MPASM như hình sau :Hình 2.1 :
Giao diện soạn thảo đơn giản nhất là Notepadnguyenvanbientbd47@gmail.comChúng ta sẽ lưu lại file trên là PICtutorial_intro.asmSau đó, chúng ta sẽ dùng chương
trình biên dịch MPASM để dịch những gì chúng ta đã viết trong PICtutorial_intro.asm thành PICtutorial_intro.HEX để chuẩn bị nạp vào PIC.Hình 2.2 :
Trình dịch MPASM trên WindowsSau khi dịch xong, sẽ có một bảng thông báo xuất hiện như sau:nguyenvanbientbd47@gmail.comHình 2.3: Bảng thông báo sau khi dịch xongCác bạn sẽ thấy trên thông báo có những nội dung sau:Errors: 0, đó là số lỗi cú pháp hoặc những lỗi quy định của
trình dịch MPASM. Chúng ta sẽ phân tích về các lỗi xảy ra trong quá
trình thực hiện những bài tập thực hành ở phần sau. Còn phần này, tất nhiên chương
trình này tôi viết đã làm luận văn, vậy thì không sai được, cho nên số lỗi sẽ là 0.Warnings: là các thông báo cần chú ý, ở đây cũng là 0, có nghĩa là không có các thông báo nào. Các thông báo này là những thông báo rằng có một số thanh ghi đặc biệt cần phải quan tâm, có thể khi viết chương
trình không sai về lỗi cú pháp, nhưng có thể sai về lỗi vị trí thanh ghi… Các thông báo này không có.Message: là các thông báo cho người dùng chú ý, có một số thanh ghi nằm ở các BANK khác nhau, cần phải chú ý khi
lập trình. Khái niệm này các bạn sẽ làm quen sau. Nhưng ở đây có 10 thông báo. Khi gặp các thông báo này, các bạn phải xem lại trong chương
trình và chắc rằng mình làm đúng. Nhưng cho dù bạn làm đúng rồi, thì các thông báo này vẫn có như thường. Đó là điều hạn chế của
trình dịch, các bạn phải thông cảm.Lines Assembled: 810 là số dòng được viết trong chương trình, kể cả những dòng các bạn bỏ trống, hoặc những dòng không dịch. Nó thống kê độ dài chương
trình của các bạn. Cứ 1024 dòng lệnh là 1K Flash, và 16F628(A) có tới 2K Flash, như vậy, chương
trình này vẫn đảm bảo hoạt động tốt.Sau khi dịch xong, nó sẽ tạo ra một loạt các file khác ngoài file PICtutorial_intro.asm ban đầu như hình sau:nguyenvanbientbd47@gmail.comHình 2.4: Các file được tạo ra sau khi dịchFile ERR lưu các thông báo lỗi. Nhưng ở đây số lỗi không có, thì cũng chả có gì để xem. File .LST là file LIST. Nó
trình bày lại file .asm ban đầu của các bạn, nhưng nó thể hiện thành dạng cột, và hàng rõ ràng hơn. Đồng thời, nó cũng ghi rõ vị trí của một lệnh trong bộ nhớ khi nạp vào PIC như hình sau:nguyenvanbientbd47@gmail.comHình 2.5: File LIST được tạo raNhững file khác các bạn không cần phải quan tâm. Mà thực ra các bạn cũng không cần phải quan tâm đến file nào khác ngoại trừ file .HEX được tạo ra.Vậy nội dung của file .HEX là gì? Là những thứ chúng ta không đọc được và không hiểu được. Vậy không cần đọc và không cần hiểu làm gì, chỉ cần xem cho vui thôi. Nó như sau :nguyenvanbientbd47@gmail.comBây giờ các bạn gắn mạch nạp PG2C vào cổng COM của máy tính, trên đó có gắn một con PIC16F628 như hình sau :Chúng ta sẽ gắn con PIC16F628 như sau:nguyenvanbientbd47@gmail.comSau đó, chúng ta sẽ mở chương
trình ICPROG lên, chọn đúng loại PIC16F628 và chọn file .HEX để nạp cho PIC. Việc cuối cùng là ấn nút Program trên chương
trình nạp ICPROG:Kết quả, các bạn sẽ có một con PIC được nạp chương trình, và bây giờ chỉ cần cắm nó vào mạch chạy. Bật điện, và mọi chuyện không còn gì để nói.nguyenvanbientbd47@gmail.comSau phần này, các bạn đã hình dung được thế nào là một
giao diện soạn thảo, một chương
trình dịch, mạch nạp và chương
trình nạp. Quan trọng hơn, thực chất đây là một quy
trình đầy đủ để các bạn có thể làm việc với một con PIC bằng ngôn ngữ MPASM.Chúng tôi chưa đề cập đến vấn đề thực hiện những công việc phức tạp, và phương thức tạo ra một thư viện để sử dụng sau này, vì không thể đặt mục tiêu biến một người chưa biết vi điều khiển thành một
chuyên gia lập trình. Hơn nữa, chúng tôi chưa là chuyên gia, thì không thể biến các bạn thành chuyên gia được. Trên kia là những gì mà chúng tôi tin chắc là các bạn có thể thực hiện cho suốt các đề tài sinh viên của các bạn. Vậy các bạn cần
học gì?2. Những gì bạn cần họcỞ phần trên, các bạn đã thấy rằng để có một con PIC hoạt động được, bạn phải
lập trình trên máy tính, dùng chương
trình dịch để dịch ra file .HEX, rồi dùng chương
trình nạp và mạch nạp để nạp file .HEX vào PIC. Sau cùng, bạn gắn PIC vào mạch và bật điện cho nó hoạt động.Chúng tôi cứ hay nhắc lại rằng bạn đang là người mới bắt đầu
học để nhắc bạn rằng bạn chỉ cần quan tâm đến những gì cần quan tâm. Vậy nên, bạn không thể ngồi viết ra chương
trình dịch, cũng không thể sáng tạo ra một mạch nạp cùng với chương
trình nạp dựa vào những tài liệu không phải bằng tiếng mẹ đẻ của bạn. Kết quả, những thứ đó bạn chỉ có thể lựa chọn từ những cái có sẵn. Để thuận tiện cho việc lựa chọn của bạn, chúng tôi liệt kê ra đây những chương
trình dịch, chương
trình nạp và mạch nạp mà chúng tôi đã biết, đã sử dụng, kèm theo một số lời khuyên cho việc lựa chọn của bạn. Như vậy, nội dung mà chúng tôi sẽ đề cập chủ yếu trong tài liệu này, đó là hướng dẫn các bạn viết chương
trình trên máy tính, và hiểu được những gì bạn viết trên máy tính, vi điều khiển sẽ thực thi như thế nào, để từ đó các bạn có thể tạo cho mình những ứng dụng riêng.Nhưng như đã nói trước đây, hiện nay việc
lập trình giao diện soạn thảo trở nên đơn giản, và người ta tích hợp
giao diện soạn thảo với chương
trình dịch để thuận tiện cho người dùng. Do vậy, từ đây, khi chúng ta nói đến
lập trình trên một ngôn ngữ nào đó, đồng nghĩa nó đi kèm với môi trường làm việc của ngôn ngữ đó là
giao diện soạn thảo và
trình dịch từ ngôn ngữ đó ra file .HEX.Trong tài liệu này, chúng tôi chỉ chọn ngôn ngữ MPASM, CCS C và HT PIC để hướng dẫn các bạn. Vì vậy, chúng tôi tạm thời gác lại các ngôn ngữ khác là C17, C18 (dùng cho PIC18F), C30 (dùng cho dsPIC), cũng như một số ngôn ngữ PICBasic, hoặc các ngôn ngữ C khác.nguyenvanbientbd47@gmail.comNgoài ra, trong 3 ngôn ngữ trên, HT PIC chỉ cung cấp chương
trình dịch đi kèm, và nó cho phép nhúng vào môi trường làm việc MPLAB IDE, do vậy,
giao diện làm việc của HT PIC sẽ cũng chính là
giao diện làm việc của MPASM, và chính là môi trường MPLAB.nguyenvanbientbd47@gmail.comGiao diện môi trường MPLAB IDEGiao diện môi trường CCS C[...]... cần phải chú ý khi
lập trình. Khái niệm này các bạn sẽ làm quen sau. Nhưng ở đây có 10 thơng báo. Khi gặp các thông báo này, các bạn phải xem lại trong chương
trình và chắc rằng mình làm đúng. Nhưng cho dù bạn làm đúng rồi, thì các thơng báo này vẫn có như thường. Đó là điều hạn chế của
trình dịch, các bạn phải thông cảm.Lines Assembled: 810 là số dịng được viết trong chương trình, kể cả những... bạn muốn
học theo tài liệu hướng dẫn này, chắc chắn các bạn phải sử dụng cả ba môi trường làm việc này. Mơi trường MPLAB IDE có thể nhúng CCS C, HT PIC, C17, C18, C30… và rất nhiều ngơn ngữ
lập trình khác vào trong mơi trường của nó. Tuy nhiên, chúng tơi khun rằng, khi các bạn làm việc với hệ thống của CCS C, các bạn cứ làm việc trên mơi trường của chính nó. Bởi vì mỗi mơi trường được thiết
lập ra... ra trong q
trình thực hiện những bài tập thực hành ở phần sau. Còn phần này, tất nhiên chương
trình này tơi viết đã làm luận văn, vậy thì khơng sai được, cho nên số lỗi sẽ là 0.Warnings: là các thông báo cần chú ý, ở đây cũng là 0, có nghĩa là khơng có các thơng báo nào. Các thơng báo này là những thơng báo rằng có một số thanh ghi đặc biệt cần phải quan tâm, có thể khi viết chương
trình khơng... vì mỗi mơi trường được thiết
lập ra cho một ngơn ngữ, người
lập trình đã làm cho nó đơn giản nhất và dễ dàng nhất cho người dùng. Trong khi đó, MPLAB IDE phải thiết kế một
giao diện phù hợp với tất cả các ngôn ngữ, cho nên sẽ phức tạp hơn.MPLAB IDE được cung cấp miễn phí tại www.microchip.comCCS C được bán tại www.ccsinfo.com, chương
trình demo dùng trong 30 ngàyHT PIC có thể sử dụng 30 ngày miễn... thống kê độ dài chương
trình của các bạn. Cứ 1024 dịng lệnh là 1K Flash, và 16F628(A) có tới 2K Flash, như vậy, chương trình này vẫn đảm bảo hoạt động tốt.Sau khi dịch xong, nó sẽ tạo ra một loạt các file khác ngoài file PICtutorial_intro.asm ban đầu như hình sau: nguyenvanbientbd47@gmail.comChúng ta sẽ lưu lại file trên là PICtutorial_intro.asmSau đó, chúng ta sẽ dùng chương
trình biên dịch MPASM... các bạn không cần quan tâm đến phần I/O Delay. nguyenvanbientbd47@gmail.comSau đó, chúng ta sẽ mở chương
trình ICPROG lên, chọn đúng loại PIC16F628 và chọn file .HEX để nạp cho PIC. Việc cuối cùng là ấn nút Program trên chương
trình nạp ICPROG:Kết quả, các bạn sẽ có một con PIC được nạp chương trình, và bây giờ chỉ cần cắm nó vào mạch chạy. Bật điện, và mọi chuyện khơng cịn gì để nói. ... www.ccsinfo.com, chương
trình demo dùng trong 30 ngàyHT PIC có thể sử dụng 30 ngày miễn phí tại www.hitech.comChúng tơi đã download sẵn các chương
trình này trong đĩa CD và có hướng dẫn cài đặt cho các bạn. (C:// Chuong
trinh dich).Mạch nạp và chương
trình nạp nguyenvanbientbd47@gmail.comHình 2.5: File LIST được tạo raNhững file khác các bạn không cần phải quan tâm. Mà thực ra các bạn cũng không... dịch những gì chúng ta đã viết trong PICtutorial_intro.asm thành PICtutorial_intro.HEX để chuẩn bị nạp vào PIC.Hình 2.2 :
Trình dịch MPASM trên WindowsSau khi dịch xong, sẽ có một bảng thông báo xuất hiện như sau: nguyenvanbientbd47@gmail.comMạch nạp Kết nối máy tínhChương
trình nạp Ghi chúJDM COM IC Prog Mạch điển hình, dễ làmJDM modifiedCOM IC Prog Thay đổi của JDM cho chế độ nạp tốt hơn,... file LIST. Nó
trình bày lại file .asm ban đầu của các bạn, nhưng nó thể hiện thành dạng cột, và hàng rõ ràng hơn. Đồng thời, nó cũng ghi rõ vị trí của một lệnh trong bộ nhớ khi nạp vào PIC như hình sau: nguyenvanbientbd47@gmail.comHình 2.3: Bảng thơng báo sau khi dịch xongCác bạn sẽ thấy trên thơng báo có những nội dung sau:Errors: 0, đó là số lỗi cú pháp hoặc những lỗi quy định của
trình dịch MPASM.... năng In circuit debuggerWarp13A COM Tương thích PICStart PlusNạp nhanh, giá cao hơn MCPPIC16Pro40 LPT WinPICProg Mạch nạp điển hình của Nigel Goodwin, được dùng để giảng dạy ở nhiều trường đại
học trên thế giớiProPIC2 COM ICPROG, Propic2 Có hai phần, phần thơng thường có thể tự làm, phần có debugger phải mua, giá rất cao.Labtools LPT Labtools Giá rất cao, nạp đa dụng, không phù hợp với . cần học gì?2. Những gì bạn cần học phần trên, các bạn đã thấy rằng để có một con PIC hoạt động được, bạn phải lập trình trên máy tính, dùng chương trình. hơn các khái niệm, chúng tôi trình bày thao tác từ việc lập trình trên giao diện soạn thảo, đến việc nạp chương trình cho PIC mà không dùng MPLAB IDE.