Bài giảng Vi xử lý - Chương 4: Tập lệnh và lập trình điều khiển
lượt xem 35
download
Bài giảng "Vi xử lý - Chương 4: Tập lệnh và lập trình điều khiển" cung cấp cho người học các kiến thức: Tập lệnh vi điều khiển PIC 18F2220, ngôn ngữ lập trình hỗ trợ, công cụ lập trình vi điều khiển. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên Công nghệ thông tin dùng làm tài liệu học tập và nghiên cứu.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Vi xử lý - Chương 4: Tập lệnh và lập trình điều khiển
- dce 2009 Chương 4 - Tập lệnh và lập trình Vi điều khiển 1. Tập lệnh vi điều khiển PIC 18F2220. BK 2. Ngôn ngữ lập trình hổ trợ. TP.HCM 3. Công cụ lập trình vi điều khiển. ©2009, CE Department
- dce 2009 Đặc điểm chung • Có 75 lệnh. • 72 lệnh dài 1 từ nhớ (16 bits). • 3 lệnh dài 2 từ nhớ : – LFSR f,k – CALL n,s – GOTO n • Thời gian thi hành lệnh mất từ 1 đến 3 chu kỳ lệnh (chu kỳ lệnh = 4 chu kỳ xung clock). ©2009, CE Department 2
- dce 2009 Tập lệnh PIC 18F2220 • Chia thành 4 nhóm: – Xử lý bộ nhớ dữ liệu byte (trực tiếp, tương đối theo bank và gián tiếp). – Xử lý bộ nhớ dữ liệu bit (trực tiếp, tương đối theo bank và gián tiếp). – Xử lý dữ liệu tức thời. – Điều khiển. • Toán hạng sử dụng trong mỗi nhóm cũng khác nhau. ©2009, CE Department 3
- dce 2009 Xử lý dữ liệu byte • Các toán hạng sử dụng: – Ô nhớ RAM (hay còn gọi là thanh ghi) : • Ký hiệu f = địa chỉ 8 bit (00 - FF). • Ký hiệu fs hay fd = địa chỉ 12 bit (000 - FFF). – Nơi chứa kết quả (ký hiệu d): • d=0 : kết quả chứa trong WREG. • d=1 : kết quả chứa trong thanh ghi f. – Cách định địa chỉ (ký hiệu a): • a=0 : dùng bank truy xuất trực tiếp (bỏ qua BSR). • a=1 : định địa chỉ gián tiếp theo Bank (dùng BSR). ©2009, CE Department 4
- dce 2009 Xử lý dữ liệu byte (tt.1) • Các lệnh trong nhóm này : – Chuyển byte: • MOVF f, d, a • MOVFF fs, fd • MOVWF f, a – Đổi chỗ nửa byte: • SWAPF f, d, a – Khởi động: • SETF f, a • CLRF f, a – Tăng/giảm/đảo dấu: • INCF f, d, a • DECF f, d, a • NEGF f, a ©2009, CE Department 5
- dce 2009 Xử lý dữ liệu byte (tt.2) – Cộng/trừ: • ADDWF f, d, a • ADDWFC f, d, a (cộng có nhớ) • SUBWF f, d, a • SUBWFB f, d, a (trừ có mượn) • SUBFWB f, d, a (trừ có mượn) – Nhân WREG với f, kết quả trong PRODH-PRODL: • MULWF f, a – So sánh f với WREG - bỏ qua lệnh kế: • CPFSLT f, a (nếu ) – Kiểm tra f - bỏ qua lệnh kế nếu f = 0: • TSTFSZ f, a ©2009, CE Department 6
- dce 2009 Xử lý dữ liệu byte (tt.3) – Tăng/giảm - bỏ qua lệnh kế: • INCFSZ f, d, a (tăng f, bỏ qua nếu = 0) • INFSNZ f, d, a (tăng f, bỏ qua nếu 0) • DECFSZ f, d, a (giảm f, bỏ qua nếu = 0) • DCFSNZ f, d, a (giảm f, bỏ qua nếu 0) – Luận lý: • COMF f, d, a (phép NOT f) • ANDWF f, d, a (phép AND WREG với f) • IORWF f, d, a (phép OR WREG với f) • XORWF f, d, a (phép XOR WREG với f) – Quay : • RLCF f, d, a (quay trái f qua CF) • RLNCF f, d, a • RRCF f, d, a (quay phải f qua CF) • RRNCF f, d, a ©2009, CE Department 7
- dce 2009 Xử lý dữ liệu bit • Các toán hạng sử dụng: – Thanh ghi : ký hiệu f (00 - FF). – Thứ tự bit trong thanh ghi f : ký hiệu b (0 - 7). – Cách định địa chỉ : ký hiệu a (0 hoặc 1). ©2009, CE Department 8
- dce 2009 Xử lý dữ liệu bit (tt.) • Các lệnh trong nhóm này : – Xóa bit b của thanh ghi f: • BCF f, b, a – Lập bit b của thanh ghi f: • BSF f, b, a – Đảo bit b của thanh ghi f: • BTG f, b, a – Kiểm bit b của thanh ghi f - bỏ qua lệnh kế: • BTFSC f, b, a (bỏ qua nếu b=0) • BTFSS f, b, a (bỏ qua nếu b=1) ©2009, CE Department 9
- dce 2009 Xử lý dữ liệu tức thời • Các toán hạng sử dụng: – Giá trị tức thời được nạp vào thanh ghi (ký hiệu k). – Thanh ghi FSR chứa ký tự (ký hiệu f). – Không có toán hạng (ký hiệu --). ©2009, CE Department 10
- dce 2009 Xử lý dữ liệu tức thời (tt.) • Các lệnh trong nhóm này : – Chuyển số tức thời vào BSR : MOVLB k – Chuyển số tức thời vào WREG : MOVLW k – Chuyển số tức thời vào FSRx : LFSR f, k – Cộng WREG với giá trị tức thời: ADDLW k – Trừ WREG với giá trị tức thời: SUBLW k – Nhân số tức thời với WREG: MULLW k – Luận lý: ANDLW k IORLW k XORLW k - Trở về từ chương trình con và chuyển k vào WREG: RETLW k ©2009, CE Department 11
- dce 2009 Xử lý dữ liệu trong flash ROM • Dùng định vị gián tiếp: – Địa chỉ 21 bit chứa trong thanh ghi TBLPTR. – Dữ liệu chứa trong thanh ghi TABLAT. • Các lệnh trong nhóm này : – Đọc bảng : TBLRD* – Đọc bảng và tăng địa chỉ sau: TBLRD*+ – Đọc bảng và giảm địa chỉ sau: TBLRD*- – Tăng địa chỉ trước và đọc bảng: TBLRD+* – Ghi bảng : TBLWT* – Ghi bảng và tăng địa chỉ sau: TBLWT*+ – Ghi bảng và giảm địa chỉ sau: TBLWT*- – Tăng địa chỉ trước và ghi bảng: TBLWT+* ©2009, CE Department 12
- dce 2009 Xử lý dữ liệu RAM gián tiếp • Dùng định vị gián tiếp: – Địa chỉ 12 bit chứa trong các thanh ghi FSR0, FSR1 và FSR2. – Dữ liệu chứa trong thanh ghi f có địa chỉ trong FSRn. • Truy xuất dữ liệu gián tiếp theo một trong 5 cách : – Dùng thanh ghi INDFn : không đổi FSRn sau khi truy xuất. – Dùng thanh ghi POSTDECn : giảm FSRn sau khi truy xuất. – Dùng thanh ghi POSTINCn : tăng FSRn sau khi truy xuất. – Dùng thanh ghi PREINCn : tăng FSRn trước khi truy xuất. – Dùng thanh ghi PLUSWn : dùng thanh ghi WREG như thanh ghi chỉ số để truy xuất cùng với FSRn, không thay đổi WREG và FSRn sau khi truy xuất. ©2009, CE Department 13
- dce 2009 Nhóm lệnh điều khiển • Các toán hạng sử dụng: – Địa chỉ bộ nhớ chương trình (ký hiệu n). – Cách thức gọi và trở về (ký hiệu s). – Cách thức đọc/ghi bảng (ký hiệu m). – Không dùng toán hạng (ký hiệu --) ©2009, CE Department 14
- dce 2009 Nhóm lệnh điều khiển (tt.1) • Các lệnh trong nhóm này : – Rẻ nhánh không điều kiện với độ dời k 20 bit: • GOTO k (địa chỉ nơi đến xác định tuyệt đối: k PC) – Rẻ nhánh không điều kiện với độ dời n 11 bit: • BRA n (địa chỉ nơi đến xác định tương đối: (PC)+2+2n PC) – Rẻ nhánh có điều kiện với độ dời n 8 bit: (PC)+2+2n PC • BC n (rẻ nhánh nếu CF=1) • BNC n (rẻ nhánh nếu CF=0) • BN n (rẻ nhánh nếu NF=1) • BNN n (rẻ nhánh nếu NF=0) • BOV n (rẻ nhánh nếu OF=1) • BNOV n (rẻ nhánh nếu OF=0) • BZ n (rẻ nhánh nếu ZF=1) • BNZ n (rẻ nhánh nếu ZF=0) ©2009, CE Department 15
- dce 2009 Nhóm lệnh điều khiển (tt.2) – Gọi chương trình con với độ dời k 20 bit: CALL k, s • Lưu địa chỉ trở về (PC)+4 vào stack. • Nếu s=1, lưu WREG, STATUS và BSR vào các thanh ghi WS, STATUSS và BSRS. • Rẻ nhánh đến địa chỉ tuyệt đối: k PC – Gọi chương trình con tương đối với n 11 bit: RCALL n • Lưu địa chỉ trở về (PC)+2 vào stack. • Rẻ nhánh đến địa chỉ tương đối: (PC)+2+2n PC – Trở về từ chương trình con: • RETURN s – Trở về từ chương trình con với số tức thời k 8 bit trong WREG: • RETLW k • Ví dụ : tra bảng dữ liệu bình phương trong bộ nhớ chương trình ©2009, CE Department 16
- dce 2009 Nhóm lệnh điều khiển (tt.2) MOVLW 3 CALL TABLE ; W chứa độ dời trong bảng (0-255) ... TABLE ADDWF PCL ; W = độ dời RETLW 0 ; đầu bảng RETLW 1 RETLW 4 RETLW 9 RETLW 16 RETLW 25 ; cuối bảng Sau khi gọi TABLE, WREG có giá trị là 9=32 – Trở về từ chương trình con cho phép ngắt quãng: • RETFIE s ©2009, CE Department 17
- dce 2009 Nhóm lệnh điều khiển (tt.3) – Lệnh về Stack: • PUSH ((PC+2) TOS) • POP (TOS được lấy ra khỏi Stack và bỏ đi) – Xóa Watchdog timer: • CLRWDT – Chỉnh dạng thập phân cho WREG: • DAW – Khởi động máy mềm: • RESET – Vào chế độ chờ (Standby): • SLEEP – Không làm gì cả: • NOP (có 2 lệnh với opcode 0000 và Fxxx) ©2009, CE Department 18
- Hợp ngữ PIC mpasm
- HỢP NGỮ PIC mpasm Phần mềm sử dụng : mpasmwin mplink mplib Dạng sử dụng : Tích hợp vào MPLAB IDE (thí nghiệm Vxl-Vđk). Dùng giao diện windows (mpasmwin.exe). Thông số dòng lệnh (dùng trong command prompt). Môn Vi xử lý Vi điều khiển Khoa Khoa học & Kỹ thuật máy tính Chương 4 : Tập lệnh và lập trình vi điều khiển Trường ĐH Bách Khoa Tp.HCM Slide 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Vi xử lý và Lập trình hợp ngữ
54 p | 388 | 100
-
Bài giảng Vi xử lý – Vi điều khiển
222 p | 165 | 26
-
Bài giảng Vi xử lý: Phần 1 - Đại học Công nghiệp TP. HCM
99 p | 183 | 25
-
Bài giảng Vi xử lý - Chương 9: Ứng dụng
17 p | 136 | 19
-
Bài giảng Vi xử lý: Phần 2 - Đại học Công nghiệp TP. HCM
99 p | 101 | 12
-
Bài giảng Vi xử lý: Chương 3.1 - Bùi Minh Thành
101 p | 119 | 11
-
Bài giảng Vi xử lý: Chương 5 - Bùi Minh Thành (tt)
84 p | 132 | 11
-
Bài giảng Vi xử lý: Chương 5 - Bùi Minh Thành
140 p | 136 | 10
-
Bài giảng Vi xử lý: Chương 3.4 - Bùi Minh Thành
75 p | 95 | 8
-
Bài giảng Vi xử lý: Chương 3.7 - Bùi Minh Thành
26 p | 104 | 7
-
Bài giảng Vi xử lý: Chương 1 - Bùi Minh Thành
135 p | 85 | 7
-
Bài giảng Vi xử lý- Chương 6: Giao tiếp ngoại vi
41 p | 99 | 6
-
Bài giảng Vi xử lý: Chương 3.6 - Bùi Minh Thành
39 p | 79 | 6
-
Bài giảng Vi xử lý: Chương 3.8 - Bùi Minh Thành
49 p | 87 | 6
-
Bài giảng Vi xử lý: Chương 3.9 - Bùi Minh Thành
48 p | 82 | 6
-
Bài giảng Vi xử lý - Chương 10: Vi điều khiển H8
55 p | 110 | 5
-
Bài giảng Vi xử lý - Chương 8: Các chức năng đặc biệt
64 p | 89 | 5
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn