Thực hành vi xử lý

Chia sẻ: Lê Trung Hiếu | Ngày: | Loại File: PDF | Số trang:79

0
1.235
lượt xem
625
download

Thực hành vi xử lý

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Những kiến thức được diễn đạt trong tài liệu này là những ý kiến mang tính chủ quan mà người viết muốn san sẻ với các bạn đọc có cùng mối quan tâm và chỉ liên quan đến những vấn đề cơ bản của kỹ thuật vi xử lý nói chung, không phải là kiến thức áp dụng cho một loại vi xử lý cụ thể.

Chủ đề:
Lưu

Nội dung Text: Thực hành vi xử lý

  1. ĐẠI HỌC QUỐC GIA TP.HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH THỰC HÀNH VI XỬ LÝ BM Kỹ thuật Máy tính 2009
  2. Giới thiệu
  3. Mục Lục Mục Lục .............................................................................................................................. 1 Bài 1 : Giới thiệu MPLAB IDE và KIT PIC .................................................................. 1 1.1 Môi trường phát triển MPLAB ................................................................................. 1 1.2 Nạp file hex vào vi điều khiển PIC........................................................................... 8 1.3 Debug dùng MpLab SIM ........................................................................................ 12 1.4 Debug onchip dùng Mplab ICD2............................................................................ 15 1.5 Bài tập ..................................................................................................................... 15 Bài 2 : Khảo sát cổng xuất nhập ................................................................................... 16 2.1 Kiến thức liên quan................................................................................................. 16 2.1.1 Các thanh ghi điều khiển cổng xuất nhập ........................................................ 16 2.1.2 Kết nối mạch .................................................................................................... 16 2.2 Các bước hiện thực yêu cầu 1 ................................................................................. 18 2.3 Chương trình mẫu yêu cầu 1................................................................................... 20 2.4 Các bước hiện thực yêu cầu 2 ................................................................................. 21 2.5 Chương trình mẫu yêu cầu 2................................................................................... 22 2.6 Bài tập ..................................................................................................................... 23 Bài 3 : Khảo sát cơ chế ngắt quãng, giao tiếp LCD ký tự ............................................ 24 3.1 Kiến thức liên quan................................................................................................. 24 3.1.1 Tóm tắt các thanh ghi điều khiển ngắt ............................................................. 24 3.2 Các bước hiện thực yêu cầu 1 ................................................................................. 25 3.3 Chương trình mẫu yêu cầu 1................................................................................... 28 3.4 LCD ký tự 2x16 ...................................................................................................... 31 3.4.1 Hình dạng và ý nghĩa các chân: ....................................................................... 31 3.4.2 Tổ chức vùng nhớ của LCD............................................................................. 32 3.4.3 Các lệnh giao tiếp với LCD ............................................................................. 34 3.4.4 Khởi tạo LCD................................................................................................... 35 3.5 Các bước hiện thực yêu cầu 2 ................................................................................. 36 3.6 Bài tập ..................................................................................................................... 41 Bài 4 : Khảo sát bộ định thời ........................................................................................ 42 4.1 Các bước hiện thực yêu cầu 1 ................................................................................. 42 4.2 Chương trình mẫu ................................................................................................... 46 4.3 Bài tập ..................................................................................................................... 48 Bài 5 : Kỹ thuật quét ma trận phím .............................................................................. 49 5.1 Kết nối mạch ma trận phím..................................................................................... 49 5.2 Các bước hiện thực ................................................................................................. 50 5.3 Bài tập ..................................................................................................................... 54 Bài 6 : Kỹ thuật quét LED ............................................................................................ 56 6.1 Cấu tạo LED 7 đoạn và LED ma trận ..................................................................... 56 6.2 Kết nối mạch ........................................................................................................... 58 6.3 Các thanh ghi liên quan và cách điều khiển............................................................ 59 6.4 Các bước hiện thực. ................................................................................................ 62 6.5 Bài tập ..................................................................................................................... 65 Bài 7 : Khảo sát bộ truyền nhận nối tiếp ...................................................................... 66 7.1 Các bước hiện thực. ................................................................................................ 66
  4. 7.2 Chương trình mẫu ................................................................................................... 68 7.3 Bài tập ..................................................................................................................... 70 Bài 8 : Khảo sát khối chuyển đổi A-D.......................................................................... 71 8.1 Các bước hiện thực ................................................................................................. 71 8.2 Bài tập ..................................................................................................................... 72 Bài 9 : Khảo sát các khối chức năng đặc biệt khác ...................................................... 73 9.1 Các bước hiện thực PWM....................................................................................... 73 9.2 Chương trình mẫu ................................................................................................... 74 9.3 Bài tập ..................................................................................................................... 75
  5. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Bài 1 : Giới thiệu MPLAB IDE và KIT PIC Nội dung : Tạo project trên MPLAB IDE. Viết chương trình ASM. Dịch và nạp chương trình vào vi điều khiển PIC. Chạy và gỡ rối chương trình. 1.1 Môi trường phát triển MPLAB Double Click vào biểu tượng MPLAB trên Desktop hoặc theo cách sau: Start -> All Programs -> Microchip -> MPLAB IDE v76.2 -> MPLAB IDE. Từ thanh Menu, click chọn tab Project -> Project Wirazd… Cửa sổ Welcome hiện lên và bạn chọn Next. Bộ môn Kỹ Thuật Máy Tính 1 Thực hành Vi xử lý
  6. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Chọn PIC cần sử dụng tại khung Device >> Click Next: Chọn tool Microchip C18 Toolsuite tại Active Toolsuite. Chọn MPLAB C18 C Compiler tại Tollsuite contents. Nếu lập trình bằng assembly thì ta chon Active Toolsuite theo hình sau: Click Next Bộ môn Kỹ Thuật Máy Tính 2 Thực hành Vi xử lý
  7. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Chọn Browse…. Để chọn thư mục lưu project. Đánh vào tên Project muốn tạo. Save, sau đó chúng ta chọn Next thì hiện ra của sổ như sau: Đây là nơi để các bạn add thư viện cho project. Bộ môn Kỹ Thuật Máy Tính 3 Thực hành Vi xử lý
  8. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Bạn nên add hết các file cần thiết cho việc lập trình trước khi bắt đầu viết chương trình gồm file .lib và file .lkr. Nếu viết chương trình cho con chip nào thì ta lấy file .lib và file .lkr của chíp tương ứng, như hình trên chung ta đang sử dụng chip 18f4550. Click Next. Click Finish. Ta sẽ được một project như hình sau: Bộ môn Kỹ Thuật Máy Tính 4 Thực hành Vi xử lý
  9. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Một project đơn giản nhất phải gồm có 2 thành phần Source files và Hearder Files. Thư mục Source files chứa file text *.asm hoặc file *.c chứa code lâp trình. Thư mục Hearder Files chứa file *.h hoặc *.INC: file có sẵn của microchip. User khai báo dùng loại chip gì => add vào thư mục này. Nếu bạn quên không add các file cần có vào thì làm theo hướng dẫn sau. ADD header file: ( Copy header file vào thư mục chứa project để tiện cho việc sử dụng sau này). Bộ môn Kỹ Thuật Máy Tính 5 Thực hành Vi xử lý
  10. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Chọn header file phù hợp với PIC mình đã chọn. Open. ADD source file: Click chọn New trên toolbar: Cửa sổ hiện lên như sau: Từ Menu bar chọn File >> Save để lưu. Đặt tên và Save với đuôi .c nếu bạn lập trình trên c18 của maplab hoặc .asm nếu bạn lập trình trên assembly. Nhấp phải vào Source Files chọn Add file >>> chọn file chúng ta vừa tạo xong. Bộ môn Kỹ Thuật Máy Tính 6 Thực hành Vi xử lý
  11. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Cửa sổ hiện lên như sau: Chúng ta đã hoàn tất việc add file vào các thư mục Source files và header files. Công việc tiếp theo là viết code ( ở cửa sổ text editor :D:\MAPLAB\Untiled.asm). Ðối với project mà sử dụng cùng 1 loại chip, cùng loại ngôn ngữ lập trình ( ASM hay C) thì chỉ cần tạo 1 lần. Những lần sau, chỉ cần add/ remove file text (*.asm hoặc *.c) vào thư mục Source files. Bộ môn Kỹ Thuật Máy Tính 7 Thực hành Vi xử lý
  12. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT 1.2 Nạp file hex vào vi điều khiển PIC Sau khi tạo được một project, ta tiến hành build nó để tạo ra *.hex. Có thể mô tả công việc như sau: Ví dụ, ta có một chương trình cho PIC như sau: ;=====================================; ; Name: nut_nhan.asm ; Project: Nhap du lieu tu nút nhan RA4. ; Khi nút RA4 du?c nh?n thì led don RB0 sáng, ; Khi không nh?n RA4 thì led don RB0 t?t ; Author: BKIT HARDWARE CLUB ; Homepage: http://www.bkit4u.com/forum ; Creation Date: 7 - 31 - 2009 ;======================================; list p=18f4520 #include p18f4520.inc org 0 goto start start call INIT main BTFSC PORTA,4 ;Wait for SW1 to be pressed GOTO main BSF PORTB,0 ;Turn on LED1. SWOFF BTFSS PORTA,4 ;Wait for SW1 to be released. GOTO SWOFF BCF PORTB,0 ;Switch off LED1. GOTO main ;Repeat sequence. INIT clrf PORTB ; setup portb for outputs bcf TRISB,0 bsf PORTA,4 ; setup porta.4 for input bsf TRISA,4 return END Bây giờ chúng ta lưu chương trình vừa viết thành nut_nhan.asm vào một thư mục đã tạo project phía trên. Để compile chương trình ta vào menu Project -> Build All như hình bên dưới. Bộ môn Kỹ Thuật Máy Tính 8 Thực hành Vi xử lý
  13. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Nế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ính 9 Thực hành Vi xử lý
  14. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Nế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ành nut_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 file Hex 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ính 10 Thực hành Vi xử lý
  15. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Lú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 Ready Programming Target... ...Validating configuration fields ...Erasing Part ...Programming Program Memory (0x0 - 0x3F) Verifying... ...Program Memory ...Verify Succeeded Programming Configuration Bits .. Config Memory Verifying configuration memory... ...Verify Succeeded ...Programming succeeded Bộ môn Kỹ Thuật Máy Tính 11 Thực hành Vi xử lý
  16. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT 04-Aug-2009, 14:23:39 MPLAB 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 Mplab cũng như làm thế nào để compile và download chương trình xuống chip để thực thi. Đây là 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 SIM Bướ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ều chức năng khác để hỗ trợ cho việc debug như hình sau: Bộ môn Kỹ Thuật Máy Tính 12 Thực hành Vi xử lý
  17. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Từ đâ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 đến khi nào có breakpoint thì dừng. Vậy làm thế nào để tạo Breakpoint, ta sử dụng lệnh Breakpoints (F2) như trên hình để tạo ra breakpoint tại vị trí hiện tại của con trỏ hoặc double 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ệnh trong đó. 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ất hiện cửa sổ như hình sau: Bộ môn Kỹ Thuật Máy Tính 13 Thực hành Vi xử lý
  18. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Để xem được giá trị của các thanh ghi SFR thì ta chọn View -> Special Function Registers 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ằng cách vào View -> Watch thì hình sau sẽ xuất hiện: Bộ môn Kỹ Thuật Máy Tính 14 Thực hành Vi xử lý
  19. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Muốn xem thanh ghi nào, ta chỉ việc chọn thanh ghi tương ứng trong combobox bê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ăng tươ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ượng xảy ra giống như khi chạy thực tế. 1.5 Bài tập Bộ môn Kỹ Thuật Máy Tính 15 Thực hành Vi xử lý
  20. Trường ĐH. Bách Khoa TP.HCM Khoa KH & KTMT Bài 2 : Khảo sát cổng xuất nhập Nộ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ữa cá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 quan 2.1.1 Các thanh ghi điều khiển cổng xuất nhập Mỗ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ặc ngõ 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ạch Vị 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ính 16 Thực hành Vi xử lý
Đồng bộ tài khoản