Các thanh ghi phục vụ cho Timer/counter

Một phần của tài liệu Kỹ thuật vi xử lý - Chương 3 pps (Trang 43 - 46)

CL RA ;Nội dung thanh ghi Ab ằng zero.

45. Lệnh giả mô nhớ trực tiếp và nhảy

3.4.5.1. Các thanh ghi phục vụ cho Timer/counter

Thanh ghi ca b Timer 0 và Timer 1 (hình 5.3.1a và 5.3.1b)

Như ta đã giới thiệu ở trên thanh ghi 16 bit của Timer 0 được truy cập như một byte cao và byte thấp (TH0 và TL0). Các thanh ghi này cũng có thể được truy cập và được đọc như các thanh ghi khác như thanh ghi A, B, R0, R1 …

MOV TL0, #55H MOV R0, TH0

Hình 5.3.1a. Các thanh ghi ca Timer 0.

Hình 5.3.1b. Các thanh ghi ca Timer 1

Thanh ghi TMOD (hình 5.3.1c)

Cả hai bộđịnh thời Timer 0 và Timer 1 đều sử dụng chung một thanh ghi được gọi là TMOD để thiết lập các chế độ khác nhau của bộ định thời. Thanh ghi TMOD là thanh ghi 8 bit gồm 4 bit thấp cho Timer 0 và 4 bit cao cho Timer 1. Trong đó 2 bit thấp dùng để thiết lập chế độ của bộ định thời còn 2 bit cao dùng để xác định phép toán.

- Các bit M0, M1: Là các bit chế độ dùng để chọn chếđộ 0, 1, 2 và 3 của các bộ Timer 0 và Timer 1 (bảng 5.3.1). Ta chỉ tập trung vào các chếđộ được sử dụng rộng rãi là chếđộ 1 và 2.

Hình 5.3.1c. Thanh ghi TMOD

- Bit C/T (đồng hồ/bộđịnh thời): Là bit dùng để xác định bộ định thời

được sử dụng làm bộ tạo trễ hay bộđếm sự kiện. Nếu C/T = 0 thì nó là bộ tạo trễ. Nguồn đồng hồ cho chế độ trễ là tần số thạch anh của 8051. C/T = 1 thì bộ định thời được chọn là bộđếm sự kiện và nhận các xung đồng hồ từ bên ngoài của 8051.

- Bảng 5.3.1: các chếđộ làm việc M1 M0 Mode Chếđộ hoạt động

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

Bộđịnh thời/bộđếm 8 bit, định tỉ lệ trước 5 bit 0 1 1 Chếđộđịnh thời 16 bit, không định tỉ lệ trước 1 0 2 Chếđộ 8 bit tự nạp lại 1 1 3 Chếđộ bộđịnh thời chia tách Ví d: D15 D14 D13 D12 D11 D10 D9 D8 TH1 D7 D6 D5 D4 D3 D2 D1 D0 TL1 D15 D14 D13 D12 D11 D10 D9 D8 TH0 D7 D6 D5 D4 D3 D2 D1 D0 TL0 (MSB) GATE C/T M1 M0

Timer1 GATE C/T M1 M0 Timer0

Xác định chếđộ và bộđịnh thời của các trường hợp sau: a) MOV TMOD, #20H

b) MOV TMOD, #12H

Gii:

Trường hợp a: TMOD = 20H = 0010 0000B . Đối chiếu với thanh ghi TMOD ta thấy đây là chếđộ 2 bộđịnh thời Timer 1 được chọn.

Trường hợp b: TMOD = 12H = 0001 0010B . Đối chiếu với thanh ghi TMOD ta thấy đây là chếđộ 1 bộđịnh thời Timer 1 và chếđộ 2 bộđịnh thời Timer 0 được chọn.

Nếu C/T = 0 thì tần số thạch anh trên chip 8051 làm nguồn cho đồng hồ bộ định thời. Điều đó có nghĩa là giá trị của tần số thạch anh của 8051 quyết định tốc độ đồng hồ của bộ định thời 8051. Tần số của bộ định thời luôn bằng 1/12 tần số của thạch anh trên 8051.

