Thời gian: 32 giờ Mã mô đun: CIE 02 31 00
Giới thiệu:
Bài này trình bày về bộ định thời (timer) trong 8051, đây là một trong các chức năng cơ bản được tích hợp trong hầu hết các họ vi điều khiển
Nội dung gồm cả lý thuyết và thực hành trên bộ thực tập UNIKIT, các bài thực hành được sắp xếp từ dể đến khó kèm theo các ví dụ ứng dụng thực tế giúp người học hiểu được tính năng và phạm vi ứng dụng của bộ định thời cho các lập trình ứng dụng hướng điều khiển.
Mục tiêu:
- Hiểu được đặc điểm các thanh ghi định thời
- Hiểu được sơ đồ và nguyên lý hoạt động các chế độ làm việc của bộ định thời 8051
- Ứng dụng được các bộ định thời trong các bài tập điều khiển - Đảm bảo vệ sinh công nghiệp và an toàn cho người, thiết bị Nội dung:
1.Hoạt động của các bộ định thời.
2.Các thanh ghi định thời.
2.1.Thanh ghi điều khiển chế độ timer TMOD.
2.2.Thanh ghi điều khiển timer TCON.
3.Các chế độ làm việc.
3.1.Chế độ 13-bit (chế độ 0).
3.2.Chế độ 16-bit (chế độ 1).
3.3.Chế độ tự nạp 8-bit (chế độ 2).
3.4.Chế độ chia xẻ (chế độ 3).
4.Bộ định thời 2 của 8052.
4.1.Chế độ tự nạp lại.
4.2.Chế độ thu nhận.
Nội dung chi tiết, phân bổ thời gian và hình thức giảng dạy của Bài 4
Tiêu đề/Tiểu tiêu đề Thời gian (giờ) Hình thức giảng dạy 1.Hoạt động của các bộ định thời 0.25 0,25 LT
2.Các thanh ghi định thời 1 1 LT
2.1.Thanh ghi điều khiển chế độ timer TMOD
0,5 LT
2.2. Thanh ghi điều khiển timer TCON
0,5 LT
3.Các chế độ làm việc 30 3 25 2
3.1.Chế độ 13-bit (chế độ 0) 0,5 3 LT-TH
3.2.Chế độ 16-bit (chế độ 1) 1 12 LT-TH
3.3.Chế độ tự nạp 8-bit (chế độ 2) 1 10 LT-TH
3.4.Chế độ chia xẻ (chế độ 3) 0,5 LT
4.Bộ định thời 2 của 8052 0,75 0,75
4.1.Chế độ tự nạp lại 0,5 LT
4.2.Chế độ thu nhận 0,25 LT
* Kiểm tra 2
- Kiến thức cần thiết để thực hiện công việc:
1.Hoạt động của các bộ định thời.
Bộ định thời (timer) là một mạch chia gồm nhiều FF ghép lại với nhau với tín hiệu
vào là xung đồng hồ, xung này được chia 2 ở tầng FF đầu tiên, sau đã lại được đưa đến các tầng tiếp theo, với n tầng FF số chia sẽ là 2n, ngõ ra của tầng cuối cùng là FF tràn của
bộ định thời cịn gọi là cờ tràn, cờ này được kiểm tra b ởi phần mềm và có thể tạo ra một ngắt. Trị nhị phân của các FF chính là số xung đồng hồ đếm được (hoặc số sự kiện) kể từ khi bộ định thời được khởi động. VD một timer 16 bít có thể đếm được từ 0000H đến FFFFH, cờ tràn sẽ bị set khi có tràn từ FFFFH đến 0000H.
Hoạt động của một bộ định thời đơn giản được Mô tả ở hình 4.1 đây là một bộ định thời 3 bít, mỗi tầng là 1 D-FF tác động cạnh âm với chức năng chia 2 (ngõ ra Q nối đến ngõ vào D), FF cị là một chốt loại D, cờ này được set bởi tầng cuối cùng của bộ định thời. Giản đồ thời gian ở hình 4.1b cho thấy tầng đầu tiên Q0 chia 2 t ần số xung đồng hồ, tầng thứ nhì chia 4 và cứ thế tiếp tục. Số đếm được biểu diển bằng số thập phân để dể thay đổi bằng cách kiểm tra trạng thái của 3 FF. VD số đếm là 4 khi Q2 = 1; Q1 = 0; Q0 = 0 (410 = 1002)
Bộ đị nh thời được áp dụng trong hầu hết các ứng dụng hướng điều khiển và timer trong 8051 cũng không ngoại lệ. 8051 có 2 bộ định thời 16 bít với 4 chế độ làm việc khác nhau. Trong 8052 cịn có thêm timer thứ ba 16 bít với 3 chế độ làm việc. Công dụng của timer là (a) đếm thời gian (định thời) và (b) đếm sự kiện hoặc (c) tạo tốc độ Baud cho
cổng nối tiếp bên trong 8051. Vì mỗi bộ định thời gồm 16 bít nên tảng cuối cùng thứ 16 sẽ chia tần số xung đồng hồ cho 216 = 65.536.
Flag
D Q D Q D Q D Q
Clock
Q1 Q2 Q
Q0
LSB MSB
clock Q0 Q1 Q2
Số đếm 0 1 2 3 4 5 6 7 0
Flag
Hình 4.1 Bộ đếm 3 bít
Trong ứng dụng định thời, một bộ định thời được l ập trình để set cờ tràn của nó tương ứng với khoảng thời gian đặt trước, cờ này được dùng để đồng bộ hóa chương trình nhằm thực hiện một thao tác nào đã như là: Kiểm tra trạng thái các ngõ vào hoặc
gởi dữ liệu đến các ngõ ra, các ứng dụng khóa có thể dùng xung đồng hồ chuẩn của timer để đo thời gian giữa hai thời điểm VD: Đo độ rộng xung.
Khả năng đếm sự ki ện được dùng để xác định số lần xảy ra của một sự kiện thay vì đo khoảng thời gian giữa các sự kiện. Một sự kiện là một tác nhân kích thích bên ngồi nào đã tạo ra một sự chuyển tiếp từ 1 xuống 0 tại 1 chân c ủa 8051. Các bộ định thời cũng được dùng để tạo ra một đồng hồ tốc độ baud cho cổng nối tiếp tích hợp bên trong 8051.
2.Các thanh ghi định thời.
2.1.Thanh ghi điều khiển chế độ timer TMOD.
Thanh ghi TMOD gồm hai nhóm 4 bít có chức năng chọn chế độ làm việc cho hai timer 0 và 1 (bảng 4.2 và 4.3).
BẢNG 4.1
Các thanh ghi SFR của timer
SFR của timer Chức năng Địa chỉ Định địa chỉ bít
TCON Điều khiển 88H Có
TMOD Chế độ 89H Không
TL0 Byte thấp timer 0 8AH Không
TL1 Byte thấp timer 1 8BH Không
TH0 Byte cao timer 0 8CH Không
TH1 Byte cao timer 1 8DH Không
T2CON* Điều khiển timer 2 C8H Có
RCAP2L* Capture byte thấp CAH Không
RCAP2H* Capture byte cao CBH Không
TL2* Byte thấp timer 2 CCH Không
TH2* Byte cao timer 2 CDH Không
* Chỉ có trong 8032 và 8052 BẢNG 4.2 Thanh ghi TMOD
Bít Tên Timer Mô tả
7 GATE 1
GATE = 1, timer chỉ hoạt động
trong khi INT =1
1
6 C/ 1 Bít chọn nguồn xung kích
T
0 = định thời 1 = đếm sự kiện
5 M1 1 Mode bit 1 (bảng 4.3)
4 M0 1 Mode bít 0 (bảng 4.3)
3 GATE 0 Timer 0 GATE bít
2 C/ 0 bít timer 0
T C/
T
1 M1 0 M1 bít timer 0
0 M0 0 M0 bít timer 0
BẢNG 4.3 Các chế độ làm việc M1 M0 Chế độ Mô tả
0 0 0 Timer 13 bít (8048 mode)
0 1 1 Timer 16 bít
1 0 2 Timer 8 bít tự động nạp lại
1 1 3 Timer phân biệt
Timer 0:
a) TL0 là timer 8 bít được điều khiển bởi các mode bít timer 0 b) TH0 là timer 8 bít được điều khiển bởi các mode bít timer 1
Timer 1: Dừng
TMOD không được định địa chỉ bít mà thực ra điều này cũng không cần thiết. Thông thường thanh ghi này được khởi tạo ngay khi bắt đầu chương trình. Sau đã timer có thể dừng, hoặc hoạt động thơng qua các thanh ghi SFR khác.
2.2.Thanh ghi điều khiển timer TCON.
Thanh ghi TCON gồ m các bít trạng thái và các bít điều khiển cho hai bộ định thời 0 và 1 (bảng 4.4). Trong đã 4 bít interrupt (TCON.0-TCON.3) sẽ được bàn đến trong bài về Interrupt.
BẢNG 4.4 Thanh ghi điều khiển TCON
Bít Ký hiệu
Địa chỉ
bít Mô tả
TCON.7 TF1 8FH Cờ tràn timer 1. Set bằng phần cứng khi tràn số đếm,
Clear bằng phần mềm hoặc bằng phần cứng khi xử lý
ngắt
TCON.6 TR1 8EH
Bít khởI động timer 1. Set và Clear bằng phần mềm
để khởI động hoặc dừng timer TCON.5 TF0 8DH Cờ tràn timer 0
TCON.4 TR0 8CH Bít khởI động timer 0
TCON.3 IE1 8BH
Cờ tác động cạnh ngắt 1 bên ngồi. Set bằng phần
cứng tạI cạnh xuống của
ngõ INT1. Clear bằng
phần
mềm hoặc bằng phần cứng khi xử lý ngắt
TCON.2 IT1 8AH
Ngắt 1 bên ngồi. Set và Clear bằng phần mềm tác
động cạnh xuống hoặc mức thấp TCON.1 IE0 89H Cờ cho phép ngắt 0 bên ngồi TCON.0 IT0 88H Cờ chọn kiểu ngắt 0 bên ngồi 3.Các chế độ làm việc.
3.1.Chế độ 13-bit (chế độ 0).
Chế độ này nhằm tương thích với họ vi điều khiển trước của 8051 là 8048 (hình 4.2a). Trong chế độ này thanh ghi định thời byte cao THx được nối tiếp với 5 bít thấp của thanh ghi TLx để tạo thành bộ định thời 13 bít, 3 bít cao của TLx không dùng.
3.2.Chế độ 16-bit (chế độ 1).
Cũng giống như mode 0, xung đồng hồ được đưa vào cặp thanh ghi định thời TLx/THx, khi có xung đồng hồ timer sẽ đếm lên từ 0000H, 0001H, 0002H…Hiện tượng tràn sẽ xảy ra khi số đếm từ giá trị FFFFH chuyển sang 0000H và sẽ làm cờ tràn bị set và timer tiếp tục đếm.
Cờ tràn là biến TFx trong thanh ghi điều khiển TCON, cờ này được đọc và ghi bằng phần mềm (hình 4.2b). Bít có giá trị cao nhất của timer là bít 7 trong thanh ghi THx và bít thấp nhất b là bít 0 trong thanh ghi TLx, cặp thanh ghi định thời TLx/THx có thể được đọc hoặc ghi bằng phần mềm tạI bất kỳ lúc nào.
Xung kích TLx THx
TFx (5
bít)
(8 bít) (a) Mode 0 Xung
kích TLx
TH x
TFx (8 bít) (8 bít)
(b) Mode 1
Xung kích
TL x
TFx (8
bít)
Nạp lại (c) Mode 2
THx (8 bít)
Xung kích TL1 TH1
(8 bít) (8 bít)
TL0
TF0 Xung
kích (8 bít)
Xung
kích TH0
TF1 (8 bít)
(d) Mode 3
Hình 4.2 Các chế độ làm việc
3.3.Chế độ tự nạp 8-bit (chế độ 2).
Trong chế độ này thanh ghi TLx là một bộ định thời 8 bít trong khi đã thanh ghi THx chứa giá trị cần nạp lại. Khi số đếm tràn từ FFH đến 00H, lúc này không chỉ c ờ tràn bị set mà giá trị của THx sẽ được nạp lạI vào TLx và quá trình đếm vẩn tiếp tục cho đến lần tràn tiếp theo. Chế độ này rất tiện lợI do việc tràn xảy ra sau một khoảng thời gian xác định lặp lạI theo chu kỳ mỗI khi TMOD và THx được khởI tạo (hình 4.2c)
3.4.Chế độ chia xẻ (chế độ 3).
Ảnh hưởng của chế độ này lên hai bộ định thời không giống nhau. Timer 0 thì được tách ra làm hai timer 8 bít đã là TL0 và TH0 hoạt động độc lập với nhau với hai cờ tràn tương ứng là TF0 cho TL0 và TF1 cho TH0.
Timer 1 dừ ng trong chế độ này như ng có thể được khởI động bằng cách chuyển sang các chế độ khác, chỉ có một hạn chế là cờ tràn TF1 không bị set khi timer 1 tràn vì cờ này đã được nốI đến TH0.
Mode 3 được dùng chủ yếu để tạo ra thêm một timer 8 bít thứ ba trong 8051. Timer 1 có thể được điều khiển ON/OFF bằng cách chuyển qua lạI giữa mode 3 và các mode khác và có thể được dùng để tạo tốc độ baud cho cổng nốI tiếp của 8051 hoặc những yêu cầu không cần đến ngắt
4.Bộ định thời 2 của 8052.
4.1.Chế độ tự nạp lại.
Bít capture/reload trong T2CON cho phép lựa chọn giữa hai chế độ đầu tiên. Khi
CP/RL2 = 0 chế độ của timer 2 là n ạp lạI tự động với TL2/TH2 là cặ p thanh ghi định thời RCÁP2L và RCAP2H lư u giữ giá trị nạp lại. Không giống timer 0 và timer 1, timer 2 luơn là timer 16 bít ngay cả ở chế độ tự nạp lại.
Thao tác nạ p lạI xảy ra khi có tràn từ FFFFH đến 0000H trong
TL2/TH2 và cờ tràn TF2 s ẽ được set. Điều ki ện này được xác định b ằng phần mềm hoặ c được l ập trình để tạo ra một ngắt. Trong cả 2 cách cờ TF2 đều phảI được xóa trước khi nó bị set lại.
Bằng cách set bít EXEN2 trong T2CON thì thao tác nạp lạI cũng xảy ra khi tín hiệu ở chân T2EX chuyển t ừ 1 xuố ng 0, đây là chân đa chức năng P1.1 của 8052, cạnh xuống tạI T2EX cũng set một cờ mớI (EXF2) của timer 2.
Cùng với TF2, EXF2 cũng được kiểm tra bằng phần mề m hoặc tạo ra một ngắt, EXF2 phảI được xóa bằng phần mềm. Hình 4.8 trình bày timer 2 ở chế độ tự động nạp lại.
Xung kích TLx THx
TFx (5
bít)
(8 bít) (a) Mode 0 Xung
kích TLx
TH x
TFx (8 bít) (8 bít)
(b) Mode 1
Xung kích
TL x
TFx (8
bít)
Nạp lại (c) Mode 2
THx (8 bít)
Xung kích TL1 TH1
(8 bít) (8 bít)
TL0 TF0
Xung (8 bít)
kích Xung
kích TH0
TF1 (8 bít)
(d) Mode 3
Hình 4.8 Timer 2 mode tự nạp lại 16 bít 4.2.Chế độ thu nhận.
Khi CP/RL2 = 1 bộ định thời sẽ chuyển sang chế độ thu nhận, timer 2 hoạt động như một timer 16 bít và set bít TF2 khi khi có tràn từ FFFFH đến 0000H trong cặp thanh ghi TL2/TH2, trạng thái của TF2 được kiểm tra bằng phần mềm hoặc tạo một ngắt.
Để cho phép tính năng này phảI set bít EXEN2 trong T2CON, nếu EXEN2 = 1, sườn xuố ng tạI T2EX (P1.1) sẽ đưa giá trị trong cặ p thanh ghi định thời TL2/TH2 vào thanh ghi RCAP2L và RCAP2H bằng xung đồng hồ, cờ EXF2 cũng được set và như đã nói ở trên cờ này được kiễm tra bằng phần mềm hoặc dùng để tạo một ngắt. Hình 4.9 Mô tả timer 2 trong chế độ bắt.