Professional Documents
Culture Documents
BI 2: CC LNH C BN CA 89C51
MC CH
Gip sinh vin kho st cc vn sau: S dng phn mm Proteus m phng mch in. Thc hin m phng mt s lnh ca 89C51. My vi tnh. Phn mm Proteus
THIT B S DNG
1. C s l thuyt
M phng 89C51 thc hin qu trnh m phng 89C51 trong Proteus, ta cn thc hin cc bc sau: Bc 1: V mch nguyn l. Bc 2: nh ngha chng trnh dch
Sau thc hin chn chng trnh dch mong mun. y ta thc hin m phng cho 89C51 nn chn chng trnh ASEM51.
Trang 9
Phn Tools: chn ASEM51, phn Command Line: g vo %1. Bc 3: nh ngha file chng trnh cho 89C51. Chn menu Source > Add/Remove Source File
To file mi
Do cha c chng trnh cho 89C51, ta nhn vo nt New to file. Trong phn File name, ta g vo tn chng trnh (gi s g vo bai2).
Trang 10
Nu cha c file bai2.ASM, Proteus s xut hin thng bo yu cu to file, nhn Yes to:
Sao khi to file thnh cng, trn menu Source s xut hin thm file bai2.ASM.
Chn file bai2.ASM son tho chng trnh ngun, nhp vo END v nhn nt Save.
Nhn Save lu
Sau khi lu file ngun, ta thc hin dch chng trnh ngun.
Trang 11
Khi bin dch, nu c li, chng trnh dch s thng bo li, nu khng th s to ra file bai2.HEX.
Thc hin gn file thc thi cho 89C51 bng cch nhn chut phi ln 89C51 chn (89C51 s chuyn sang mu ) ri nhn chut tri m ca s thuc tnh ca 89C51.
Nhn vo nt Browse (hnh v trn) m chng trnh thc thi, chn chng trnh l bai2.HEX
Trang 12
Nhn nt Open m file, khi trong thuc tnh Program File ca 89C51 s c tn chng trnh l bai2.HEX.
Sau khi gn file thc thi cho 89C51, ta ch cn thc hin sa chng trnh ngun v bin dch li m khng cn gn li file thc thi. Cc lnh c bn Lnh MOV: di chuyn d liu MOV A,30h ; chuyn ni dung ca nh 30h vo thanh ghi A MOV A,#30h ; chuyn gi tr 30h vo thanh ghi A MOV A,R0 ; chuyn ni dung ca thanh ghi R0 vo thanh ghi A MOV A,@R0 ; chuyn ni dung ca nh vo thanh ghi A, a ch ca nh cha trong thanh ghi R0 (nu R0 = 30h th lnh ny tng ng lnh MOV A,30h) Lnh INC: tng gi tr ln 1 Lnh DEC: gim gi tr xung 1 Lnh SJMP: lnh nhy khng iu kin
Trang 13
VD:
Lnh DJNZ: gim v nhy khi gi tr khc 0. Lnh DJNZ thng dng to vng lp v c dng sau: MOV R7,#s_ln_lp
loop: DJNZ R7,loop Lnh CJNE: so snh v nhy nu khng bng CJNE A,#10,Khac ; on chng trnh x l khi ni dung thanh ghi A l 10 SJMP Tiep Khac: JC Lonhon ; on chng trnh x l khi ni dung thanh ghi A < 10 SJMP Tiep Lonhon: ; on chng trnh x l khi ni dung thanh ghi A > 10 Tiep: Lnh CALL: gi chng trnh con Lnh RET, RETI: lnh tr v t chng trnh con hay chng trnh phc v ngt Lnh DIV AB: chia ni dung thanh ghi A cho thanh ghi B, thng s cha trong A v s d cha trong B. Lnh MOVC: chuyn gi tr hng s vo thanh ghi A, thng dng cho mc ch tra bng MOV DPTR,#MaLed7 MOV A,#2 MOVC A,@A+DPTR Lnh PUSH: lu tr ni dung thanh ghi vo stack Lnh POP: ly ni dung t stack. V s mch nh hnh v: Cc linh kin cho nh sau: Keywords Category Sub-category Results Led Optoelectronics LEDs LED-RED Resistor Resistors Resistor packs RX8
Phm Hng Kim Khnh Trang 14
VD:
Resistor 8951
Resistors All
Hin th d liu ra Led Thc thi chng trnh sau v quan st trng thi ca Led: MOV P0,#0Fh ; Sng 4 Led phi END Xo in tr thanh RP1 ri thc thi chng trnh, quan st kt qu. Rt ra kt lun v tc dng ca in tr ko ln ngun RP1. Thay i chng trnh 4 Led bn phi sng, 2 Led gia sng, 2 Led ngoi cng sng.
- Thc thi chng trnh sau v quan st trng thi ca Led: Main: MOV P0,#0FFh CALL Delay MOV P0,#0 CALL Delay SJMP main Delay: PUSH 07h PUSH 06h MOV R6,#255 Delay1: MOV R7,#255 DJNZ R7,$
Phm Hng Kim Khnh Trang 15
DJNZ R6,Delay1 POP 06h POP 07h RET END Thay on in m bng on chng trnh sau v quan st trng thi cc Led: MOV P0,#01h CALL Delay MOV P0,#02h CALL Delay MOV P0,#04h CALL Delay MOV P0,#08h CALL Delay MOV P0,#10h CALL Delay MOV P0,#20h CALL Delay MOV P0,#40h CALL Delay MOV P0,#80h CALL Delay SJMP main Thay i chng trnh Led sng t trong ra ngoi. Thay th on in m bng on chng trnh sau v quan st trng thi cc Led: MOV R0,#0 MOV DPTR,#MaLed Lap: MOV A,R0 MOVC A,@A+DPTR MOV P0,A
Phm Hng Kim Khnh Trang 16
Main:
Main:
CALL Delay INC R0 CJNE R0,#9,Lap SJMP main MaLed: DB 00h,01h,03h,07h,0Fh,1Fh,3Fh,7Fh,0FFh - Thay i chng trnh Led sng tu . Kim tra cc lnh s hc Thc thi chng trnh sau v kim tra kt qu: MOV A,#19h ADD A,#72h MOV P0,A END Thc thi chng trnh sau v kim tra kt qu: MOV A,#57h MOV B,#10 DIV AB MOV P0,A MOV A,B MOV P1,A END
Trang 17
BI 3: IU KHIN LED 7 ON
MC CH
Gip sinh vin kho st cc vn sau: S dng phn mm Proteus m phng mch in. Tm hiu cc phng php hin th d liu trn Led 7 on dng 89C51. My vi tnh. Phn mm Proteus
THIT B S DNG
1. C s l thuyt
Cu trc v m hin th d liu trn Led 7 on Dng Led
a f g e d c dp b
D1 a
D2 b
D3 c
D4 d
D5 e
D6 f
D7 g
D8 dp
dp
i vi dng Led anode chung, chn COM phi c mc logic 1 v mun sng Led th tng ng cc chn a f, dp s mc logic 0. Bng m cho Led Anode chung (a l MSB, dp l LSB): S 0 1 2 3 4 5
Phm Hng Kim Khnh
a 0 1 0 0 1 0
b 0 0 0 0 0 1
c 0 0 1 0 0 0
d 0 1 0 0 1 0
e 0 1 0 1 1 1
f 0 1 1 1 0 0
6 7 8 9
0 0 0 0
1 0 0 0
0 0 0 0
0 1 0 0
0 1 0 1
0 1 0 0
0 1 0 0
1 1 1 1
Bng m cho Led Anode chung (a l LSB, dp l MSB): S dp g f e d c b a M hex 0 1 1 0 0 0 0 0 0 0C0h 1 1 1 1 1 1 0 0 1 0F9h 2 1 0 1 0 0 1 0 0 0A4h 3 1 0 1 1 0 0 0 0 0B0h 4 1 0 0 1 1 0 0 1 99h 5 1 0 0 1 0 0 1 0 92h 6 1 0 0 0 0 0 1 0 82h 7 1 1 1 1 1 0 0 0 0F8h 8 1 0 0 0 0 0 0 0 80h 9 1 0 0 1 0 0 0 0 90h Led Cathode chung
a
D1 a
b
D2 b
c
D3 c
d
D4 d
e
D5 e
g
D6 f
f
D7 g
dp
D8 dp
COM
i vi dng Led Cathode chung, chn COM phi c mc logic 0 v mun sng Led th tng ng cc chn a f, dp s mc logic 1. Bng m cho Led Cathode chung (a l MSB, dp l LSB): S 0 1 2 3 4 5 6 7 8 9 a 1 0 1 1 0 1 1 1 1 1 b 1 1 1 1 1 0 0 1 1 1 c 1 1 0 1 1 1 1 1 1 1 d 1 0 1 1 0 1 1 0 1 1 e 1 0 1 0 0 0 1 0 1 0 f 1 0 0 0 1 1 1 0 1 1 g dp M hex 0 0 0FCh 0 0 60h 1 0 0DAh 1 0 0F2h 1 0 66h 1 0 0B6h 1 0 0BEh 0 0 0E0h 1 0 0FEh 1 0 0F6h
Trang 19
Bng m cho Led Anode chung (a l LSB, dp l MSB): S dp g f e d c b a M hex 0 0 0 1 1 1 1 1 1 3Fh 1 0 0 0 0 0 1 1 0 06h 2 0 1 0 1 1 0 1 1 5Bh 3 0 1 0 0 1 1 1 1 4Fh 4 0 1 1 0 0 1 1 0 66h 5 0 1 1 0 1 1 0 1 6Dh 6 0 1 1 1 1 1 0 1 7Dh 7 0 0 0 0 0 1 1 1 07h 8 0 1 1 1 1 1 1 1 7Fh 9 0 1 1 0 1 1 1 1 6Fh Dng phng php qut Khi kt ni chung cc ng d liu ca Led 7 on (hnh v), ta khng th cho cc Led ny sng ng thi (do nh hng ln nhau gia cc Led) m phi thc hin phng php qut, ngha l ti mi thi im ch sng mt Led v tt cc Led cn li. Do hin tng lu nh ca mt, ta s thy cc Led sng ng thi.
Trang 20
Dng phng php cht Khi thc hin tch ring cc ng d liu ca Led, ta c th cho php cc Led sng ng thi m s khng c hin tng nh hng gia cc Led. IC cht cho php lu tr d liu cho cc Led c th s dng l 74LS373, 74LS374.
Thc hin on chng trnh sau hin th s 26 ra 2 Led 7 on: P2,#82h P1.0 Delay P1.0 P2,#0A4H P1.1 Delay P1.1
Trang 21
; M ca s 6 ; Hin s
; M ca s 2
Sa on chng trnh trn hin th s 15, 37 ra 2 Led 7 on. B cc lnh SETB v nhn xt tc dng ca cc lnh ny.
Dng phng php cht S dng mch nh hnh v phn trn vi cc linh kin: Keywords 7seg 8951 374 Resistor Category All All 74 TTL Series Resistors Sub-category All All All Resistor Packs Results Value 7SEG-COM-ANODE AT89C51 74LS374 RX8 220
Thc hin on chng trnh sau hin th s 08 ra 2 Led 7 on: MOV CLR SETB MOV CLR SETB P2,#80h P1.0 P1.0 P2,#0C0H P1.1 P1.1 ; M ca s 0 ; M ca s 8
END Thc hin on chng trnh trn hin th s tng dn t 00 n 99 ra 2 Led 7 on. MOV lap: MOV MOV DIV MOV
Phm Hng Kim Khnh
main: 30H,#0 A,30H B,#10 AB ; A cha s hng chc, B, cha s ; hng n v ; nh 30h cha gi tr xut ra Led
DPTR,#Maled7
Trang 22
MOVC MOV CLR SETB MOV MOVC MOV CLR SETB CALL INC MOV CJNE SJMP Maled7: DB Delay: PUSH PUSH MOV Delay1: MOV DJNZ DJNZ POP POP RET END -
A,@A+DPTR P2,A P1.1 P1.1 A,B A,@A+DPTR P2,A P1.0 P1.0 Delay 30H A,30H A,#100,lap main
; Xut s hng n v
Sa on chng trnh trn gi tr xut ra 2 Led 7 on tng dn t 00 - 59. Sa on chng trnh trn gi tr xut ra 2 Led 7 on tng dn t 00 - 23.
Trang 23
Sa on chng trnh trn gi tr xut ra 2 Led 7 on gim dn t 99 - 00. Sa on chng trnh trn gi tr xut ra 2 Led 7 on gim dn t 59 - 00. Sa on chng trnh trn gi tr xut ra 2 Led 7 on gim dn t 23 - 00.
Trang 24
BI 4: CNG TC NHN
MC CH
Gip sinh vin kho st cc vn sau: S dng phn mm Proteus m phng mch in. Tm hiu cch thc kim tra cng tc c nhn hay khng v cc ng dng ca chng dng trong 89C51. My vi tnh. Phn mm Proteus
THIT B S DNG
1. C s l thuyt
Cng tc n Cc phm n dng iu khin khi h thng khng i hi nhiu gi tr nhp (chng nh ch cn cc iu khin ng m thit b). Khi thc hin kim tra phm nhn, vn cn thit l phi thc hin chng di. Qu trnh chng di c th thc hin bng phn mm: Do thi gian di ca phm vo khong 20ms nn qu trnh chng di bng phn mm n gin l to mt thi gian tr ln chng trnh b qua nh hng khi di. Khi thc hin giao tip gia cng tc n v vi iu khin MCS-51 th cn lu phi set bit tng ng ca vi iu khin ln mc logic 1 mi c th c d liu vo. Phn cng giao tip c th m t nh hnh v, tuy nhin i vi h MCS-51, cc port c in tr ko ln ngun (tr port 0) nn i vi s hnh a v c c th khng cn in tr R.
VCC R SW To uP SW To uP To uP R VCC VCC R SW
Bn phm Hex khi khng nhn phm th hng ca bn phm Hex ni vi Vcc thng qua in tr R nn c mc logic 1. phn bit c trng thi ca phm nhn th mc logic khi nhn phm phi l mc logic 0. M khi nhn mt phm no th tng ng hng v ct ca bn phm Hex s kt ni vi nhau. Do , thc hin kim tra mt phm th ta phi cho trc ct cha phm tng ng mc logic 0, sau kim tra hng ca phm, nu hng = 0 th c nhn phm cn hng = 1 th khng nhn phm.
Phm Hng Kim Khnh Trang 25
V d nh mun kim tra phm 4 th ta cho ct cha phm 4 mc logic 0 (chn 5 ca J1, cc ct khc = 1, ngha l d liu ti J1 l 1000xxxxb), sau thc hin kim tra chn 2 ca J1 (hng ca phm 4), nu chn ny = 0 th phm 4 c nhn.
VCC
R 0 1 2 3
8 CON8 1 2 3 4 5 6 7 8 J1
Category All All 74 TTL Series Switches & Relays Resistors 30H,#0 Hienthi P3.0,Sw1 P3.1,Sw2 Main
MOV CJNE MOV SJMP ;------------Sw2: DEC MOV CJNE MOV SJMP ;------------Hienthi: MOV MOV DIV MOV MOVC MOV CLR SETB MOV MOV MOVC MOV CLR SETB CALL SJMP ;-------------Delay: PUSH PUSH MOV
A,30H B,#10 AB DPTR,#Maled7 A,@A+DPTR P2,A P1.1 P1.1 A,B DPTR,#Maled7 A,@A+DPTR P2,A P1.0 P1.0 Delay Main
Maled7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
07 06 R6,#100
Trang 27
Delay1: MOV DJNZ DJNZ POP POP RET END Nhn vo cc cng tc v quan st trng thi cc Led. R7,#255 R7,$ R6,Delay1 06 07
B lnh CALL Delay trong chng trnh trn v quan st trng thi cc Led, c nhn xt g so vi khi c thi gian Delay.
Bn phm Hex S dng mch nh hnh v trang bn vi cc linh kin: Keywords 7seg 8951 374 Resistor Keypad Main: MOV JNB P3,#0FEH P3.4,Sw7
Trang 28
Value
220
JNB JNB JNB MOV JNB JNB JNB JNB MOV JNB JNB JNB JNB MOV JNB JNB JNB JNB SJMP Main ;------------SW0: MOV 30H,#0 SJMP Hienthi ;------------SW1: MOV 30H,#1 SJMP Hienthi ;------------SW2: MOV 30H,#2 SJMP Hienthi ;------------SW3: MOV 30H,#3 SJMP Hienthi ;------------SW4:
P3.5,Sw8 P3.6,Sw9 P3.7,Swchia P3,#0FDH P3.4,Sw4 P3.5,Sw5 P3.6,Sw6 P3.7,Swnhan P3,#0FBH P3.4,Sw1 P3.5,Sw2 P3.6,Sw3 P3.7,Swtru P3,#0F7H P3.4,Swon P3.5,Sw0 P3.6,Swbang P3.7,Swcong ; Chn ct cha cc phm ON/C,0,=,+ ; Chn ct cha cc phm 1,2,3,; Chn ct cha cc phm 4,5,6,X
Trang 29
MOV 30H,#4 SJMP Hienthi ;------------SW5: MOV 30H,#5 SJMP Hienthi ;------------SW6: MOV 30H,#6 SJMP Hienthi ;------------SW7: MOV 30H,#7 SJMP Hienthi ;------------SW8: MOV 30H,#8 SJMP Hienthi ;------------SW9: MOV 30H,#9 SJMP Hienthi ;------------Swon: MOV 30H,#10 SJMP Hienthi ;------------Swbang: MOV 30H,#11 SJMP Hienthi ;------------Swcong: MOV 30H,#12 SJMP Hienthi ;------------Swtru: MOV 30H,#13
Phm Hng Kim Khnh Trang 30
SJMP Hienthi ;------------Swnhan: MOV 30H,#14 SJMP Hienthi ;------------Swchia: MOV 30H,#15 SJMP Hienthi ;------------Hienthi:
MOV MOV DIV MOV MOVC MOV CLR SETB MOV MOV MOVC MOV CLR SETB CALL LJMP ;-------------Delay: PUSH PUSH MOV Delay1: MOV
A,30H B,#10 AB DPTR,#MALED7 A,@A+DPTR P2,A P1.1 P1.1 A,B DPTR,#MALED7 A,@A+DPTR P2,A P1.0 P1.0 Delay Main
Maled7: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
07 06 R6,#100 R7,#255
Trang 31
R7,$ R6,Delay1 06 07
Sa chng trnh : Nhn phm +: thc hin cng ni dung nh 30h vi 20 v xut ra 2 Led 7 on. Nhn phm -: thc hin tr ni dung nh 30h vi 1 v xut ra 2 Led 7 on. Nhn phm x: thc hin nhn ni dung nh 30h vi 3 v xut ra 2 Led 7 on. Nhn phm : thc hin chia ni dung nh 30h vi 2 v xut kt qu ra 2 Led 7 on. Nhn phm ON/C: thc hin xo ni dung nh 30h (gn bng 0) v xut ra 2 Led 7 on.
Trang 32
BI 5: TIMER
MC CH
Gip sinh vin kho st cc vn sau: S dng phn mm Proteus m phng mch in. Tm hiu cch s dng Timer trong 89C51. My vi tnh. Phn mm Proteus
THIT B S DNG
1. C s l thuyt
Vi iu khin 89C51 c hai thanh ghi timer/counter 16 bit. Cc thanh ghi ny c th hot ng mt trong hai trng thi timer hoc counter. Mi thanh ghi gm 2 thanh ghi 8 bit ghp li:
PULSE INPUT THx : 8 BIT TLx : 8 BIT
Thanh ghi TCON (timer control): L thanh ghi 8 bit, c th truy xut byte hoc bit dng iu khin hot ng ca Timer.
7 TF1 6 5 4 TR0 3 IE1 2 1 0 IT0
TR1 TF0
IT1 IE0
TF1: bo trng thi trn cho b Timer/Counter1 TR1: iu khin cp xung cho b Timer/Counter1 TF0: bo trng thi trn cho b Timer/Counter0 TR0: iu khin cp xung cho b Timer/Counter0 IE1, IT1, IE0, IT0: s dng cho ngt ngoi 1 v ngt ngoi 0 (khng dng cho Timer). Thanh ghi TMOD (timer mode): L thanh ghi 8 bit, ch c th truy xut byte dng xc nh ch hot ng ca Timer.
7 GATE 6 5 4 M0 3 GATE 2 C/T 1 M1 0 M0
C/T M1
GATE, C/ T : iu khin trng thi hot ng cho Timer/ M1, M0: chn ch hot ng cho Timer/Counter M1 M0 CH 0 0 0 0 1 1 1 0 2 1 1 3 a/ Ch 0:
PULSE INPUT THx : 8 BIT TLx : 5 BIT TFx
M T Timer/Counter 13 bit Timer/Counter 16 bit Timer/Counter 8 bit, auto reload Timer/Counter 8 bit
Thanh ghi THx v TLx kt hp to thnh b Timer/Counter 13 bit, khi trn 13 bit th c TFx s t ln logic 1.
Trang 34
b/ Ch 1 (16 bit):
PULSE INPUT THx : 8 BIT TLx : 8 BIT TFx
c/ Ch 2 (8 bit Auto-Reload):
PULSE INPUT TLx : 8 BIT TFx
OVERFLOW
THx : 8 BIT
TLx c np gi tr ban u t THx v bt u m t gi tr ny khi c xung ng vo, khi trn th TFx s t ln logic 1 ng thi kch hot b kha np gi tr trong THx vo TLx. d/ Ch 4:
PULSE INPUT TL0 : 8 BIT TF0
OSC:12
TH0 : 8 BIT
TF1
TR1
Trong ch ny, TH1 v TL1 khng c s dng thay vo l TH0 v TL0 hot ng nh 2 b Timer 8 bit (TL0) v Timer/Counter 8 bit (TL0). Tuy nhin, tn hiu m xung cho TH0 khng phi l TR0 m l TR1.
- Thc hin chng trnh sau (to mt mch ng h m pht, giy): MOV MOV MOV Lap: MOV MOV DIV MOV MOVC MOV CLR SETB MOV MOVC MOV A,30H B,#10 AB DPTR,#Maled7 A,@A+DPTR P2,A P1.1 P1.1 A,B A,@A+DPTR P2,A
Trang 36
CLR SETB MOV MOV DIV MOV MOVC MOV CLR SETB MOV MOVC MOV CLR SETB CALL INC MOV CJNE MOV INC MOV CJNE MOV SJMP Delay: PUSH MOV SETB MOV MOV
P1.0 P1.0 A,31H B,#10 AB DPTR,#Maled7 A,@A+DPTR P2,A P1.3 P1.3 A,B A,@A+DPTR P2,A P1.2 P1.2 Delay 31H A,31H A,#60,Lap 31H,#0 30H A,30H A,#60,Lap 30H,#0 Lap ; 60 pht th ; pht = 0 ; 60s (1 pht) th ; giy = 0 ; v tng pht ln 1
JNB CLR DJNZ CLR POP RET END CALL INC MOV CJNE MOV INC MOV CJNE MOV SJMP PUSH SETB MOV MOV JNB CLR CLR POP RET END
Sa chng trnh thc hin m giy v %giy. Delay 31H A,31H A,#100,Lap ; 100% s (1 s) th 31H,#0 30H A,30H A,#60,Lap 30H,#0 Lap 07 TR0 TH0,#HIGH(-10000) TL0,#LOW(-10000) TF0,$ TF0 TR0 07 ; 60 s th ; giy = 0 ; %giy = 0 ; v tng giy ln 1
Delay: ; To tr 10ms
Trang 38
BI 6: INTERRUPT (NGT)
MC CH
Gip sinh vin kho st cc vn sau: S dng phn mm Proteus m phng mch in. Tm hiu cch s dng ngt trong 89C51. My vi tnh. Phn mm Proteus
THIT B S DNG
1. C s l thuyt
Thanh ghi IE (Interrupt Enable Register) Thanh ghi IE dng cho php hay cm cc ngt hot ng. Mc nh khi khi ng chng trnh th tt c cc ngt u b cm. Chc nng cc bit trong thanh ghi IE cho trong bng sau:
D7 D6 D5 D4 D3 EA -
D2
D1
D0
EA ES ET1
= 0: cm tt c cc ngt = 1: cho php ngt tu theo trng thi cc bit iu khin tng ng = 0: cm ngt ti port ni tip = 1: cho php ngt ti port ni tip = 0: cm ngt ti Timer 1 = 1: cho php ngt ti Timer 1
EX1 = 0: cm ngt ti ngt ngoi 1 ( INT1 : chn P3.3) = 1: cho php ngt ti ngt ngoi 1 ET0 = 0: cm ngt ti Timer 0 = 1: cho php ngt ti Timer 0 EX0 = 0: cm ngt ti ngt ngoi 1 ( INT0 : chn P3.2) = 1: cho php ngt ti ngt ngoi 1 cho php ngt ti Timer 0, ta phi c: EA = 1 v ET0 = 1. Ni dung ca thanh ghi IE khi l:
Trang 39
D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 0 1 0 = 82h
Chng trnh c th thc hin nh sau: SETB EA SETB ET0 Hay c th vit: MOV IE,#82h Danh sch cc ngt trong 89C51 - Ngt ngoi 0: a ch vector ngt Khai bo s dng ngt S kin ngt: 0003H - SETB EA - SETB EX0 - SETB IT0 (ngt cnh) Xut hin cnh xung (hoc mc thp) ti chn INT0
- Ngt timer0: a ch vector ngt Khai bo s dng ngt S kin ngt - SETB - SETB Trn timer 0 000BH EA ET0
- Ngt ngoi 1: a ch vector ngt Khai bo s dng ngt S kin ngt: 00013H - SETB EA - SETB EX1 - SETB IT1 (ngt cnh) Xut hin cnh xung (hoc mc thp) ti chn INT1
- Ngt timer1: a ch vector ngt Khai bo s dng ngt S kin ngt - SETB - SETB Trn timer 1 0001BH EA ET1
Trang 40
- Ngt truyn thng (truyn/nhn UART): a ch vector ngt Khai bo s dng ngt S kin ngt Tc truyn nhn MODE autoreload (timer1) 00023H - SETB EA - SETB ES Nhn c mt byte hoc truyn xong mt byte trong SBUF - TH1 = -3 ; 9600bps - TH1 = -6 ; 4800bps - TH1 = -12 ; 2400bps - TH1 = -24 ; 1200bps
S kin ngt
Cu trc chng trnh s dng ngt Chng trnh s dng ngt bao gm 2 phn: phn chng trnh chnh v phn x l ngt. Mt on chng trnh v d s dng ngt ngoi 0 nh sau: ORG LJMP ORG LJMP Main: ; khai bo s dng ngt SETB EA SETB EX0 ; C th thay 2 lnh ny bng lnh MOV IE,#81h ; chng trnh chnh Int0_isr: ; chng trnh phc v ngt RETI END 0 main 0003h int0_isr ; a ch bt u chng trnh ; a ch chng trnh phc v ngt cho INT0
Trang 41
VSM Oscilloscope VSM Oscilloscope l thit b cho php hin th dng tn hiu tng t, bao gm 2 knh A v B. VSM c kh nng o 2 tn hiu ng thi. V tr ca Oscilloscope trong ca s thit k nh sau:
Chn ch hin th cho knh 1: - DC: hin th AC v DC - GND: chnh mc GND - AC: ch hin th AC
Phm Hng Kim Khnh
Trang 42
Thc hin chng trnh dng ngt Timer 0 to xung vung tn s f = 5 KHz ti P2.0 nh sau: ORG 0000h LJMP main ORG 000Bh LJMP timer0_isr
main: MOV IE,#82h MOV TMOD,#02h MOV TH0,#(-100) ; f = 5KHz MOV TL0,#(-100) ; tr l 100 s SETB TR0 Here: SJMP here ;----------Timer0_isr: CPL P2.0
Phm Hng Kim Khnh Trang 43
thi gian
gi tr m ca Timer l 100
RETI END Thc hin chng trnh dng ngt Timer 0 v Timer 1 ng thi to xung vung tn s f = 5 KHz ti P2.0 v f = 500Hz ti P2.1 nh sau: ORG 0000h LJMP main ORG 000Bh LJMP Timer0_isr ORG 001Bh LJMP Timer1_isr main: SETB EA SETB ET0 SETB ET1 MOV TMOD,#12h MOV TH0,#(-100) MOV TL0,#(-100) SETB TR0 MOV TH1,#HIGH(-1000) MOV TL1,#LOW(-1000) SETB TR1 here: SJMP here ;----------Timer0_isr: CPL P2.0 RETI ;----------Timer1_isr: MOV TH1,#HIGH(-1000) MOV TL1,#LOW(-1000) CPL P2.1 RETI ;----------END
Phm Hng Kim Khnh Trang 44
Vit chng trnh dng ngt Timer 0 v Timer 1 ng thi to xung vung tn s f = 20 KHz ti P2.3 v f = 100Hz ti P2.4. Chn menu System > Set Sheet Sizes
Mch ng h -
S dng mch nh hnh v (cc IC cht s dng l 74LS374). Cc linh kin cho nh sau: Keywords 7seg 8951 374 Switch Category All All 74 TTL Series Switches & Relays Sub-category All All All Switches Results 7SEG-COM-ANODE AT89C51 74LS374 SW-SPDT
Trang 45
Chng trnh ng h: ORG 0 LJMP main ORG 0Bh LJMP Timer0_ISR main: SETB EA SETB ET0 MOV TMOD,#01h MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) MOV R7,#20 SETB TR0 MOV 30h,#0 MOV 31h,#0 MOV 32h,#0 CALL display here: SJMP here
Phm Hng Kim Khnh Trang 46
;---------Timer0_ISR: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) DJNZ R7,exittimer0 MOV R7,#20 CALL IncTime CALL display exittimer0: RETI ;--------IncTime: INC 32h MOV A,32h CJNE A,#60,ExitIncTime ; Nu Giy = 60 MOV 32h,#0 INC 31h MOV A,31h CJNE A,#60,ExitIncTime ; Nu Pht = 60 MOV 31h,#0 INC 30h MOV A,30h CJNE A,#24,ExitIncTime ; Nu gi = 24 MOV 30h,#0 ExitIncTime: RET ;--------display: MOV A,30h MOV B,#10 DIV AB MOV DPTR,#MaLed7 MOVC A,@A+DPTR MOV P2,A CLR P1.0
Phm Hng Kim Khnh Trang 47
; Tng giy
; th Pht = 0 ; v tng gi
; th Gi = 0
; Hin th 2 Led ch gi
SETB P1.0 MOV A,B MOVC A,@A+DPTR MOV P2,A CLR P1.1 SETB P1.1 MOV A,31h MOV B,#10 DIV AB MOV DPTR,#MaLed7 MOVC A,@A+DPTR MOV P2,A CLR P1.2 SETB P1.2 MOV A,B MOVC A,@A+DPTR MOV P2,A CLR P1.3 SETB P1.3 MOV A,32h MOV B,#10 DIV AB MOV DPTR,#MaLed7 MOVC A,@A+DPTR MOV P2,A CLR P1.4 SETB P1.4 MOV A,B MOVC A,@A+DPTR MOV P2,A CLR P1.5 SETB P1.5 RET ;--------MaLed7: DB 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h
Phm Hng Kim Khnh Trang 48
END Sa chng trnh trn cho php m gi th thao: 2 Led ch pht, 2 Led ch giy v 2 Led ch %giy. S dng mch nh hnh v:
Ngt ngoi
Cc linh kin cho nh sau: Keywords 7seg 8951 374 Switch Category All All 74 TTL Series Switches & Relays Sub-category All All All Switches Results 7SEG-COM-ANODE AT89C51 74LS374 SW-SPDT
Vit chng trnh m s dng ngt ngoi 0 nh sau (mi ln c ngt xy ra th tng ni dung nh 30h ln 1 v xut ra Led 7 on): ORG 0 LJMP main ORG 03h LJMP Int0_ISR main: SETB EA SETB EX0 MOV 30h,#0 CALL display
Trang 49
here: SJMP here ;---------Int0_ISR: INC 30h MOV A,30h CJNE A,#100,next MOV 30h,#0 next: CALL display RETI ;--------display: MOV A,30h MOV B,#10 DIV AB MOV DPTR,#MaLed7 MOVC A,@A+DPTR MOV P2,A CLR P1.0 SETB P1.0 MOV A,B MOVC A,@A+DPTR MOV P2,A CLR P1.1 SETB P1.1 RET ;--------MaLed7: DB 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h END Thm vo lnh cho php ngt bng cnh nh sau (ti on in m): SETB EA SETB EX0 SETB IT0
Phm Hng Kim Khnh Trang 50
So snh trng hp s dng ngt bng cnh v bng mc logic. Sa chng trnh trn cho php m t 10 50. Cc linh kin cho nh sau:
Kt hp ngt ngoi v ngt Timer. Keywords 7seg 8951 374 Switch Switch Subcategory All All All All 74 TTL Series All Switches & Switches Relays Switches & Switches Relays Category Results 7SEG-COM-ANODE AT89C51 74LS374 BUTTON BUTTON Componet Reference
INC DEC
Chng trnh m giy v iu chnh gi tr hin th bng 2 cng tc (nhn INC th tng gi tr hin th v nhn DEC th gim gi tr hin th) nh sau: ORG 0 LJMP main ORG 03h LJMP Int0_ISR ORG 0Bh LJMP Timer0_ISR ORG 13h LJMP Int1_ISR
Phm Hng Kim Khnh Trang 51
main: SETB EA SETB EX0 SETB EX1 SETB ET0 SETB IT0 SETB IT1 MOV TMOD,#01h MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) MOV R7,#20 SETB TR0 MOV 30h,#0 CALL display here: SJMP here ;---------Int0_ISR: INC 30h MOV A,30h CJNE A,#100,next MOV 30h,#0 next: CALL display RETI ;---------Int1_ISR: DEC 30h MOV A,30h CJNE A,#255,next1 MOV 30h,#99 next1: CALL display RETI ;--------Phm Hng Kim Khnh Trang 52
Timer0_ISR: MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) DJNZ R7,exittimer0 MOV R7,#20 INC 30h MOV A,30h CJNE A,#100,next2 MOV 30h,#0 next2: CALL display exittimer0: RETI ;--------display: MOV A,30h MOV B,#10 DIV AB MOV DPTR,#MaLed7 MOVC A,@A+DPTR MOV P2,A CLR P1.0 SETB P1.0 MOV A,B MOVC A,@A+DPTR MOV P2,A CLR P1.1 SETB P1.1 RET ;--------MaLed7: DB 0C0h,0F9h,0A4h,0B0h,99h,92h,82h,0F8h,80h,90h END Sa chng trnh khi nhn INC th tng 2 n v v nhn DEC th gim 10 n v.
Trang 53
Gip sinh vin kho st cc vn sau: S dng phn mm Proteus m phng mch in. Kho st phng php hin th trn ma trn Led, iu khin ng c, ng ngt Relay. My vi tnh. Phn mm Proteus
THIT B S DNG
1. C s l thuyt
Ma trn Led Ma trn LED bao gm nhiu LED cng nm trong mt v chia thnh nhiu ct v hng, mi giao im gia hng v ct c th c 1 LED (ma trn LED mt mu) hay nhiu LED (2 LED ti mt v tr to thnh ma trn LED 3 mu). LED ti mt v tr no sng th phi cp hiu in th dng gia Anode v Cathode. Trn c s cu trc nh vy, ta c th m rng hng v ct ca ma trn LED to thnh cc bng quang bo.
Kt ni ca ma trn Led c 2 cch: anode ni vi hng, cathode ni vi ct hay ngc li. S kt ni m t nh hnh v trang bn. Theo cu trc kt ni nh hnh v, 2 Led trn 2 ct khng th sng ng thi. Xt s kt ni nh mch hnh b, mt Led sng khi tng ng hng ca Led = 0 v ct = 1. Gi s ta cn sng Led ng thi ti hng 1, ct 1 v hng 2, ct 2. Nh vy, ta phi c hng 1 = 0, ct 1 = 1 (sng Led ti hng 1, ct 1) v hng 2 = 0, ct 2 = 1 (sng Led ti hng 2, ct 2). T , do hng 1 = 0, ct 2 = 1 v hng 2 = 0, ct 2 = 1 nn ta cng c cc Led ti hng 1, ct 2 v hng 2, ct 1 cng sng.
Trang 54
Ngha l, khi ta cho 2 Led ti hng 1, ct 1 v hng 2, ct 2 sng ng thi th s dn n cc Led ti hng 1, ct 2 v hng 2, ct 1 cng sng. Do , thc hin sng mt k t trn ma trn Led, ta phi dng c ch qut, ti mi thi im ch sng 1 ct, cc ct cn li tt i nhng nu cho thi gian qut nhanh th ta vn thy ging nh cc ct sng ng thi.
Hnh a
Hnh b
Trang 55
D liu cho s 0: X X X X X X X X X X X X X X X X
sng s 0 trn ma trn Led, ta thc hin qu trnh qut nh sau: Ln 1: Hng = 0100 0001b, ct = 0001 0000b Ln 2: Hng = 0011 1110b, ct = 0000 1000b Ln 3: Hng = 0011 1110b, ct = 0000 0100b Ln 4: Hng = 0011 1110b, ct = 0000 0010b Ln 5: Hng = 0100 0001b, ct = 0000 0001b iu khin Relay Relay hot ng nh mt cng tc in t bao gm mt chn thng ng (NC Normally Closed: chn 5) v mt chn thng m (NO - Normal Open: chn 4). Khi c dng in i qua cun dy (1-2) ca Relay, v tr ca cng tc s thay i t NC sang NO. Nh vy, khi khng c dng in qua cun dy th chn 3 ni vi chn 5 v khi c dng in th chn 3 ni vi chn 4. Dng ca Relay v s mch cho nh hnh v.
5 3 4 1 2
iu khin ng c bc ng c bc l ng c cho php dch chuyn mi ln mt bc hay na bc tu theo xung iu khin. Gc quay ca mi bc tu theo loi ng c, thng l 1.80/bc.
Trang 56
STEPPER MOTOR
R1 Q1
D1 1 2 3
MG1
R2 Q2 D2
MOTOR STEPPER
R3 Q3 D3
R4 Q4 D4
Trang 57
1 1 1 1 0 0 0 0 0 1
Cc linh kin cho nh sau: Keywords Matrix 8951 Npn Resistor Resistor Category Optoelectronics All Transistors Resistors Resistors Sub-category All All Generic Generic Resistor Packs Results Value MATRIX-5X7-RED AT89C51 Npn RES Rx8 220
Trang 58
Chng trnh hin th s 0 trn ma trn Led: main: MOV R0,#0 lap: MOV A,R0 MOV DPTR,#cot MOVC A,@A+DPTR MOV P2,A MOV A,R0 MOV DPTR,#hang MOVC A,@A+DPTR MOV P3,A CALL delay INC R0 CJNE R0,#5,lap SJMP main ;----------delay: MOV TMOD,#01h MOV TL0,#LOW(-500) MOV TH0,#HIGH(-500) SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 RET cot: DB 01h,02h,04h,08h,10h hang: DB 41h,3Eh,3Eh,3Eh,41h END main2: MOV R2,#0 main1:
Phm Hng Kim Khnh Trang 59
Vit chng trnh hin th du ? trn ma trn Led. Vit chng trnh hin th s 1 trn ma trn Led.
MOV R1,#20 main: MOV R0,#0 lap: MOV A,R0 MOV DPTR,#cot MOVC A,@A+DPTR MOV P2,A MOV A,R0 ADD A,R2 MOV DPTR,#hang MOVC A,@A+DPTR MOV P3,A CALL delay INC R0 CJNE R0,#5,lap DJNZ R1,main INC R2 CJNE R2,#37,main1 SJMP main2 ;----------delay: MOV TMOD,#01h MOV TL0,#LOW(-500) MOV TH0,#HIGH(-500) SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 RET cot: DB 01h,02h,04h,08h,10h hang: DB 41h,3Eh,3Eh,3Eh,5Dh,7Fh ;C DB 00h,3Eh,3Eh,3Eh,41h,7Fh ;D DB 00h,77h,6Bh,5Dh,3Eh,7fh ;K DB 7Eh,7Eh,00h,7Eh,7Eh,7Fh ;T
Phm Hng Kim Khnh Trang 60
DB 41h,3Eh,3Eh,3Eh,5Dh,7Fh ;C DB 00h,7Dh,7Bh,77h,00h,7Fh ;N DB 7Fh,7Fh,7Fh,7Fh,7Fh END - Vit chng trnh chui TRUONG CAO DANG KINH TE CONG NGHE chy trn ma trn Led. iu khin Relay Thc hin mch nh hnh v sau:
Cc linh kin cho nh sau: Keywords Category Relay 8951 Button motor Source main: JB P2.1,$ CALL DELAY CPL P2.0 SJMP main
Phm Hng Kim Khnh Trang 61
Switches & Relays All Switches & Relays Electromechanical Simulator Primitives
Value 5V
Voltage=5V
delay: MOV R7,#255 delay1: MOV R6,#255 DJNZ R6,$ DJNZ R7,delay1 RET END - Thm vo mt nt nhn ti P2.2, vit chng trnh iu khin khi nhn SW1 th ng Relay, nhn SW2 th ngt Relay. iu khin ng c Thc hin mch nh hnh v sau:
Cc linh kin cho nh sau: Keywords Category Resistor 8951 Tip122 Step Resistors All Transistors Electromechanical Subcategory Generic All All All Results Value
Chng trnh iu khin ng c quay thun lin tc, mi ln mt bc nh sau: main: MOV R2,#4 MOV R0,#0
Phm Hng Kim Khnh Trang 62
MOV DPTR,#thuan1buoc begin: MOV A,R0 MOVC A,@A+DPTR MOV P2,A CALL Delay INC R0 DJNZ R2, begin SJMP main delay: MOV TMOD,#01h MOV TH0,#HIGH(-50000) MOV TL0,#LOW(-50000) SETB TR0 JNB TF0,$ CLR TF0 CLR TR0 RET thuan1buoc: DB 08h,04h,02h,01h END - Vit chng trnh iu khin quay ngc ng c lin tc, mi ln mt bc. - Vit chng trnh iu khin quay thun ng c lin tc, mi ln na bc. - Vit chng trnh iu khin quay ngc ng c lin tc, mi ln na bc.
Trang 63