Peripherals - MCS 51 5TMOD TCON.
Trang 2Peripherals - MCS 51 3
Timer
¸ Timer là b đ m nh phân v i ngu n xung clock
̈ T b xung chu n (th ng l y t b on-chip oscillator c a V K)
̈ T tín hi u bên ngoài
¸ ng d ng c a timer
̈ T o các s ki n v i chu k đ nh tr c (timer)
̈ m các s ki n bên ngoài (counter)
¸ 8051 có 2 b timer 16 bits count-up (đ m thu n, giá tr t ng
d n sau m i xung nh p) v i 4 mode ho t đ ng
̈ THn : thanh ghi 8 bit ch a byte cao c a b đ m
̈ TLn : thanh ghi 8 bit ch a byte th p c a b đ m
̈ TRn : bit cho phép timer ho t đ ng
¸ TRn = 0 å timer ng ng ho t đ ng
¸ TRn = 1 å timer đ c phép ho t đ ng
̈ M1, M0 : 2 bit xác đ nh 4 mode c a Timer
̈ TFn : bit c báo b đ m tràn
̈ C/Tn : bit thi t l p Timer hay Counter
¸ C/T = 0 å Timer l y xung clock t on-chip oscillator
¸ C/T = 1 å Timer l y xung clock t bên ngoài qua port Tn
̈ GATE : k t h p v i TRn đ đi u khi n b đ m
¸ GATE = 1 å Timer ch ho t đ ng khi TRn=1 và INTn = HIGH
Trang 3Peripherals - MCS 51 5
TMOD
TCON
Trang 4̈ 8 bit cao là thanh ghi THx
̈ 5 bit th p là 5 bit MSB c a thanh ghi TLx (3 bit th p c a thanh ghi TL không s d ng)
¸ TFx = 1 khi n i dung c a b đ m tràn
Trang 5Peripherals - MCS 51 9
Mode 1
̈ Gi ng mode 0, ngo i tr s d ng b đ m 16 bit, thay vì
13 bit
¸ 8 bit MSB là thanh ghi THx
¸ 8 bit LSB là thanh ghi TLx
Timer1 mode 1
Mode 2
Trang 6Peripherals - MCS 51 11
̈ n i dung c a các thanh ghi TH1 và TL1 không thay đ i
̈ Timer1 v n có th ho t đ ng bình th ng các mode 0,
1, 2
̈ Timer1 không th s d ng TF1 (vì đ c Timer TH0 s
d ng)
Trang 8Peripherals - MCS 51 15
c n i dung Timer “On-the-fly”
Ví d 1
¸ Vi t ch ng trình trình t o xung vuông đ u t n s 10KHz t i c ng P1.0 s d ng Timer0 Bi t MCS-51
s d ng t n s fOSC 12MHz
Trang 9Peripherals - MCS 51 17
¸ T n s = 10KHz:
̈ P1.0 =LOW trong 50us
̈ P1.0 = HIGH trong 50us
¸ fOSC = 12MHz å chu k l nh = 1us
¸ S d ng Timer0 đ m 50us, m i l n tràn s l p bit P1.0
¸ Có th s d ng Timer0 mode 2 (auto-reload) Khi đó c n
Trang 10Peripherals - MCS 51 19
Ví d 2
¸ Vi t ch ng trình trình t o xung vuông đ u t n s 1KHz t i c ng P1.0 s d ng Timer0 Bi t MCS-51
s d ng t n s fOSC 12MHz
¸ T n s = 1KHz:
̈ P1.0 =LOW trong 500us
̈ P1.0 = HIGH trong 500us
¸ fOSC = 12MHz å chu k l nh = 1us
¸ S d ng Timer0 đ m 500us, m i l n tràn s l p bit P1.0
¸ Không th s d ng Timer0 mode 2 (auto-reload) vì
Trang 11mov TMOD,#01 ; timer + mode 1
loop: mov TH0,#0xFE
Trang 13¸ Trong khi đó byte th hai v n đ c ti p t c nh n
̈ i u khi n thông qua thanh ghi SCON
SCON
Trang 14Peripherals - MCS 51 27
Mode 0 – Thanh ghi d ch 8 bit
¸ Th c ch t là truy n tin n i ti p đ ng b , bán song công (half-duplex) (truy n và nh n không đ ng th i)
̈ RxD: c ng truy n và nh n thông tin
̈ TxD: c ng shift-out clock v i t n s d ch data b ng 1/12
t n s oscillator
̈ Bit đ u tiên là LSB
̈ Vi t m t byte c n truy n đ n SBUF
̈ Thi t l p các bit REN=1 và RI=0 trong thanh ghi SCON
Trang 15Peripherals - MCS 51 29
̈ T c đ truy n đ c quy t đ nh b i Timer1
̈ Transmit đ c start b i l nh vi t đ n SBUF
̈ Khi nh n đ 8 bit data, c RI s đ c set lên 1 (c n xóa
b i ph n m m)
Trang 16¸ Transmit đ c start b i l nh vi t đ n SBUF
¸ Khi nh n đ 9 bit data, c RI s đ c set lên 1 (c n xóa b i
ph n m m)
Trang 17̈ Mode 0: t c đ truy n = 1/12 f osc
̈ Mode 2: 1/32 fOSC(SMOD = 0) ho c 1/64 fOSC(SMOD=1)
¸ Mode 1 và 3 có th s d ng Timer 1 đ thi t l p t c đ truy n tin
̈ T c đ truy n đ c xác đ nh b ng t c đ tràn c a timer 1
̈ SMOD là bit trong thanh ghi PCON
Trang 18Peripherals - MCS 51 35
(auto-reload) ho t đ ng nh “timer” đ làm b phát t c truy n tin, khi đó t c đ truy n đ c xác đ nh theo công th c
Trang 19Peripherals - MCS 51 37
Ví d - kh i t o UART
¸ Vi t đo n ch ng trình kh i t o c ng truy n tin n i
ti p ch đ UART – 8bit, s d ng Timer1 đ t o
Trang 21Peripherals - MCS 51 41
Ví d - truy n ký t ASCCI
c t trong thanh ghi A lên đ ng truy n Tx
Trang 23¸ Truy n lên Tx mã ký t sau khi đã đ i
¸ Truy n tin theo ch đ UART – 8 bit, t c đ
Trang 24Peripherals - MCS 51 47
Ng t (Interrupt)
¸ Ng t là tín hi u không đ ng b do hardware ho c software
g i đ n CPU đ yêu c u th c hi n m t thao tác
̈ hardware interrupt: CPU c t gi các thông tin c n thi t sau đó chuy n qua ch ng trình ph c v ng t ( ISR interupt service routine)
̈ software interrupt: do m t l nh đ c thi t k đ c bi t trong t p l nh
Trang 25Peripherals - MCS 51 49
Timer 2 ch có trong 8052
Thanh ghi IE
Trang 28Peripherals - MCS 51 55
X lý ng t
¸ Khi ng t x y ra, n u ng t đ c CPU ch p nh n thì ch ng trình chính s b “ng t” và các thao tác sau s đ c ti n hành (b i ph n c ng):
ch ng trình ph c v ng t (ISR: Interrupt Service Routine)
̈ C báo ngu n ng t s b xóa (ngo i tr c báo ng t RI và TI)
¸ ISR c n ph i k t thúc v i m t l nh RETI, l nh này s l y l i giá tr c c a PC t ng n x p