[Pick the date] Tạo project với MPLAB, trình biên dịch CCS, program và debug với PICKit2 1. Cài đặt phần mềm MPLAB IDE v8.92 2. Cài đặt phần mềm CCS PIC C Compiler 3. Tạo project trên MPLAB với trình biên dịch CCS 3.1 Tạo project sử dụng trình biên dịch CCS Vào Menu Project Project Wizard Click Next đến cửa sổ chọn loại PIC phù hợp 1
[Pick the date] Click Next đến cửa sổ chọn trình biên dịch CCS(có thể chọn các loại trình biên dịch khác như XC8 Tool, C18 Tool ) Click Next đến cửa sổ chọn đường dẫn cho project 2
[Pick the date] Save in : Vị trí tạo Project File name : Tên project Click Save để đến cửa sổ lưu đường dẫn project 3
[Pick the date] Click Next đến cửa sổ Add file. Nếu đã tồn tại các file.c hoặc.h thì chọn đường dẫn và add vào thư mục chứa project. Nếu chưa có thì Click Next để hoàn thành các bước tạo project 4
[Pick the date] Click Finish để hoàn thành. 5
[Pick the date] Giao diện chương trình như sau: Tạo File code và add các file thư viện Vào mục File New (hoặc tổ hợp phím Ctrl + N) để tạo ra 1 file trống 6
[Pick the date] Lập trình và lưu file, ở đây lấy tên main.c Bước tiếp theo là add file vừa mới lưu (main.c) và thư mục Source File của project. Click chuột phải vào Source File và chọn Add Files 7
[Pick the date] Chọn đường dẫn đến file main.c trong cùng thư mục và click Open Tiếp theo ta tiếp tục Add các file header vào Header Files trên cây thư mục Tiến hành chỉnh sửa code và build chương trình 3.2 Build chương trình 8
[Pick the date] Trên thanh công cụ có các Button phục vụ cho việc Build chương trình Click vào biểu tượng lỗi cú pháp trong chương trình để tiến hành build chương trình. Kiểm tra tất cả các Quan sát tại cửa sổ Output, tab Build, đã xuất hiện lỗi ở dòng 33. Click đúp vào dòng lỗi, vị trí lỗi sẽ được đánh dấu trong khung chương trình. Lỗi ở đây có tên là Expect ; thông báo cho ta dòng lệnh sai cú pháp là thiếu dấu chấm phẩy. 9
[Pick the date] Thêm dấu ; vào dòng lệnh và tiến hành Build chương trình một lân nữa. Chương trình đã hết lỗi và bước tiếp theo là debug chương trình. 3.3 Gỡ lỗi chương trình Các lỗi cú pháp đều được sửa chữa trong quá trình Build ở trên. Trong bước này, ta tiến hành debug chương trình để gỡ lỗi hệ thống. Các lỗi hệ thống ở đây là các lỗi xuất hiện khi người viết chưa quản lý hoàn thiện khung chương trình, dẫn đến thiết bị phần cứng hoạt động không theo ý muốn của người lập trình. Để thực hiện được quá trình Debug, ta phải kết nối PICKit2 vào PC và mạch vi xử lý. Vào tab Debugger Select tool PICKit2 10
[Pick the date] Hình MPLAB xác nhận đã nhận được PICKit2 ViCHIP Trong quá trình debug cho chương trình, phải bảo đảm đã sửa hết tất cả các lỗi cú pháp. Quan sát giá trị thanh ghi và các biến của chương trình trong cửa sổ Watch Vào menu View Watch Chèn thêm vào cửa sổ quan sát các thanh ghi dùng chung bằng nút bấm Add SFR; chèn thêm vào cửa sổ quan sát các biến xuất hiện trong chương trình bằng nút bấm Add Symbol Quan sát cửa sổ Stack : Vào Menu View Hardware stack Bộ công cụ Debug bao gồm các chức năng sau đây: Nút Reset Nút Run phím tắt F6 : Reset chip phím tắt F9 : Run toàn bộ chương trình 11
[Pick the date] Nút Step Into trình con phím tắt F7 : chạy từng dòng lệnh và đi vào chương Nút Step Over phím tắt F8 : chạy từng dòng lệnh và bỏ qua chương trình con Lệnh Animate thì không có phím tương ứng, ta phải chọn lệnh trong menu Debugger hoặc chọn trên thanh công cụ Với các phím F7 và F8, ta sẽ thấy con trỏ mô phỏng hình mũi tên màu xanh (cho biết vị trí lệnh sắp được thực thi), di chuyển mỗi khi nhấn phím. Với phím F9 hay Animate thì con trỏ mô phỏng sẽ không được cập nhật cho đến khi phím Halt (F5) được nhấn Lấy ví dụ, ở đây ta sẽ dùng PICKit2 để dubug chương trình đơn giản là ấn button RA2 để đảo trạng thái led RA1 và tăng giá trị biến đếm i lên 1 đơn vị. Chương trình được viết như sau: #include "main.h" int8 i = 0; void main() { TRISA = 0X04; TRISB = 0X00; TRISD = 0XFF; while(true) { if(sw1) { 12
[Pick the date] while(!sw1); LED = ~LED; i++; } }} Thực hiện các thao tác như đã trình bày, ta có giao diện chương trình như sau: Liên tục bấm F7 cho đến con trỏ nhàu vào vòng lặp vô hạn. Rõ ràng ta thấy button RA2 chưa được bấm nhưng trạng thái led RA1 vẫn luôn bị đảo và vòng lệnh không thoát ra khỏi cấu trúc if(sw1) được. Điều này có nghĩa là trạng thái này luôn đúng và chương trình luôn thực hiện các câu lệnh bên trong cấu trúc if này. Kiểm tra lại phần cứng kết nối ta có sơ đồ nguyên lý như sau: 13
[Pick the date] VCC R2 10K R3 470 SW2 BUTTON RA2 D1 LED 0 RA1 Như vậy ta thấy RA2 được tích cực mức thấp, như vậy cấu trúc if phải được sửa lại như sau: if(!sw1) Build lại chương trình và tiến hành debug trở lại. Ấn F7 liên tục cho đến khi con trỏ vào vòng lặp vô hạn. Rõ ràng lúc này ta thấy trạng thái led không đổi và con trỏ không thực hiện các lệnh bên trong cấu trúc if. Ấn button RA2 trên board mạch đích và giữ nguyên, tiếp tục bấm F7, khi đó, con trỏ sẽ thực hiện cấu trúc if, led thay đổi trạng thái và biến đếm tăng lên 1 Như vậy chương trình đã hoặt động đúng như yêu cầu đặt ra. Bước tiếp theo ta thực hiện Nạp chương trình vào chip. 14
[Pick the date] 3.4 Nạp chương trình vào chip Chuyển từ chế độ debug sang chế độ program. Vài menu Programer Select programer PICKit2, cửa sổ confirm hiện ra Tương tự như khi chuyển chế độ từ program sang debug. Click OK để xác nhận Bộ công cụ Programer bao gồm các phím bấm sau đây: Nút bấm Program the target device vào chip : Nạp chương trình đã biên dịch Nút bấm Read target device memory chip lên PC : đọc ngược chương trình từ Nút bấm Verify the content of the target device :Kiểm tra trạng thái KIT kết nối Nút bấm Erase target device memory : xóa nội dung bộ nhớ của chip Nút bấm MCLR : đưa trạng thái chân MCLR của chip lên Vcc hoặc xuống GND Nút bấm Re-establish PICKit2 connection : Thử kết nối lại PICKit với PC Để nạp chương trình, click nút Program trên thanh công cụ, sau đó click MCLR sườn lên để xem kết quả trên mạch thật 15
[Pick the date] 16