intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Chương 3: Tập lệnh PIC16F8xx

Chia sẻ: Nguyễn Nguyễn | Ngày: | Loại File: PDF | Số trang:64

116
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mời các  bạn tham khảo bài giảng Chương 3: Tập lệnh PIC16F8xx sau đây để nắm bắt những kiến thức về cấu trúc của lệnh PIC16F8xx; tập lệnh; các chỉ dẫn lệnh và trình biên dịch. Đây là những kiến thức mà các bạn chuyên ngành Công nghệ thông tin cần nắm, ngoài ra các bạn quan tâm đến tập lệnh PIC16F8xx cũng có thể tham khảo tài liệu này. 

Chủ đề:
Lưu

Nội dung Text: Bài giảng Chương 3: Tập lệnh PIC16F8xx

  1. CHƯƠNG 3 TẬP LỆNH PIC16F8xx
  2. CHƯƠNG 3: TẬP LỆNH PIC16F8xx 1. Cấu trúc của lệnh - Các lệnh sẽ được nạp vào bộ nhớ chương trình. - Mỗi lệnh PIC16Fxx cấu tạo bởi 1 word = 14 bit. - Cấu trúc lệnh được phân theo 3 loại: + Các lệnh thao tác định hướng theo Byte ( Byte-oriented File Register Operations) + Các lệnh thao tác định hướng theo Bit ( Bit-oriented File Register Operations) + Các lệnh thao tác với giá trị HẰNG SỐ hoặc ( Literal and Control Operations) NHÃN.
  3. CHƯƠNG 3: TẬP LỆNH PIC16F8xx a. Cấu trúc một dòng lệnh [ NHÃN ] LỆNH Tham số1, Tham số2 - NHÃN: là Tên đánh dấu vị trí dòng lệnh nào đó trong chương trình, được dùng với lệnh nhảy tới Nhãn GOTO hoặc lệnh gọi chương trình con CALL - Lệnh và Tham số: một lệnh có thể có 1 hoặc 2 hay không có tham số nào, tham số là đối tượng lệnh thực hiện. Ví dụ: MOVLW 00h BSF 03h,5
  4. CHƯƠNG 3: TẬP LỆNH PIC16F8xx b. Cấu trúc lệnh thao tác định hướng theo Byte - OPCODE: mã địa chỉ của lệnh (mã lệnh). - d (Destination select): bit chọn thanh ghi đích đến. + d=0 kết quả lưu vào thanh ghi W + d=1 kết quả lưu vào tập thanh ghi F - F (Register File): các thanh ghi được chỉ định trong lệnh. F có 7bit tương ứng 128 Byte (00h -> 7Fh).
  5. CHƯƠNG 3: TẬP LỆNH PIC16F8xx c. Cấu trúc lệnh thao tác định hướng theo Bit - OPCODE: mã địa chỉ của lệnh (mã lệnh). - b (Bit address): vị trí Bit trong tập thanh ghi F. 3-bit b tương ứng 8 vị trí trong một Byte của tập F. - F (Register File): thanh ghi được chỉ định trong tập F. F có độ rộng 7bit nên gồm 128 Byte ( 00h -> 7Fh ).
  6. CHƯƠNG 3: TẬP LỆNH PIC16F8xx d. Cấu trúc lệnh thao tác với giá trị HẰNG SỐ hoặc NHÃN + k -8Bit: giá trị 8 bit + k -11Bit: giá trị 11 bit hoặc NHÃN khi dùng lệnh GOTO , CALL - OPCODE: địa chỉ của lệnh (mã lệnh). - k (Literal field): có thể là Giá trị hay NHÃN.
  7. CHƯƠNG 3: TẬP LỆNH PIC16F8xx 2. Tập lệnh Bảng tóm tắt Tập lệnh Các lệnh thao tác định hướng theo Byte Cộng W với F AND W với F Xóa F Xóa W Đảo F
  8. CHƯƠNG 3: TẬP LỆNH PIC16F8xx Đảo F Giảm F Giảm F, Nhảy nếu F=0 Tăng F Tăng F, Nhảy nếu F=0 OR (W và F) Di chuyển F Chuyển W vào F Không làm gì Xoay trái F có C
  9. CHƯƠNG 3: TẬP LỆNH PIC16F8xx Xoay phải F có C Lấy F - W Đổi 4bit Cao - 4bit Thấp XOR (W và F) Các lệnh thao tác định hướng theo Bit Xóa Bit trong F Đặt Bit trong F Ktra Bit = 0, Nhảy Ktra Bit = 1, Nhảy
  10. CHƯƠNG 3: TẬP LỆNH PIC16F8xx Các lệnh thao tác với hằng số hoặc Nhãn Cộng k với W AND (k và W) Gọi CT con thực hiện Tắt chế độ WDT Nhảy tới vị trí NHÃN OR (k và W) Chuyển k vào W Thoát từ CT Ngắt Thoát và đặt k vào W
  11. CHƯƠNG 3: TẬP LỆNH PIC16F8xx Thoát CT con Đặt chế độ SLEEP Lấy k - W XOR (k và W)
  12. CHƯƠNG 3: TẬP LỆNH PIC16F8xx 2.1 Nhóm lệnh số học  Cộng với hằng số k - Cú pháp: ADDLW k - Phạm vi: 0 ≤ k ≤ 255 - Thực thi: (W) + k  (W) - Trạng thái ảnh hưởng: C, DC, Z - Diễn giải: Cộng nội dung W với hằng số k-8bit. Kết quả lưu vào W.
  13. CHƯƠNG 3: TẬP LỆNH PIC16F8xx  Cộng thanh ghi - Cú pháp: ADDWF F,d - Phạm vi: 0 ≤ F ≤ 127; d = 0,1 - Thực thi: (W) + (F)  (dest) - Trạng thái ảnh hưởng: C, DC, Z - Diễn giải: Cộng nội dung W với F. Kết quả: lưu vào W nếu d=0. lưu vào F nếu d=1. - Chú ý: Trường hợp ghi d thì có thể ghi trực tiếp tên thanh ghi chứa kết quả W, hoặc không ghi thì Kết quả sẽ lưu vào thanh ghi F.
  14. CHƯƠNG 3: TẬP LỆNH PIC16F8xx  Trừ với hằng số k - Cú pháp: SUBLW k - Phạm vi: 0 ≤ k ≤ 255 - Thực thi: k - (W)  (W) - Trạng thái ảnh hưởng: C, DC, Z - Diễn giải: Lấy hằng số k trừ W. Kết quả lưu vào W.
  15. CHƯƠNG 3: TẬP LỆNH PIC16F8xx  Trừ thanh ghi - Cú pháp: SUBWF F,d - Phạm vi: 0 ≤ F ≤ 127; d = 0,1 - Thực thi: (F) - (W)  (dest) - Trạng thái ảnh hưởng: C, DC, Z - Diễn giải: Trừ nội dung F cho nội dung W. Kết quả: lưu vào W nếu d=0 lưu vào F nếu d=1.
  16. CHƯƠNG 3: TẬP LỆNH PIC16F8xx  Tăng thanh ghi - Cú pháp: INCF F,d - Phạm vi: 0 ≤ F ≤ 127; d = 0,1 - Thực thi: (F) + 1  (dest) - Trạng thái ảnh hưởng: Z - Diễn giải: Tăng nội dung F lên 1 đơn vị. Kết quả: lưu vào W nếu d=0 lưu vào F nếu d=1.
  17. CHƯƠNG 3: TẬP LỆNH PIC16F8xx  Tăng thanh ghi và Nhảy - Cú pháp: INCFSZ F,d - Phạm vi: 0 ≤ F ≤ 127; d=0,1 - Thực thi: (F) + 1  (dest) - Trạng thái ảnh hưởng: Z - Diễn giải: Tăng nội dung F lên 1 đơn vị. Kết quả: lưu vào W nếu d=0 lưu vào F nếu d=1. Nếu kết quả = 0 thì bỏ qua lệnh kế (NOP), và thực hiện lệnh kế tiếp theo. Lệnh mất 2 chu kỳ máy.
  18. CHƯƠNG 3: TẬP LỆNH PIC16F8xx  Giảm thanh ghi - Cú pháp: DECF F,d - Phạm vi: 0 ≤ F ≤ 127; d = 0,1 - Thực thi: (F) - 1  (dest) - Trạng thái ảnh hưởng: Z - Diễn giải: Giảm nội dung F một đơn vị. Kết quả: lưu vào W nếu d=0 lưu vào F nếu d=1.
  19. CHƯƠNG 3: TẬP LỆNH PIC16F8xx  Giảm thanh ghi và Nhảy - Cú pháp: DECFSZ F,d - Phạm vi: 0 ≤ F ≤ 127; d=0,1 - Thực thi: (F) - 1  (dest) - Trạng thái ảnh hưởng: Z - Diễn giải: Giảm nội dung F 1 đơn vị. Kết quả: lưu vào W nếu d=0 lưu vào F nếu d=1. Nếu kết quả = 0 thì bỏ qua lệnh kế (=NOP) và thực hiện lệnh kế tiếp theo. Lệnh mất 2 chu kỳ máy.
  20. CHƯƠNG 3: TẬP LỆNH PIC16F8xx 2.2 Nhóm lệnh Logic  Phép NOT - Cú pháp: COMF F,d - Phạm vi: 0 ≤ F ≤ 127; d=0,1 - Thực thi: (F)\  (dest) - Trạng thái ảnh hưởng: Z - Diễn giải: Đảo nội dung thanh ghi F. Kết quả: lưu vào W nếu d=0 lưu vào F nếu d=1.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0