Xem mẫu
- Các bộ định thời của 8051
Bài 9
Bộ môn TĐ
Khoa KTĐK
- Giới thiệu
• Các bộ định thời
ộ ị
– Các thiết bị thời gian: Tạo thời gian giữ chậm xác định
– Bộ đếm sự kiện: Đếm số lần xảy ra sự kiện (bên
ngoài)
• 8051 có hai bộ đếm 16 bit T0 và T1
• Các bộ định thời của 8051 có thể hoạt động theo
một vài chế độ
ột ài hế độ:
– Chế độ của bộ định thời được điều khiển bởi thanh
ghi TMOD
– Các bộ định thời bị điều khiển bởi thanh ghi TCON (4
ề ể
bit cao)
• Nguồn clock cho bộ định thời là sys_clock/12
g ộ ị y
- Các thanh ghi của bộ định thời
• Mỗi bộ định thời của 8051 có 2 thanh ghi 8
bit
• Các thanh ghi của bộ định thời 0
– TL0 và TH0
–ĐĐược truy cập giống như các th h ghi khá
t ậ iố h á thanh hi khác
• Mov TL0, #55H,
• Mov R1, TH0
R1
• Các thanh ghi của bộ định thời 1
– TL1 và TH1
à
- Bộ định thời của 8051: Thanh
ghi TMOD
hi
• Gate-Điều khiển cổng (
g (cách khởi tạo và dừng bộ định
g
thời)
– 0 → cổng mềm (bit TRx ở thanh ghi TCON)
– 1 → cổng cứng (
g g (Chân INTx))
• C/T-Hoạt động của Counter/Timer
– 0 → Hoạt động của bộ định thời (clock là sysclk/12)
– 1 → Hoạt động của bộ đếm (clock là chân T0 hoặc T1)
• M1:M0-Điều khiển chế độ
– 00 → Mode 0 (bộ định thời 13 bit)
– 01 → Mode 1(bộ đị h thời 16 bit)
M d định
– 10 → Mode 2 (bộ định thời 8 bit, tự động nạp lại)
– 11 → Mode 3 (tách bộ định thời)
- Bộ định thời – Mode 1
• Bộ định thời 16 bit
ộ ị
– Nạp vào bộ định thời một số và thiết lập TR để bắt
đầu đếm
– Khi bộ đếm quay về 0x0000 nó sẽ thiết lập cờ TF và
0x0000,
gây ra ngắt TF nếu được phép
- Bộ định thời – Mode 1
• Thuật toán
ậ
1. Nạp thanh ghi TMOD để đặt chế độ
2. Nạp giá trị đếm ban đầu vào TLx và THx
3.
3 Khởi độ bộ đị h thời
động định hời
4. Duy trì kiểm tra cờ TFx (jnb TFx, đích)
5.
5 Dừng bộ định thời (clr TRx) và xoá cờ TFx
6. Quay lại bước 2 để nạp lại
• Thời gian t ễ
ờ g a trễ
– Thời gian trễ = (65536-giá trị ban đầu)*chu kỳ clock
• Thay cho phương pháp dò cờ TFx, một ISR có
thể đ
được sử d
ử dụng
- Bộ định thời – Ví dụ ở Mode 1
• Tạo một sóng
vuông với hệ
số lấp đầy
50% trên P1.5
với Timer0
- Các bộ định thời và các ngắt
• Khi bộ định thời
TF1 hoặc TF0
g
tràn thì ngắt
được tạo ra
• Cho phép ngắt
p p g
và sau đó khởi
động bộ định
thời
• ISR xoá tự
động ờ TFx
độ cờ TF
- Bộ định thời để đo thời gian
• Bộ định thời được sử dụng để đo thời
gian trôi qua
– Hữu ích cho các nhiệm vụ thông
thương
h
– Không chính xác như RTC (đồng hồ
thời gian thực) nhưng rẻ
• Clock của bộ định thời bằng 1/12
ộ ị g
clock của 8051
– Chu kỳ thời gian cho một lần đếm là
1,085µs
– Thời gian tiêu tốn cho việc đếm đén
khi tràn (quay về 0) là
• Số lần đếm x 1,085µs
• Ví dụ: Bộ định thời được nạp giá trị
0xFFF2
– Số lần đếm đến khi vòng về 0 là
0XFFFF-0xFFF2+1 =14
– Thời gian tiêu tốn là: 14 x 1,085µs
- Bộ định thời để đo thời gian
• Cách tính giá trị nạp ban đầu để có được thời
g ị ạp ợ
gian giữ chậm yêu cầu T?
ầ
– Chia T cho 1,085µs để được n (giả thiết tần số thạch
anh là 11,0592 MHz)
, )
– Tìm m=65536-n
– Chuyển m sang số hex, m=0xUUVV
– Nạp TH← 0xUU và TL ← 0xVV
• Để có thời gian giữ chậm lâu hơn?
– Tổ chức một vòng lặp
– Thêm vào một số lệnh (nop), trước khi cho phép bộ
định thời làm việc lại
– Đưa ra RTC (đồng hồ thời gian thực)
( g g ự )
- Bộ định thời: Các chế độ khác
• Chế độ 0
– Giống như chế độ 1 nhưng nó là bộ định thời 13 bit
– Thứ từ đếm từ 0x0000 tới 0x1FFF
• Chế độ 2
– Bộ định thời 8 bit với khả năng tự nạp lại
– Nạp giá trị đếm vào TH và cho phép bộ định thời làm việc
– 8051 nạp vào TL giá t ị ở TH
à iá trị
– Khi TL quay vòng về 0x00, bộ định thời dựng cờ TF (và
ngắt)
– Sau khi cờ TF bị xoá bởi ISR/lệnh, TL được nạp lại từ động
giá trị ở TH và lặp lại quá trình trước
– Được sử dụng trong truyền thông nối tiếp để tạo tốc độ
baud
- Các bộ định thời là bộ đếm
• Bộ định thời đếm số lần một sự kiện thực tế xuất
ộ ị ộ ự ệ ự
hiện
– Có bao nhiêu số 1 trong luồng bit
– Có bao nhiêu người đi qua của …
• Các bộ đếm tăng số đếm khi chúng nhận một tín
hiệu (đếm xung)
• C bộ định thời của 8051 có thể làm việc như
Các ủ ể
các bộ đếm
– Bit C/T ở thanh g TMOD p ả là 1 để bộ đếm hoạt
C/ a ghi O phải à đế oạ
động
– 2 chân ngoài của 8051 nhận các xung đếm
• P3.4 (T0, chân 14): Xung đếm bên ngoài của Timer0
( , ) g g
• P3.5 (T1, chân 15): Xung đếm bên ngoài của Timer1
- Ví dụ về bộ đếm
• Đếm xung ở chân T1 (P3.5) và hiển thị g trị của
g ( ) ị giá ị
bộ đếm trên cổng P2. Bộ đếm làm việc ở chế độ
2
- Cổng bê
Cổ bên ngoài
ài
• Cổng bên ngoài cung cấp khả năng điều khiển bộ định
g g g p g
thời cùng với một thiết bị bên ngoài
– Các nut ấn có thể được sử dụng để cho phép hoặc không cho
phép bộ đếm
– Nút dừng trong một clock cơ sở của 8051
• Thiết lập GATE=1 ở TMOD, sau đó bộ định thời có thể
được điều khiển từ bên ngoài
ợ g
– Chân P3.2 (INT0) cho Timer0
– Chân P3.3 (INT1) cho Timer1
• Với GATE=1 Timer được phép nếu
GATE=1,
– TRx được thiết lập bởi phần mềm (setb TR0)
– AND, INT0 (chân P3.2) phải được kéo lên cao bởi phần cứng
nguon tai.lieu . vn