Timer 1” Timer 0 GATE_ Điều khiển cổng khi được thiết lập.. Bộ định thời/bộ đếm được mở.. chỉ khi chân TNT cao và chân điều khiển TRx được lập.. Nếu GATE được xoá, bộ định thời được mở
Trang 1Các bộ định thời của 8051
Bài 9
Bo mon TB Khoa KT ĐK
Trang 2Giớ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)
ö051 có hai bộ đêm 16 bit TO va T1 Các bộ định thời của 8051 có thê hoạt động theo mot vai che do:
— 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)
¢ Ngu6n clock cho bo định thời là sys_ clock/12
Trang 3
nh 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
— TLO va THO
— Được truy cập giỗng như các thanh ghi khác
¢ Mov TLO, #55H,
¢ Mov R1, THO
¢ Cac thanh ghi cua bộ định thời {|
— [L1 và THỊ
Trang 4
thoi cua 8051: Thanh ghi TMOD
¢ Gate-Diéu khién công (cách khởi tạo và dừng bộ định
thời)
— 0 —› công mềm (bit TRx ở thanh ghi TCON)
— †1 — công cứng (Chân INTx)
¢ C/T-Hoat d6éng cua Counter/Timer
— 0 —› Hoạt động của bộ định thời (clock la 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ộ định thời 16 bit)
— 10 —› Mode 2 (bộ định thời 6 bit, tự động nạp lại)
— 11 — Mode 3 (tách bộ định thời)
Trang 5
(Timer 1” Timer 0
GATE_ Điều khiển cổng khi được thiết lập Bộ định thời/bộ đếm được mở
chỉ khi chân TNT cao và chân điều khiển TRx được lập
Nếu GATE được xoá, bộ định thời được mở khi TRx được lập C/T Bộ định thời hoặc bộ đếm bị xoá khi hoạt động (đâu vào từ đồng hỏi
hệ thống trong) Thiết lap hoạt động bộ đếm (đầu vào từ chân vào Tx)
MI — Ché do bit1
MO —Ché do bit 0
Mi MOT" "Mode" Ché 46 hoat động
0 0 0 Chế độ bộ định thời 13 bít
Bộ định thờïbộ đếm 8 bit, đnh tỷ lệ trước 5 bịt
i 1 Che G6 66 đình thai 16 bit; Không định tỷ lệ trước
PT TS Ché G6 8 bit tự nạp lại
BO dém/b6 dinh thdi 8 bit ty nap Iai THx lưu giá tị sẽ tự nạp vào TLx mỗi khi tran
TT 1 | 3 Che 6 b6 ain th chia tach
Hình A § Thanh ghi TMOD L
ar |
Trang 6inh thoi — Mode 1
¢ Bo dinh tho’ 16 bit
— Nap vao bo dinh thoi mot số và thiết lập TR đề bắt đầu dém
— Khi bộ đêm quay vê 0x0000, nó sẽ thiết lập cờ TF và gây ra ngắt TF nêu được phép
oscillator | — divide by 12 TH | TL «| TF
TF=] if TETL frou
to Ox00%
Trang 7
Bo dinh thoi — Mode 1
¢ Thuat toan
1 Nap thanh ghi TMOD dé dat ché dé
2 Nạp giá trị đêm ban đầu vào TLx và THx
3 Khởi động bộ định thời
4 Duy trì kiểm tra cờ TFx (jnb TFx, đích)
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 trễ
— Thời gian trê = (65536-giá trị ban đâu) ”chu ky clock
* Thay cho phương pháp dò cờ TFx, một ISR có
thê được sử dụng
Trang 8thoi — Vi du & Mode 1
mov TMOD, #01 ‘Timer 0, mode 1 Here: mov TLO, #0F2H
mov THO, #0FFH ‘Initial Value = FFF2H
¢ Tao mot song saan
acall delay
vuông với hệ "5
symp Here
S O lô â Ð da ay Delay: setb TRO :start Tưner0
5 0 % tre ên D 1 5 Again: jab TFO, Again :poll for TFO (timer overflow)
ra clr TRO ‘stop timer VƠI TỊ Me r0 clr TFO :clear TFO flag
RET
Trang 9
¢ Khi bo dinh tho"
TF1 hoac TFO tran thi ngat
được tạo ra
‹ Cho phép ngắt
và sau đó khởi động bộ định thời
¢ ISR xoá tự
động cờ TFx
định thời và các ngắt
Program to generate a square wave on Pin1.2
main:
here:
org 0x0000
limp MAIN
orq 0x000B
cpl P1.2 mov TLO, #0x55 mov THO, #0xAA
reti org 0x0030
mov TMOD, #0000 00018 ;T0, Mode1
‘ISR for TO
‘toggle P1.2
‘reload T0
mov TLO, #0x55 load T0
mov THO, #0xAA
mov IE, #0x82 ‘enable 10 interrupt
setb TRO ‘start T0 sjmp here ‘wait here until interrupted
Trang 10
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
— Không chính xác như RTC (đồng hồ thời gian thực) nhưng rẻ
Clock cua bộ định thời bằng 1/12 clock của 8051
— Chu kỳ thời gian cho một lần đêm là
1,085us
— Thời gian tiêu tốn cho việc đếm đén khi tràn (quay vệ 0) là
¢ S6 lan dém x 1,085us
Ví dụ: BỘ định thời được nạp giá trị OxFFF2
— Số lần đêm đến khi vòng về 0 là
OXFFFF-OxFFF2+1 =14
— Thời gian tiêu tốn là: 14 x 1,085us
thoi dé do thời gian
Timer0 sequence FFF2 TF=0 FFF3 TF=0 FFF4 TF=0
FFFE TF=0 FFFF TF=1
Trang 11
Bộ định thoi dé do thời gian
°ồ Cách tính giá trị nạp ban đâu để có được thời
gian giữ chậm yêu câu T'?
— Chia T cho 1,085us để được n (giả thiết tần số thạch
anh la 11,0592 MHz)
— Tim m=65536-n
— Chuyên m sang số hex, m=0xUUVV
— Nap TH< OxUU va TL — 0xVV
© Dé co thoi gian git? cham lau hon?
— 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)
Trang 12thời: Các chê độ khác
— Giỗng như chê độ 1 nhưng nó là bộ định thời 13 bit
— Thứ từ đếm từ 0x0000 tới 0x1FFF
— Bộ định thời 8 bit với khả năng tự nạp lại
— Nap gia trị dém vao TH va cho phép bộ định thời làm việc
— 8051 nạp vào TL giá trị ở TH
— Khi TL quay vòng về 0x00, bộ định thời dựng co TF (va
ngat)
— Sau khi cờ TF bị xoá bởi ISR/lệnh, TL được nạp lại từ động giá trị ở TH va lap 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
(one)
Trang 13Các bộ định thời là bộ đêm
¢ BO đị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 cua
° Các bộ đêm tăng sô đêm khi chúng nhận một tín hiệu (đêm xung)
°ồ Các bộ định thời của 8051 có thê làm việc như
các bộ đêm
— Bit C/T ở thanh ghi TMOD phải là 1 để bộ đêm hoạt
động
— 2 chân ngoài của 8051 nhận các xung đêm
°« P3.4 (T10, chân 14): Xung đêm bên ngoài của Timer0
°Ò P3.5 (T1, chân 15): Xung đêm bên ngoài của Timer’
Trang 14í dụ vệ bộ đêm
° Đêm xung ở chân T1 (P3.5) và hiên thị giá trị của
bộ đêm trên công P2 Bộ đêm làm việc ở chê độ
2
START: mov TMOD., #01100000B -counter 1, mode 2, C/T=1
mov TH1 +0 -count from 0x00 to OxFF
setb P3 5 ;configure P3 5 as input
AGAIN: setb TRÍ :enable counter BACK-: mov A, TL1 ‘read TL1 value
mov P2.A ;đisplay 1t on P2 1nb TF1 back ;poll for TEF1, could se INT1 also clr TR1 :stop counter
clr TF1 clear TF1 flag
symp AGAIN ;while(1)
Trang 15
Công bên ngoài
Công bên ngoài cung cap khả năng điêu khiển bộ định
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
— Chân P3.2 (INT0) cho TimerO
— Chân P3.3 (INT1) cho Timer1
Với GATE=1, Timer được phép nêu
— TRx được thiết lập bởi phần mềm (setb TRO)
— AND, INT0 (chân P3.2) phải được kéo lên cao bởi phần cứng