Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

Ti liu thc hnh Vi iu khin

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.

THIT B S DNG

My vi tnh.
Phn mm Proteus

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 -

EA

D2

D1

D0

ES ET1 EX1 ET0 EX0

= 0: cm tt c cc ngt
= 1: cho php ngt tu theo trng thi cc bit iu khin tng ng

ES

= 0: cm ngt ti port ni tip


= 1: cho php ngt ti port ni tip

ET1

= 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:

Phm Hng Kim Khnh

Trang 39

Ti liu thc hnh Vi iu khin

D7 D6 D5 D4 D3 D2 D1 D0
1

= 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

Phm Hng Kim Khnh

- SETB
- SETB
Trn timer 1

0001BH
EA
ET1

Trang 40

Ti liu thc hnh Vi iu khin

- 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 CHNG TRNH KHI C S DNG NGT:


KHAI BO NGT

S kin ngt

Vector ngt:
.
.
RETI

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

0
main
0003h
int0_isr

; a ch bt u chng trnh
; a ch chng trnh phc v ngt cho INT0

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

Phm Hng Kim Khnh

Trang 41

Ti liu thc hnh Vi iu khin

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:

Hnh nh ca Oscilloscope khi thit k v thc thi chng trnh nh sau:

Mn hnh hin th
dng sng tn hiu

Chn hin th knh


1 hay knh 2

Chn hin th ng
thi 2 knh hay v
knh 2 theo knh 1

ng b tn hiu
(cho php dng tn
hiu)

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

Chnh h
s trc tung
Y ca knh
2 (bin )

Chnh h s trc
honh X (thi
gian)

Trang 42

Ti liu thc hnh Vi iu khin

2. Tin trnh thc hin


Ngt Timer
To xung vung
S dng mch nh hnh v:

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 T = 1/f = 0.2ms = 200 s thi gian
MOV TL0,#(-100) ; tr l 100 s gi tr m ca Timer l 100
SETB TR0
Here:
SJMP here
;----------Timer0_isr:
CPL P2.0
Phm Hng Kim Khnh

Trang 43

Ti liu thc hnh Vi iu khin

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

Ti liu thc hnh Vi iu khin

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.

Mch ng h
-

Chn menu System > Set Sheet Sizes

Chn kch thc Sheet l A3:

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

Phm Hng Kim Khnh

Sub-category
All
All
All
Switches

Results
7SEG-COM-ANODE
AT89C51
74LS374
SW-SPDT

Trang 45

Ti liu thc hnh Vi iu khin

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)

; m 50000 chu k = 50 ms

MOV TL0,#LOW(-50000)
MOV R7,#20

; 20 x 50ms = 1000ms = 1s

SETB TR0
MOV 30h,#0

; Gi

MOV 31h,#0

; Pht

MOV 32h,#0

; Giy

CALL display
here:
SJMP here
Phm Hng Kim Khnh

Trang 46

Ti liu thc hnh Vi iu khin

;---------Timer0_ISR:
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
DJNZ R7,exittimer0
MOV R7,#20
CALL IncTime

; C mi 1s th tng thi gian

CALL display

; v hin th ra Led

exittimer0:
RETI
;--------IncTime:
INC 32h

; Tng giy

MOV A,32h
CJNE A,#60,ExitIncTime ; Nu Giy = 60
MOV 32h,#0

; th Giy = 0

INC 31h

; v tng pht

MOV A,31h
CJNE A,#60,ExitIncTime ; Nu Pht = 60
MOV 31h,#0

; th Pht = 0

INC 30h

; v tng gi

MOV A,30h
CJNE A,#24,ExitIncTime ; Nu gi = 24
MOV 30h,#0

; th Gi = 0

ExitIncTime:
RET
;--------display:
MOV A,30h

; Hin th 2 Led ch gi

MOV B,#10
DIV AB
MOV DPTR,#MaLed7
MOVC A,@A+DPTR
MOV P2,A
CLR P1.0
Phm Hng Kim Khnh

Trang 47

Ti liu thc hnh Vi iu khin

SETB P1.0
MOV A,B
MOVC A,@A+DPTR
MOV P2,A
CLR P1.1
SETB P1.1
MOV A,31h

; Hin th 2 Led ch pht

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

; Hin th 2 Led ch giy

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

Ti liu thc hnh Vi iu khin

END
-

Sa chng trnh trn cho php m gi th thao: 2 Led ch pht, 2


Led ch giy v 2 Led ch %giy.

Ngt ngoi
S dng mch nh hnh v:

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

Phm Hng Kim Khnh

Trang 49

Ti liu thc hnh Vi iu khin

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

Ti liu thc hnh Vi iu khin

So snh trng hp s dng ngt bng cnh v bng mc logic.

Sa chng trnh trn cho php m t 10 50.

Kt hp ngt ngoi v ngt Timer.


Cc linh kin cho nh sau:
Keywords
7seg
8951
374
Switch
Switch

Category

Subcategory
All
All
All
All
74 TTL Series All
Switches
& Switches
Relays
Switches
& Switches
Relays

Results

Componet
Reference

7SEG-COM-ANODE
AT89C51
74LS374
BUTTON

INC

BUTTON

DEC

S dng mch nh hnh v:

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

Ti liu thc hnh Vi iu khin

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

Ti liu thc hnh Vi iu khin

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.

Phm Hng Kim Khnh

Trang 53

You might also like