Trường ĐH. Bách Khoa TP.HCMhttp://www.ebook.edu.vnKhoa KH & KTMTNếu việc build thất bại, nhưng việc này thì không mong muốn, ta có thấy kết quảnhư hình sau:Bộ môn Kỹ Thuật Máy Tính9Thực hành Vi xử lýTrường ĐH. Bách Khoa TP.HCMhttp://www.ebook.edu.vnKhoa KH & KTMTNếu thành công, ta sẽ thấy hình sau:Nếu việc build đã thành công, chương trình sẽ dịch nut_nhan.asm thànhnut_nhan.hex trong cùng thư mục chương trình nut_nhan.asm.Sau khi đã có được file hex, công việc tiếp theo là làm thế nào để nạp được fileHex xuống board. Đầu tiên là chọn mạch nạp bằng cách vào menu Programmer ->Select Programmer -> Mplab ICD2 như hình sau :Sau khi chọn Mplab ICD2 xong thì ta sẽ thấy giao diện như sau:Bộ môn Kỹ Thuật Máy Tính10Thực hành Vi xử lýTrường ĐH. Bách Khoa TP.HCMhttp://www.ebook.edu.vnKhoa KH & KTMTLúc này để nạp chương trình ta chỉ cần vào menu Programmer -> Program nhưhình sau là có thể nạp được chương trình.Sau khi nhấn Program nếu download xuống chip thành công thì ta sẽ thấy hiển thịra cửa sổ Output như sau:MPLAB ICD 2 ReadyProgramming Target……Validating configuration fields…Erasing Part…Programming Program Memory (0x0 – 0x3F)Verifying……Program Memory…Verify SucceededProgramming Configuration Bits.. Config MemoryVerifying configuration memory……Verify Succeeded…Programming succeededBộ môn Kỹ Thuật Máy Tính11Thực hành Vi xử lýTrường ĐH. Bách Khoa TP.HCMhttp://www.ebook.edu.vnKhoa KH & KTMT04-Aug-2009, 14:23:39MPLAB ICD 2 ReadyĐể bắt đầu chạy chương trình ta phải rút dây kết nối mạch nạp và kit ra. Khi đóchương trình mới có thể chạy được.Trên đây là toàn bộ các bước để tạo một project, viết assembly cho Pic trên Mplabcũng như làm thế nào để compile và download chương trình xuống chip để thực thi. Đâylà trường hợp lý tưởng là khi viết code không có lỗi nào xảy ra. Nếu có lỗi nào xảy ra thìta phải debug nó như thế nào. Trong chương này sẽ hướng dẫn các bạn hai cách debug.1.3 Debug dùng MpLab SIMBước 1: Để sử dụng MpLab SIM ta vào menu Debugger -> Select Debugger ->Mplab SIM như hình vẽ sau:Bước 2: Khi đã chọn Mplab SIM xong thì trên menu Debugger có thêm nhiềuchức năng khác để hỗ trợ cho việc debug như hình sau:Bộ môn Kỹ Thuật Máy Tính12Thực hành Vi xử lýTrường ĐH. Bách Khoa TP.HCMhttp://www.ebook.edu.vnKhoa KH & KTMTTừ đây ta đã có thể mô phỏng được chương trình của mình một cách dễ dàng.Ví dụ như Run (F9) dùng để chạy chương trình, chương trình sẽ chạy liên tục đếnkhi nào có breakpoint thì dừng. Vậy làm thế nào để tạo Breakpoint, ta sử dụng lệnhBreakpoints (F2) như trên hình để tạo ra breakpoint tại vị trí hiện tại của con trỏ hoặcdouble click vào hàng code mình mong muốn đặt con trỏ. Hay sử dụng Step Into (F7) đểchạy từng lệnh một, gặp lời gọi hàm thì nó sẽ vào bên trong lời gọi hàm chạy từng lệnhtrong đó. Khác với Step Over (F8) một tí là khi có lời gọi hàm thì Step Over xem như đólà một lệnh bình thường, không đi vào hàm chi tiết như Step Into.Reset: trở về đầu chương trình.Bước 3: Khi debug thì ta cũng cần phải biết giá trị của các thanh ghi cũng như bộnhớ của chip như thế nào, để xem được các giá trị này thì chúng ta qua menu View.Để xem được giá trị của các thanh ghi trong PIC ta chọn View -> File registers sẽ xuấthiện cửa sổ như hình sau:Bộ môn Kỹ Thuật Máy Tính13Thực hành Vi xử lýTrường ĐH. Bách Khoa TP.HCMhttp://www.ebook.edu.vnKhoa KH & KTMTĐể xem được giá trị của các thanh ghi SFR thì ta chọn View -> Special FunctionRegisters sẽ xuất hiện của sổ như hình sau:Hay để xem một và thanh ghi mà ta quan tâm thì có thể dùng Watch để xem bằngcách vào View -> Watch thì hình sau sẽ xuất hiện:Bộ môn Kỹ Thuật Máy Tính14Thực hành Vi xử lýTrường ĐH. Bách Khoa TP.HCMhttp://www.ebook.edu.vnKhoa KH & KTMTMuốn xem thanh ghi nào, ta chỉ việc chọn thanh ghi tương ứng trong comboboxbên trên, sau đó nhấn Add SFR.1.4 Debug onchip dùng Mplab ICD2.Cũng giống như debug trên Mplab SIM, Mplab ICD2 cũng có những tính năngtương tự, nhưng khi sử dụng Mplab ICD2 thì cần phải có mạch debug, và các hiện tượngxảy ra giống như khi chạy thực tế.1.5 Bài tậpBộ môn Kỹ Thuật Máy Tính15Thực hành Vi xử lýTrường ĐH. Bách Khoa TP.HCMBài 2 :http://www.ebook.edu.vnKhoa KH & KTMTKhảo sát cổng xuất nhậpNội dung:Khảo sát hoạt động của nút nhấn, LED.Khảo sát các thanh điều khiển cổng xuất nhập.Tính toán thời gian thực thi lệnh, viết chương trình con làm nhiệm vụ delay.Viết chương trình đọc giá trị của tổ hợp nút nhấn và điều khiển giá trị hiển thịLED.Yêu cầu:Viết chương trình xuất dữ liệu ra 4 led đơn đếm từ 0 -> 15 -> 0. Thời gian giữacác lần đếm lên 1 đơn vị là 1s.Nhập dữ liệu từ nút nhấn RA4. Khi nút RA4 được nhấn thì led đơn RB0 sáng,khi không nhấn RA4 thì led đơn RB0 tắt.2.1 Kiến thức liên quan2.1.1 Các thanh ghi điều khiển cổng xuất nhậpMỗi Port có ba thanh ghi điều khiển hoạt động chính:Các bit trong thanh ghi TRIS: thiết lập chân tương ứng là ngõ vào (logic 1) hoặcngõ ra (logic 0).Các bit trong thanh ghi PORT: đọc mức logic từ chân tương ứng.Các bit trong thanh ghi LAT: ghi mức logic ra chân tương ứng.2.1.2 Kết nối mạchVị trí LED hiển thị và nút nhấn trên board như hình dưới đây:Bộ môn Kỹ Thuật Máy Tính16Thực hành Vi xử lýhttp://www.ebook.edu.vnTrường ĐH. Bách Khoa TP.HCMKhoa KH & KTMTLED hiển thị có kết nối như sau:D2R21470RB0LEDD3R22470RB1LEDD4R23470RB2LEDD5R24470RB3LEDJ612Để LED sáng, J6 phải được nối lại và chân điều khiển tương ứng được thiết lập làngỏ ra và ở mức logic 1.Các nút nhấn có kết nối như sau:VCCVCCVCCR110KR310KR710KD4014007MCLRS1RESETRA4S2SW RA4RB0C1104S3SW RB0C2104Nút nhấn RESET dùng để reset vi điều khiểnNút nhấn RA4, RB0 khi được nhấn sẽ làm cho chân tương ứng ở mức logic 0.Cần thiết lập các chân RA4 và RB0 là ngõ vào.Hiện tượng rung phím:VCCR710KRB0S3SW RB0C2104Khi phím được nhấn, do tác động của hiện tượng rung cơ học, tín hiệu điện tạiBộ môn Kỹ Thuật Máy Tính17Thực hành Vi xử lý