Sie sind auf Seite 1von 18

Smith Nguyen Studio.

Chng 9 Lp trnh cho b m/ b nh thi trong 8051


8051 c hai b nh thi/ b m. Chng c th c dng nh cc b nh thi to mt b tr thi gian hoc nh cc b m m cc s kin xy ra bn ngoi b BVK. Trong chng ny chng ta s tm hiu v cch lp trnh cho chng v s dng chng nh th no? 9.1 Lp trnh cc b nh thi gian ca 8051. 8051 c hai b nh thi l Timer 0 v Timer1, phn ny chng ta bn v cc thanh ghi ca chng v sau trnh by cch lp trnh chng nh th no to ra cc tr thi gian. 9.1.1 Cc thanh ghi c s ca b nh thi. C hai b nh thi Timer 0 v Timer 1 u c di 16 bt c truy cp nh hai thanh ghi tch bit byte thp v byte cao. Chng ta s bn ring v tng thanh ghi. 9.1.1.1 Cc thanh ghi ca b Timer 0. Thanh ghi 16 bt ca b Timer 0 c truy cp nh byte thp v byte cao. Thanh ghi byte thp c gi l TL0 (Timer 0 bow byte) v thanh ghi byte cao l TH0 (Timer 0 High byte). Cc thanh ghi ny c th c truy cp nh mi thanh ghi khc chng hn nh A, B, R0, R1, R2 v.v... V d, lnh MOV TL0, #4FH l chuyn gi tr 4FH vo TL0, byte thp ca b nh thi 0. Cc thanh ghi ny cng c th c c nh cc thanh ghi khc. V d MOV R5, TH0 l lu byte cao TH0 ca Timer 0 vo R5.
TH0 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 TL0 D4 D3 D2 D1 D0

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.

Smith Nguyen Studio.


(MSB) GATE C/T M1 Timer1 M0 GATE C/T M1 Timer0 (MSB) M0

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:

Smith Nguyen Studio.


a) 12MHz b) 16MHz c) 11,0592MHz 12

B giao ng thch anh

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.

Smith Nguyen Studio.


Di y l nhng c tnh v nhng php ton ca ch Mode1: 1. N l b nh thi 16 bt, do vy n cho php cc gi tr 0000 n FFFFH c np vo cc thanh ghi TL v TH ca b nh thi. 2. Sau khi TL v TH c np mt gi tr khi to 16 bt th b nh thi phi c khi ng. iu ny c thc hin bi SETB TR0 i vi Timer 0 v SETB TR1 i vi Timer1. 3. Sau khi b nh thi c khi ng, n bt u m ln. N m ln cho n khi t c gii hn FFFFH ca n. Khi n quay qua t FFFFH v 0000 th n bt ln bt c TF c gi l c b nh thi. C b nh thi ny c th c hin th. Khi c b nh thi ny c thit lp t mt trong cc phng n dng b nh thi bng cc lnh CLR TR0 i vi Timer0 hoc CLR TR1 i vi Timer1. y cng cn phi nhc li l i vi b nh thi u c c TF ring ca mnh: TF6 i vi Timer0 v TF1 i vi Timer1.

XTAL oscillator

12

TH

TL

TF overflow flag

TF goes high when FFFF 0

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.

Smith Nguyen Studio.


a) Tnh theo s Hex b) Tnh theo s thp phn (FFFF - YYXX + 1). 1,085ms trong YYXX l cc gi Chuyn i cc gi tr YYXX ca TH, TL v s thp tr khi to ca TH, TL tng ng. Lu rng cc gi tr phn nhn mt s thp phn NNNNN sau ly YYXX l theo s Hex. (65536 - NNNNN).1,085ms.

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:

Smith Nguyen Studio.


Trong v d 9.4 hy tnh ton lng thi gian tr trong chng trnh con DELAY c to ra bi b nh thi vi gi thit tn s XTAL = 11,0592MHz. Li gii: B nh thi lm vic vi tn s ng h bng 1/12 tn s XTAL, do vy ta c
11,0592 = 0,9216MHz l tn s ca b nh thi. Kt qu l mi nhp xung ng h c 12 1 = 1,085ms . Hay ni cch khc, b Timer0 m tng sau 1,085ms chu k T = 0,9216MHz

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

Total T = (2 27 1.085ms and F = 17067.75Hz).

27

HERE:

AGAIN:

Smith Nguyen Studio.


CLR CLR CLR TR0 TF0 P2.3 ; Dng b nh thi. ; Xo c b nh thi cho vng sau

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:

Smith Nguyen Studio.


Trong chng trnh trn y ta lu n ch ca SJMP. ch 1 chng trnh phi np li thanh ghi. TH v TL mi ln nu ta mun c sng dng lin tc. Di y l kt qu tnh ton: V FFFFH - 7634H = 89CBH + 1 = 89CCH v 90CCH = 35276 l s ln m xung ng h, tr l 35276 1.085ms = 38274ms v tn s l Cng rng phn cao v phn thp ca xung sng vung l bng nhau. Trong tnh ton trn y l cha k n tng ph cc lnh vng lp. 9.1.4.2 Tm cc gi tr cn c np vo b nh thi. gi s rng chng ta bit lng thi gian tr m ta cn th cu hi t ra l lm th no tm ra c cc gi tr cn thit cho cc thanh thi TH v TL. tnh ton cc gi tr cn c np vo cc thanh ghi TH v TL chng ta hy nhn vo v d sau vi vic s dng tn s dao ng XTAL = 11. 0592MHz i vi h 8051. T v d 9.10 ta c th s dng nhng bc sau tm cc gi tr ca cc thanh ghi TH v TL. 1. Chia thi gian tr cn thit cho 1.0592ms 2. Thc hin 65536 - n vi n l gi tr thp phn nhn c t bc 1. 3. Chuyn i kt qu bc 2 sang s Hex vi yyxx l gi tr .hex ban u cn phi np vo cc thanh ghi b nh thi. 4. t TL = xx v TH = yy. V d 9.10: gi s tn s XTAL = 11.0592MHz. Hy tm cc gi tr cn c np vo cc thanh ghi vo cc thanh ghi TH v TL nu ta mun thi gian tr l 5ms. Hy trnh by chng trnh cho b Timer0 to ra b xung vi rng 5ms trn chn P2.3. Li gii: V tn s XTAL = 11.0592MHz nn b m tng sau mi chu k 1.085ms. iu c ngha l phi mt rt nhiu khong thi gian 1,085ms c c mt xung 5ms. c c ta chia 5ms cho 1.085ms v nhn c s n = 4608 nhp. nhn c gi tr cn c np vo TL v TH th ta tin hnh ly 65536 tr i 4608 bng 60928. Ta i s ny ra s hex thnh EE00H. Do vy, gi tr np vo TH l EE V TL l 00.
CLR MOV MOV MOV SETB SETB JNB CLR CLR P2.3 TMOD, #01 TL0, #0 TH0, #EEH P2.3 TR0 TF0, AGAIN TR0 TF0 ; Xo bt P2.3 ; Chn Timer0, ch 1 (16 bt) ; Np TL = 00 ; Np TH = EEH ; Bt P2.3 ln cao ; Khi ng b nh thi Timer0 ; Hin th c TF0 cho n khi b m quay v 0 ; Dng b nh thi. ; Xo c TF0 cho vng sau.

1 (Hz) = 26127Hz. 38274

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:

Smith Nguyen Studio.


1 1 = = 500ms l chu k ca sng vung. f 2kHz 1 b) Khong thi gian cao v phn thp l T bng 250ms. 2 250ms = 230 v gi tr cn np vo cc thanh ghi c) S nhp cn trong thi gian l 1,085ms

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.

V d 9.12: Trc ht ta thc hin cc bc sau: a) Tnh chu k sng vung: T =


1 = 20ms 50Hz 1 b) Tnh thi gian na chu k cho phn cao: T = 10ms 2 10ms = 9216 c) Tnh s nhp ng h: n = 1,085ms

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

Smith Nguyen Studio.


bng 0. Nhng iu ny xy ra khi nh vy u khng ? V d 9.13 di y cch lm th no c gi tr tr thi gian ln. 9.1.4.4 S dng bn tnh ca Windows tm TH v TL. Bn tnh Calculator ca Windows c ngay trong my tnh PC ca chng ta v rt d s dng tm ra cc gi tr cho TH v TL. gi s tm gi tr cho TH v TL vi tr thi gian ln l 35.000 nhp ng h vi chu k 1,085ms. Ta thc hin cc bc nh sau: 1. Chn my tnh Calculator t Windows v t ch tnh v s thp phn Decimal. 2. Nhp s 35.000 vo t bn phm. 3. Chuyn v ch Hex trn Calculator n cho ta gi tr 88B8H. 4. Chn +/- nhn s i du - 35.000 dng thp phn v chuyn v dng Hex l 7748H. 5. Hai s hex cui l cho TL = 48 v hai s Hex tip theo l cho TH = 77. Ta b quan cc s F pha bn phi trn Calculator v s ca ta l 16 bt. V d 9.13: Hy kim tra chng trnh sau v tm tr thi gian theo giy, khng tnh n tng ph cc lnh trong vng lp.
AGAIN: MOV MOV MOV MOV SETB JNB CLR CLR DJNZ TMOD, #10H R3, #200 TL1, #08 TH1, #08 TR1 TF1, BACK TR1 TF1 R3, AGAIN ; Chn b Timer1, ch 1 (16 bt) ; Chn b m gi chm ln ; Np byte thp TL1 = 08 ; Np byte cao TH1 = 01 ; Khi ng Timer1 ; gi nguyn cho n khi b nh thi quay v 0 ; Dng b nh thi. ; Xo c b nh thi TF1 ; Nu R3 khng bng khng th np li b nh thi.

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.

Smith Nguyen Studio.

XTAL oscillator
-

12

TL reload

TF TF goes high when FFFF 0

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:

Smith Nguyen Studio.


a) Trc ht n ch ca lnh SJMP. Trong ch 2 ta khng cn phi np li TH v n l ch t np. By gi ta ly (256 - 05).1.085ms = 2511.085ms = 272.33ms l phn cao ca xung. C chu k ca xung l T = 544.66ms v tn s l b) nhn tn s nh nht c th ta cn to T chu k ln nht c th c ngha l TH = 00. Trong trng hp ny ta c T = 2 256 1.085ms = 555.52ms v tn s nh nht s l
1 = 1,8kHz. T 1 = 1,83597 kHz. T

V d 9.15: Hy tm tn s ca xung vung c to ra trn P1.0. Li gii:


AGAIN: MOV TMOD, #2H ; Chn Timer0, ch 1 (8 bt t np li) MOV TH0, #0 ; Np TH0 = 00 MOV R5, #250 ; m cho tr ln ACALL DELAY CPL P1.0 SJMP AGAIN DELAY: SETB TR0 ; Khi ng Timer0 BACK: JNB TF1, BACK ; gi nguyn cho n khi b nh thi quay v 0 CLR TR0 ; Dng Timer0. CLR TF0 ; Xo c TF0 cho vng sau. DJNZ R5, DELAY RET T = 2 (250 256 1.085ms) = 1.38.88ms v f = 72Hz.

V d 9.16: gi s ta ang lp trnh ch 2 hy tm cc gi tr (dng Hex) cn np vo TH cho cc trng hp sau:


a) MOV TH1, #200 c) MOV TH1, #-3 e) MOV TH0, #-48 b) MOV TH0, #-60 d) MOV TH1, #-12

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.

Smith Nguyen Studio.


V b nh thi l 8 bt trong ch 2 nn ta c th cho trnh hp ng tnh gi tr cho TH. V d, trong lnh MOV TH0, # - 100 th trnh hp ng s tnh ton 100 = 9C v gn TH = 9CH. iu ny lm cho cng vic ca chng ta d dng hn. V d 9.17: Hy tm a) tn s sng vung c to ra trong on m di y v y xung ca sng ny.
MOV TMOD, #2H MOV TH0, # - 150 SETB TR1 SETB P1.3 ACALL DELAY ACALL P1.3 ACALL DELAY SJMP AGAIN SETB JNB CLR CLR RET TR0 TF0, BACK TR0 TF0 ; Chn b Timer0/ ch 2/ (8 bt, t np li). ; Np TH0 = 6AH l s b hai ca - 150 ; Khi ng Timer1 ; P1.3 = 1 ; P1.3 = 0

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.

Smith Nguyen Studio.


Xem li phn trn y v bt C/T trong thanh ghi TMOD ta thy rng n quyt nh ngun xung ng h cho b nh thi. Nu bt C/T = 0 th b nh thi nhn cc xung ng h t b giao ng thch anh ca 8051. Ngc li, khi C/T = 1 th b nh thi c s dng nh b m v nhn cc xung ng h t ngun bn ngoi ca 8051. Do vy, khi bt C/T = 1 th b m ln, khi cc xung c a n chn 14 v 15. Cc chn ny c tn l T0 (u vo ca b nh thi Timer0) v T1 (u vo ca b Timer1). Lu rng hai chn ny thuc v cng P3. Trong trng hp ca b Timer0 khi C/T = 1 th chn P3.4 cp xung ng h v b m tng ln i vi mi xung ng h i n t chn ny. Tng t nh vy i vi b Timer1 th khi C/T = 1 vi mi xung ng h i n t P3.5 b m s m tng ln 1. Bng 9.1: Cc chn cng P3 c dng cho Timer0 v Timer1.
Chn 14 15 Chn cng P3.4 P3.5 Chc nng T0 T1 M t u vo ngoi ca b m 0 u vo ngoi ca b m 1

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.

Smith Nguyen Studio.

Timer exterrnal input Pin 3.4

overflow flag TH0 TL0 TR0 TF0 goes high when FFFF 0 TF0

Timer exterrnal input Pin 3.5

overflow flag TH1 TR1 TL1 TF1

C/T =1

C/T =1

TF1 goes high when FFFF 0

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

Smith Nguyen Studio.


8051 P1 1 Hz clock T0 P3.4 to LEDs

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

Smith Nguyen Studio.


CLR TR1 = CLR TCON.6 SETB TF1 = SETB TCON.7 CLR TF1 = CLR TCON.7

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

INTO Pin Pin 3.2

Hnh 9.8: B nh thi/ b m 0.

Smith Nguyen Studio.

XTAL oscillator

12

C/T = 0 T1 Pin Pin 3.5 TR0


Gate

C/T =1

INT1 Pin Pin 3.3

Hnh 9.9: B nh thi/ b m 1.

Das könnte Ihnen auch gefallen