Vi xử lý-Chương 3 pptx

32 381 0
Vi xử lý-Chương 3 pptx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 CHƯƠNG 3 TẬP LỆNH PIC16F8xx 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. 2 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. dụ: MOVLW 00h BSF 03h,5 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). 3 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 ). 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. 4 CHƯƠNG 3: TẬP LỆNH PIC16F8xx Bảng tóm tắt Tập lệnh Cộng W với F AND W với F Xóa F Xóa W Đảo F Các lệnh thao tác định hướng theo Byte 2. Tập lệnh 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 5 CHƯƠNG 3: TẬP LỆNH PIC16F8xx 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 Xoay phải F có C Lấy F - W Đổi 4bit Cao - 4bit Thấp XOR (W và F) 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 6 CHƯƠNG 3: TẬP LỆNH PIC16F8xx Thoát CT con Đặt chế độ SLEEP Lấy k - W XOR (k và W) 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. 7 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. 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. 8 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. 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. 9 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. 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. 10 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. 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. [...]... -END 30 CHƯƠNG 3: T P L NH PIC16F8xx Bài t p 3: S d ng B NG - Xét vai trò c a thanh ghi PC • • • • • 0000 0001 0002 00 03 0004 LOOP MOVLW MOVWF DECFSC GOTO END 0xFF BIEN1 BIEN1 LOOP CHƯƠNG 3: T P L NH PIC16F8xx - S d ng B ng MOVLW 0x04 CALL TABLE ADDWF PCL,1 TABLE retlw 01 retlw 02 retlw 03 retlw 04 (W=04) retlw 05 retlw 06 retlw 07 (PCL=02H) RETURN 31 CHƯƠNG 3: T P L NH PIC16F8xx Bài t p 3: S d... giúp ngư i vi t chương trình d dàng hơn 23 CHƯƠNG 3: T P L NH PIC16F8xx 3. 2 Chương trình đi u khi n a Lưu đ gi i thu t Lưu đ chi ti t Lưu đ t ng quát CHƯƠNG 3: T P L NH PIC16F8xx b C u trúc m t chương trình đi u khi n L a ch n lo i Vi Đi u Khi n: LIST Đ nh nghĩa các Ô nh , Thanh ghi: Kh i t o chương trình chính: EQU ORG So n th o chương trình đi u khi n: K t thúc chương trình: END 24 CHƯƠNG 3: T P L... CHƯƠNG 3: T P L NH PIC16F8xx 3. 3 Các Ch d n l nh (Directive Language) CONFIG C u hình các Bit ch n ch đ ho t đ ng c a PIC DB Lưu các giá tr 8 bit vào b nh chương trình CHƯƠNG 3: T P L NH PIC16F8xx DT T o b ng d li u đ i v i các l nh RETLW EQU Đ t tên cho ô nh hay thanh ghi 25 CHƯƠNG 3: T P L NH PIC16F8xx END K t thúc chương trình INCLUDE Ch n thư vi n c a lo i PIC s d ng CHƯƠNG 3: T P L NH PIC16F8xx LIST... lưu vào F n u d=1 13 CHƯƠNG 3: T P L NH PIC16F8xx Xóa thanh ghi W - Cú pháp: CLRW - Ph m vi: - Th c thi: 00h (W) - Tr ng thái nh hư ng: Z = 1 - Di n gi i: Xóa n i dung thanh ghi W K t qu : W = 00h CHƯƠNG 3: T P L NH PIC16F8xx Xóa thanh ghi F - Cú pháp: CLRF - Ph m vi: - Th c thi: 00h (F) - Tr ng thái nh hư ng: Z = 1 - Di n gi i: Xóa n i dung thanh ghi F K t qu : F = 00h 14 CHƯƠNG 3: T P L NH PIC16F8xx... +L nh m t 2 chu kỳ máy 22 CHƯƠNG 3: T P L NH PIC16F8xx L nh không làm gì c - Cú pháp: NOP - Th c thi: - Di n gi i: Không làm gì CHƯƠNG 3: T P L NH PIC16F8xx 3 Các Ch d n l nh và Trình biên d ch 3. 1 Gi i thi u trình biên dich MPASM Trình biên d ch MPASM là công c đ bi n đ i ngôn ng Assembly thành ngôn ng máy Ngôn ng máy đư c n p vào PIC đ th c hi n các yêu c u c a ngư i vi t chương trình MPASM bao g m... lưu vào F n u d=1 19 CHƯƠNG 3: T P L NH PIC16F8xx Hoán đ i 4 bit th p - 4 bit cao - Cú pháp: SWAPF F,d - Ph m vi: 0 ≤ F ≤ 127; d = 0,1 - Th c thi: (F) ↔ (F ) - Tr ng thái nh hư ng: - Di n gi i: Đ i v trí gi a 4 bit th p và 4 bit cao K t qu : lưu vào W n u d=0 lưu vào F n u d=1 CHƯƠNG 3: T P L NH PIC16F8xx 2.5 Nhóm l nh r nhánh L nh Nh y - Cú pháp: GOTO k - Ph m vi: 0 ≤ k ≤ 2047 (11bit) - Th... pháp: MOVWF F - Ph m vi: 0 ≤ F ≤ 127 - Th c thi: (W) (F) - Tr ng thái nh hư ng: Z - Di n gi i: Di chuy n n i dung thanh ghi W vào F CHƯƠNG 3: T P L NH PIC16F8xx 2.4 Nhóm l nh x lý BIT Xóa Bit thanh ghi - Cú pháp: BCF F,b - Ph m vi: - Di n gi i: 0 ≤ F ≤ 127; 0≤b≤7 Xóa Bit th b trong thanh ghi F - Chú ý: Ta có th ghi tr c ti p b = tên c a Bit trong thanh ghi F BCF STATUS, C 17 CHƯƠNG 3: T P L NH PIC16F8xx... 1 thì Nh y: b qua 1 l nh F = 0 thì làm l nh k ti p 18 CHƯƠNG 3: T P L NH PIC16F8xx Xoay trái có C - Cú pháp: RLF F,d - Ph m vi: 0 ≤ F ≤ 127 d=0,1 - Tr ng thái nh hư ng: C - Di n gi i: Xoay trái thanh ghi F và C m t l n K t qu : lưu vào W n u d=0 lưu vào F n u d=1 CHƯƠNG 3: T P L NH PIC16F8xx Xoay ph i có C - Cú pháp: RRF F,d - Ph m vi: 0 ≤ F ≤ 127 d=0,1 - Tr ng thái nh hư ng: C - Di n gi i: Xoay... 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 11 CHƯƠNG 3: T P L NH PIC16F8xx Phép AND v i h ng s k - Cú pháp: ANDLW k - Ph m vi: 0 ≤ k ≤ 255 - Th c thi: (W) AND k (W) - Tr ng thái nh hư ng: Z - Di n gi i: AND n i dung thanh ghi W v i k K t qu lưu vào W CHƯƠNG 3: T P L NH PIC16F8xx Phép AND thanh ghi - Cú pháp: ANDWF F,d - Ph m vi: 0 ≤ F ≤ 127; d=0,1 - Th c thi: (W) AND (F) (dest) - Tr ng thái... (11bit) - Th c thi: k PC PCLATCH PC - Di n gi i: Nh y t i Nhãn (k) L nh này m t 2 chu kỳ máy 20 CHƯƠNG 3: T P L NH PIC16F8xx L nh G i chương trình con th c thi - Cú pháp: CALL k - Ph m vi: 0 ≤ k ≤ 2047 (11bit) - Th c thi: - Di n gi i: +G i chương trình con (k) +Đ t đ a ch c a l nh k ti p trong PC vào ngăn x p Stack +L nh này m t 2 chu kỳ máy CHƯƠNG 3: T P L NH PIC16F8xx L nh tr v t chương . vào W nếu d=0 lưu vào F nếu d=1. 13 CHƯƠNG 3: TẬP LỆNH PIC16F8xx  Phép XOR với hằng số k - Cú pháp: XORLW k - Phạm vi: 0 ≤ k ≤ 255 - Thực thi: (W) XOR. 1. +Bit PD = 0. 16 CHƯƠNG 3: TẬP LỆNH PIC16F8xx 2 .3 Nhóm lệnh di chuyển dữ liệu  Di chuyển hằng số k - Cú pháp: MOVLW k - Phạm vi: 0 ≤ k ≤ 255 - Thực thi:

Ngày đăng: 18/03/2014, 14:20

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan