1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tài liệu môn kỹ thuật vi điều khiển 4

18 86 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 1,04 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BỘ ĐỊNH THỜI/ BỘ ĐẾM TIMER/COUNTER BỘ ĐỊNH THỜI/ BỘ ĐẾM TIMER/COUNTER... Giới thiệu• Tạo ra những khoảng thời gian chính xác đến cấp chu kỳ máy, có thể thay đổi khoảng thời gian đó linh

Trang 1

BỘ ĐỊNH THỜI/ BỘ ĐẾM (TIMER/COUNTER)

BỘ ĐỊNH THỜI/ BỘ ĐẾM (TIMER/COUNTER)

Trang 2

1 Giới thiệu

• Tạo ra những khoảng thời gian chính xác đến cấp chu kỳ máy, có thể thay đổi khoảng thời

gian đó linh hoạt

• Dùng đếm sự kiện – thường ứng dụng để đọc encoder.

Trang 3

Vị trí của các bộ định thời trong sơ đồ khối của chip 89X51/52

Các bộ định thời

Trang 4

VỊ TRÍ CÁC THANH GHI CỦA BỘ ĐỊNH THỜI TRONG

VÙNG NHỚ ĐẶC BIỆT- SFR

Trang 5

2 Hoạt động

XTAL

oscillator ÷12

Cờ tràn (Overflow Flag)

TF bật lên 1 khi FFFF → 0 C/T = 0 TR

TH0 TL0

D0 D1

D2 D3

D4 D5

D6 D7

D8 D9

D10 D11

D12 D13

D14 D15

TH1 TL1

D0 D1

D2 D3

D4 D5

D6 D7

D8 D9

D10 D11

D12 D13

D14 D15

Trang 6

Minh họa hoạt động của timer

TF=0 TF=0 TF=0 TF=0 TF=1

Timer là bộ đếm lên, khi xảy ra trạng thái FFFF  0000 thì cờ TF bật 1

Trang 7

3 Các thanh ghi

1 Các thanh ghi của bộ định thời

- Timer 0: TH0, TL0

- Timer 1: TH1, TL1

2 Các thanh ghi trạng thái và cài đặt chế độ hoạt động cho các bộ định thời:

+ TCON : Điều khiển + TMOD : Chọn chế độ

Trang 8

Thanh ghi TCON – Timer/Counter Control Register

TCON

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

Cờ ngắt ngoài 1

Cờ ngắt của Timer0

Cờ ngắt của Timer1

Cờ ngắt ngoài 0

Trang 9

Thanh ghi TMOD : Timer Mode

TMOD

GATE

C/T

M1

M0

GATE

C/T

M1

M0

Chọn chế độ hoạt động

cho TIMER1

Chọn chế độ hoạt động

cho TIMER0

Chọn chế độ hoạt động

Trang 10

4 Chế độ hoạt động của Timer

Mỗi bộ định thời có thể hoạt động ở 4 chế độ:

- Chế độ 0: Chế độ định thời 13 bit

- Chế độ 1: Chế độ định thời 16 bit

- THx, TLx chứa giá trị đếm hiện tại của bộ định thời

- Chế độ 2: Chế độ tự nạp lại 8-bit

- Byte thấp giữ giá trị đếm hiện tại

- Byte cao giữ giá trị nạp lại

Trang 11

Thanh ghi TMOD : Timer Mode

TMOD

GATE

C/T

M1

M0

GATE

C/T

M1

M0

Chọn chế độ hoạt động

cho TIMER1

Chọn chế độ hoạt động

cho TIMER0

Chọn chế độ hoạt động

Trang 12

Bit M0, M1 – của thanh ghi TMOD TMOD

0 0 0 Chế độ định thời 13 bit

TMOD

Trang 13

Ví dụ:

Ví dụ 1:

Xác định xem các timer làm việc ở chế độ nào sau đây (a) MOV TMOD, #01H (b)

