Tài liệu giáo trình học lập trình PIC.
nguyenvanbientbd47@gmail.com I Bạn cần để học tài liệu ? Từ việc lập trình máy tính, đến hoạt động vi điều khiển Sơ đồ tồn q trình mơ tả 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ơ đồ ra) Nhưng mà này, việc lập trình giao diện phần mềm trở nên đơn giản, giao diện soạn thảo, trình biên dịch, chương trình nạp tích hợp vào chung phần mềm, phần mềm gọi mơi trường làm việc MPLAB IDE thí dụ Do vậy, để hiểu rõ khái niệm, chúng tơi trình bày thao tác từ việc lập trình 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 dùng Notepad làm giao diện soạn thảo, MPASM chương trình dịch, dùng mạch nạp PG2C chương trình nạp IC PROG Phần bạn không cần làm theo, cần xem thơi, chúng tơi minh họa khái niệm để bạn hiểu Các bạn chưa cần biết chương trình đâu ra, cần thấy giao diện khác biết chương trình khác Trước tiên, soạn thảo hình Notepad chương trình ngơn ngữ lập trình MPASM hình sau : Hình 2.1 : Giao diện soạn thảo đơn giản Notepad nguyenvanbientbd47@gmail.com Chúng ta lưu lại file PICtutorial_intro.asm Sau đó, dùng chương trình biên dịch MPASM để dịch viết 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 Windows Sau dịch xong, có bảng thơng báo xuất sau: nguyenvanbientbd47@gmail.com Hình 2.3: Bảng thơng báo sau dịch xong Các bạn thấy thơng báo có nội dung sau: Errors: 0, số lỗi cú pháp lỗi quy định trình dịch MPASM Chúng ta phân tích lỗi xảy trình thực tập thực hành phần sau Cịn phần này, tất nhiên chương trình tơi viết làm luận văn, khơng sai được, số lỗi Warnings: thông báo cần ý, 0, có nghĩa khơng có thơng báo Các thơng báo thơng báo có số ghi đặc biệt cần phải quan tâm, viết chương trình khơng sai lỗi cú pháp, sai lỗi vị trí ghi… Các thơng báo khơng có Message: thơng báo cho người dùng ý, có số ghi nằm BANK khác nhau, cần phải ý lập trình Khái niệm bạn làm quen sau Nhưng có 10 thơng báo Khi gặp thông báo này, bạn phải xem lại chương trình làm Nhưng cho dù bạn làm rồi, thơng báo có thường Đó điều hạn chế trình dịch, bạn phải thơng cảm Lines Assembled: 810 số dòng viết chương trình, kể dịng bạn bỏ trống, dịng khơng dịch Nó thống kê độ dài chương trình bạn Cứ 1024 dịng lệnh 1K Flash, 16F628(A) có tới 2K Flash, vậy, chương trình đảm bảo hoạt động tốt Sau dịch xong, tạo loạt file khác ngồi file PICtutorial_intro.asm ban đầu hình sau: nguyenvanbientbd47@gmail.com Hình 2.4: Các file tạo sau dịch File ERR lưu thông báo lỗi Nhưng số lỗi khơng có, chả có để xem File LST file LIST Nó trình bày lại file asm ban đầu bạn, thể thành dạng cột, hàng rõ ràng Đồng thời, ghi rõ vị trí lệnh nhớ nạp vào PIC hình sau: nguyenvanbientbd47@gmail.com Hình 2.5: File LIST tạo Những file khác bạn không cần phải quan tâm Mà thực bạn không cần phải quan tâm đến file khác ngoại trừ file HEX tạo Vậy nội dung file HEX gì? Là thứ không đọc không hiểu Vậy khơng cần đọc khơng cần hiểu làm gì, cần xem cho vui thơi Nó sau : nguyenvanbientbd47@gmail.com Bây bạn gắn mạch nạp PG2C vào cổng COM máy tính, có gắn PIC16F628 hình sau : Chúng ta gắn PIC16F628 sau: nguyenvanbientbd47@gmail.com Sau đó, mở chương trình ICPROG lên, chọn loại PIC16F628 chọn file HEX để nạp cho PIC Việc cuối ấn nút Program chương trình nạp ICPROG: Kết quả, bạn có PIC nạp chương trình, cần cắm vào mạch chạy Bật điện, chuyện khơng cịn để nói nguyenvanbientbd47@gmail.com Sau phần này, bạn hình dung giao diện soạn thảo, chương trình dịch, mạch nạp chương trình nạp Quan trọng hơn, thực chất quy trình đầy đủ để bạn làm việc với PIC ngôn ngữ MPASM Chúng chưa đề cập đến vấn đề thực công việc phức tạp, phương thức tạo thư viện để sử dụng sau này, khơng thể đặt mục tiêu biến người chưa biết vi điều khiển thành chun gia lập trình Hơn nữa, chúng tơi chưa chun gia, khơng thể biến bạn thành chuyên gia Trên mà chúng tơi tin bạn thực cho suốt đề tài sinh viên bạn Vậy bạn cần học gì? Những bạn cần học Ở phần trên, bạn thấy để có PIC hoạt động được, bạn phải lập trình máy tính, dùng chương trình dịch để dịch file HEX, dùng chương trình nạp mạch nạp để nạp file HEX vào PIC Sau cùng, bạn gắn PIC vào mạch bật điện cho hoạt động Chúng hay nhắc lại bạn người bắt đầu học để nhắc bạn bạn cần quan tâm đến cần quan tâm Vậy nên, bạn ngồi viết chương trình dịch, khơng thể sáng tạo mạch nạp với chương trình nạp dựa vào tài liệu tiếng mẹ đẻ bạn Kết quả, thứ bạn lựa chọn từ có sẵn Để thuận tiện cho việc lựa chọn bạn, liệt kê chương trình dịch, chương trình nạp mạch nạp mà biết, sử dụng, kèm theo số lời khuyên cho việc lựa chọn bạn Như vậy, nội dung mà đề cập chủ yếu tài liệu này, hướng dẫn bạn viết chương trình máy tính, hiểu bạn viết máy tính, vi điều khiển thực thi nào, để từ bạn tạo cho ứng dụng riêng Nhưng nói trước đây, việc lập trình giao diện soạn thảo trở nên đơn giản, 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, nói đến lập trình ngơn ngữ đó, đồng nghĩa kèm với môi trường làm việc ngôn ngữ giao diện soạn thảo trình dịch từ ngơn ngữ file HEX Trong tài liệu này, chọn ngôn ngữ MPASM, CCS C HT PIC để hướng dẫn bạn Vì vậy, tạm thời gác lại ngôn ngữ khác C17, C18 (dùng cho PIC18F), C30 (dùng cho dsPIC), số ngôn ngữ PICBasic, ngôn ngữ C khác nguyenvanbientbd47@gmail.com Ngồi ra, ngơn ngữ trên, HT PIC cung cấp chương trình dịch kèm, cho phép nhúng vào mơi trường làm việc MPLAB IDE, vậy, giao diện làm việc HT PIC giao diện làm việc MPASM, mơi trường MPLAB nguyenvanbientbd47@gmail.com Giao diện môi trường MPLAB IDE Giao diện môi trường CCS C nguyenvanbientbd47@gmail.com Các bạn muốn học theo tài liệu hướng dẫn này, chắn bạn phải sử dụng ba mơi trường làm việc Mơi trường MPLAB IDE nhúng CCS C, HT PIC, C17, C18, C30… nhiều ngơn ngữ lập trình khác vào mơi trường Tuy nhiên, chúng tơi khun rằng, bạn làm việc với hệ thống CCS C, bạn làm việc mơi trường Bởi mơi trường thiết lập cho ngơn ngữ, người lập trình làm cho đơn giản dễ dàng cho người dùng Trong đó, MPLAB IDE phải thiết kế giao diện phù hợp với tất ngôn ngữ, phức tạp MPLAB IDE cung cấp miễn phí www.microchip.com CCS C bán www.ccsinfo.com, chương trình demo dùng 30 ngày HT PIC sử dụng 30 ngày miễn phí www.hitech.com Chúng tơi download sẵn chương trình đĩa CD có hướng dẫn cài đặt cho bạn (C:// Chuong trinh dich) Mạch nạp chương trình nạp nguyenvanbientbd47@gmail.com Mạch nạp Kết nối máy tính COM COM IC Prog IC Prog COM IC Prog PG2C COM IC Prog PG3B Cổng ICProg, ProPIC2 máy in LPT ICProg COM ICProg COM Tương thích PICStart Plus, dùng MPLAB để nạp USB Tương thích PICStart Plus JDM JDM modified PG1D PG4B PG5V2 MCP-PIC MCP-USB ICD1 COM ICD COM Warp13A COM PIC16Pro40 LPT ProPIC2 COM Labtools LPT Start Kit PM2, PM3 ICD1 Mirochip USB COM, USB – COM Chương trình nạp Ghi Mạch điển hình, dễ làm Thay đổi JDM cho chế độ nạp tốt hơn, dễ làm Giống JDM, dùng để nạp ICSP, kích thước nhỏ, đơn giản Giống JDM, sử dụng linh kiện dễ kiếm Việt Nam (*****) Nạp nhanh (*****) Chính mạch JDM modified (****) Nạp chậm, đắt tiền Thêm FT232 để tạo cổng COM ảo USB Thuận tiện di chuyển, không dùng nguồn Giá cao Nạp chậm MPLAB Giá cao, dùng cho số loại thông dụng Chức In Circuit Debugger MPLAB Rất mạnh, nạp nhiều loại Chức In circuit debugger Tương thích PICStart Nạp nhanh, giá cao MCP Plus WinPICProg Mạch nạp điển hình Nigel Goodwin, dùng để giảng dạy nhiều trường đại học giới ICPROG, Propic2 Có hai phần, phần thơng thường tự làm, phần có debugger phải mua, giá cao Labtools Giá cao, nạp đa dụng, không phù hợp với việc chuyên nạp PIC MPLAB Nạp số loại, tự làm MPLAB Giá cao, không nên quan tâm chưa có nhu cầu MPLAB Giá cao, khơng phù hợp Chức ICD nguyenvanbientbd47@gmail.com ICD2 – USB Microchip MPLAB Giá cao, không phù hợp Chức ICD Tất mạch ngun lý chương trình nạp có CD, ngồi ra, CD có chương trình mạch nạp không liệt kê Một số mạch nạp khơng có sơ đồ ngun lý khơng cho miễn phí Riêng mạch MCP-USB, chúng tơi làm dự kiến bán thời gian tới Tuy nhiên, mạch giá linh kiện cao, thiết nghĩ không phù hợp với sinh viên, tốc độ nạp lại chậm Chỉ phù hợp với bạn muốn làm thực nghiệm với nhiều loại vi điều khiển khác để thực sản phẩm thương mại Ngồi cách nạp chương trình thơng thường mạch nạp (programmer), bạn cịn có cách nạp khác, tận dụng chức self-programming PIC, bootloader Tuy nhiên, chưa trình bày cho bạn cấu trúc nhớ PIC, đó, chúng tơi tạm gác phần giới thiệu bootloader lại cho phần sau Dụng cụ học tập bạn đâu ? Điều bạn cần có PIC16F628A 16F877A Các bạn tìm thấy PIC chợ điện tử Hàng Trống – Hà Nội Nhật Tảo – TPHCM Tuy nhiên, bạn mua PIC thơng qua số người bán lẻ www.diendandientu.com, theo tham khảo giá PIC diễn đàn tương đối rẻ so với giá PIC chợ điện tử Công việc thứ hai, bạn cần phải cài đặt phần mềm cần thiết để bắt đầu học lập trình Các chương trình MPLAB IDE, CCS C HT PIC có sẵn đĩa CD, bạn nên xem hướng dẫn đĩa CD cài đặt theo hướng dẫn Tiếp theo, bạn cần có mạch nạp để nạp cho PIC Chúng tơi lựa chọn mạch nạp PG2C ví dụ điển hình để hướng dẫn bạn cách làm mạch thao tác với chương trình nạp ICProg Lý chúng tơi lựa chọn mạch nạp tương đối dễ làm, giá linh kiện để thực mạch nạp tương đối rẻ Trong CD, có cung cấp sơ đồ nguyên lý, mạch in file ORCAD mạch nạp Cuối cùng, bạn cần chép file thư mục ICProg vào ổ đĩa cứng để chạy, chương trình khơng cần cài đặt Do có nhiều vấn đề hỏi xung quanh ICProg, chúng tơi trình bày phần cài đặt chương trình cách cụ thể tài liệu hướng dẫn Khi chép vào đĩa cứng, cần phải chép đầy đủ thư mục vào đĩa cứng tạo shortcut desktop để tiện việc sử dụng sau nguyenvanbientbd47@gmail.com Chạy chương trình ICProg.exe Bỏ qua tất thơng báo lỗi để mở chương trình Chọn Settings >> Clear Settings nguyenvanbientbd47@gmail.com Sau nhấn Yes liên tục, hình Hardware settings Do chọn dùng nạp PG2C nạp phát triển JDM, phần Programmer chọn JDM Programmer Phần Ports, chọn COM COM tùy theo máy tính bạn Tuy nhiên, thường nên chọn COM 2, COM COM COM thường hay dùng cho công việc khác Phần Interface, bạn chọn Windows API phần Communication bạn khơng đánh dấu Các bạn nhấn OK Khi sử dụng Windows API, bạn không cần quan tâm đến phần I/O Delay nguyenvanbientbd47@gmail.com Màn hình ban đầu sau khởi động lại IC-Prog hình Chúng ta chọn Settings >> Options để tiếp tục cài đặt cho IC-Prog Màn hình Options Các bạn quan tâm tới phần Misc, cịn phần khác khơng cần quan tâm Cứ để mặc định chương trình ban đầu có nguyenvanbientbd47@gmail.com Các bạn chọn Enable Vcc control for JDM, sau chọn tiếp Enable NT/2000/XP Driver Khi bạn chọn Enable Driver xong, có hình Confirm lên hình Các bạn nhấn Yes để cài đặt Lưu ý rằng, driver nằm sẵn thư mục ICProg mà bạn chép sang Do vậy, ICProg tự động nhận khởi động lại ICProg Một hình Confirm khác để yêu cầu bạn xác nhận việc cài đặt driver cho Windows NT/2000/XP Các bạn chọn Yes Như vậy, cơng việc cài đặt hồn tất Chúng hướng dẫn bạn cài đặt theo bước nay, đa số bạn chọn Windows XP để sử dụng Windows 98se khơng cịn phổ biến Nếu bạn dùng Windows 98se bạn chọn Interface Direct I/O thay chọn Windows API, bạn để nguyên I/O Delay (10) mặc định Tốc độ nạp nhanh hơn, nhiên tạm gác lại chuyện Sau cài đặt chương trình MPLAB IDE, CCS C, HT PIC IC-Prog, bạn hoàn tất học thứ cho việc chuẩn bị dụng cụ học tập máy tính Bài học thứ hai, hồn tồn khơng liên quan đến vi điều khiển, thiết nghĩ lại cần thiết cho bạn việc làm mạch chạy cho vi điều khiển sau này, việc làm mạch in Trong học này, lấy việc làm mạch nạp PG2C làm thí dụ Như vậy, vừa làm dụng cụ học tập nữa, lại vừa tiết kiệm thời gian Điện tử dùng cho vi điều khiển Đã có nhiều bạn đặt câu hỏi điều vô đơn giản nên chọn điện trở nào, lại mắc chân linh kiện thế… ? Những điều thật khó trả lời q đơn giản với bạn học điện tử, lại dường mơ hồ với bạn học, bạn chưa tận mắt thấy điện trở, transistor, hay diode thực tế Hướng dẫn làm mạch in ... trước đây, việc lập trình giao diện soạn thảo trở nên đơn giản, 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, nói đến lập trình ngơn ngữ... học Ở phần trên, bạn thấy để có PIC hoạt động được, bạn phải lập trình máy tính, dùng chương trình dịch để dịch file HEX, dùng chương trình nạp mạch nạp để nạp file HEX vào PIC Sau cùng, bạn gắn... chuyên gia lập trình Hơn nữa, chúng tơi chưa chun gia, khơng thể biến bạn thành chuyên gia Trên mà chúng tơi tin bạn thực cho suốt đề tài sinh viên bạn Vậy bạn cần học gì? Những bạn cần học Ở phần