Beruflich Dokumente
Kultur Dokumente
Hnh 9.1: Cc thanh ghi ca b Timer 0. 9.1.1.2 Cc thanh ghi ca b Timer 1. B nh thi gian Timer 1 cng di 16 bt v thanh ghi 16 bt ca n c chia ra thnh hai byte l TL1 v TH1. Cc thanh ghi ny c truy cp v c ging nh cc thanh ghi ca b Timer 0 trn.
TH1 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 TL1 D4 D3 D2 D1 D0
Hnh 9.2: Cc thanh ghi ca b Timer 1. 9.1.2 Thanh ghi TMOD (ch ca b nh thi). C hai b nh thi Timer 0 v Timer 1 u dng chung mt thanh ghi c gi l IMOD thit lp cc ch lm vic khc nhau ca b nh thi. Thanh ghi TMOD l thanh ghi 8 bt gm c 4 bt thp c thit lp dnh cho b Timer 0 v 4 bt cao dnh cho Timer 1. Trong hai bt thp ca chng dng thit lp ch ca b nh thi, cn 2 bt cao dng xc nh php ton. Cc php ton ny s c bn di y.
Hnh 9.3: Thanh ghi IMOD. 9.1.2.1 Cc bt M1, M0: L cc bt ch ca cc b Timer 0 v Timer 1. Chng chn ch ca cc b nh thi: 0, 1, 2 v 3. Ch 0 l mt b nh thi 13, ch 1 l mt b nh thi 16 bt v ch 2 l b nh thi 8 bt. Chng ta ch tp chung vo cc ch thng c s dng rng ri nht l ch 1 v 2. Chng ta s sm khm ph ra cc c tnh c cc ch ny sau khi khm phn cn li ca thanh ghi TMOD. Cc ch c thit lp theo trng thi ca M1 v M0 nh sau: M1 0 0 1 1 M0 0 1 0 1 Ch 0 1 2 3 Ch hot ng B nh thi 13 bt gm 8 bt l b nh thi/ b m 5 bt t trc B nh thi 16 bt (khng c t trc) B nh thi 8 bt t np li Ch b nh thi chia tch
9.1.2.2 C/ T (ng h/ b nh thi). Bt ny trong thanh ghi TMOD c dng quyt nh xem b nh thi c dng nh mt my to tr hay b m s kin. Nu bt C/T = 0 th n c dng nh mt b nh thi to ch thi gian. Ngun ng h cho ch tr thi gian l tn s thch anh ca 8051. phn ny ch bn v la chn ny, cng dng ca b nh thi nh b m s kin th s c bn phn k tip. V d 9.1: Hy hin th xem ch no v b nh thi no i vi cc trng hp sau: a) MOV TMOD, #01H b) MOV TMOD, #20H c) MOV TMDO, #12H Li gii: Chng ta chuyn i gi tr t s Hex sang nh phn v i chiu hnh 93 ta c:
a) TMOD = 0000 0001, ch 1 ca b nh thi Timer 0 c chn. b) TMOD = 0010 0000, ch 1 ca b nh thi Timer 1 c chn. c) TMOD = 0001 0010, ch 1 ca b nh thi Timer 0 v ch 1 ca Timer 1 c chn.
9.1.2.3 Ngun xung ng h cho b nh thi: Nh chng ta bit, mi b nh thi cn mt xung ng h gi nhp. Vy ngun xung ng h cho cc b nh thi trn 8051 ly u? Nu C/T = 0 th tn s thch anh i lin vi 8051 c lm ngun cho ng h ca b nh thi. iu c ngha l ln ca tn s thch anh i km vi 8051 quyt nh tc nhp ca cc b nh thi trn 8051. Tn s ca b nh thi lun bng 1/12 tn s ca thch anh gn vi 8051. Xem v d 9.2. V d 9.2: Hy tm tn s ng b v chu k ca b nh thi cho cc h da trn 8051 vi cc tn s thch anh sau:
Tn s ng h ca b nh thi
Li gii: a)
1 1 12MHz = 1MHz v T = = 1ms 12 1 / 1MHz 1 1 = 0,75ms 16MHz = 1,111Mz v T = b) 12 1,333MHz 1 1 = 1,085ms c) 11,0592MHz = 921,6kHz v T = 12 0,9216MHz
Mc d cc h thng da trn 8051 khc vi tn s thch anh t 10 n 40MHz, song ta ch tp chung vo tn s thch anh 11,0592MHz. L do ng sau mt s l nh vy l hi lm vic vi tn sut bouid i vi truyn thng ni tip ca 8051. Tn s XTAL = 11,0592MHz cho php h 8051 truyn thng vi IBM PC m khng c li, iu m ta s bit chng 10. 9.1.3 Bt cng GATE. Mt bt khc ca thanh ghi TMOD l bt cng GATE. trn hnh 9.3 ta thy c hai b nh thi Timer0 v Timer1 u c bt GATE. Vy bt GATE dng lm g? Mi b nh thi thc hin im khi ng v dng. Mt s b nh thi thc hin iu ny bng phn mm, mt s khc bng phn cng v mt s khc va bng phn cng va bng phn mm. Cc b nh thi tren 8051 c c hai. Vic khi ng v dng b nh thi c khi ng bng phn mm bi cc bt khi ng b nh thi TR l TR0 v TR1. iu ny c c nh cc lnh SETB TR1 v CLR TR1 i vi b Timer1 v SETB TRO v CLR TR0 i vi b Timer0. Lnh SETB khi ng b nh thi v lnh CLR dng dng n. Cc lnh ny khi ng v dng cc b nh thi khi bt GATE = 0 trong thanh ghi TMOD. Khi ng v ngng b nh thi bng phn cng t ngun ngoi bng cch t bt GATE = 1 trong thanh ghi TMOD. Tuy nhin, trnh s ln ln ngay t by gi ta t GATE = 0 c ngha l khng cn khi ng v dng cc b nh thi bng phn cng t bn ngoi. s dng phn mm khi ng v dng cc b nh thi phn mm khi ng v dng cc b nh thi khi GATE = 0. Chng ta ch cn cc lnh SETB TRx v CLR TRx. Vic s dng phn cng ngoi khi ng v dng b nh thi ta s bn chng 11 khi bn v cc ngt. V d 9.3: Tm gi tr cho TMOD nu ta mun lp trnh b Timer0 ch 2 s dng thch anh XTAL 8051 lm ngun ng h v s dng cc lnh khi ng v dng b nh thi. Li gii: TMOD = 0000 0010: B nh thi Timer0, ch 2 C/T = 0 dng ngun XTAL GATE = 0 dng phn mm trong khi ng v dng b nh thi. Nh vy, by gi chng ta c hiu bit c bn v vai tr ca thanh ghi TMOD, chng ta s xt ch ca b nh thi v cch chng c lp trnh nh th no to ra mt tr thi gian. Do ch 1 v ch 2 c s dng rng ri nn ta i xt chi tit tng ch mt. 9.1.4 Lp trnh cho mi ch Mode1.
XTAL oscillator
12
TH
TL
TF overflow flag
C/T = 0
TR
4. Sau khi b nh thi t c gii hn ca n v quay quan gi tr FFFFH, mun lp li qu trnh th cc thanh ghi TH v TL phi c np li vi gi tr ban u v TF phi c duy tr v 0. 9.1.4.1 Cc bc lp trnh ch Mode 1. to ra mt tr thi gian dng ch 1 ca b nh thi th cn phi thc hin cc bc di y. 1. Np gi tr TMOD cho thanh ghi bo nh thi no (Timer0 hay Timer1) c s dng v ch no c chn. 2. Np cc thanh ghi TL v TH vi cc gia tr m ban u. 3. Khi ng b nh thi. 4. Duy tr hin th c b nh thi TF bng lnh JNB TFx, ch xem n c bt khng. Thot vng lp khi TF c ln cao. 5. Dng b nh thi. 6. Xo c TF cho vng k tip. 7. Quay tr li bc 2 np li TL v TH. tnh ton thi gian tr chnh xc v tn s sng vung c to ra trn chn P1.5 th ta cn bit tn s XTAL (xem v d 9.5). T v d 9.6 ta c th pht trin mt cng thc tnh ton tr s dng ch Mode1 (16 bt) ca b nh thi i vi tn s thch anh XTAL = 11, 0592MHz (xem hnh 9.4). My tnh trong th mc Accessrry ca Microsoft Windows c th gip ta tm cc gi tr TH v TL. My tnh ny h tr cc php tnh theo s thp phn, nh phn v thp lc.
Hnh 9.4: Cng thc tnh ton tr thi gian i vi tn s XTAL = 11, 0592MHz. V d 9.4: Trong chng trnh di y ta to ra mt sng vung vi y xung 50% (cng t l gia phn cao v phn thp) trn chn P1.5. B nh thi Timer0 c dng to tr thi gian. Hy phn tch chng trnh ny.
HERE: MOV TMOD, #01 MOV TL0, #0F2H MOV TH0, #0FFH CPL P1.5 ACALL DELAY SJMP HERE delay using timer0. SETB JNB CLR CLR RET TR0 TF0, AGAIN TR0 TF0 ; S dng Timer0 v ch 1(16 bt) ; TL0 = F2H, byte thp ; TH0 = FFH, byte cao ; S dng chn P1.5 ; Np li TH, TL ; Khi ng b nh thi Timer0 ; Hin th c b nh thi cho n khi n vt qua FFFFH. ; Dng b Timer ; Xo c b nh thi 0
; DELAY: AGAIN:
Li gii: Trong chng trnh trn y ch cc bc sau: 1. TMOD c np. 2. gi tr FFF2H c np v TH0 - TL0 3. Chn P1.5 c chn dng cho phn cao thp ca xung. 4. Chng trnh con DELAY dng b nh thi c gi. 5. Trong chng trnh con DELAY b nh thi Timer0 c khi ng bi lnh SETB TR0 6. B Timer0 m ln vi mi xung ng h c cp bi my pht thch anh. Khi b nh thi m tng qua cc trng thi FFF3, FFF4 ... cho n khi t gi tr FFFFH. V mt xung na l n quay v khng v bt c b nh thi TF0 = 1. Ti thi im ny th lnh JNB hn xung. 7. B Timer0 c dng bi lnh CLR TR0. Chng trnh con DELAY kt thc v qu trnh c lp li. Lu rng lp li qu trnh trn ta phi np li cc thanh ghi TH v TL v khi ng li b nh thi vi gi thit tn s XTAL = 11, 0592MHz.
FFF2 TF = 0 FFF3 TF = 0 FFF4 TF = 0 FFFF TF = 0 0000 TF = 1
V d 9.5:
to ra b tr bng s m 1,085ms. S m bng FFFFH - FFF2H = ODH (13 theo s thp phn). Tuy nhin, ta phi cng 1 vo 13 v cn thm mt nhp ng h n quay t FFFFH v 0 v bt c TF. Do vy, ta c 14 1,085ms = 15,19ms cho na chu k v c chu k l T = 2 15,19ms = 30, 38ms l thi gian tr c to ra bi b nh thi. V d 9.6: Trong v d 9.5 hy tnh ton tn s ca xung vung c to ra trn chn P1.5. Li gii: Trong tnh ton thi gian tr ca v d 9.5 ta khng tnh n tng ph ca cc lnh trong vng lp. tnh ton chnh xc hn ta cn b xung thm cc chu k thi gian ca cc lnh trong vng lp. lm iu ta s dng cc chu k my t bng A-1 trong ph lc Appendix A c ch di y.
HERE: MOV TL0, #0F2H MOV TH0, #0FFH CPL P1-5 ACALL DELAY SJMP HERE delay using timer0 SETB JNB CLR CLR RET TR0 TF0, AGAIN TR0 TF0 2 2 1 2 2 1 1 1 1 1
; DELAY: AGAIN:
Tng s chu k b xung l x7 nn chu k thi gian tr l T = 2 27 1.085ms = 58,59ms v tn s l F = 17067,75Hz. V d 9.7: Hy tm ra tr c to ra bi Timer0 trong on m sau s dng c hai phng php ca hnh 9.4. Khng tnh cc tng ph ca cc lnh.
CLR MOV MOV MOV SETB SETB JNB P2.3 TMOD, #01 TL0, #3EH TH0, #0B8G P2.3 TR0 TF0, AGAIN ; Xo P2.3 ; Chn Timer0, ch 1 (16 bt) ; TL0 = 3EH, byte thp ; TH0 = B8H, byte cao ; Bt P2.3 ln cao ; Khi ng Timer0 ; Hin th c b nh thi TF0
27
HERE:
AGAIN:
Li gii: a) tr c to ra trong m trn l: (FFFF - B83E + 1) = 47C2H = 18370 h thp phn 18370 1,085ms = 19, 93145ms. b) V TH - TL = B83EH = 47166 (s thp phn) ta c 65536 - 47166 = 18370. iu ny c ngha l b nh thi gian m t B83EH n FFFF. N c cng vi mt s m v 0 thnh mt b tng l 18370ms. Do vy ta c 18370 1,085ms = 19,93145ms l rng xung. V d 9.8: Sa gi tr ca TH v TL trong v d 9.7 nhn c tr thi gian ln nht c th. Hy tnh tr theo miligiy. Trong tnh ton cn a vo c tng ph ca cc lnh. nhn tr thi gian ln nht c th ta t TH v TL bng 0. iu ny lm cho b nh thi m t 0000 n FFFFH v sau quay qua v 0.
CLR MOV MOV MOV SETB SETB JNB CLR CLR CLR P2.3 TMOD, #01 TL0, #0 TH0, #0 P2.3 TR0 TF0, AGAIN TR0 TF0 P2.3 ; Xo P2.3 ; Chn Timer0, ch 1 (16 bt) ; t TL0 = 0, byte thp ; t TH0 = 0, byte cao ; Bt P2.3 ln cao ; Khi ng b Timer0 ; Hin th c b nh thi TF0 ; Dng b nh thi. ; Xo c TF0
HERE:
AGAIN:
Thc hin bin TH v TL bng 0 ngha l b nh thi m tng t 0000 n FFFFH v sau quay qua v 0 bt c b nh thi TF. Kt qu l n i qua 65536 trng thi. Do vy, ta c tr = (65536 - 0) 1.085ms = 71.1065ms. Trong v d 9.7 v 9.8 chng ta khng np li TH v TL v n l mt xung n. Xt v d 9.9 di y xem vic np li lm vic nh th no ch 1. V d 9.9: Chng trnh di y to ra mt sng vung trn chn P2.5 lin tc bng vic s dng b Timer1 to ra tr thi gian. Hy tm tn s ca sng vung nu tn s XTAL = 11.0592MHz. Trong tnh ton khng a vo tng ph ca cc lnh vng lp:
HERE: MOV MOV MOV SETB JNB CLR CPL CLR SJMP TMOD, #01H TL1, #34H TH0, #76H TR1 TF1, BACK TR1 P1.5 TF AGAIN ; Chn Timer0, ch 1 (16 bt) ; t byte thp TL1 = 34H ; t byte cao TH1 = 76H ; (gi tr b nh thi l 7634H) ; Khi ng b Timer1 ; li cho n khi b nh thi m qua 0 ; Dng b nh thi. ; B chn P1.5 nhn Hi, L0 ; Xo c b nh thi ; Np li b nh thi do ch 1 khng t ng np li .
AGAIN:
Li gii:
HERE:
AGAIN:
V d 9.11: gi s ta c tn s XTAL l 11,0592MHz hy vit chng trnh to ra mt sng vung tn s 2kHz trn chn P2.5. y l trng hp ging vi v d 9.10 ngoi tr mt vic l ta phi chn bt to ra sng vung. Xt cc bc sau:
a) T =
cn tm l 65536 - 230 = 65306 v dng hex l FF1AH. d) gi tr np vo TL l 1AH v TH l FFH. Chng trnh cn vit l:
AGAIN: BACK: MOV TMOD, #10H MOV TL1, #1AH MOV TH1, #0FFH SETB TR1 JNB TF1, BACK CLR TR1 CPL P1.5 CLR TF1 SUMP AGAIN ; Chn b nh thi Timer0, ch 1 (16 bt) ; Gn gi tr byte thp TL1 = 1AH ; Gn gi tr byte cao TH1 = FFH ; Khi ng Timer1 ; gi nguyn cho n khi b nh thi quay v 0 ; Dng b nh thi. ; B bt P1.5 nhn gi tr cao, thp. ; Xo c TF1 ; Np li b nh thi v ch 1 khng t np li.
d) Tnh gi tr cn np vo TH v TL: 65536 - 9216 = 56320 chuyn v dng Hex l DC00H v TH = DCH v TL = 00H.
AGAIN: BACK: MOV TMOD, #10H MOV TL1, #00 MOV TH1, #0DHCH SETB TR1 JNB TF1, BACK CLR TR1 CPL P2.3 CLR TF1 SUMP AGAIN ; Chn b nh thi Timer0, ch 1 (16 bt) ; Gn gi tr byte thp TL1 = 00 ; Gn gi tr byte cao TH1 = DC ; Khi ng Timer1 ; gi nguyn cho n khi b nh thi quay v 0 ; Dng b nh thi. ; B bt P1.5 nhn gi tr cao, thp. ; Xo c TF1 ; Np li b nh thi v ch 1 khng t np li.
9.1.4.3 To mt tr thi gian ln. Nh ta bit t cc v d trn l lng thi gian tr cn to ra ph thuc vo hai yu t: a) Tn s thch anh XTAL b) Thanh ghi 16 bt ca b nh thi ch 1 C hai yu t ny nm ngoi kh nng iu chnh ca lp trnh vin 8051. V nh ta bit gi tr ln nht ca tr thi gian c th t c bng cch t c TH v TL
BACK:
9.1.5 Ch O. Ch 0 hon ton ging ch 1 ch khc l b nh thi 16 bt c thay bng 13 bt. B m 13 bt c th gi cc gi tr gia 0000 n 1FFFF trong TH - TL. Do vy khi b nh thi t c gi tr cc i ca n l 1FFFH th n s quay tr v 0000 v c TF c bt ln. 9.1.6 Lp trnh ch 2. Cc c trng v cc php tnh ca ch 2: 1. N l mt b nh thi 8 bt, do vy n ch cho php cc gi tr t 00 n FFH c np vo thanh ghi TH ca b nh thi. 2. Sau khi TH c np vi gi tr 8 bt th 8051 ly mt bn sao ca n a vo TL. Sau b nh thi phi c khi ng. iu ny c thc hin bi lnh SETB TR0 i vi Timer0 v SETB TR1 i vi Timer1 ging nh ch 1. 3. Sau khi b nh thi c khi ng, n bt u m tng ln bng cch tng thanh ghi TL. N m cho n khi i gi tr gii hn FFH ca n. Khi n quay tr v 00 t FFH, n thit lp c b nh thi TF. Nu ta s dng b nh thi Timer0 th l c TF0, cn Timer1 th l c TF1.
XTAL oscillator
-
12
TL reload
C/T = 0
TR
TF
4. Khi thanh ghi TL quay tr v 00 t FFH th TF c bt ln 1 th thanh ghi TL c t ng np li vi gi tr ban u c gi bi thanh ghi TH. lp li qu trnh chng ta n gin ch vic xo c TF v cho n chy m khng cn s can thip ca lp trnh vin np li gi tr ban u. iu ny lm cho ch 2 c gi l ch t np li so vi ch 1 th ta phi np li cc thanh ghi TH v TL. Cn phi nhn mnh rng, ch 2 l b nh thi 8 bt. Tuy nhin, n li c kh nng t np khi t np li th TH thc cht l khng thay i vi gi tr ban u c gi nguyn, cn TL c np li gi tr c sao t TH. Ch ny c nhiu ng dng bao gm vic thit lp tn s baud trong truyn thng ni tip nh ta s bit chng 10. 9.1.5.1 Cc bc lp trnh cho ch 2. to ra mt thi gian tr s dng ch 2 ca b nh thi cn thc hin cc bc sau: 1. Np thanh ghi gi tr TMOD bo b nh thi gian no (Timer0 hay Timer1) c s dng v ch lm vic no ca chng c chon. 2. Np li cc thanh ghi TH vi gi tr m ban u. 3. Khi ng b nh thi. 4. Duy tr hin th c b nh thi TF s dng lnh JNB TFx, ch xem n s c bt cha. Thot vng lp khi TF ln cao. 5. Xo c TF. 6. Quay tr li bc 4 v ch 2 l ch t np li. V d 9.14 minh ho nhng iu ny. c c ch ln chng ta c th dng nhiu thanh ghi nh c ch ra trong v d 9.15. V d 9.14: gi s tn s XTAL = 11.0592MHz. Hy tm a) tn s ca sng vung c to ra trn chn P1.0 trong chng trnh sau v b) tn s nh nht c th c c bng chng trnh ny v gi tr TH t c iu .
MOV MOV SETB JNB CPL CLR SJMP TMOD, #20H TH1, #5 TR1 TF1, BACK P1.0 TF1 BACK ; Chn Timer1/ ch 2/ 8 bt/ t np li. ; TH1 = 5 ; Khi ng Timer1 ; gi nguyn cho n khi b nh thi quay v 0 ; Dng b nh thi. ; Xo c b nh thi TF1 ; Ch 2 t ng np li.
BACK:
Li gii:
Li gii: Chng ta c th s dng bn tnh Calculator ca Windows kim tra kt qu c cho bi trnh hp ng. Hy chn Calculator ch Decimal v nhp vo s 200. Sau chn Hex, ri n +/ - nhn gi tr ca TH. Hy nh rng chng ta ch s dng ng hai ch s v b qua phn bn tri v d liu chng ta l 8 bt. Kt qu ta nhn c nh sau: Dng thp phn S b hai (gi tr TH)
- 200 - 60 -3 - 12 - 48 38H C4H FDH F4H DOH
9.1.5.2 Cc trnh hp ng v cc gi tr m.
AGAIN:
BACK:
; Khi ng Timer0 ;gi nguyn cho n khi b nh thi quay v 0 ; Dng Timer0 ; Xo c TF cho vng sau.
Li gii: tm gi tr cho TH ch 2 th trnh hp ng cn thc hin chuyn i s m khi ta nhp vo. iu ny cng lm cho vic tnh ton tr n d dng. V ta ang s dng 150 xung ng h, nn ta c thi gian tr cho chng trnh con DELAY l 150 1.085ms v tn s l f =
1 = 2,048kHz. T
rng trong nhiu tnh ton thi gian tr ta b cc xung ng h lin quan n tng ph cc lnh trong vng lp. tnh ton chnh xc hn thi gian tr v c tn s ta ang cn phi a chng vo. Nu ta dng mt my hin sng s v ta khng nhn c tn s ng nh ta tnh ton th l do tng ph lin quan n cc lnh gi trong vng lp. Trong phn ny ta dng b nh thi 8051 to thi gian tr. Tuy nhin, cng dng mnh hn v sng to hn ca cc b nh thi ny l s dng chng nh cc b m s kin. Chng ta s bn v cng dng ca b m ny phn k tip. 9.2 Lp trnh cho b m. phn trn y ta s dng cc b nh thi ca 8051 to ra cc tr thi gian. Cc b nh thi ny cng c th c dng nh cc b m cc s kin xy ra bn ngoi 8051. Cng dng ca b m/ b nh thi nh b m s kin s c tnh by phn ny. Chng no cn lin quan n cng dng c b nh thi nh b m s kin th mi vn m ta ni v lp trnh b nh thi phn trc cng c p dng cho vic lp trnh nh l mt b m ngoi tr ngun tn s. i vi b nh thi/ b m khi dng n nh b nh thi th ngun tn s l tn s thch anh ca 8051. Tuy nhin, khi n c dng nh mt b m th ngun xung tng ni dung cc thanh ghi TH v TL l t bn ngoi 8051. ch b m, hy lu rng cc thanh ghi TMOD v TH, TL cng ging nh i vi b nh thi c bn phn trc, thm ch chng vn c cng tn gi. Cc ch ca cc b nh thi cng ging nhau. 9.2.1 Bt C/T trong thanh ghi TMOD.
V d 9.18: gi s rng xung ng h c cp ti chn T1, hy vit chng trnh cho b m 1 ch 2 m cc xung v hin th trng thi ca s m TL1 trn cng P2. Li gii:
MOV MOV SETB SETB MOV MOV JNB CLR CLR SJMP TMOD, #01100000B TH1, #0 P3.5 TR1 A, TL1 P2, A TF1, Back TR1 TF1 AGAIN ; Chn b m 1, ch 2, bt C/T = 1 xung ngoi. ; Xo TH1 ; Ly u vo T1 ; Khi ng b m ; Ly bn sao s m TL1 ; a TL1 hin th ra cng P2. ; Duy tr n nu TF = 0 ; Dng b m ; Xo c TF ; Tip tc thc hin
AGAIN: BACK:
trong chng trnh trn v vai tr ca lnh SETB P3.5 v cc cng c thit lp dnh cho u ra khi 8051 c cp ngun nn ta mun P3.5 tr thnh u vo th phi bt n ln cao. Hay ni cch khc l ta phi cu hnh (a ln cao) chn T1 8051 (P3.5) cho php cc xung c cp vo n.
P2
T1 P3.5 to LEDs
Trong v d 9.18 chng ta s dng b Timer1 nh b m s kin n m ln mi khi cc xung ng h c cp n chn P3.5. Cc xung ng h ny c th biu din s ngi i qua cng hoc s vng quay hoc bt k s kin no khc m c th chuyn i thnh cc xung. Trong v d 9.19 cc thanh ghi TL c chuyn i v m ASCII hin th trn mt LCD.
overflow flag TH0 TL0 TR0 TF0 goes high when FFFF 0 TF0
C/T =1
C/T =1
Hnh 9.5: a) B Timer0 vi u vo ngoi (ch 1) b) B Timer1 vi u vo ngoi (ch 1) V d 9.19: gi s rng mt xung tn s 1Hz c ni ti chn u vo P3.4. Hy vit chng trnh hin th b m 0 trn mt LCD. Hy t s ban u ca TH0 l - 60. Li gii: hin th s m TL trn mt LCD ta phi thc hin chuyn i gi liu 8 bt nh phn v ASCII.
; Gi chng trnh con khi to CLD ; Chn b m 0, ch 2, bt C/T = 1 ; m 60 xung ; Ly u vo T0 AGAIN: ; Sao chp s m TL0 BACK: ; Gi chng trnh con chuyn i trong cc thanh ghi R2, R3, R4. ACALL CONV ; Gi chng trnh con hin th trn LCD ACALL DISLAY ; Thc hin vng lp nu TF = 0 JNB TF0, BACK ; Dng b m 0 CLR TR0 ; Xo c TF0 = 0 CLR TF0 ; Tip tc thc hin SJMP AGAIN ; Vic chuyn i nh phn v m ASCII khi tr d liu ASCII c trong cc thanh ghi R4, R3, R2 (R2 c LSD) - ch s nh nht. CONV: MOV B, #10 ; Chia cho 10 DIV AB MOV R2, B ; Lu gi s thp MOV B, #10 ; Chia cho 10 mt ln na DIV AB ORL A, #30H ; i n v ASCII MOV R4, A ; Lu ch s c ngha ln nht MSD MOV A, B ; ORL A, #30H ; i s th hai v ASCII MOV R3, A ; Lu n MOV A, R2 ORL A, #30H ; i s th ba v ASCII MOV R2, A ; Lu s ASCII vo R2. RET ACALL MOV MOV SETB SETB MOV LCD-SET UP TMOD, #000110B TH0, # - 60 P3.4 TR0 A, TL0
S dng tn s 60Hz ta c th to ra cc giy, pht, gi. Lu rng trong vng u tin, n bt u t 0 v khi RESET th TL0 = 0; gii quyt vn ny hy np TL0 vi gi tr - 60 u chng trnh.
Timer0 exterrnal input Pin 3.4 overflow flag TL0 TR0 TH0 reload TF0 goes high when FF 0 TF0 Timer01e xterrnal input Pin 3.5 overflow flag TL1 TR1 TH1 reload TF1 goes high when FF 0 TF1
C/T =1
C/T =1
Hnh 9.6: B Timer0 vi u vo ngoi (ch 2) Hnh 9.7: B Timer0 vi u vo ngoi (ch 2) Nh mt v d ng dng khc ca b nh thi gian vi bt C/T = 1, ta c th np mt sng vung ngoi vi tn s 60Hz vo b nh thi. Chng trnh s to ra cc n v thi gian chun theo giy, pht, gi. T u vo ny ta hin th ln mt LCD. y s l mt ng h s tuyt vi nhng n khng tht chnh xc. V d ny c th tm thy ph lc Appendix E. Trc khi kt thc chng ny ta cn nhc li hai vn quan trng. 1. Chng ta c th ngh rng cng dng ca lnh JNB TFx, ch hin th mc cao ca c TF l mt s lng ph thi gian ca BVK. iu ng c mt gii php cho vn ny l s dng cc ngt. Khi s dng cc ngt ta c th i thc hin cc cng vic khc vi BVK. Khi c TF c bt th n bo cho ta bit y l im quan trng v th mnh ca 8051 (m ta s bn chng 11). 2. Chng ta mun bit cc thanh ghi TR0 v TR1 thuc v u. Chng thuc v mt thanh ghi gi l TCON m s c ban sau y (TCON - l thanh ghi iu khin b m (b nh thi)). Bng 9.2: Cc lnh tng ng i vi thanh ghi iu khin b nh thi.
i vi Timer0 SETB TR0 = SETB TCON.4 CLR TR0 = CLR TCON.4 SETB TF = SETB TCON.5 CLR TF0 = CLR TCON.5 i vi Timer1 SETB TR1 = SETB TCON.6
9.2.2 Thanh ghi TCON. Trong cc v d trn y ta thy cng dng ca cc c TR0 v TR1 bt/ tt cc b nh thi. Cc bt ny l mt b phn ca thanh ghi TCON (iu khin b nh thi). y l thanh ghi 8 bt, nh c ch ra trong bng 9.2 th bn bt trn c dng lu ct cc bt TF v TR cho c Timer0 v Timer1. Cn bn bt thp c thit lp dnh cho iu khin cc bt ngt m ta s bn chng 11. Chng ta phi lu rng thanh ghi TCON l thanh ghi c th nh a ch theo bt c. Nn ta c th thay cc lnh nh SETB TR1 l CLR TR1 bng cc lnh tng ng nh SET TCON.6 v CLR TCON.6 (Bng 9.2). 9.3 Trng hp khi bt GATE = 1 trong TMOD. Trc khi kt thc chng ta cn bn thm v trng hp khi bt GATE = 1trong thanh ghi TMOD. Tt c nhng g chng ta va ni trong chng ny u gi thit GATE = 0. Khi GATE = 0 th b nh thi c khi ng bng cc lnh SETB TR0 v SETB TR1 i vi Timer0 v Timer1 tng ng. Vy iu g xy ra khi bt GATE = 1? Nh ta c th nhn thy trn hnh 9.8 v 9.9 th nu GATE = 1 th vic khi ng v dng b nh thi c thc hin t bn ngoi qua chn P2.3 v P3.3 i vi Timer0 v Timer1 tng ng. Mc d rng TRx c bt ln bng lnh SETB TRx th cng cho php ta khi ng v dng b nh thi t bn ngoi ti bt k thi im no thng qua cng tc chuyn mch n gin. Phng php iu khin phn cng dng v khi ng b nh thi nay c th c rt nhiu ng dng. V d, chng hn 8051 c dng trong mt sn phm pht bo ng mi giy dng b Timer0 theo nhiu vic khc. B Timer0 c bt ln bng phn mm qua lnh SETB TR0 v nm ngoi s kim sot ca ngi dng sn phm . Tuy nhin, khi ni mt cng tc chuyn mch ti chn P2.3 ta c th dng v khi ng b nh thi gian bng cch tt bo ng.
XTAL oscillator 12
C/T = 0
T0 Pin Pin 3.4 TR0 Gate
C/T =1
XTAL oscillator
12
C/T =1