Ví dụ: Tìm tần số đồng hồ và chu kỳ của bộ định thời của các hệ

thống xây dựng trên 8051 với tần số thạch anh như sau: a) fXTAL = 12MHz b) fXTAL = 16MHz c) fXTAL = 11, 0592MHz Gii: a) 12 12MHz 1MHz 1 × = và T 1MHzs 1 = = b) 12 16MHz 1,333Mz 1 × = và T 1,333MHz 0,75µs 1 = = c) 12 11,0592MHz 0,9216MHz 1 = × và T 0,9216MHz 1,085µs 1 = =

Mặc dù các hệ thống xây dựng trên 8051 thường có tần số từ 10 – 40MHz. Song ở đây ta chỉ quan tâm đến tần số thạch anh 11, 0592MHz. Tần số này cho phép 8051 truyền thông không có lỗi với IBM PC.

- Bit cổng GATE: Mỗi bộ định thời đều có cách khởi động và dừng khác nhau. Một số bộ định thời thực hiện điều này bằng phần mềm, một số bằng phần cứng, một số khác kết hợp cả phần mềm và phần cứng. Bộ định thời của 8051 dùng phương pháp kết hợp. Khởi động và dừng bộđịnh thời bằng được thực hiện bằng phần mềm nhờ các bit khởi động bộ định thời TR (Timer Start) là TR0 và TR1 (hai bit này nằm trên thanh ghi TCON (hình 5.3.1d). Lệnh thực hiện khởi động và

dừng Timer 0 tương ứng là “SETB TR0” và “CLR TR0” còn đối với Timer 1 là “SETB TR1” và “CLR TR1”. Các lệnh này được sử dụng khi mà bit GATE = 0. Nếu dùng phần cứng từ bên ngoài để khởi động và dừng bộđịnh thời thì ta cần đặt bit GATE = 1.

Hình 5.3.1d. Thanh ghi TCON

+ TF1: Cờ tràn của Timer 1

+ TR1: Điều khiển hoạt động của Timer 1. Nó được thiết lập bằng phần mềm để bật/tắt Timer 1.

+ TF0: Cờ tràn của Timer 0

+ TR0: Điều khiển hoạt động của Timer 1. Nó được thiết lập bằng phần mềm để bật/tắt Timer 0.

+ IE1, IT1, IE0, IT0: Các bít phục vụ cho ngắt.

Ví d:

Tìm giá trị của TMOD nếu muốn lập trình bộ Timer 1 ở chế độ 1 và sử dụng thạch anh XTLA 8051 làm nguồn đồng hồ và sử dụng lệnh để khởi

động và dừng bộđịnh thời. TMOD = 0001 0000 Chếđộ 1 và chếđộ 2 là hai chếđộ được sử dụng khá phổ biến, vì vậy chúng ta sẽ nghiên cứu kỹ hơn. 3.4.5.2. Lp trình các bộđịnh thi gian ca 8051 Lp trình chếđộ 1 (Model 1)

Dưới đây là những đặc trưng và những phép toán của Model 1.

- Đó là bộ định thời 16 bit, do vậy các giá trị từ 0000 – FFFFH được nạp vào thanh ghi TL và TH của bộđịnh thời.

- Sau đó bộđịnh thời được khởi động nhờ lệnh “SETB TR0” cho Timer 0 và “SETB TR1” cho Timer 1.

- Sau khi được khởi động thì bộ định thời bắt đầu đếm tăng. Bộ định thời đếm lên cho đến khi đạt giới hạn FFFFH. Khi đó nó sẽ quay vòng từ FFFFH về 0 và bật cờđịnh thời TF (Timer Flag) lên mức cao. - Bộ định thời sau khi đạt giá trị giới hạn thì thực hiện quay vòng về 0.

Để lặp lại quá trình đếm thì các thanh ghi TH và TL phải được nạp lại giá trị ban đầu và cờ TF cần được xoá về 0.

Một phần của tài liệu Kỹ thuật vi xử lý - Chương 3 pps (Trang 43 - 46)

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

(82 trang)