Chu kì lệnh:

Một phần của tài liệu Giáo trình hợp ngữ - Lập trình PIC 16F877A (Trang 37 - 39)

Chu kì thực hiện 1 lệnh gồm 4 bước, kí hiệu là Qi, i=1-4: - Q1: thời gian giải mã lệnh

- Q3: thời gian thực thi dữ liệu - Q4: thời gian viết dữ liệu

Mỗi bước tương ứng với 1 chu kì xung của vi điều khiển. Xung dao động của vi điều khiển được tạo ra từ mạch dao động bên ngoài như thạch anh, mạch RC hoặc mạch dao động bên trong (Phần cấu hình cho dao động sẽ được đề cập ở mục khác).

Nếu dùng bộ dao động xung thạch anh có tần số f=4MHZ Chu kì xung =1/tần số xung=1/4MHz

Chu kì lệnh = 4 * chu kì xung= 4/4MHZ= 1us (micro giây)

Hầu như tất cả các lệnh trong 35 lệnh của vi điều khiển PIC16F thực hiện trong 1 chu kì lệnh trừ 1 số lệnh đặc biệt như lệnh CALL, GOTO, RETURN, RETFI,RETLW mất 2 chu kì lệnh. Ngồi ra cịn có một số lệnh khi thì thực hiện trong 1 chu kì lệnh khi thì 2.

Đó là các lệnh DECFSZ, INCFSZ, BTFSZ, BTFSC. (Xem tập lệnh trang 158- datasheet 16f877a)

Ta lấy lệnh DECFSZ để giải thích cho dễ hiểu: Ví dụ: DECFSZ bien,1

GOTO nhan1 GOTO nhan2

Lệnh đầu tiên DECFSZ giảm thanh ghi bien đi 1 đơn 1: bien=bien-1 Sau đó lệnh này kiểm tra bien:

Nếu bien=0 nhảy qua 1 lệnh, tức là nhảy đến và thực hiện lệnh GOTO nhan2 Nếu bien#0 thì khơng nhảy tức là thực hiện lệnh GOTO nhan2

Như vậy nếu bien#0 (tức là trước khi gặp lệnh này bien #1)thì vi điều khiển mất một chu kì lệnh để thực hiện lệnh(để thực hiện thao tác trừ)

Nếu bien=0 (tức là trước khi gặp lệnh này bien=1) thì vi điều khiển mất 2 chu kì lệnh để thực hiện lệnh(1 chu kì lệnh để thao tác trừ + 1 chu kì lệnh để nhảy)

Một phần của tài liệu Giáo trình hợp ngữ - Lập trình PIC 16F877A (Trang 37 - 39)

Tải bản đầy đủ (PDF)

(104 trang)