MOV TMOD, #20H (c) MOV TMOD, #12H

Giải:

Đổi từ hexa sang nhị phân, dựa vào bảng chế động hoạt động của timer ta có

(a) TMOD = 00000001, mode 1 of timer 0 is selected.

(b) TMOD = 00100000, mode 2 of timer 1 is selected.

(c) TMOD = 00010010, mode 2 of timer 0, and mode 1 of timer 1 are selected.

Ví dụ 2:

Tính tần số và chy kỳ của chip 8051 khi sử dụng thạch anh 11.0592Mhz khi bit C/T

của thanh ghi TMOD bằng 0.

Giải:

1/12 × 11.0529 MHz = 921.6 MHz; T = 1/921.6 kHz = 1.085 us

XTAL oscillator ÷12

Trang 14

Lập trình cho bộ định thời Timer 0

• Ví dụ 3 : lập trình cho bộ định thời 0 hoạt động ở chế độ 1, 16 bit, có

thời gian tràn là 500us (sử dụng thạch 12Mhz).

Vì bộ định thời đếm lên 1 đơn vị sau mỗi chu kỳ máy nên bộ định thời

TF0 = 0; // (CLR TF0) Xóa cờ tràn TR0 = 1; // (SETB TR0) Khởi động bộ định thời

while(!TF0) continue; // JNB TF0, $

Trang 15

Chương trình hoàn chỉnh ví dụ 3

C

TMOD = 0000 0001 B TH0 = 0xFE;

TL0 = 0x0C;

TF0 = 0; // Xóa cờ tràn // Khởi động bộ định thời TR0 = 1;

// Chờ cờ tràn bật 1 while(!TF0) continue;

// Dừng bộ định thời TR0 = 0;

// Nạp lại giá trị TH0 = 0xFE;

TL0 = 0x0C;

// Khởi động bộ định thời TR0 = 1;

ASM

MOV TMOD, #0000 0001 B

;Khởi động bộ định thời

; Chờ cờ tràn bật 1

JNB TF0, $

; Dừng bộ định thời

; Nạp lại giá trị

// Khởi động bộ định thời

Trang 16

Lập trình cho bộ định thời Timer 0 – (tiếp)

• Ví dụ 4 : lập trình cho bộ định thời 0 hoạt động ở chế độ 2, 8-bit tự tự

Ở chế độ 2, thanh ghi TH0 sẽ giữ giá trị nạp lại, vậy

+ TF0 = 0; // (CLR TF0) Xóa cờ tràn + TR0 = 1; // (SETB TR0) Khởi động bộ định thời

- while(!TF0) continue; // JNB TF0, $

Trang 17

Chương trình hoàn chỉnh ví dụ 4

C TMOD = 0x02;

TH0 = 56;

TL0 = 56;

TF0 = 0; // Xóa cờ tràn // Khởi động bộ định thời TR0 = 1;

// Chờ cờ tràn bật 1 while(!TF0);

// Dừng bộ định thời TR0 = 0;

// Khởi động bộ định thời TR0 = 1;

ASM

;Khởi động bộ định thời

SETB TR1

; Chờ cờ tràn bật 1

JNB TF0, $

; Dừng bộ định thời

// Khởi động bộ định thời

Trang 18

Tạo trễ sử dụng Timer

MAIN:

MOV TMOD, #0000 0010 B

AGAIN:

DELAY:

;Khởi động bộ định thời

; Chờ cờ tràn bật 1

; Dừng bộ định thời

void main() { TMOD = 0x02;

while(1) { P1_0 = !P1_0;

delay(56);

}

void delay(unsigned char us){ TH0 = us;

TL0 = us;

TF0 = 0 ; Xóa cờ tràn

;Khởi động bộ định thời TR1 = 1;

; Chờ cờ tràn bật 1 while(!TF0);

Ngày đăng: 23/05/2020, 11:54

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm