He vi xu li 8051

Embed Size (px)

Citation preview

1

H vi x l 8051ng dng s dng vi iu khin v cc linh kin ph tr khc, kt hp vi cc chng trnh phn mm xy dng ln mt b th nghim vi cc module nh led n, phm bm to ngt, led by thanh, ma trn phm, tng t- s, hin th LCD, ng c bcB th nghim s dng cp cng my in giao tip vi my tnh PC, mc ch thng qua cp cng my in download chng trnh c dch ra m my xung vi iu khin (thng qua phn mm SPI-Flash) vi iu khin thc thi chng trnh. Code chng trnh c vit bng ngn ng C trn phn mm KeilC. Ni dung : I: H vi x l 8051 II: T chc mch phn cng III: Xy dng chng trnh phn mm (Bi tp)

2

Mc lcI. H vi x l 8051......................................................................................................................3 1.1. Vi nt v h vi iu khin 8051....................................................................................3 1.2. Cu trc chung ca h vi iu khin MCS-51.................................................................4 1.2.1. S khi.................................................................................................................4 1.2.2. Cc chn ra ca vi iu khin 8051..........................................................................6 1.3. T chc b nh................................................................................................................8 1.3.1. Cu trc chung ca b nh .......................................................................................8 1.4. B m/ b nh thi trong 8051...................................................................................13 1.5. T chc ngt ca 8051..................................................................................................19 1.5.1 Cc ngt ca 8051. ..................................................................................................19 1.5.2 Cc bc khi cho php ngt. ..................................................................................22 1.5.3 Lp trnh cc ngt b nh thi................................................................................23 1.5.4 Lp trnh cc ngt phn cng bn ngoi.................................................................23 1.5.5 Thanh ghi TCON .....................................................................................................27 1.5.6 Cc mc u tin ngt trong 8051. ..........................................................................28 II. T chc mch phn cng .....................................................................................................30 2.1. La chn h vi x l......................................................................................................30 2.2. Gii thiu cc cng ghp ni vi my tnh....................................................................31 2.2.1.Cng song song .......................................................................................................31 2.2.2. Cng ni tip ..........................................................................................................33 2.3. T chc mch th nghim ..............................................................................................35

3

I. H vi x l 80511.1. Vi nt v h vi iu khin 8051Vo nm 1971 tp on Intel gii thiu 4004, b vi x l (micro-processor) thnh cng u tin. Sau khng lu Motorola, RCA, k n l MOS Techlogy v Zilog gii thiu cc b vi x l tng t : 6800, 1801, 6502 v Z80. Vo nm 1976 Intel gii thiu b vi iu khin (microcontroller) 8748,mt chip tng t nh cc b vi iu khin v l chip u tin trong h vi iu khin MCS-48. 8748 l vi mch cha trn 17000 transistor bao gm mt CPU, 1 K byte EPROM, 64 byte RAM, 27 chn xut nhp v mt b nh thi 8-bit IC ny v cc IC khc tip theo ca h MCS48 nhanh chng tr thnh chun cng nghip trong cc ng dng hng iu khin (controloriented application). Vic thay th cc thnh phn c in trong cc sn phm nh cc my git v cc b iu khin c tm thy bao gm xe t, thit b cng nghip, cc sn phm tiu dng v cc thit b ngoi vi ca my tnh (bn phm ca IBM-PC l mt th d s dng b vi iu khin trong cc thit k ti thiu thnh phn). phc tp, kch thc v kh nng ca cc b vi iu khin c tng thm mt bc quan trng vo nm 1990 khi Intel cng b chip 8051, b vi iu khin u tin ca h vi iu khin. So vi 8048, chip 8051 cha trn 60000 transistor bao gm 4 K byte Rom, 128 byte RAM, 32 ng xut nhp, 1 port ni tip v 2 b nh thi 16bit mt s lng mch ng ch trong mt IC n. Cc thnh vin mi c thm vo cho h MCS-51 v cc bin th ngy nay c gp i cc c trng ny. Tp on Siemens, ngun sn xut th hai cc b vi iu khin thuc h MCS-51 cung cp chip SAB80515, mt ci tin ca 8051 cha trong mt v 68 chn, c 6 port xut nhp 8bit, 13 ngun to ra ngt v mt b bin i A/D 8 bit vi 8 knh ng vo. H 8051 l mt trong nhng b vi iu khin 8-bit mnh v linh hot nht, tr thnh b vi iu khin hng u trong nhng nm gn y.

4

1.2. Cu trc chung ca h vi iu khin MCS-511.2.1. S khi S khi ca mt vi iu khin 8051 c th c m t tng qut nh sau:Ngun ngt ngoi m s kin.

iu khin ngt (3)

Ngun ngt trong.

4KbyteB nh chng trnh ROM (8)

128byteB nh RAM (9)

2 b m / nh thi (5)

CPU (1)Khi .khin qun l bus (4) Port 0 Port 1 Port 2 Port 3Giao din ni tip (7)

B to d (2)

XTAL 1/2

|PSEN/ALE

Cng I/O ch thp D liu 8 bit

Cng I/O 8 bit

Cng I/O ch cao D liu 8 bit

Cng I/O Cc chc nng c bit D liu 8 bit

Hnh 1: Cu trc ca vi iu khin 8051.Cc chc nng ca tng khi 1. Khi x l trung tm CPU (Centrer Processing Unit) l b phn chnh ca mt vi iu khin khi ny c cha cc thnh phn chnh: -Thanh ghi tch ly (k hiu l A). -Thanh ghi tch ly ph (k hiu l B) thng c dng cho php nhn v php chia. -Khi Logic s hc ALU (Arithmatic Logical Unit) thc hin cc thao tc tnh ton. -T trng thi chng trnh PSW (Program status word). -Bn bng thanh ghi. -Con tr ngn xp (Stack point) cng nh con tr d liu nh a ch cho b nh d liu bn ngoi. -Thanh ghi m chng trnh. -B gii m lnh

5

-B iu khin thi gian v logic: Sau khi c Reset, CPU bt u lm vic ti a ch 0000h, l a ch u c ghi trong thanh ghi cha chng trnh (PC). Sau , thanh ghi ny s tng ln 1 n v v ch n cc lnh tip theo ca chng trnh. 2. B to dao ng: Khi x l trung tm nhn trc tip xung nhp t b to dao ng c lp thm vo, linh kin ph tr c th l mt khung dao ng lm bng t gm hoc thch anh. Ngoi ra, cn c th a mt tn hiu gi nhp t bn ngoi vo. 3. Khi iu khin ngt: Chng trnh ang chy c th cho dng li nh mt khi logic ngt bn trong. Cc ngun ngt c th l cc bin c bn ngoi, s trn b m /b nh thi hay c th l giao din ni tip. Tt c cc ngt u c th c thit lp ch lm vic thng qua hai thanh ghi IE (Interrupt Enable) v IP (Interrupt Priority). 4. Khi iu khin v qun l bus: Cc khi trong vi iu khin lin lc vi nhau thng qua h thng Bus ni b c iu khin bi khi iu khin qun l Bus. 5. Cc b m/nh thi: Vi iu khin 8051 c cha hai b m tin 16 bit c th hot ng nh l b nh thi hay b m s kin bn ngoi hoc nh b pht tc Baud dng cho giao din ni tip. Trng thi trn b m c th c kim tra trc tip hoc c xo i bng mt ngt. 6. Cc cng vo ra: Vi iu khin 8051 c bn cng vo/ra (P0 .. P3), mi cng cha 8 bit, c lp vi nhau. Cc cng ny c th c s dng cho nhng mc ch iu khin rt a dng. Ngoi chc nng chung, mt s cng cn m nhn thm mt s chc nng c bit khc. 7. Giao din ni tip: Giao din ni tip c cha mt b truyn v mt b nhn khng ng b lm vic c lp vi nhau. Bng cch u ni cc b m thch hp, c th hnh thnh mt cng ni tip RS-232 n gin. Tc truyn qua cng ni tip c th t c trong mt vng rng ph thuc vo mt b nh thi v tn s dao ng ring ca thch anh. 8. B nh chng trnh: B nh chng trnh thng l b nh ROM (Read Only Memory), b nh chng trnh c s dng ct gi chng trnh iu khin hot ng ca vi iu khin. 9. B nh s liu: B nh s liu thng l b nh RAM (Ramdom Acces Memory), b nh s liu dng ct gi cc thng tin tm thi trong qu trnh vi iu khin lm vic.

6

1.2.2. Cc chn ra ca vi iu khin 8051 Phn ln cc b vi iu khin 8051 c ng vo v theo kiu hai hng vi s chn ra l 40 chn, mt s t cn li c ng v theo kiu hnh vung PLCC (Plastic Leaded Chip Carrier) vi 44 chn ra v loi ny dng cho nhng h thng cn tit kim din tch.

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST (RxD) (TxD) P3.0 P3.1

VCC + 5V P0.0 (A/D 0) P0.1 (A/D 1) P0.2 (A/D 2) P0.3 (A/D 3) P0.4 (/D 4) P0.5 (A/D 5) P0.6 (A/D 6) P0.7 (A/D 7) |EA

8051

ALE |PSEN P2.7 (A15) P2.6 (A14) P2.5 (A13) P2.4 (A12) P2.3 (A11) P2.2 (A10) P2.1 (A9)

(|INT0) P3.2 (|INT1) P3.3 (T0) (T1) ( |WR) ( |RD) P3.4 P3.5 P3.6 P3.7

XTAL2 XTAL1

GND

P2.0 (A8)

Hnh 2: S chn ca vi mch 8051.

7

Bng 1 : Cc chc nng ca cc chn ca vi iu khin 8051 Chn 1-->8 9 10-->17 18 19 20 21-->28 29 30 31 32-->39 K hiu P1.0-->P1.7 Reset P3.0-->P3.7 XTAL2 XTAL1 Vss P2.0-->P2.7 |PSEN ALE |EA P1.0-->P1.7 Chc nng Cng gi hai hng P1, c th t do s dng Li vo Reset, khi hot ng mc High(1) Cng gi hai hng P3, sp xp tt c cc ng dn vi chc nng c bit Li ra ca b dao ng thch anh bn trong Li vo ca b dao ng thch anh bn trong Ni mt ( 0V ) Cng gi hai hng P2, chc nng c bit l cc ng dn a ch A8..A15 Progam Strobe Enable, xut ra cc xung c dng cho b nh chng trnh bn ngoi Address Latch Enable, xut ra cc xung iu khin lu tr trung gian cc a ch External Access, khi c ni vi mt l lm vic vi ROM ngoi vi Cng hai hng cc mng h P0 hay Bus d liu hai hng dng cho ROM, RAM v thit b ngoi vi ng thi cng chuyn giao 8 bit a ch thp Ngun nui dng ( +5V )

40

Vdd

Cc chn ra ca b vi iu khin 8051 gm c: EA: ng vai tr quyt nh xem vi iu khin lm vic vi chng trnh bn trong hay bn ngoi. Vi loi 8051 khng c ROM trong th chn ny phi c ni vi mt. Loi thng thng c th lm vic tu theo cch la chn gia ROM trong hay ROM ngoi, khi ang ch lm vic vi b nh ROM trong, loi c cha b nh ROM c th truy nhp t ng ln b nh chng trnh bn ngoi. Reset: Trng thi Reset c thit lp bng cch gi tn hiu Reset mc cao trong thi gian t nht l 2 chu k my. ALE: Tn hiu cht 8 bit a ch thp trong sut qu trng truy nhp b nh m rng. Thng thng tn hiu ALE c pht ra vi tn s bng 1/6 tn s dao ng thch anh v c th s dng vi mc ch nh thi gian hoc xung nhp ng h ngoi. Tuy nhin, tn hiu ALE s b b qua trong mi qu trnh truy nhp b nh d liu ngoi.

8

PSEN: Tn hiu c b nh chng trnh ngoi, khi vi iu khin truy nhp b nh chng trnh ni th PSEN c t mc cao. XTAL1, XTAL2: Mt b to tn hiu gi nhp vi tn s c xc nh bi b cng hng thch anh c lp thm vo, tn s ny xc nh tc lm ca b vi iu khin. Thng thng cc lnh c thc hin bng 1/12 tn s dao ng ca thch anh. Cc b m c th lm vic trong nhiu ch khc nhau. Khi hot ng nh l b nh thi, cc b m nhn c cc xung t mt b chia trc bn trong, b ny chia tn s ring ca b cng hng thch anh cho 12. Thay cho mt b nh thi 16 bit, mt b inh thi 8 bit c th c to ra bng vic np t ng sau khi cp ngun, cc xung dn t bn ngoi vo qua T0 v T1 cng c th c m, cc xung ny c tn s cc i bng 1/24 gi tr tn s ca b cng hng thch anh. P0..P3: Cc cng vo/ra Cng P3 cng m nhn mt s chc nng c bit ca b vi iu khin: Chn P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 K hiu RxD TxD |INT0 |INT1 T0 T1 |WR |RD Chc nng Nhn d liu vo b nh qua cng ni tip Truyn d liu vo b nh qua cng ni tip Ngt ngoi 0 Ngt ngoi 1 Li vo ca Timer 0 Li vo ca Timer 1 Vit vo b nh c b nh

1.3. T chc b nh1.3.1. Cu trc chung ca b nh -Tt c cc vi iu khin thuc h MCS-51 u phn chia b nh thnh hai vng a ch cho b nh d liu v b nh chng trnh. S phn chia logic gia b nh d liu v b nh chng trnh cho php truy nhp b nh d liu bng 8 bit a ch gip cho vic lu tr v thao tc d liu nhanh hn. Tuy nhin, c th s dng a ch b nh d liu 16 bit thng qua thanh ghi DPTR.

9

-B nh chng trnh l loi b nh ch cho php c, khng cho php ghi. Mt s vi iu khin c tch hp sn b nh chng trnh bn trong vi dung lng khong 4k byte hay 8 kbyte, s cn li phi s dng b chng trnh m rng m qu trnh truy nhp c thc hin thng qua s iu khin bng tn hiu PSEN (Progam Strobe Enable). -Tuy nhin, vi iu khin 8051 cho php ta s dng n 64kbyte b nh chng trnh bng cch s dng c b nh chng trnh bn trong v bn ngoi. -B nh s liu chim gi vng a ch phn chia ca b nh chng trnh. Dung lng ca b nh d liu c th m rng ln ti 64 kbyte. Trong qu trnh truy nhp b nh s liu, CPU pht ra cc tn hiu c v tn hiu vit s liu thng qua cc chn RD v WR.B nh Chng trnh FFFFH B nh s liu

B nh m rng

B nhFFH

rng|EA=0B nh ngoi

|EA=1B nh trong

0000H

00H

|PSEN

|WR |RD

Hnh 3: Cu trc b nh ca h MCS-51.C th kt hp b nh chng trnh m rng vi b nh s liu m rng bng cch cho hai tn hiu RD v PSEN qua mt cng logic AND, li ra ca cng AND ny s to tn hiu c cho b nh m rng. 1.B nh chng trnh Sau khi Reset, CPU bt u thc hin chng trnh t a ch 0000H. Vng u ca b nh chng trnh l vng cha cc vector ngt, mi ngt c phn chia mt vng a ch c nh trong b nh chng trnh. Khi xut hin ngt, CPU s nhy ti a ch ny, y cng l a ch u ca chng trnh con phc v ngt. Cc vector ngt cch nhau 8 byte, v vy nu chng trnh con phc v ngt qu di (>8 byte) th ti vector

10

ngt ta phi t mt lnh nhy khng iu kin ti vng a ch khc cha chng trnh con phc v ngt. 2.B nh s liu Pha bn phi ca Hnh 3 biu din khng gian b nh d liu ca MCS-51. C th s dng ti 64 Kbyte b nh s liu ngoi vi. rng bus a ch ca b nh s liu ngoi c th l 8 bit hoc 16 bit. Bus a ch rng 8 bit thng c s dng lin kt vi mt hoc nhiu ng vo ra khc nh a ch cho RAM theo trang. Trong trng hp bus a ch rng 16 bit, cng P2 s pht ra 8 bit a ch cao cn cng P1 s pht ra 8 bit a ch thp. Bng cch ny, c th truy nhp trc tip ln b nh d liu ngoi vi ln ti a l 64 K byte. B nh s liu trong c chia ra lm 3 vng: +128 byte cao. +128 byte thp. +Vng dnh cho cc thanh ghi chc nng c bit (SFR). a ch ca b nh s liu trong lun l 8 bit v c th qun l c 256 byte b nh. Tuy nhin, trn thc t cch nh a ch ca b nh RAM trong c th qun l ti 384 byte.

Bn b nh trn chp: 7F FF F0 F7 F6 F5 F4 F3 F2 F1 F0 RAM a dng E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC B

D0 D7 D6 D5 D4 D3 D2 D1 D0

PSW

30 2F 7F 7E 7D 7C 7B 7A 79 78

B8 -

-

-

BC BB BA B9 B8

IP

11

2E 2D 2C

77 76 75 74 73 72 71 70 6F 6E 6D 6C 6B 6A 69 68 67 66 65 64 63 62 61 60

B0 B7 B6 B5 B4 B3 B2 B1 B0

P.3

A8 AF

AC A AA A9 A8 B

IE

2B 2A 29 28 27 26 25 24 23 22 21 20 1F

5F 5E 5D 5C 5B 5A 59 58 57 56 55 54 53 52 51 50 4F 4E 4D 4C 4B 4A 49 48 47 46 45 44 43 42 41 40 3F 3E 3D 3C 3B 3A 39 38 37 36 35 34 33 32 31 30 2F 2E 2D 2C 2B 2A 29 28 27 26 25 24 23 22 21 20 1F 1E 1D 1C 1B 1A 19 18 17 16 15 14 13 12 11 10 0F 0E 0D 0C 0B 0A 09 08 07 06 05 04 03 02 01 00 Bank 3 8D Khng c a ch ho bit 8C Khng c a ch ho bit 8B Khng c a ch ho bit 8A Khng c a ch ho bit 89 Khng c a ch ho bit TH1 TH0 TL1 TL0 TMO D TCON PCON 90 97 96 95 94 93 92 91 90 P1 99 Khng c a ch ho bit 98 9F 9E 9D 9C 9B 9A 99 98 SBUF SCON A0 A7 A6 A5 A4 A3 A2 A1 A0 P2

18 17 10 0F 08 07 Bank thanh ghi 0 Bank 1 Bank 2

88 8F 8E 8D 8C 8B 8A 89 88 87 Khng c a ch ho bit

83 Khng c a ch ho bit 82 Khng c a ch ho bit 81 Khng c a ch ho bit

DPH DPL SP

12

00

(Mc nh cho R0 -R7)

88 87 86 85 84 83 82 81 80

P0

3. Thanh ghi ghi chc nng c bit (SFR= Special Function Registers) Vi iu khin 8051 l mt b vi iu khin a nng vi nhiu ch hot ng khc nhau c thit lp thng qua cc thanh ghi chc nng c bit SFRs. Cc thanh ghi chc nng c bit ca vi iu khin 8051 gm c: +P0, P1, P2, P3 : Cc cng vo ra, mi bt ng vi 1chn ca vi iu khin.Cc chn ny hot ng mc logic m. +SP (Stack Pointer) : y l con tr ngn xp ca vi iu khin. Thanh ghi ny cho bit a ch truy nhp tip theo trong b nh RAM. +DPH, DPL (Data Pointer High, Data Pointer Low) : To thnh 1cp thanh ghi con tr d liu DPTR 16 bit. +PCON (Power Control) : Thanh ghi ny c s dng iu khin cng sut ca vi iu khin. Ngoi ra bit PCON.7 con cho php s dng tng gp i tc baud khi truyn qua cng ni tip. +TCON (Timer Control) : Thit lp cu hnh lm vic cho b Timer/Counter. +TMOD (Timer Mode) : Xc nh ch lm vic cho tng b Timer/Counter. +TL0/TH0 (Timer 0 Low/High) : Cp thanh ghi tng ng vi Timer0. +TL1/TH1 (Timer 1 Low/High) : Cp thanh ghi tng ng vi Timer1. +SCON (Serial Control) : Thit lp cu hnh cho cng ni tip. +SBUF (Serial Buffer) : B m khi truyn hoc nhn d liu qua cng ni tip. +IE (Interrupt Enable) : Cho php ngt hoc cm ngt. +IP (Interrupt Priority) : Thit lp mc u tin cho cc ngt. +PSW (Program Status Word ) : Thanh ghi t trng thi chng trnh lu tr mt s bit quan trng c t hoc xo bi cc lnh ca 8051: c nh, c nh ph, c trn v c chn l. Ngoi ra, 2 bit RS0 v RS1 trong PSW cn cho php chn bng thanh ghi lm vic trong b nh RAM trong. +ACC (Accumulator) : Thanh ghi tch lu, y l mt trong nhng thanh ghi c s dng nhiu nht trong vi iu khin 8051. Thanh ghi ny c k hiu l A. +B (B Register) : Thanh ghi B c s dng khi thc hin cc php ton nhn, chia v cng c th c dng nh thanh ghi ph hay thanh ghi lu tr s liu tm thi.

13

Cc thanh ghi chc nng c bit s c th c nhn mt trng thi no c nh mi khi vi iu khin Reset (tu thuc vo mi thanh ghi). Sau y l bng trng thi ca cc thanh ghi ngay sau khi Reset. Trng thi khi reset ca cc thanh ghi. Register A B DPTR IE IP P0 P1 Reset to 00H 00H 00H 0..00000B ...00000B FFH FFH PSW SP SBUF Register P2 P3 PCON Reset to FFH FFH 0.......B 0...0000B 00H 07H ..H Register SCON TCON TMOD TH0 TH1 TL0 TH1 Reset to 00H 00H 00H 00H 00H 00H 00H

1.4. B m/ b nh thi trong 8051Khi nim: 8051 c hai b nh thi/ b m chng 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 vi iu khin. Ni dung phn ny kho st cc b nh thi (timer) ca chip 8051. Hy bt u t quan im n gin v cc b nh thi c s dng cho cc b vi x l hoc cc b vi iu khin. Mt b nh thi l mt chui cc flippop vi mi flippop l mt mch chia 2, chui ny nhn tn hiu ng vo lm ngun xung clock. Xung clock t vo flippop th nht, flippop ny chia i tn s xung clock. Ng ra ca flippop th nht tr thnh ngun xung clock cho flippop th hai, ngun xung clock ny cng c chia cho haiV mi mt tng k tip nhau u chia cho hai nn mt b nh thi c n tng s chia tn s xung clock ng vo ca b ny cho 2n. B nh thi d m thi gian hay m s kin u m tng. Gi tr bt u m c xc nh bi phn mm. Khi b nh thi m ht th chng trnh s bt tc c trn, du hiu cho php thc hin chng trnh tip theo. B nh thi c s dng trong hu ht cc ng dng hng iu khin v 8051 vi cc b nh thi trn chip khng phi l trng hp ngoi l. Cc b nh thi c dng :

14

-nh thi trong mt khon thi gian. -m s kin. -To tc baud cho port ni tip ca chip 8051. Cc b nh thi gian ca 8051: 8051 c hai b nh thi gian l Timer 0, Timer 1, phn ny s ni v cc thanh ghi ca chng .

Hnh 4: B nh thi/ b m 0.XTAL oscillator 12

C/T = 0

T1 Pin Pin

C/T =1

Gate

Hnh 5: B nh thi/ b m 1. Cc thanh ghi c s ca b nh thi: C hai b nh thi Timer0 v Timer1 u c di 16 bit c truy nhp nh hai thanh ghi tch bit byte thp v byte cao.

15SFR Name TH0 Description Timer 0 High Byte SFR Address 8Ch

TL0

Timer 0 Low Byte

8Ah

TH1

Timer 1 High Byte

8Dh

TL1

Timer 1 Low Byte

8Bh

TCON

Timer Control

88h

TMOD

Timer Mode

89h

Bng 3:Cc thanh ghi nh thi Cc thanh ghi ca b Timer0: Thanh ghi 16 bit ca b Timer0 c truy nhp nh byte thp v byte cao. Thanh ghi byte thp c gi l TL0 (Timer 0 Low 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

Cc thanh ghi ca b Timer 0. Cc thanh ghi ca b Timer1: 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

Cc thanh ghi ca b Timer 1. 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 TMOD (timer mode register) thit lp

16

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 hai bt cao dng thc hin cc php ton.

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

(MSB) M0

Thanh ghi ch nh thi TMOD. 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 ca 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

17

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. Thanh ghi iu khin nh thi (TCON): Thanh ghi TCON cha cc bit iu khin v trng thi ca b nh thi 0 v b nh thi 1. Bn bit cao trong TCON (TCON.4TCON.7) c dng iu khin cc b nh thi trn (TF0, TF1). Bn bit thp ca TCON (TCON.0-TCON.3) khng dng iu khin cc b nh thi, chng c dng pht hin v khi ng cc ngt ngoi. Bng 4: Cc lnh tng i vi thanh ghi iu khin b nh thii vi Timer0 SETB TR0 = SETB TCON.4 CLR TR0 = CLR TCON.4 = SETB TCON.5

SETB TF

CLR TF0 = CLR TCON.5 i vi Timer1 SETB TR1 = SETB TCON.6 CLR TR1 = CLR TCON.6 SETB TF1 = SETB TCON.7 CLR TF1 = CLR TCON.7

Trong 8051 c 4 ch nh thi: Do c hai b nh thi trn chip 8051, k hiu x c s dng ch hoc b nh thi 0 hoc b nh thi 1. V d THx c ngha l TH0 hoc TH1 ty theo b nh thi l 0 hay 1. -Ch nh thi 13 bit (ch 0): Ch 0 l ch nh thi 13-bit cung cp kh nng tng thch vi b vi iu khin tin nhim 8048. Ch ny khng c dng cho cc thit k mi. Byte cao ca b nh thi THx c ghp cascade vi 5 bit thp ca byte thp ca b nh thi TLx to thnh mt b nh thi 13-bit. Ba bit cao ca TLx khng s dng.

18

TLx(5 bit)

THx(8 bit)

TFx

-Ch nh thi 16 bit (ch 1): Ch 1 l ch nh thi 16-bit v c cu hnh ging ch nh thi 13-bit, ch khc nhau ch by gi l b nh thi 16-bit. Xung clock t vo cc thanh ghi nh thi cao v thp kt hp (TLx,THx). Khi c xung clock n, b nh thi m ln: 0000H, 0001H, 0002H, Mt trn s xut hin khi c s chuyn s m t FFFFH xung 0000H, s kin ny s set c trn bng 1 v b nh thi tip tc m. C trn l bit TFx trong thanh ghi iu khin nh thi TCON, bit ny c c hoc ghi bi phn mm. Bit c ngha ln nht (MSB) ca gi tr trong cc thanh ghi nh thi l 7 bit ca THx v bit c ngha thp nht (LSB) l bit 0 ca TLx. Bit LSB thay i trng thi v chia 2 tn s xung clock nh thi ng vo trong khi bit MSB thay i trng thi v chia cho 65536 (tc l 216) tn s xung clock nh thi ng vo. Cc thanh ghi nh thi (TLx/THx) c th c c hoc ghi mt thi im bt k bi phn mm.TLx THx TFx

-Ch t np li 8-bit (ch 2): Ch 2 l ch t np li 8 bit. Byte thp ca b nh thi (TLx) hot ng nh thi 8-bit trong khi byte cao ca b nh thi lu gi gi tr np li. Khi s m trn t FFH xung 00H, khng ch c trn ca b nh thi c set ln 1 m gi tr trong THx cn c np vo TLx. Vic m s tip tc t gi tr ny cho n khi xy ra 1 trn (FFH 00H) k tip,vvCh ny kh tin li do bi vic trn b nh thi xy ra nhng khong thi gian xc nh v tun hon mt khi cc thanh ghi TMOD v THx c khi ng.TLx TFx

THx

-Ch nh thi chia x (ch 3): Ch 3 l ch nh thi chia x v c hot ng khc nhau cho tng b nh thi. B nh thi 0 ch 3 chia thnh hai b

19

nh thi 8-bit hot ng ring r TL0 v TH0, mi b nh thi s set cc c trn tng ng TF0 v TF1 khi xy ra trn. B nh thi 1 khng hot ng ch 3 nhng c th c khi ng bng cch chuyn b nh thi vo mt trong cc ch khc. Gii hn duy nht l c trn TF1 ca b nh thi 1 khng b nh hng bi b nh thi 1 khi b ny xy ra trn v TF1 c ni vi b nh thi 8-bit TH0. Ch 3 ch yu cung cp thm mt b nh thi 8 bit na, ngha l 8051 c thm b nh thi th ba. Khi b nh thi 0 ch 3, b nh thi 1 c th hot ng hoc ngng bng cch chuyn b ny ra khi ch 3 hoc vo ch 3. B nh thi 1 c th s c s dng bi port ni tip (lc ny b nh thi 1 lm nhim v ca b to xung clock tc baud) hoc c s dng theo mt cch no nhng khng yu cu ngt (v b nh thi 1 lc ny khng cn ni vi TF1).TLx THx

TL0

TF0

TH0

TF1

1.5. T chc ngt ca 8051C 5 nguyn nhn to ra ngt i vi 8051, hai ngt do bn ngoi, hai ngt do b nh thi v mt ngt do port ni tip. 8052 c thm nguyn nhn ngt th 6 do b nh thi c thm vo, b nh thi th ba. Khi ta thit lp trng thi ban u cho h thng (gi tt l reset h thng), tt c cc ngt u b v hiu ha (cm) v sau chng c cho php ring r bng phn mm. Khi xy ra hai hay nhiu ngt ng thi hoc xy ra mt ngt trong khi mt ngt khc ang c phc v, ta c 2 s x l cc ngt s chui vng v s hai mc u tin. S chui vng l s c nh cn s u tin ngt c lp trnh bi ngi s dng. 1.5.1 Cc ngt ca 8051. Cc ngt ngc vi thm d : Mt b vi iu khin c th phc v mt vi thit b, c hai cch thc hin iu ny l s dng cc ngt v thm d (polling). Trong phng php s dng cc ngt th mi khi c mt thit b bt k cn n dch v ca n th n bo cho b vi iu khin bng cch gi mt tn hiu ngt. Khi nhn c tn hiu ngt th b vi iu khin ngt tt c nhng g n ang thc hin chuyn sang phc v thit b. Chng trnh i cng vi ngt c gi l trnh dch v ngt ISR

20

(Interrupt Service Routine) hay cn gi l trnh qun l ngt (Interrupt handler). Cn trong phng php thm d th b vi iu khin hin th lin tc tnh trng ca mt thit b cho v iu kin tho mn th n phc v thit b. Sau n chuyn sang hin th tnh trng ca thit b k tip cho n khi tt c u c phc v. Mc d phng php thm d c th hin th tnh trng ca mt vi thit b v phc v mi thit b khi cc iu kin nht nh c tho mn nhng n khng tn dng ht cng dng ca b vi iu khin. im mnh ca phng php ngt l b vi iu khin c th phc v c rt nhiu thit b (tt nhin l khng ti cng mt thi im). Mi thit b c th nhn c s ch ca b vi iu khin da trn mc u tin c gn cho n. i vi phng php thm d th khng th gn mc u tin cho cc thit b v n kim tra tt c mi thit b theo kiu hi vng. Quan trng hn l trong phng php ngt th b vi iu khin cng cn c th che hoc lm l mt yu cu dch v ca thit b. iu ny li mt ln na khng th thc hin c trong phng php thm d. L do quan trng nht l phng php ngt c u chung nht l v phng php thm d lm lng ph thi gian ca b vi iu khin bng cch hi d tng thit b k c khi chng khng cn n dch v. Nhm trnh th ngi ta s dng phng php ngt. Trnh phc v ngt : i vi mi ngt th phi c mt trnh phc v ngt ISR hay trnh qun l ngt. Khi mt ngt c gi th b vi iu khin phc v ngt. Khi mt ngt c gi th b vi iu khin chy trnh phc v ngt. i vi mi ngt th c mt v tr c nh trong b nh gi a ch ISR ca n. Nhm cc v tr nh c dnh ring gi cc a ch ca cc ISR c gi l bng vc t ngt Cc bc khi thc hin mt ngt. Khi kch hot mt ngt b vi iu khin i qua cc bc sau: 1. N kt thc lnh ang thc hin v lu a ch ca lnh k tip (PC) vo ngn xp. 2. N cng lu tnh trng hin ti ca tt c cc ngt vo bn trong (ngha l khng lu vo ngn xp). 3. N nhy n mt v tr c nh trong b nh c gi l bng vc t ngt n lu gi a ch ca mt trnh phc v ngt. 4. B vi iu khin nhn a ch ISR t bng vc t ngt v nhy ti . N bt u thc hin trnh phc v ngt cho n lnh cui cng ca ISR l RETI (tr v t ngt). 5. Khi thc hin lnh RETI b vi iu khin quay tr v ni n b ngt. Trc ht n nhn a ch ca b m chng trnh PC t ngn xp bng cch ko hai byte trn nh ca ngn xp vo PC. Sau bt u thc hin cc lnh t a ch . Lu bc 5 n vai tr nhy cm ca ngn xp, v l do ny m phi cn thn khi thao tc cc ni dung ca ngn xp trong ISR. c bit trong ISR cng nh

21

bt k chng trnh con CALL no s ln y vo ngn xp (Push) v s ln ly ra t n (Pop) phi bng nhau. Su ngt trong 8051 : Thc t ch c 5 ngt dnh cho ngi dng trong 8051 nhng nhiu nh sn xut a ra cc bng d liu ni rng c su ngt v h tnh c lnh ti thit lp li RESET. Su ngt ca 8051 c phn b nh sau: 1. RESET: Khi chn RESET c kch hot t 8051 nhy v a ch 0000. y l a ch bt li ngun.. 2. Gm hai ngt dnh cho cc b nh thi: 1 cho Timer0 v 1 cho Timer1. a ch ca cc ngt ny l 000B4 v 001B4 trong bng vc t ngt dnh cho Timer0 v Timer1 tng ng. 3. Hai ngt dnh cho cc ngt phn cng bn ngoi chn 12 (P3.2) v 13 (P3.3) ca cng P3 l cc ngt phn cng bn ngoi INT0 v INT1 tng ng. Cc ngt ngoi cng cn c coi nh EX1 v EX2 v tr nh trong bng vc t ngt ca cc ngt ngoi ny l 0003H v 0013H gn cho INT0 v INT1 tng ng. 4. Truyn thng ni tip c mt ngt thuc v c thu v pht. a ch ca ngt ny trong bng vc t ngt l 0023H. Ch rng c mt s gii hn cc byte dnh ring cho mi ngt. V d, i vi ngt INT0 ngt phn cng bn ngoi 0 th c tng cng l 8 byte t a ch 0003H n 000AH dnh cho n. Tng t nh vy, 8 byte t a ch 000BH n 0012H l dnh cho ngt b nh thi 0 l TI0. Nu trnh phc v ngt i mt vi mt ngt cho m ngn t va khng gian nh c. Nu khng va th mt lnh LJMP c t vo trong bng vc t ngt ch n a ch ca ISR, trng hp ny th cc byte cn li c cp cho ngt ny khng dng n. T bng 5 (bn di) cng thy mt thc t rng ch c 3 byte ca khng gian b nh ROM c gn cho chn RESET. l nhng v tr a ch 0, 1 v 2 ca ROM. V tr a ch 3 thuc v ngt phn cng bn ngoi 0 vi l do ny trong chng trnh chng ta pha t lnh LJMP nh l lnh u tin v hng b x l lnh khi bng vc t ngt nh ch ra trn bng 5. Bng 5: Bng vc t ngt ca 8051. Ngt Bt li ngun (RESET) Ngt phn cng ngoi (INT0) Ngt b Timer0 (TF0) Ngt phn cng ngoi 1 (INT1) Ngt b Timer1 (TF1) a ch ROM 0000 0003 000B 0013 001B 13 (P3.3) Chn 9 12 (P3.2)

22

Cho php v cm ngt. Khi bt li ngun th tt c mi ngt u b cm (b che) c ngha l khng c ngt no s c b vi iu khin p ng nu chng c kch hot. Cc ngt phi c kch hot bng phn mm b vi iu khin p ng chng. C mt thanh ghi c gi l cho php ngt IE (Interrupt Enable) chu trch nhim v vic cho php (khng che) v cm (che) cc ngt. Hnh 6 trnh by thanh ghi IE, lu rng IE l thanh ghi c th nh a ch theo bt. T hnh 6 (bn di) ta thy rng D7 ca thanh ghi IE c gi l bt cho php tt c cc ngt EA (Euable All). Bt ny phi c thit lp ln 1 phn cn li ca thanh ghi hot ng c. Bt D6 cha c s dng. Bt D54 c dnh cho 8051, cn bt D4 dng cho ngt ni tip v.v

1.5.2 Cc bc khi cho php ngt. cho php mt ngt ta phi thc hin cc bc sau: 1. Bt D7 ca thanh ghi IE l EA phi c bt ln cao cho php cc bt cn li ca thanh ghi nhn c hiu ng. 2. Nu EA = 1 th tt c mi ngt u c php v s c p ng nu cc bt tng ng ca chng trong IE c mc cao. Nu EA = 0 th khng c ngt no s c p ng cho d bt tng ng ca n trong IE c gi tr cao. Hnh 6 :Thanh ghi cho php ngt IE.D7 D0

EA

--

ET2

ES

ET1

EX1

ET0

EX0

IE.7 Nu EA = 0 th mi ngt b cm Nu EA = 1 th mi ngun ngt c cho php hoc b cm bng cc bt hoc xo bt cho php ca n. -IE.6 D phng cho tng lai ET2 IE.5 Cho php hoc cm ngt trn hoc thu ca Timer2 (8051) ES IE.4 Cho php hoc cm ngt cng ni tip ET1 IE.3 Cho php hoc cm ngt trn ca Timer1 EX1 IE.2 Cho php hoc cm ngt ngoi 1 ET0 IE.1 Cho php hoc cm ngt trn ca Timer0 EX0 IE.0 Cho php hoc cm ngt ngoi 0 * Ngi dng khng phi ghi 1 vo bt d phng ny. Bt ny c th dng cho cc b vi iu khin nhanh vi c tnh mi

EA

23

1.5.3 Lp trnh cc ngt b nh thi. Trong 8051 c hai b nh thi Timer0 v Timer1 bng phng php thm d. Trong phn ny ta s s dng cc ngt lp trnh cho cc b nh thi ca 8051. C quay v 0 ca b nh thi v ngt. Chng ta ni rng c b nh thi TF c t ln cao khi b nh thi t gi tr cc i v quay v 0 (Roll - over). Trong phn ny chng ta cng ch ra cch hin th c TF bng lnh JNB TF, ch. Khi thm d c TF th ta phi i cho n khi c TF c bt ln. Vn vi phng php ny l b vi iu khin b tri buc khi c TF c bt ln v khng th lm c bt k vic g khc. S dng cc ngt gii quyt c vn ny v trnh c s tri buc ca b vi iu khin. Nu b ngt nh thi trong thanh ghi IE c php th mi khi n quay tr v 0 c TF c bt ln v b vi iu khin b ngt ti bt k vic g n ang thc hin v nhy ti bng vc t ngt phc v ISR. Bng cch ny th b vi iu khin c th lm nhng cng vic khc cho n khi no n c thng bo rng b nh thi quay v 0.TF 1 Timer 0 Interruptor 000BH Jumps to TF 1 Timer 1 Interruptor 001BH Jumps to

1.

2. 3. 4.

5.

Hnh 7 : Ngt b nh thi TF0 v TF1. Phi trnh s dng khng gian b nh dnh cho bng vc t ngt. Do vy, t tt c m khi to ti a ch 30H ca b nh. Lnh LJMP l lnh u tin m 8051 thc hin khi n c cp ngun. Lnh LJMP li b iu khin trnh khi bng vc t ngt. Trnh phc v ISR ca b Timer0 c t trong b nh bt u t a ch 000BH v v n qu nh cho vo khng gian nh dnh cho ngt ny. Cho php ngt b Timer0 vi lnh MOV IE, #1000 010H trong chng trnh chnh MAIN. Trong khi d liu cng P0 c nhn vo v chuyn lin tc sang cng vic P1 th mi khi b Timer0 tr v 0, c TF0 c bt ln v b vi iu khin thot ra khi vng lp BACK v i n a ch 000BH thc hin ISR gn lin vi b Timer0. Trong trnh phc v ngt ISR ca Timer0 khng cn n lnh CLR TF0 trc khi lnh RETI. L do ny l v 8051 xo c TF bn trong khi nhy n bng vc t ngt.

1.5.4 Lp trnh cc ngt phn cng bn ngoi. B vi iu khin 8051 c hai ngt phn cng bn ngoi l chn 12 (P3.2) v chn 13 (P3.3) dng cho ngt INT0 v INT1. Khi kch hot nhng chn ny th 8051

24

b ngt ti bt k cng vic no m n ang thc hin v n nhy n bng vc t ngt thc hin trnh phc v ngt.Level - tringgered INTO (Pin 3.2)

0 1Edge - triggered

0003 IE0 (TCON.1)

Level - tringgered INTO (Pin 3.3)

Cc ngt ngoi INT0 v INT1. Edge - triggered Ch c hai ngt phn cng ngoi trong 8051 l INT0 v INT1. Chng c b tr trn chn P3.2 v P3.3 v a ch ca chng trong bng vc t ngt l 0003H v 0013H. Nh ni trn th chng c php v b cm bng vic s dng thanh ghi IE. Vy chng c kch hot nh th no? C hai mc kch hot cho cc ngt phn cng ngoi: Ngt theo mc v ngt theo sn. Di y l m t hot ng ca mi loi. Ngt theo mc : ch ngt theo mc th cc chn INT0 v INT1 bnh thng mc cao (ging nh tt c cc chn ca cng I/O) v nu mt tn hiu mc thp c cp ti chng th n ghi nhn ngt. Sau b vi iu khin dng tt c mi cng vic n ang thc hin v nhy n bng vc t ngt phc v ngt. iu ny c gi l ngt c kch hot theo mc hay ngt theo mc v l ch ngt mc nh khi cp ngun li cho 8051. Tn hiu mc thp ti chn INT phi c ly i trc khi thc hin lnh cui cng ca trnh phc v ngt RETI, nu khng mt ngt khc s li c to ra. Hay ni cch khc, nu tn hiu ngt mc thp khng c ly i khi ISR kt thc th n khng th hin nh mt ngt khc v 8051 nhy n bng vc t ngt thc hin ISR. Trch mu ngt theo mc : Cc chn P3.2 v P3.3 bnh thng c dng cho vo - ra nu cc bt INT0 v INT1 trong thanh ghi IE khng c kch hot. Sau khi cc ngt phn cng trong thanh gi IE c kch hot th b vi iu khin duy tr trch mu trn chn INT1 i vi tn hiu mc thp mt ln trong mt chu trnh my. Theo bng d liu ca nh sn xut ca b vi iu khin th chn ngt phi c gi mc thp cho n khi bt u thc hin trnh phc v ngt ISR. Nu chn INT1 c a tr li mc cao trc khi bt u thc hin ISR th s chng c ngt no xy ra. Tuy nhin trong qu trnh kch hot ngt theo mc thp nn n li phi a ln mc cao trc khi thc hin lnh RET1 v li theo bng d liu ca nh sn xut th nu chn INT1 vn mc thp sau lnh RETI ca trnh phc v ngt th mt ngt khc li s c kch

0 1

IT1 IE0 (TCON.3)

0013

25

hot sau khi lnh RET1 c thc hin. Do vy, bo m vic kch hot ngt phn cng ti cc chn INT1 phi khng nh rng thi gian tn ti tn hiu mc thp l khong 4 chu trnh my v khng c hn. iu ny l do mt thc t l ngt theo mc khng c cht. Do vy chn ngt phi c gia mc thp cho n khi bt u thc hin ISR.

1 chu trnh my 1.085s 4 chu trnh my (4MC) 4 1.085s n chn INT0 hoc INT1

Ghi ch: Khi bt li ngun (RESET) th c hai chn INT0 v INT1 u mc thp to cc ngt ngoi theo mc. Hnh 8 : Thi gian ti thiu ca ngt theo mc thp (XTAL = 11.0592MHz) Cc ngt theo sn : Nh ni trc y trong qu trnh bt li ngun th 8051 lm cc chn INT0 v INT1 l cc ngt theo mc thp. bin cc chn ny tr thnh cc ngt theo sn th chng ta phi vit chng trnh cho cc bt ca thanh ghi TCON. Thanh thi TCON gi cc bt c IT0 v IT1 xc nh ch ngt theo sn hay ngt theo mc ca cc ngt phn cng IT0 v IT1 l cc bt D0 v D2 ca thanh ghi TCON tng ng. Chng c th c biu din nh TCON.0 v TCON.2 v thanh ghi TCON c th nh a ch theo bt. Khi bt li ngun th TCON.0 (IT0) v TCON.2 (IT1) u mc thp (0) ngha l cc ngt phn cng ngoi ca cc chn INT0 v INT1 l ngt theo mc thp. Bng vic chuyn cc bt TCON.0 v TCON.2 ln cao qua cc lnh SETB TCON.0 v SETB TCON.2 th cc ngt phn cng ngoi INT0 v INT1 tr thnh cc ngt theo sn. V d, lnh SETB TCON.2 lm cho INT1 m c gi l ngt theo sn trong khi mt tn hiu chuyn t cao xung thp c cp n chn P3.3 th trng hp ny b vi iu khin s b ngt v b cng bc nhy n bng vc t ngt ti a ch 0013H thc hin trnh phc v ngt. Tuy nhin l vi gi thit rng bt ngt c cho php trong thanh ghi IE.D7 D0

TF1

TR1

TF0

TR0

IE1

IT1

IE0

IT0

Hnh 9: Thanh ghi TCON.

26

Bt TF1 hay TCON.7 l c trn ca b Timer1. N c lp bi phn cng khi b m/ b nh thi 1 trn, n c xo bi phn cng khi b x l ch n trnh phc v ngt. Bt TR1 hay TCON.6 l bt iu khin hot ng ca Timer1. N c thit lp v xo bi phn mm bt/ tt Timer1. Bt TF0 hay TCON.5 tng t nh TF1 dnh cho Timer0. Bt TR0 hay TCON.4 tng t nh TR1 dnh cho Timer0. Bt IE1 hay TCON.3 c ngt ngoi 1 theo sn. N c thit lp bi CPU khi sn ngt ngoi (chuyn t cao xung thp) c pht hin. N c xa bi CPU khi ngt c x l. Lu : C ny khng cht nhng ngt theo mc thp. Bt IT1 hay TCON.2 l bt iu khin kiu ngt. N c thit lp v xo bi phn mm xc nh kiu ngt ngoi theo sn xung hay mc thp. Bt IE0 hay TCON.1 tng t nh IE1 dnh cho ngt ngoi 0. Bt IT0 hay TCON.0 tng t nh bt IT1 dnh cho ngt ngoi 0. Trnh mu ngt theo sn : Trc khi kt thc phn ny cn tr li cu hi vy th ngt theo sn c trch mu thng xuyn nh th no? Trong cc ngt theo sn, ngun ngoi phi gi mc cao ti thiu l mt chu trnh my na m bo b vi iu khin nhn thy c s chuyn dch t cao xung thp ca sn xung.

1M 1.085s

1.085s 1M

Thi hn xung ti thiu pht hin ra cc ngt theo sn xung vi tn s XTAL = 11.0592MHz Sn xung ca xung c cht bi 8051 v c gia bi thanh ghi TCON. Cc bt TCON.1 v TCON.3 gi cc sn c cht ca chn INT0 v INT1 tng ng. TCON.1 v TCON.3 cng cn c gi l cc bt IE0 v IE1 nh ch ra trn hnh 11.6. Chng hot ng nh cc c ngt ang c phc v (Interrupt-in-server). Khi mt c ngt ang c phc v bt ln th n bo cho th gii thc bn ngoi rng ngt hin nay ang c x l v trn chn INTn ny s khng c ngt no c p ng chng no ngt ny cha c phc v xong. y ging nh tn hiu bo bn my in thoi. Cn phi nhn mnh ht im di y khi quan tm n cc bt IT0 v IT1 ca thanh ghi TCON. 1. Khi cc trnh phc v ngt ISR kt thc (ngha l trong thanh ghi thc hin lnh RETI). Cc bt ny (TCON.1 v TCON.3) c xo bo rng ngt c hon tt

27

v 8051 sn sng p ng ngt khc trn chn . ngt khc c nhn v th tn hiu trn chn phi tr li mc cao v sau nhy xung thp c pht hin nh mt ngt theo sn. 2. Trong thi gian trnh phc v ngt ang c thc hin th chn INTn b lm ng khng quan tm n n c bao nhiu ln chuyn dch t cao xung thp. Trong thc t n l mt trong cc chc nng ca lnh RETI xo bt tng ng trong thanh ghi TCON (bt TCON.1 v TCON.3). N bo cho ta rng trnh phc v ngt xp kt thc. V l do ny m cc bt TCON.1 v TCON.3 c gi l cc c bo ngt ang c phc v c ny s ln cao khi mt sn xung c pht hin trn chn INT v dng mc cao trong ton b qu trnh thc hin ISR. N ch b xo bi lnh RETI l lnh cui cng ca ISR. Do vy, s khng bo gi cn n cc lnh xo bt ny nh CLR TCON.1 hay CLR TCON.3 trc lnh RETI trong trnh phc v ngt i vi cc ngt cng INT0 v INT1. iu ny khng ng vi trng hp ca ngt ni tip. 1.5.5 Thanh ghi TCON By gi ta xt k v cc bt ca thanh ghi TCON hiu vai tr ca n trong vic duy tr cc ngt. Cc bt IT0 v IT1 : Cc bt TCON.0 v TCON.2 c coi nh l cc bt IT0 v IT1 tng ng. y l cc bt xc nh kiu ngt theo sn xung hay theo mc xung ca cc ngt phn cng trn chn INT.0 v INT.1 tng ng. Khi bt li ngun c hai bt ny u c mc 0 bin chng thnh ngt theo tn hiu mc thp. Lp trnh vin c th iu khin mt trong s chng ln cao chuyn ngt phn cng bn ngoi thnh ngt theo ngng. Trong mt h thng da trn 8051 cho th mt khi ta t v 0 hoc 1 th cc bt ny s khng thay i v ngi thit k c nh kiu ngt l ngt theo sn hay theo mc ri. Cc bt IE0 v IE1 : Cc bt TCON.1 v TCON.3 cn c gi l IE0 v IE1 tng ng. Cc bt ny c 8051 dng bm kiu ngt theo sn xung. Ni cc khc l nu IT0 v IT1 bng 0 th c ngha l cc ngt phn cng l ngt theo mc thp, cc bt IE0 v IE1 khng dng n lm g. Cc bt IE0 v IE1 c 8051 ch dng cht sn xung t cao xung thp trn cc chn INT0 v INT1. Khi c chuyn dch sn xung trn chn INT0 (hay INT1) th 8051 nh du (bt ln cao) cc bt IEx trn thanh ghi TCON nhy n bng vc t ngt v bt u thc hin trnh phc v ngt ISR. Trong khi 8051 thc hin ISR th khng c mt sn xung no c ghi nhn trn chn INT0 (hay INT1) ngn mi ngt trong ngt. Ch trong khi thc hin lnh RETI cui trnh phc v ngt ISR th cc bt IEx mi b bo rng mt sn xung cao xung thp mi trn chn INT0 (hay INT1) s kch hot ngt tr li. T phn trnh by trn ta thy rng cc bt IE0 v IE1 c 8051 s dng bn trong bo c mt ngt

28

ang c x l hay khng. Hay ni cch khc l lp trnh vin khng phi quan tm n cc bt ny. Cc bt TR0 v TR1 : y l nhng bt D4 v D6 (hay TCON.4 v TCON.6) ca thanh ghi TCON. Cc bt ny c dng khi ng v dng cc b nh thi Timer0 v Timer1 tng ng. V thanh ghi TCON c th nh a ch theo bt nn c th s dng cc lnh SETB TRx v CLR TRx cng nh cc lnh SETB TCON.4 v CLR TCON.4. Cc bt TF0 v TF1 : Cc bt ny l D5 (TCON.5) v D7 (TCON.7) ca thanh ghi TCON. Chng ta c s dng bi cc b Timer0 v Timer1 tng ng bo rng cc b nh thi b trn hay quay v khng. Mc d ta dng cc lnh JNB TFx, ch v CLR TFx nhng chng ta cng khng th s dng cc lnh nh SETB TCON.5, ch v CLR TCON.5 v TCON l thanh ghi c th nh a ch theo bt. 1.5.6 Cc mc u tin ngt trong 8051. Cc mc u tin trong qu trnh bt li ngun : Khi 8051 c cp ngun th cc mc u tin ngt c gn theo bng 11.3. T bng ny ta thy v d nu cc ngt phn cng ngoi 0 v 1 c kch hot cng mt lc th ngt ngoi 0 s c p ng trc. Ch sau khi ngt INT0 c phc v xong th INT1 mi c phc v v INT1 c mc u tin thp hn. Trong thc t s mc u tin ngt trong bng khng c ngha g c m mt quy trnh thm d trong 8051 thm d cc ngt theo trnh t cho trong bng 11.3 v p ng chng mt cch ph hp. Bng 6: Mc u tin cc ngt trong khi cp li ngun. Mc u tin cao xung thp Ngt ngoi 0 Ngt b nh thi 0 Ngt ngoi 1 Ngt b nh thi 1 Ngt truyn thng ni tip INT0 TF0 INT1 TF1 (RI + TI)

Thit lp mc u tin ngt vi thanh ghi IP : Chng ta c th thay i trnh t trong bng 6 bng cch gn mc u tin cao hn cho bt k ngt no. iu ny c thc hin bng cch lp trnh mt thanh ghi gi l thanh ghi mc u tin ngt IP (Interrupt Priority). Trn hnh 9 l cc bt ca thanh ghi ny, khi bt li ngun thanh thi 1P cha hon ton cc s 0 to ra trnh t u tin ngt theo bng 6. mt ngt no mc u tin cao hn ta thc hin a bt tng ng ln cao. Mt im khc na cn c lm sng t l mc u tin ngt khi hai hoc nhiu bt ngt trong thanh ghi

29

IP c t ln cao. Trong trng hp ny th trong khi cc ngt ny c mc u tin cao hn cc ngt khc chng s c phc v theo trnh t cho trong bng 6. Mc u tin thp nht: Ngt cng truyn thng ni tip (RI + RT). Ngt trong ngt : iu g xy ra nu 8051 ang thc hin mt trnh phc v ngt thuc mt ngt no th li c mt ngt khc c kch hot? Trong nhng trng hp nh vy th mt ngt c mc u tin cao hn c th ngt mt ngt c mc u tin thp hn. y gi l ngt trong ngt. Trong 8051 mt ngt u tin thp c th b ngt bi mt ngt c mc u tin cao hn ch khng b ngt bi mt ngt c mc u tin thp hn. Mc d tt c mi ngt u c cht v gi bn trong nhng khng c ngt mc thp no c CPU quan tm ngay tc khc nu 8051 cha kt thc phc v cc ngt mc cao. Thu chp ngt bng phn mm (Triggering) : C nhiu lc ta cn kim tra mt trnh phc v ngt bng con ng m phng. iu ny c th c thc hin bng cc lnh n gin thit lp cc ngt ln cao v bng cch buc 8051 nhy n bng vc t ngt. V d, nu bt IE dnh cho b Timer1 c bt ln 1 th mt lnh nh SETB TF1 s ngt 8051 ngng thc hin cng vic ang lm bt k v buc n nhy n bng vc t ngt. Hay ni cch khc, ta khng cn i cho Timer1 quay tr v 0 mi to ra ngt. Chng ta c th gy ra mt ngt bng cc lnh a cc bt ca ngt tng ng ln cao. Nh vy chng ny chng ta bit ngt l mt s kin bn trong hoc bn ngoi gy ra ngt b vi iu khin bo cho n bit rng thit b cn c phc v. Mi mt ngt c mt chng trnh i km vi n c gi l trnh phc v ngt ISR. B vi iu khin 8051 c su ngt, trong nm ngt ngi dng c th truy cp c. l hai ngt cho cc thit b phn cng bn ngoi INT0 v INT1, hai ngt cho cc b nh thi l TF0 v TF1 v ngt lnh cho truyn thng ni tip. 8051 c th c lp trnh cho php hoc cm mt ngt bt k cng nh thit lp mc u tin cho n theo yu cu ca thut ton ng dng.

30

II. T chc mch phn cng2.1. La chn h vi x lThc t mt h vi x l c coi nh mt thit b ngoi vi tng t nh my in, my fax c ghp ni vi my tnh s dng bi cc chng trnh ng dng (phn mm). Khi thit k h vi x l bao gm hai cng vic thit k phn cng v thit k phn mm. thit k phn cng phi la chn cc vi iu khin c kh nng ng dng cao, t pht trin cc ng dng trn n. T nhn nh trn chn h vi iu khin MCS-51 ca hng Intel c th l vi iu khin 8051 vi nhng l do sau: + Th nht chip 8051 thuc h MCS-51, thc cht n l mt h vi iu khin nh, thch hp vi nhng thit k hng iu khin. Tc l trong n bao gm: mch VXL,b nh chng trnh v d liu, b m,b to xung, cc cng vo/ra ni tip v song song, mch iu khin ngt + Th hai l, vi iu khin 8051 cng vi cc h vi iu khin khc ni chung trong nhng nm gn y c pht trin theo cc hng sau: Gim nh dng tiu th. Tng tc lm vic hay tn s xung nhp ca CPU Gim ip p ngun nui. C th m rng nhiu chc nng trn chip, m rng cho cc thit k ln. Nhng c im dn n t c hai tnh nng quan trng l: gim cng sut tiu th v cho php iu khin thi gian thc nn v mt ng dng n rt thch hp vi cc thit k hng iu khin. + Th ba l, vi iu khin thuc h MCS-51 c h tr mt tp lnh phong ph nn cho php nhiu kh nng mm do trong vn vit chng trnh phn mm iu khin. + Cui cng l, cc chip thuc h MCS-51 hin c s dng ph bin v c coi l chun cng nghip cho cc thit k kh dng. Mt khc, qua vic kho st th trng linh kin vic c c chip 8051 l d dng nn m ra kh nng thit k thc t. V nhng l do trn m vic la chn vi iu khin 8051 l mt gii php hon ton ph hp cho thit k. .

31

2.2. Gii thiu cc cng ghp ni vi my tnh2.2.1.Cng song song Cng song song ( hay cn gi l cng my in LPT1 hay LPT2 ) ca my tnh c tng cng 17 ng dn s,cc ng dn ny c th c tn dng trao i gi liu vi tc nhanh vi cc mch in ghp ni. Cc ng dn ca cng my in c ni vi 3 thanh ghi trao i thng tin vi cc thit b ngoi: thanh ghi d liu, thanh ghi trng thi v thanh ghi iu khin. a ch c bn l a ch u tin ca cng my in. LPT 1(Cng my in th nht ) a ch c bn =378 (hex) LPT 2( Cng my in th nht) a ch c bn=278 (hex) Khong cch t a ch c bn n a ch c s c gi l Offset. Thanh ghi Thanh ghi d liu 0 Offset Ch thch

Xut ra d liu cho my in c trng thi my in 2 iu khin chc nng my in

Thanh ghi trng thi 1 Thanh ghi iu khin

Khi tin hnh ghp ni cn ch : -Thit b ch c ghp ni vi my tnh khi my tnh trng thi ngt in. -Cc li vo ch c php tip nhn in p t 0-5 (V). -Cc li ra khng c php ngn mch hoc u ni vi cc li ra khc v cc li ra khng c php ni vi cc tn hiu in p khng r thng s. Cc li ra ca cng u c mc in p tng thch TTL, ngha l mc Hight nm trong khong 3,5 V n 5 V v cc li ra c php chu c dng ti c 10mA. Cng my in c 5 li vo ca thanh ghi trng thi: Error, Select, PE, ACK, Busy, t cc li vo ny c 1 trng thi c c v ly o( Busy). Cc ng dn ny u tng thch TTL, ngha l cc li vo h c xem l t tn mc Hight. Do , chuyn mch c th thc hin mt cch n gin l ni vi mass. Trng thi ca tt c 5 ng dn li vo c th c c di a ch ( CCB+1). a ch cng (CCB+1) cho php truy nhp ln thanh ghi iu khin vi bn ng ph tr: Strobe, Auto Feed, Init v SLCT IN, qua cc thng tin iu khin c xut t my tnh sang my in ng thi 4 ng dn ny cng c th c s dng c. D liu c xut ra qua cc li ra cc gp h. Cc in tr khong 3,3 K

32

ni cc li ra ln ngun +5V. Khi ta xut ra cc trng thi Hight, cc ng dn c in tr tng i cao v c th c chuyn trng thi sang mc Low bng cc mch in bn ngoi. Mi trng thi u c c tr li qua cc li vo TTL. Do 4 ng dn ny c th c s theo hai hng d liu. Khi ta cn phi ch l 3 trong s cc ng dn ( Strobe, Auto Feed , Init v SLCT IN) c ly o ch c 1 ng dn cn li (Init) c gi nguyn. Trong cc chng trnh, cc bit c ly o c th d dng chuyn i trng thi bng hm XOR. Giao din my in c kh nng xut ra 8 bit d liu cng mt lc, ni cch khc l xut ra 8 bit d liu di dng song song. Thng qua giao din my in c th iu khin, chng hn cc mch logic hoc cc b m cng xut ( chu dng ln). Vic xut d liu ra cng song song din ra vi 1 lnh cng n gin v d nn rt nhanh. Cng song song ( my in) c 25 chn. B tr chn cng my in ca my tnh PC nh sau:

Chn 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

K hiu STROBE D0 D1 D2 D3 D4 D5 D6 D7 ACK BUSY PE SLCT AF ERROR

Vo/ra Li ra Li ra Li ra Li ra Li ra Li ra Li ra Li ra Li ra Li vo Li vo Li vo Li vo Li ra Li vo

M t Byte c in ng d liu D0 ng d liu D1 ng d liu D2 ng d liu D3 ng d liu D4 ng d liu D5 ng d liu D6 ng d liu D7 Acknowledge( xc nhn) 1:My in bn Ht giy Select( la chn) Auto Feed( t np) ERROR

33

16 17 18-25

INIT SLCTIN GND

Li ra Li ra

0:t li my in Select in Ni t

2.2.2. Cng ni tip Cng ni tip RS-232 l giao din ph bin rng ri nht. Cng COM 1 thng c dng cho chut. a ch c bn: 3F8( HEX). Cng COM 2 thng c dng cho cc mc ch ghp ni khc nh m em, my in hoc cc thit b o lng.a ch c bn: 2F8( Hex). Cng COM 3, a ch c bn:3E8 (Hex). Cng COM 3, a ch c bn:2E8 (Hex). Vic s dng giao din ni tip mang li nhiu u im, ngay c vi nhng mch ghp ni n gin. L do l: Vic truyn d liu qua cng RS-232 c tin hnh theo cch ni tip, ngha l d liu c gi i ni tip nhau trn 1 ng dn. Do kh nng chng nhiu ca cc cng ni tip cao hn so vi cng my in. Thit b ngoi vi c th tho lp ngay c khi my tnh ang c cp in. Cc mch in n gin c th nhn c in p ngun nui qua cng ni tip. Cng ni tip RS-232 khng phi l 1 h thng Bus, n cho php d dng to ra lin kt di hnh thc im vi im gia hai my cn trao i thng tin vi nhau. Mt thnh vin th ba khng th tham gia vo cuc trao i ny. Tuy nhin hu ht cc ng dng ca giao din ni tip khng i hi lp trnh cho tt c cc ng dn mt cch ring bit, m ty thuc yu cu ca vic trao i thng tin. B tr chn ca phch cm RS-232 my tnh PC: Chn (loi chn) 1 2 3 4 5 6 Chn Tn gi 9 (loi 25 chn) 8 3 2 20 7 6 DCD-data Carrier detect RxD-Receive Data TxD-Transmit Data DTR-Data Terminal Ready GND-Ni t DSR-Data Set Ready Li Chc nng (vo/ra) Li vo Li vo Li ra Li vo Li ra Li vo Pht tn hiu mang d liu Nhn d liu. Truyn d liu. u cui d liu sn sng. t ca tn hiu. D liu sn sng.

34

7 8 9

4 5 22

RTS-Request to Send CTS-Clear to Send RI-Ring Indicator

Li ra Li vo Li vo

Yu cu gi. Xa gi. Bo chung.

Vic truy nhp trc tip trn thanh ghi din ra qua a ch thanh ghi, c tnh bng cch ly tng ca a ch c bn ca giao din v lch Offset ca thanh ghi: a ch c bn+Offset= a ch thanh ghi Vic truyn d liu xy ra trn 2 ng dn. Qua chn cm ra TxD (Tranmit Data), my tnh gi cc d liu ca n n my kia. Trong khi cc d liu m my tnh nhn c, li c dn n chn ni RxD (Receive Data). Cc tn hiu khc ng vai tr nh l nhng tn hiu h tr khi trao i thng tin v v th khng phi trong mi ng dng u dng n. Mc tn hiu trn chn RxD ty thuc vo cc ng dn TxD v thng thng nm trong khong -12V n +12V. Cc bit c gi o ngc li. Mc in p i vi mc Hight nm gia -3V v -12V v mc Low nm gia +3V v +12V. my tnh PC thng c 1 b pht/nhn khng ng b vn nng (gi tt l UART: Universal Asychronous Receive/Transmitter) iu khin s trao i thng tin gia my tnh vi cc thit b ngoi vi. Ph bin nht l vi mch 8250, sau l 16C550. B UART ny c 10 thanh ghi iu khin tt c cc chc nng ca vic nhp vo v xut ra d liu theo cch ni tip. a ch cc thanh ghi v chc nng: Thanh ghi Thanh ghi m (gi) nhn Thanh ghi m (gi) truyn Thanh ghi tc Baud (Low) Thanh ghi tc Baud (Hight) Thanh ghi cho php ngt Thanh ghi nhn dng ngt Thanh ghi iu khin ng dn Thanh ghi iu khin m em Thanh ghi trng thi ng dn Thanh ghi trng thi m em Offset 0 0 0 1 1 2 3 4 5 6 c ng dn h tr t ng dn h tr Cng dng Ghi byte truyn c byte truyn

Ch truy nhp ti c, khi 7 bit thanh ghi iu khin ng dn l Hight

35

ng vai tr quan trng i vi cc ng dng n gin ca giao din l thanh ghi iu khin m em v thanh ghi trang thi m em, v qua cc ng dn cc ng dn ph tr ca giao din c tip cn trc tip. Thanh ghi iu khin m em (CCB+4): Bit 0: DTR (Li ra) Gi tr 1 Bit 1: RTS (Li ra) Gi tr 2 Thanh ghi trng thi m em (CCB+6): Bit 4: CTS (Li vo) Gi tr 16 Bit 5: DSR (Li vo) Gi tr 32 Bit 6: RI (Li vo) Gi tr 64 Bit 7: DCD(Li vo) Gi tr 128

2.3. T chc mch th nghimMch th nghim c t chc thnh cc module bao gm: -Module ngun -Module vi x l -Module np chng trnh -Module hin th LED n -Module hin th LED by thanh -Module hin th LCD -Module ma trn phm 3x3 -Module ngt ngoi -Module truyn thng RS232 -Module pht hng ngoi -Module thu hng ngoi -Module chuyn i tng t-s -Module m s kin ngoi

36

-Module ngun: u vo 12-15 VAC hoc VDC, u vo c ly t bin p c tch hp sn trong b th nghim. Ch cn cp in cho mch vi ngun in tiu dng.

u ra:+5v/1.5A Thit k cu ch 1.5 A phng trng hp mch qu ti. -Module vi x l: c thit k vi chip iu khin AT89S52 ca hng ATMEL y l loi chip thuc h vi iu khin 8051 c thm tnh nng lp trnh trong h thng (insystem Programming) cho php np chng trnh vo chip ngay khi chng trnh ang chy. Tch hp thm cc mch ph tr nh dao ng thch anh, reset.

37

-Module np chng trnh: Module ny c kh nng download m my trc tip t my tnh xung v c th c m my t vi iu khin AT89S52. S cp cng my in chun 25 chn mt u male mt u female. Module ny c thit k tng thch vi phn mm np chng trnh SPI v3.7.

-Module hin th LED n: c thit k vi 8 LED n v in tr hn dng 470 ohm cho mi LED.

Thit k thm mt jumper u ngun vo dy n LED to iu kin c th tch LED n ra khi hot ng ca cc Module khc c s dng chung chn tn hiu. -Module hin th LED by thanh: c thit k vi LED 7 thanh loi Anode chung, c 4 digit c ni chung bus d liu bn, do phng php hin th phi l phng php qut LED.

38

-Module hin th LCD: c thit k vi LCD k t 16 ct x 2 hng. C chit p dng iu chnh tng phn.

-Module ma trn phm: Gm chn phm bm sp xp kt ni thnh ma trn vung 3x3.

-Module phm bm to ngt: c thit k vi 01phm bm, nhm to mc logic thay i bn ngoi chip vi iu khin, phc v cho bi th nghim v ngt ngoi.

39

-Module thu hng ngoi: c thit k vi mt thu hng ngoi tch hp sn b lc thng mt di (band pass filter), ch cho php tn hiu hng ngoi trong di tn s xp x 36 KHZ i qua. Mch ngun nui cho mt nhn c thit k theo kiu lc RC nhm hn ch nhiu t ngun nui ca mch tc ng ln mt thu, gy sai lch tn hiu.

-Module pht hng ngoi: c thit k vi LED pht hng ngoi thng thng , iu khin ng ct qua transistor.

-Module chuyn i tng t -s: c thit k vi vi mch ADCO804 l vi mch chuyn i tng t-s 8 bit ca hng National Semiconductor. Thit k sn chit p (nm ) nhm to ra in p cn o, phc v cho bi th nghim v chuyn i tng t s.

40

-Module truyn thng RS232: c thit k vi vi mch MAX232CPE, c tnh nng chuyn i tng thch mc logic gia vi iu khin v my tnh. u ni s dng Conecter 9 chn Female dng chun, chuyn dng cho giao tip cng COM. S dng cp cng COM dng chun , mt du Male, mt u Female, cc chn RxD (2) v TxD (3) khng ni cho.