Nhóm điều khiển luồng chương trình trong PIC
- BTFSC
- BTFSC là một lệnh kiểm soát luồng chương trình đặc biệt, kiểm tra bit trong thanh ghi f, bỏ qua nếu nó bằng không.
- Cú pháp: Label BTFSC f, b
- Mô tả: Kiểm tra bit cụ thể của thanh ghi f, bỏ qua lệnh tiếp theo nếu nó bằng không.
- Hoạt động: Bỏ qua lệnh tiếp theo nếu f (b) = 0
- Toán hạng: 0 < f < 127 và 0 < b < 7
- Số từ: 1
- Số chu kỳ: 1 hoặc 2 tùy thuộc vào giá trị bit
- Cờ: NIL
- BTFSS
- BTFSS cũng là một lệnh kiểm soát luồng chương trình. Lệnh này kiểm tra bit trong thanh ghi f, bỏ qua nếu nó bằng một.
- Cú pháp: Label BTFSS f, b
- Mô tả: Kiểm tra bit cụ thể của thanh ghi f, bỏ qua lệnh tiếp theo nếu nó bằng một.
- Hoạt động: Bỏ qua lệnh tiếp theo nếu f (b) = 1
- Toán hạng: 0 < f < 127 và 0 < b < 7
- Số từ: 1
- Số chu kỳ: 1 hoặc 2 tùy thuộc vào giá trị bit
- Cờ: NIL
- INCFSZ
- INCFSZ là một lệnh tăng giá trị nội dung, bỏ qua nếu nó bằng không.
- Cú pháp: Label INCFSZ f, d
- Mô tả: Tăng giá trị của f, bỏ qua lệnh tiếp theo nếu f bằng không.
- Hoạt động: Bỏ qua lệnh tiếp theo nếu f = không
- Toán hạng: (f) + 1 = w nếu d = 0 và (f) + 1 = f nếu d = 1
- Số từ: 1
- Số chu kỳ: 1 hoặc 2 tùy thuộc vào giá trị bit
- Cờ: NIL
- DECFSZ
- Lệnh DECFSZ giảm giá trị nội dung, bỏ qua nếu nó bằng không.
- Cú pháp: Label DECFSZ f, d
- Mô tả: Giảm giá trị của f, bỏ qua lệnh tiếp theo nếu f bằng không.
- Hoạt động: Bỏ qua lệnh tiếp theo nếu f = không
- Toán hạng: (f) - 1 = w nếu d = 0 và (f) - 1 = f nếu d = 1
- Số từ: 1
- Số chu kỳ: 1 hoặc 2 tùy thuộc vào giá trị bit
- Cờ: NIL
- GOTO
- Lệnh GOTO được sử dụng để nhảy đến địa chỉ được chỉ định.
- Cú pháp: Label GOTO Label
- Mô tả: Nhảy không điều kiện đến nhãn được chỉ định
- Hoạt động: k đến PC(10:0), PCLATH(4:3) đến PC(12:11)
- Toán hạng: 0 < k < 2048
- Số từ: 1
- Số chu kỳ: 2
- Cờ: NIL
- CALL
- Lệnh CALL được sử dụng để gọi chương trình con hoặc các giá trị khác.
- Cú pháp: Label CALL Label
- Mô tả: Gọi không điều kiện đến nhãn
- Hoạt động: (PC) + 1 đến đỉnh stack, k đến PC(10:0), PCLATH(4:3) đến PC(12:11)
- Toán hạng: 0 < k < 2048
- Số từ: 1
- Số chu kỳ: 2
- Cờ: NIL
- RETURN
- Lệnh RETURN được sử dụng để trở về chương trình chính từ bất kỳ chương trình con nào khác.
- Cú pháp: Label RETURN
- Mô tả: Trở về không điều kiện từ chương trình con
- Hoạt động: Đỉnh stack đến (PC)
- Toán hạng: nil
- Số từ: 1
- Số chu kỳ: 2
- Cờ: NIL
- RETLW
- RETLW cũng là một lệnh trở về. Bằng cách sử dụng lệnh này, trở về chương trình chính với k trong thanh ghi w.
- Cú pháp: Label RETLW k
- Mô tả: Trở về không điều kiện từ chương trình con
- Hoạt động: Đỉnh stack đến (PC) và k được nạp vào thanh ghi w
- Toán hạng: 0 < k < 255
- Số từ: 1
- Số chu kỳ: 2
- Cờ: NIL
- RETFIE
- Lệnh RETFIE được sử dụng để trở về từ chương trình ngắt.
- Cú pháp: Label RETFIE
- Mô tả: Trở về không điều kiện từ chương trình con
- Hoạt động: Đỉnh stack đến (PC) và bit ngắt toàn cầu được kích hoạt
- Toán hạng: nil
- Số từ: 1
- Số chu kỳ: 2
- Cờ: NIL
Các hướng dẫn khác trong PIC
- NOP
- Lệnh NOP được sử dụng để biểu thị không có hoạt động nào diễn ra.
- Cú pháp: Label NOP
- Mô tả: Không có hoạt động
- Hoạt động: nil
- Toán hạng: nil
- Số từ: 1
- Số chu kỳ: 1
- Cờ: nil
- CLRWDT
- Lệnh CLRWDT được sử dụng để Khởi tạo tính năng watchdog timer.
- Cú pháp: Label CLRWDT
- Mô tả: Đặt lại bộ đếm thời gian watchdog và pre-scalar, và đặt cờ TO và PD.
- Hoạt động: 0 cho WDT, 0 cho pre-scalar và các bit trạng thái TO và PD được đặt.
- Toán hạng: TO và PD
- Số từ: 1
- Số chu kỳ: 1
- Cờ: nil
- SLEEP
- Lệnh SLEEP được sử dụng để khởi tạo chế độ Standby.
- Cú pháp: Label SLEEP
- Mô tả: Đi vào chế độ tiêu thụ thấp, ngừng hoạt động của OSC, đặt lại bộ đếm thời gian watchdog và pre-scalar, và đặt cờ TO và PD.
- Hoạt động: 0 cho WDT, 0 cho pre-scalar và các bit trạng thái, TO được đặt và PD được đặt lại.
- Toán hạng: TO và PD
- Số từ: 1
- Số chu kỳ: 1
- Cờ: nil