Lập trỡnh cho bộ đếm/ bộ định thời trong

Một phần của tài liệu GIÁO TRÌNH VI XỬ LÝ 8051 pdf (Trang 96 - 97)

DIV A B; A= 09 (th−ơng số) ;B =05 (số d−) Lu ý cỏc điểm sau khi thực hiện AB

Lập trỡnh cho bộ đếm/ bộ định thời trong

8051 cú hai bộ định thời/ bộ đếm. Chỳng cú thể đợc dựng nh cỏc bộ định thời để tạo một bộ trễ thời gian hoặc nh cỏc bộ đếm để đếm cỏc sự kiện xảy ra bờn ngoài bộ BVĐK. Trong chơng này chỳng ta sẽ tỡm hiểu về cỏch lập trỡnh cho chỳng và sử dụng chúng nh− thế nàỏ

9.1 Lập trỡnh cỏc bộ định thời gian của 8051.

8051 cú hai bộ định thời là Timer 0 và Timer1, ở phần này chỳng ta bàn vỊ các thanh ghi cđa chỳng và sau đú trỡnh bày cỏch lập trỡnh chỳng nh thế nào để tạo ra cỏc độ trễ thời gian.

9.1.1 Cỏc thanh ghi cơ sở của bộ định thờị

Cả hai bộ định thời Timer 0 và Timer 1 đều cú độ dài 16 bớt đợc truy cập nh− hai thanh ghi tỏch biệt byte thấp và byte ca Chỳng ta sẽ bàn riờng về từng thanh gh

9.1.1.1 Các thanh ghi cđa bộ Timer 0.

Thanh ghi 16 bớt của bộ Timer 0 đợc truy cập nh− byte thấp và byte caọ Thanh ghi byte thấp đợc gọi là TL0 (Timer 0 bow byte) và thanh ghi byte cao là TH0 (Timer 0 High byte). Cỏc thanh ghi này cú thể đợc truy cập nh mọi thanh ghi khỏc chẳng hạn nh− A, B, R0, R1, R2 v.v... Ví dụ, lệnh MOV TL0, #4FH là chuyển giỏ trị 4FH vào TL0, byte thấp của bộ định thời 0. Cỏc thanh ghi này cũng cú thể đợc đọc nh cỏc thanh ghi khỏc. Vớ dụ MOV R5, TH0 là lu byte cao TH0 cđa Timer 0 vào R5.

Hình 9.1: Các thanh ghi cđa bộ Timer 0. 9.1.1.2 Các thanh ghi của bộ Timer 1.

Bộ định thời gian Timer 1 cịng dài 16 bít và thanh ghi 16 bớt của nú đợc chia ra thành hai byte là TL1 và TH1. Cỏc thanh ghi này đợc truy cập và đọc giống nh− các thanh ghi cđa bộ Timer 0 ở trên.

Hình 9.2: Các thanh ghi cđa bộ Timer 1. 9.1.2 Thanh ghi TMOD (chế độ cđa bộ định thời).

Cả hai bộ định thời Timer 0 và Timer 1 đều dựng chung một thanh ghi đợc gọi là IMOD để thiết lập cỏc chế độ làm việc khỏc nhau của bộ định thờ Thanh ghi TMOD là thanh ghi 8 bít gồm có 4 bớt thấp đợc thiết lập dành cho bộ Timer 0 và 4 bít cao dành cho Timer 1. Trong đó hai bít thấp cđa chúng dựng để thiết lập chế độ của bộ định thời, cịn 2 bít cao dùng để xỏc định phộp toỏn. Cỏc phộp toỏn này sẽ đợc bàn dới đõ

D15 D14 D13 D12 D11 D10 D9 D8 TH0 TH0 D7 D6 D5 D4 D3 D2 D1 D0 TL0 D15 D14 D13 D12 D11 D10 D9 D8 TH1 D7 D6 D5 D4 D3 D2 D1 D0 TL1

Hình 9.3: Thanh ghi IMOD. 9.1.2.1 Các bít M1, M0:

Là cỏc bớt chế độ của cỏc bộ Timer 0 và Timer 1. Chỳng chọn chế độ của cỏc bộ định thời: 0, 1, 2 và 3. Chế độ 0 là một bộ định thời 13, chế độ 1 là một bộ định thời 16 bít và chế độ 2 là bộ định thời 8 bớt. Chỳng ta chỉ tập chung vào cỏc chế độ thờng đợc sư dơng rộng rhi nhất là chế độ 1 và 2. Chỳng ta sẽ sớm khỏm phỏ ra cỏc đặc tớnh củ cỏc chế độ này sau khi khỏm phần cũn lại của thanh ghi TMOD. Cỏc chế độ đợc thiết lập theo trạng thỏi của M1 và M0 nh− sau:

M1 M0 Chế độ Chế độ hoạt động 0 0 0 Bộ định thời 13 bớt gồm 8 bớt là bộ định thời/ bộ đếm 5 bớt đặt trớc 0 1 1 Bộ định thời 16 bớt (khụng cú đặt trớc) 1 0 2 Bộ định thời 8 bớt tự nạp lại 1 1 3 Chế độ bộ định thời chia tách 9.1.2.2 C/ T (đồng hồ/ bộ định thời).

Bớt này trong thanh ghi TMOD đợc dựng để quyết định xem bộ định thời đợc dựng nh một mỏy tạo độ trễ hay bộ đếm sự kiƯn. Nếu bít C/T = 0 thỡ nú đợc dựng nh một bộ định thời tạo độ chễ thời gian. Nguồn đồng hồ cho chế độ trễ thời gian là tần số

thạch anh cđa 8051. ở phần này chỉ bàn về lựa chọn này, cụng dụng của bộ định thời nh

bộ đếm sự kiện thỡ sẽ đợc bàn ở phần kế tiếp.

Ví dơ 9.1: Hhy hiĨn thị xem chế độ nào và bộ định thời nào đối với cỏc trờng hợp sau:

a) MOV TMOD, #01H b) MOV TMOD, #20H c) MOV TMDO, #12H

Lời giải: Chỳng ta chuyển đổi giỏ trị từ số Hex sang nhị phõn và đối chiếu hỡnh 93 ta có:

a) TMOD = 0000 0001, chế độ 1 của bộ định thời Timer 0 đợc chọn. b) TMOD = 0010 0000, chế độ 1 của bộ định thời Timer 1 đợc chọn.

Một phần của tài liệu GIÁO TRÌNH VI XỬ LÝ 8051 pdf (Trang 96 - 97)