Upload
mrbivungtau-mrbi
View
48
Download
5
Embed Size (px)
Citation preview
ThS.V Thin Lnh 4/15/2013
Vi iu khin 1
1
GV: ThS.V THIN LNH
TRNG H GTVT C S 2
Email: [email protected]
2
Vi x l
CPU cho cc my tnh Khng c RAM, ROM, I/O trn CPU chip Vd: Intels x86, Motorolas 680x0
ThS.V Thin Lnh 4/15/2013
Vi iu khin 2
3
Vi iu khin
L my tnh mini C RAM, ROM, I/O ports trn CPU chip Vd: Motorolas 6811, Intels 8051, Zilogs
Z80, & PIC 16X
4
Vi x l & Vi iu khin
ThS.V Thin Lnh 4/15/2013
Vi iu khin 3
5
Chng I: TNG QUAN V H VI IU KHIN MCS-51
Vo nm 1980 Intel cng b chp 8051(80C51), b vi iu khin u tin ca h vi
iu khin MCS-51. Tip theo sau l s ra i ca chip 8052 c thm mt b
nh thi (timer 2)
T 80Cxx chuyn thnh 89Cxx, chng hn 80C52 ca Intel khi sn xut Atmel
m s thnh 89C52 (M s y : AT89C52) vi tnh nng chng trnh tng
t nh nhau.
Sau hng Atmel tung ra th trng dng mang s hiu 89Sxx vi nhiu ci tin
v c bit l c thm kh nng np chng trnh theo ch ni tip rt n
gin v tin li cho ngi s dng.
Tt c cc Vi iu khin trn u c c tnh c bn ging nhau v phn mm
(cc tp lnh lp trnh nh nhau), cn phn cng c b sung vi chip c m s
hai s cui cao hn, cc Vi iu khin sau ny c nhiu tnh nng vt tri hn
Vi iu khin th h trc.
6
S KHC NHAU GiA 89Sxx V 89Cxx
89Sxx c b sung mt s tnh nng v c thm ch
np ni tip, song song, trong khi 89Cxx ch c ch
np ni tip.
Chng trnh vit dnh cho 89Cxx u chy c vi
89Sxx .
89Sxx c ch np ni tip vi mch np n gin c
kh nng np ngay trn bo mch m khng cn tho
chip vi iu khin sang mch khc np chng trnh
v nhiu tnh nng ci tin khc.
ThS.V Thin Lnh 4/15/2013
Vi iu khin 4
7
Chng II: TNG QUAN V VI IU KHIN 89C51
I. Tng quan 89C51- Thuc h MCS-51- C dung lng nh 4Kb flash ROM lu tr m lnh (chng trnh), thi gian ghi xa ln n 1000 ln- Tn s lm vic: 0Hz 20Mhz- B nh RAM ni 128 byte, 8 bit- Cung cp 32 tn hiu iu khin I/O- C 2 b timer/counter 16 bit- C 5 ngun ngt- H tr truyn thng ni tip bt ng b- C 40 chn- S dng in p cung cp 5VDC
8
II. S CHN
AT8
9C51
9
181920
293031
4012345678
2122232425262728
1011121314151617
3938373635343332RST
XTAL2XTAL1GND
PSENALE/PROG
EA/VPP
VCCP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
ThS.V Thin Lnh 4/15/2013
Vi iu khin 5
9
Nhm chn ngun: - VCC: chn 40, in p cung cp 5VDC- GND: chn 20
C1
>1000uF
U2 LM78051
2
3VIN
GN
D VOUTJ1
J2 = 5VDC
T1 (220V-9V)- +
D1
C2104
Chn RESET: chn 9, tc ng cao (trong thi gian ti thiu 2 chu k my) cho php khi ng li h thng.
CHN 9R110k
C1
10uF/50V
RESET SW
VCC
1010
Nhm chn dao ng: gm chn 18 v chn 19, cho php ghp ni thch anh vo mch dao ng bn trong vi iu khin
C2
33p
C1
33p
CHN 18
CHN 19
12Mhz/ 11.0592Mhz
Chn chn b nh chng trnh: chn 31 (EA/VPP)- Chn 31 ni mass: s dng b nh chng trnh bn ngoi vi iu khin
- Chn 31 ni VCC: s dng b nh chng trnh (4Kb) bn trong vi iu khin
31SW
VCC
ThS.V Thin Lnh 4/15/2013
Vi iu khin 6
1111
Nhm chn iu khin vo/ra: Port 01:
- K hiu P1, gm 8 chn I/O t 1 n 8
87654321chn
P1.7P1.6P1.5P1.4P1.3P1.2P1.1P1.0Tn hiu
- Cu trc bn trong: PIN =1 GHI; PIN=0 C VO
PIN
89C51
DATA WRITE
~5KDATA READ
VCC
P1/P2/P3
1212
Port 02: - K hiu P2, gm 8 chn a hp I/O v a ch cao, t chn 21 n 28
2827262524232221chn
P2.7/A15
P2.6/A14
P2.5/A13
P2.4/A12
P2.3/A11
P2.2/A10
P2.1/A9
P2.0/A8
Tn hiu
Khi khng s dng b nh ngoi, P2 s dng nh cc I/O; khi s dng b nh ngoi, P2 thay th 8 chn a ch cao giao tip vi IC nh.
- Cu trc bn trong: ging P1
Port 0:- K hiu P0, gm 8 chn a hp I/O, a ch thp v d liu, t chn 39 n 32
3233343536373839chn
P0.7/AD7
P0.6/AD6
P0.5/AD5
P0.4/AD4
P0.3/AD3
P0.2/AD2
P0.1/AD1
P0.0/AD0
Tn hiu
ThS.V Thin Lnh 4/15/2013
Vi iu khin 7
1313
Port 0: Khi khng s dng b nh ngoi, P0 s dng nh cc I/O; khi s dng b nh ngoi, P0 thay th 8 chn a ch thp v d liu giao tip vi IC nh.
A0-A7 D0-D7P0
CHN 30
ALE
P2 A8-A15
IC NH
A15-A0
D7-D0
- Cu trc bn trong ca P0:
PIN
K Ohm
89C51
DATA READ SW
12
VCC
(P0)DATA WRITE
1414
Port 03:- K hiu P3, gm 8 chn a hp I/O v cc tn hiu khc, t chn 10 n 18
1716151413121110chn
P3.7/RD
P3.6/WR
P3.5/T1
P3.4/ T0
P3.3/INT1
P3.2/ INT0
P3.1/TxD
P3.0/RxD
Tn hiu
RxD: chn nhn d liu ni tip bt ng b (UART: The UniversalAsynchronous Receiver/Transmitter )
TxD: chn truyn d liu ni tip bt ng b
INT0: chn cung cp tn hiu ngt ngoi 0 (external interrupt), tc ng thp
INT1: chn cung cp tn hiu ngt ngoi 1 ), tc ng thp
T0: chn cung cp xung cho b counter 0
T1: chn cung cp xung cho b counter 1
WR: chn cung cp tn hiu iu khin ghi b nh ngoi, tc ng thp
RD: chn cung cp tn hiu iu khin c b nh d liu ngoi, tc ng thp
ThS.V Thin Lnh 4/15/2013
Vi iu khin 8
1515
Cc chn khc:
P0: AD0--AD7
A0-A7
U1
74LS373
3478
13141718
111
256912151619
D0D1D2D3D4D5D6D7
OELE
Q0Q1Q2Q3Q4Q5Q6Q7ALE
A0-A7 D0-D7P0
CHN 30ALE
16
ThS.V Thin Lnh 4/15/2013
Vi iu khin 9
17
III. T chc b nh
1818
1. B nh trong:- Vng nh chng trnh: gm 4Kb, c nh a ch t 0 4095 (000H-FFFH), dng cha m lnh (chng trnh ca ngi dng), vng nh ny ch c s dng khi chn 31 ca vi iu khin c ni ngun Vcc
- Vng nh d liu: gm 128 byte RAM, c nh a ch t 0 127 (00-7FH)
ThS.V Thin Lnh 4/15/2013
Vi iu khin 10
19
20
ThS.V Thin Lnh 4/15/2013
Vi iu khin 11
21
Vng RAM a mc ch
Truy xut t do 80 bytes ny theo kiu nh a ch trc tip hay gin tip.
MOV A, 5FH Hoc: MOV R0, #5FH
MOV A, @R0
22
Vng RAM nh a ch bit
Truy xut cc bit ring r l 1 c trng ca VK. Cc bit c th c set, xa, AND, OR ch bng 1 lnh so vi 1 chui lnh ca VXL
Cc port cng c nh a ch bit Vd: set bit 7FH bng 1, ta vit: VK: SETB 7FH VXL: MOV A,2FH ; c c byte
ORL A,#10000000B ; set bit MOV 2FH,A ; ghi tr li c byte
ThS.V Thin Lnh 4/15/2013
Vi iu khin 12
23
Cc bank thanh ghi
Cc lnh dng bank thanh ghi l nhng lnhngn & thc hin nhanh hn
MOV A,R5 ; 1 byteMOV A,05H ; 2 bytes
Cc d liu c dng thng xuyn nncha cc thanh ghi ny.
tng cc bank thanh ghi cho phpchuyn i ng cnh nhanh v hiu qu cc module c lp nhau ca phn mm
24
Ngn xp Thanh ghi dng truy cp ngn xp gi l SP (stack pointer) SP l thanh ghi 8 bit: gi tr t 00 FFH. Khi c cp ngun hay sau khi reset, SP=07H
ThS.V Thin Lnh 4/15/2013
Vi iu khin 13
25
26
2.Cc thanh ghi c chc nng c bit
E0H
ThS.V Thin Lnh 4/15/2013
Vi iu khin 14
27
Cc thanh ghi c chc nng c bit
28
Cc thanh ghi c chc nng c bit
ThS.V Thin Lnh 4/15/2013
Vi iu khin 15
29
Thanh ghi PSW
30
Chc nng cc Bit trng thi
C (carry flag) - C nh c set bng 1 nu c s nh t php
cng bit 7 hay c s mn mang n bit 7MOV A,#FFHADD A,#1
Cn c dng nh 1 thanh ghi 1 bit i vi cc lnh logic thao tc trn cc bit
ANL C,25H
ThS.V Thin Lnh 4/15/2013
Vi iu khin 16
31
Chc nng cc Bit trng thi AC (auxiliary carry) C nh ph Khi cng nhng gi tr BCD c nh ph AC
c set (AC=1) nu KQ 4 bit ln hn 09H,ngc li AC=0. C AC dng chnh s BCDkhi thc hin lnh cng 2 s BCD.
C 0 (flag 0) C 0 cn gi l c zero (F0), c zero=1 khi KQ
x l bng 0 v bng 0 khi KQ x l khc 0. RS1, RS0 - Cc bit chn bank thanh ghi Dng xc nh dy thanh ghi tch cc Chng c xa khi reset
32
Chc nng cc Bit trng thi OV (overflow flag) - C trn Set bng 1 sau php ton cng hoc tr nu c xut hin
1 trn s hc. Khi cc s c du c cng hoc tr,phn mm c th kim tra bit trn OV xc nh KQ cnm trong tm hay khng
Vi cc s c du, KQ nh hn -128 hoc ln hn +127s set c OV = 1. Vi cc s khng du, OV=1 khi KQvt qu 255.
VD: 8EH biu din -114 khng ng vi KQ mong munl 142 nn OV = 1
ThS.V Thin Lnh 4/15/2013
Vi iu khin 17
33
Chc nng cc Bit trng thi
P (parity) - C chn l Kim tra chn l cho thanh ghi A S cc bit 1 trong thanh ghi A cng vi bit P lun lun
chn MOV A,#10101101B P=1
Bit chn l c s dng kt hp vi cc chng trnhxut/nhp ni tip trc khi truyn d liu hoc kim
trachn l sau khi nhn d liu
34
Chc nng cc Bit trng thi
ThS.V Thin Lnh 4/15/2013
Vi iu khin 18
35
Thanh ghi B B c dng vi thanh cha A trong cc php ton nhn,
chiaMUL A,B ; nhn 2 s 8-bit khng du cha
trong A & B, KQ 16-bit cha vo cp thanh ghi B:A (B cha byte cao)
DIV A,B ; chia A bi B, thng s ct trong A, d ct trong B
B cn c x l nh thanh ghi nhp B c nh a ch bit
36
Con tr ngn xp (SP) SP cha a ch ca d liu hin ang nh ca stack Cc lnh lin quan n stack bao gm lnh ct d liu vo stack (lm tng
SP trc khi ghi d liu) v lnh ly d liu khi stack (gim SP) PUSH &POP
Mun stack bt u 60H: MOV SP,#5FH Th vng stack s l 32 byte trn 8051 v a ch cao nht ca RAM ni l
7FH 5FH c dng v SP tng ln 60H trc khi thao tc ct vo stack u tin
c thc thi Nu khng khi ng SP, ni dung mc nh l 07Hthao tc ct vo stack
u tin s lu d liu vo v tr nh c a ch 08H Trong trng hp ny, nu phn mm ng dng khng khi ng SP, dy
thanh ghi 1 (v c l 2, 3) s khng cn hp l v chng c s dng lmstack
ACALL, LCALL, RET, RETI ct v phc hi b m chng trnh PC
ThS.V Thin Lnh 4/15/2013
Vi iu khin 19
37
Con tr ngn xp (SP)
38
Con tr d liu (DPTR)
DPTR c dng truy xut b nhchng trnh ngoi hoc b nh d liungoi
VD: MOV A,#55HMOV DPTR,#1000HMOVX @DPTR,A
ThS.V Thin Lnh 4/15/2013
Vi iu khin 20
39
Cc thanh ghi I/O port: P0, P1, P2, P3
Tt c port u c nh a ch bit VD: (iu khin motor ni bit P1.0)
SETB P1.0CLR P1.0
on chng trnh kim tra trng thi BUSY ca thit b:
WAIT: JB P1.5, WAIT
40
Cc thanh ghi nh thi Cc nh c a ch t 88H n 8Dh l cc thanh ghi phc
v cho Timer 0 v Timer 1.
- Thanh ghi Tcon ( Timer control ) c a ch 88H l thanh ghi iu khin Timer\Counter.
- Thanh ghi Tmod ( Timer Mode ) c a ch 89H l thanh ghi la chn mode hot ng ca Timer\Counter.
- Thanh ghi TL0 c a ch 8AH lu tr byte thp ca Timer 0.
- Thanh ghi TL1 a ch 8B lu tr byte thp ca Timer 1.
- Thanh ghi TH0 c a ch 8CH lu tr byte cao ca Timer 0.
- Thanh ghi TH1 c a ch 8DH lu tr byte cao ca Timer 1.
ThS.V Thin Lnh 4/15/2013
Vi iu khin 21
41
Cc thanh ghi ca port ni tip
8051 c 1 port ni tip truyn thng vi cc thit b ni tip
SBUF (Serial Data Buffer): c a ch 99H l thanh ghi m d liu truyn ni tip.
SCON (Serial Port Control Register): c a ch 98H l thanh ghi iu khin truyn d liu ni tip.
42
Cc thanh ghi ngt
- Thanh ghi IE ( Interrupt Enable ) c a ch A9h l thanh ghi iu khin cho php ngt / khng cho php ngt.
- Thanh ghi IP ( Interrupt Priority ) c a ch B9h l thanh ghi iu khin u tin ngt
ThS.V Thin Lnh 4/15/2013
Vi iu khin 22
43
IV.Dao ng v hot ng reset (oscillator and reset)
1. Dao ng dng thch anh
44
2. Mch Reset c chng rung
Gi tr Reset ca cc thanh ghi
ThS.V Thin Lnh 4/15/2013
Vi iu khin 23
45
CHNG III. TP LNH
Vi iu khin h MCS-51 c 8 kiu nh a ch nh sau: Kiu nh a ch dng thanh ghi. Kiu nh a ch trc tip. Kiu nh a ch gin tip. Kiu nh a ch tc thi. Kiu nh a ch tng i. Kiu nh a ch tuyt i. Kiu nh a ch di. Kiu nh a ch ch s .
46
1. Kiu nh a ch dng thanh ghi (Register Addressing) :Kiu ny thng c dng cho cc lnh x l d liu m d liu lun lu trong cc thanh ghi. i vi vi iu khin th m lnh thuc kiu ny ch c 1 byte. V d: Mov A,R1 ; copy ni dung thanh ghi R1 vo thanh ghi A
2. Kiu nh a ch trc tip (Direct Addressing) :Kiu ny thng c dng truy xut d liu ca bt k nh no trong 256 byte b nh RAM ni ca vi iu khin 89C51. Cc lnh thuc kiu ny thng c m lnh 2 byte: byte th nht l m lnh, byte th 2 l a ch ca nh:
V d: Mov A,05H ; copy ni dung nh c a ch 05H vo thanh ghi A
ThS.V Thin Lnh 4/15/2013
Vi iu khin 24
47
3. nh a ch gin tip (Indirect Addressing) : Kiu nh a ch gin tip c tng trng bi k hiu
@ v c t trc cc thanh ghi R0, R1 hay DPTR.R0 v R1 c th hot ng nh mt thanh ghi con tr,ni dung ca n cho bit a ch ca mt nh trongRAM ni m d liu s ghi hoc s c. Cn dptr dng truy xut nh ngoi. Cc lnh thuc dng ny chc 1 byte.
V d: Mov A,@R1 ; copy ni dung nh c a ch ; trong thanh ghi R1 vo thanh ghi A
4. nh a ch tc thi (Immediate Addressing) : Kiu nh a ch tc thi c tng trng bi k hiu
# v c t trc mt hng s. Lnh ny thng dng np 1 gi tr l 1 hng s byte th 2 (hoc byte th 3) vo thanh ghi hoc nh.
V d: Mov a,#30H ; np d liu l con s 30H vo thanh ghi A
48
5. nh a ch tng i : Kiu nh a ch tng i ch s dng vi nhng lnh
nhy. Ni nhy n c a ch bng a ch ang lu trong thanh ghi PC cng vi 1 gi tr 8 bit [cn gi l gi tr lch tng i: relative offset] c gi tr t 128 n +127 nn vi iu khin c th nhy li [nu s cng vi s m] v nhy ti [ nu s cng vi s dng]. Lnh ny c m lnh 2 byte, byte th 2 chnh l gi tr lch tng i.
Ni nhy n thng c xc nh bi nhn (label) v trnh bin dch s tnh ton gi tr lch.
V d: Sjmp X1 ;nhy n nhn c tn l X1 nm ;trong tm vc 256 byte
6. nh a ch tuyt i (Absolute Addressing) : Kiu nh a ch tuyt i c dng vi cc lnh ACALL v AJMP. V d: Ajmp X1 ;nhy n nhn c tn l X1 nm trong tm vc 2 kbyte
ThS.V Thin Lnh 4/15/2013
Vi iu khin 25
49
7. nh a ch di (Long Addressing) : Kiu nh a ch di c dng vi lnh LCALL v LJMP. Cc lnh
ny c m lnh 3 byte trong c 2 byte (16bit) l a ch ca ni n.
V d: Ljmp X1 ;nhy n nhn c tn l X1 nm trong ;tm vc 64kbyte
8. nh a ch ch s (Index Addressing) : Kiu nh a ch ch s dng mt thanh ghi c bn: l b m
chng trnh PC hoc b m d liu DPTR kt hp vi mt gi tr lch (offset) cn gi l gi tr tng i [thng lu trong thanh ghi] to ra 1 a ch ca nh cn truy xut hoc l a ch ca ni nhy n. Vic kt hp c minh ha nh sau:
V d: MOVX A, @A + DPTR ;ly d liu trong nh c a; ch bng DPTR + A
50
A. TP LNH
a. Nhm lnh di chuyn d liu 8 bit. b. Nhm lnh s hc. c. Nhm lnh logic. d. Nhm lnh chuyn quyn iu khin. e. Nhm lnh x l bit.
(XEM TI LiU)
ThS.V Thin Lnh 4/15/2013
Vi iu khin 26
51
I. NHM LNH DI CHUYN D LiU:
1. Lnh di chuyn d liu trc tip:
- C php: MOV ,
Trong :
. : c th l thanh ghi, a ch nh trong vng RAM ni
. : c th l thanh ghi, a ch nh trong vng RAM ni hoc #
- Thc hin: di chuyn ni dung vo
- V d:
MOV A, 120
MOV B, #24
MOV 120,#10110010B
MOV R3, A
MOV P3,#3EH
52
2. Nhm lnh di chuyn d liu gin tip:
a. Lin quan n vng nh RAM ni:
+ Lnh c b nh:
- C php: MOV , @Rp
Trong :
: thanh ghi, nh
Rp: l thanh ghi R0 hoc R1
- Thc hin: ly ni dung nh trong vng RAM ni c a ch l ni dung thanh ghi Rp t vo
- V d:
MOV 120,#47
MOV R1,#120
MOV A,@R1
; sau khi thc hin xong on lnh ni dung thanh ghi A cha gi tr 47
ThS.V Thin Lnh 4/15/2013
Vi iu khin 27
53
+ Lnh ghi b nh:
- C php: MOV @Rp,
Trong :
. : thanh ghi, nh hoc #
. Rp: l thanh ghi R0 hoc R1
- Thc hin: t ni dung vo nh trong vng RAM ni c a ch l ni dung thanh ghi Rp.
- V d 1:
MOV R0,#100
MOV @R0, #0E3H
; sau khi thc hin xong on lnh ni dung nh 100 cha gi tr E3H
- V d 2:
MOV A, #49
MOV R1,#127
MOV @R1, A ; (127) = 49
54
b. Lin quan n vng nh d liu ngoi:
+ Lnh c b nh: C php: MOVX A, @DPTR
- Thc hin: ly ni dung nh trong vng d liu ngoi c a ch l ni dung thanh ghi DPTR t vo thanh ghi A
- V d:
MOV DPTR,#1000
MOVX A, @DPTR ; A (1000)
+ Lnh ghi b nh:
- C php: MOVX @DPTR, A
- Thc hin: ly ni dung A t vo nh trong vng d liu ngoi c a ch l ni dung thanh ghi DPTR.
- V d:
MOV DPTR,#1000MOV A, #4EHMOVX @DPTR, A ; ghi gi tr 4EH vo nh ngoi c a ch 1000
ThS.V Thin Lnh 4/15/2013
Vi iu khin 28
55
c. Lnh lin quan n vng nh chng trnh (c m lnh):
- C php: MOVC A,@A+DPTR
- Thc hin: ly ni dung nh trong vng nh chng trnh c a ch l ni dung thanh ghi A + DPTR t vo thanh ghi A.
- V d 1:
MOV A,#2
MOV DPTR,#500
MOVC A,@A+DPTR ; A (502)
- V d 2:
MOV A, #4
MOV DPTR,#TABLE
MOVC A, @A+DPTR
TABLE: DB 12H, 4EH, 0C7H, 084H, 055H,
56
3. Nhm lnh lin quan n ngn xp:
+ Ghi vo ngn xp: C php: PUSH Thanh ghi/ a ch
- Thc hin: ct ni dung thanh ghi hoc nh vo nh ngn xp
+ c ngn xp: C php: POP Thanh ghi/ a ch
- Thc hin: ly ni dung nh ngn xp gn vo thanh ghi, nh
+ V d: MOV A,#100
MOV 100,#3EH
PUSH ACC
PUSH 100
MOV A, #21H
MOV 100, #40
POP 100
POP ACC
ThS.V Thin Lnh 4/15/2013
Vi iu khin 29
57
4. Lnh trao i d liu:
- C php: XCH A,
Trong : c th l thanh ghi, nh hoc @Rp
- Thc hin: trao i ni dung thanh ghi A v
II. NHM LNH S HC
1. Lnh cng:
a. Cng khng nh:
- C php: ADD A,
Trong : c th l thanh ghi, nh, # hoc @Rp
- Thc hin: A A +
b. Cng c nh:- C php: ADDC A, Trong : c th l thanh ghi, nh, # hoc @Rp- Thc hin: A A + + C
58
2. Lnh tr:- C php: SUBB A, Trong : c th l thanh ghi, nh, # hoc @Rp
- Thc hin: A A - - C (carry bit)
3. Lnh nhn: - C php: MUL AB- Thc hin: A * B = BA (B: byte cao ca kt qu; A: byte thp ca kt
qu)
4. Lnh chia:- C php: DIV AB- Thc hin: A : B = A d B (A: cha phn nguyn; B: cha phn d)
5. Lnh tng mt n v:
- C php: INC
Trong : c th l thanh ghi, nh
- Thc hin: = + 1
ThS.V Thin Lnh 4/15/2013
Vi iu khin 30
59
6. Lnh gim mt n v:
- C php: DEC
Trong : c th l thanh ghi, nh
- Thc hin: = - 1
III. NHM LNH NHY:
1. Lnh nhy khng iu kin:
a. Nhy gn:
- C php: SJMP
Trong : l mt t, hay nhm t vit lin nhau, theo sau bng du : dng nh du v tr chng trnh.
- Thc hin: nhy khng iu kin n v tr chng trnh c ch nh bi , khong cch t lnh n khng vt qu 128 byte m lnh.
b. Nhy xa:
- C php: LJMP
60
- Thc hin: nhy n v tr c ch nh bi , c th nm bt k v tr no trong chng trnh.
2. Lnh nhy c iu kin:
a. Lnh so snh v nhy nu khng bng (compare and jump if not equal)
- C php: CJNE A, ,
Trong c th l thanh ghi, nh hoc #
- Thc hin: So snh A v , nu:
+ A : nhy n v nu:
. A > : bit C = 0
. A < : bit C = 1
+ A = : thc hin lnh k tip
- Mt dng khc ca lnh:
CJNE Ri/@Rp, #,
ThS.V Thin Lnh 4/15/2013
Vi iu khin 31
61
b. Lnh gim ni dung Ri mt n v v nhy nu ko bng zero (decrement Ri by 1 and jump if not zero):
- C php: DJNZ Ri,
- Thc hin: Ri = Ri - 1, nu:
+ Ri > 0: nhy n
+ Ri =0: thc hin lnh k tip
c. Lnh nhy ph thuc vo trng thi bit kim tra:
- C php: JB/ JNB BIT,
Trong : BIT c th l cc bit ca mt thanh ghi hoc cc chn I/O ca vi iu khin
- Thc hin: nhy n v tr chng trnh c ch nh bi nu BIT bng 1 hoc bng 0
d. Lnh nhy thng qua vic kim tra c CARRY:
- C php: JC/ JNC
- Thc hin: nhy n v tr chng trnh c ch nh bi nu C bng 1 hoc bng 0
62
e. Lnh nhy thng qua vic kim tra c ZERO:
- C php: JZ/ JNZ
- Thc hin: nhy n v tr chng trnh c ch nh bi nu Z bng 1 hoc bng 0
IV. NHM LNH LOGIC:
1. ANL A,
2. ORL A,
3. XRL A,
4. CLR A ; xa ni dung thanh ghi A
5. CPL A ; o cc BIT trong thanh ghi A
6. NOP ; lnh khng thc hin, b qua khi gp lnh ny
7. SWAP A ; o v tr 4 bit cao v 4 bit thp trong thanh ghi A
8. Nhm lnh quay vng:
a. Quay phi thanh ghi A
- C php: RR A
ThS.V Thin Lnh 4/15/2013
Vi iu khin 32
63
- Thc hin:
Bit 7 ------------------>- bit 0
b. Lnh quay tri thanh ghi A:
- C php: RL A
- Thc hin:
Bit 7 --
ThS.V Thin Lnh 4/15/2013
Vi iu khin 33
65
VI. NHM LNH LIN QUAN N CHNG TRNH CON:1. CALL ; gi chng trnh con
2. RET ; kt thc chng trnh con
3. RETI ; kt thc chng trnh ngt
66
B. CC V D
ThS.V Thin Lnh 4/15/2013
Vi iu khin 34
67
68
Tnh Delay Vd1: Delay: MOV R7,#0FFH;Lnh ny chim 1T Del1: DJNZ R7,Del1; Chim 2T RET ; Chim 2T
Tng TG= 255*2T + 3T Vd2: Delay: MOV R6,#0FFH ;Lnh ny chim 1T Del1: MOV R7,#0FFH ;Lnh ny chim 1T Del2: DJNZ R7,Del2 ; Chim 2T*R7 DJNZ R6,Del1 ; Chim 2T*R6 RET ; Chim 2T
Tng TG= (R7*2T + 1T)*R6 + R6*2T +1T +2T=0.13 s Vi thch anh 12Mhz th mi chu k my ca 8951 s mt 1us v
mi chu k my ko di 12 chu k dao ng
ThS.V Thin Lnh 4/15/2013
Vi iu khin 35
VD1: Cho 1 h 8051 c dao ng thch anh 11.0592 MHz. Tm thi gian thc thi cho cc cu lnh sau:
a. MOV R3,#79Hb. LJMPc. MUL ABd. DEC R5e. SJMPf. NOP
69
Lp trnh cu trc
70
ThS.V Thin Lnh 4/15/2013
Vi iu khin 36
71
72
ThS.V Thin Lnh 4/15/2013
Vi iu khin 37
VD2:Tm thi gian tr cho chng trnh con say y, (vi tn s dao ng thch anh l 11.0592 MHz)
DELAY: MOV R3,#250 ; 1MCHERE: NOP ;1MC
NOP ;1MCNOP ;1MCNOP ;1MCDJNZ R3,HERE ;2MCRET ;2MC
[250x(1+1+1+1+2)+3]x1.085 us=1629.67 us73
74
CHNG IV. Lp trnh ng dng
1. iu khin LED n + Nt nhn2. iu khin LED 7 on3. iu khin LED ma trn4. iu khin LCD5. iu khin ng c DC6. iu khin Timer/Counter7. Chuyn i ADC
ThS.V Thin Lnh 4/15/2013
Vi iu khin 38
75
iu khin LED n
12MHz
R3
2
1
C41 2
D2
H I
D3 D 8D7
U1
AT89C51
918
19
20
2930
3140
12345678
2122232425262728
1011121314151617
3938373635343332
RSTXTAL2
XTAL1
GN
D
PSENALE/PROG
EA/
VPP
VC
C
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3. 1/TXD
P3.2/IN T0P3.3/IN T1
P3.4/ T0P3.5/ T1
P3.6/WRP3.7/RD
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7 R 1
2
1
+5 V
D5
R
2
1
Q162N 2894
R4
2
1
C51 2
0
D4
R7
2
1
R 8
2
1D 1
0
C3
R6
2
1SW1
R9
12345678
Q11 Q13 Q14Q12
D6
R2
2
1
Q10 Q15Q9
R5
2
1
76
CHNG TRNH CHP TT 8 LED N1. Org 0000h2. Begin: mov p2,# 11111111b3. lcall Delay4. mov P2,# 00000000b5. lcall Delay6. sjmp Begin7. Delay: mov r5,# 0fh8. Del1: mov r6,# 0ffh9. Del: mov r7,# 0ffh10. djnz r7,$11. djnz r6,Del12. djnz r5,Del113. ret14. end
ThS.V Thin Lnh 4/15/2013
Vi iu khin 39
77
CHNG TRNH M NH PHN 8 BIT
1. Org 0000h2. Begin: mov p0,# 00h3. xx: lcall delay4. inc P05. sjmp xx6. Delay: mov r6,# 0ffh7. Del1: mov r7,# 0ffh8. djnz r7,$9. djnz r6,Del110. ret11. end
CHNG TRNH 8 LED N SNG DN V TT DN
78
1. Org 0000h2. nnn: mov a,# 0ffh3. ww: mov p0,a4. lcall Delay5. clr c6. rrc a7. jc ww8. sjmp nnn9. Delay: mov r6,# 0ffh10. Del1: mov r7,# 0ffh11. djnz r7,$12. djnz r6,Del113. ret14. end
ThS.V Thin Lnh 4/15/2013
Vi iu khin 40
CHNG TRNH 8 LED N SNG DN
79
XTA L218
XTA L119
ALE30
EA31
PSEN29
RST9
P0.0/AD0 39
P0.1/AD1 38
P0.2/AD2 37P0.3/AD3 36
P0.4/AD4 35
P0.5/AD5 34P0.6/AD6 33
P0.7/AD7 32
P1.01
P1.12
P1.23P1.34
P1.45
P1.56P1.67
P1.78
P3.0/RXD 10
P3.1/TXD 11
P3.2/INT0 12P3.3/INT1 13
P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15
P2.7/A15 28
P2.0/A8 21
P2.1/A9 22
P2.2/A10 23P2.3/A11 24
P2.4/A12 25
P2.5/A13 26P2.6/A14 27
U1
AT89C51
X1
CRYSTAL
C133p
C233p
R18.5k
C3
30pF
R2330R
D4
LED-YELLOW
R3330R
R4330R
R5330R
R6330R
R7330R
R8330R
R9330R
D1
LED-YELLOWD2
LED-YELLOW
D3
LED-YELLOW
D5
LED-YELLOWD6
LED-YELLOW
D7
LED-YELLOWD8
LED-YELLOW
Nt nhn
80
XTA L218
XTA L119
ALE30
EA31
PSEN29
RST9
P0.0/AD0 39
P0.1/AD1 38
P0.2/AD2 37P0.3/AD3 36
P0.4/AD4 35
P0.5/AD5 34P0.6/AD6 33
P0.7/AD7 32
P1.01
P1.12
P1.23P1.34
P1.45
P1.56P1.67
P1.78
P3.0/RXD 10
P3.1/TXD 11
P3.2/INT0 12P3.3/INT1 13
P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15
P2.7/A15 28
P2.0/A8 21
P2.1/A9 22
P2.2/A10 23P2.3/A11 24
P2.4/A12 25
P2.5/A13 26P2.6/A14 27
U1
AT89C51
X1
CRYSTAL
C133p
C233p
R18.5k
C3
30pF
R2330R
D4
LED-YELLOW
R3330R
R4330R
R5330R
R6330R
R7330R
R8330R
R9330R
D1
LED-YELLOWD2
LED-YELLOW
D3
LED-YELLOW
D5
LED-YELLOWD6
LED-YELLOW
D7
LED-YELLOWD8
LED-YELLOW
ThS.V Thin Lnh 4/15/2013
Vi iu khin 41
TIMER/COUNTER 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:
Hot ng ca b Timer/Counter c iu khin bi hai thanh ghi TCON v TMOD.
81
Timer SFR Pur Add Bit-add
TCON Control 88H yesTMOD Mode 89H no
TL0 Timer 0 low-byte 8AH noTL1 Timer 1 low-byte 8BH noTH0 Timer 0 high-byte 8CH noTH1 Timer 1 high-byte 8DH no
82
ThS.V Thin Lnh 4/15/2013
Vi iu khin 42
THANH GHI TCON (Timer Control)
L thanh ghi 8 bit, c th truy xut byte hoc bit 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: khng lin quan n hot ng ca Timer/Counter, bit ny dng bo
trng thi ngt ngoi 1 (khi trng thi logic thay i t 1 xung 0 ti chn 13 viiu khin bit ny c t ln mc logic 1)
IT1: khng lin quan n hot ng ca Timer/Counter, bit ny cho php tcng ngt ngoi 1 bng cnh xung (default IT1 = 0, tc ng ngt bng mcthp)
IE0: khng lin quan n hot ng ca Timer/Counter, bit ny dng botrng thi ngt ngoi 0 (khi trng thi logic thay i t 1 xung 0 ti chn 12 viiu khin bit ny c t ln mc logic 1)
IT0: khng lin quan n hot ng ca Timer/Counter, bit ny cho php tcng ngt ngoi 0 bng cnh xung (default IT1 = 0, tc ng ngt bng mcthp) 83
THANH GHI TCON
84
ThS.V Thin Lnh 4/15/2013
Vi iu khin 43
iu khin cc Timer m v ngng m
Timer m: th SET bit TRx:SETB TR0SETB TR1
Timer ngng m: th CLEAR bit TRxCLR TR0CLR TR1
Bit TRx b xa khi Reset h thng. PP khc iu khin Timer: dng bit GATE
trong Tmod v ng ngt ngoi INTx.85
THANH GHI TMOD (Timer Mode) L thanh ghi chn kiu lm vic Timer/Counter, ch truy
xut byte.
86
ThS.V Thin Lnh 4/15/2013
Vi iu khin 44
THANH GHI TMOD (Timer Mode)
Hai bit M0 v M1 to ra 4 trng thi tng ng vi 4 kiu lm vic ca Timer/Counter.
87
Cc Mode (ch )1. Mode 0 ( Mode Timer 13 bit ) Mode 0 l mode Timer 13 bit, trong 8 bit cao s dng ht 8 bit
ca thanh ghi THx, 5 bit cn li s dng 5 bit trng s thp ca thanh ghi TLx. mode 0 Timer c th m t 0 n
2. Mode 1 ( Mode Timer 16 bit ) Mode 1 l mode Timer 16 bit, tt c 16 bit ca Timer s dng ht.
mode 1 Timer c th m t 0 n
88
ThS.V Thin Lnh 4/15/2013
Vi iu khin 45
Mode 1 ( Mode Timer 16 bit )
89
1.Chn timer 0 lm vic mode 1 (nh thi 16-bit) MOV TMOD,#01H2. Khito gi tr ban unp cho TH0 & TL0. MOV TH0,#FFH MOV TL0,#FCH3. Thot u nn xac TF0 v 0 CLR TF04.Bt Timer 0 SETB TR05. Khi c xung clock n, 8051 bt u m ln bng cch tng gi tr trong cc thanh ghi TH0-TL0
6. Khi TH0-TL0 cs chuyns m t FFFFH0000 th 8051 set TF0=1 TH0-TL0=FFFEH,FFFFH,0000H (lc ny TF0=1)7. Theo d ic trn (TF) AGAIN: JNB TF0, AGAIN 8. Xa TR0 tt timer 0 CLR TR09. Xac trn cho vng tip theo CLR TF0
V D 1: NG DNG CH 1: 16 BITSYU CU: Vit chng trnh iu khin bng n theo qui lut: 300mS sng, 300mS tt (delay s dng timer0, mode 16 bit).
THC HIN:1. BEGIN: CPL P1.02. CALL DL300mS3. SJMP BEGIN4. DL300mS:5. .6. RET7. ; CHNG TRNH CON DELAY 300 Ms8. DL300mS:9. PUSH 0510. MOV TMOD,#01H11. MOV R5,#612. X1: MOV TH0,#HIGH(15536)13. MOV TL0,#LOW(15536)14. SETB TR015. CLR TF016. JNB TF0,$ ; ch trn 17. DJNZ R5, X118. POP 0519. RET
Cu trc lp N ln (N
ThS.V Thin Lnh 4/15/2013
Vi iu khin 46
3. Mode 2 ( Mode Timer t np 8 bit )Mode 2 l mode t ng np 8 bit. Trong 8 bit thanh ghi THx ng vai trl gi tr cn np li cn 8 bit ca thanh ghi TLx ng vai tr l thanh ghi m.
4. Mode 3 ( Mode Timer tch ra )Mode 3 l mode Timer 0 c tch thnh 2 Timer 8 bit THx v TLx. THx lyTF1 lm c bo trn, cn thanh ghi TLx ly TF0 lm c bo trn. C trn TFxtrong thanh ghi TCON c c hoc ghi bi phn mm.
91
Mode 2 (Timer t np li 8 bit)
92
1. Chn mode 2 timer 0MOV TMOD,#02H
2. Khi to gi tr u trongTH0
MOV TH0,#38H3. Xa c TF0=0.
CLR TF04. Sau khi TH0 c gn, 8051 copy gi tr ny vo TL0
TL0=TH0=38H5.Bt Timer
SETB TR0
6. 8051 m ln TL0TL0= 38H, 39H, 3AH,....
7. Khi TL0 t FFH00 th 8051 set TF0=1. Bn cnh , TL0 c t ng np li gi tr lu gi trong TH0
TL0= FEH, FFH, 00H (lc ny TF0=1)
8051 t ng np li TL0=TH0=38H.
Quay li bc 68. CLR TF09. CLR TR0
ThS.V Thin Lnh 4/15/2013
Vi iu khin 47
93
C hiu g khng n?
94
V du 2 : NG DNG CH 2: 8 BITS AUTORELOAD Tao song vuong 10 KHzViet chng trnh tao dang song vuong 10KHz tren chan P1.0 bang cach s dung bo nh thi 0
Giai : Do fOSC = 12MHz nn chu k my = 1 s.
Song vuong f = 10KHz chu ky T = 1/f = 1/10KHz = 1/10000Hz = 0.1ms =100s vi
thi gian mc cao la : 50s va mc thap la : 50s.
Do khoang thi gian nay < 256s nen Che o 2 (che o t nap lai 8-bit) c s dung.
Do Timer-0 em len, nen mot tran xay ra sau moi 50s yeu cau mot gia tr so em nho hn
00h mot lng +50 phai c nap va nap lai cho TL0, ngha la gia tr nap cho TH0 la : -50.
Chng trnh theo yeu cau nh sau :
Delay: MOV TMOD, #02h ; Timer-0 : Mode-2 (che o t nap lai 8-bit)
MOV TH0, #-50 ; TH0 cha gia tr -50 hay 206 hay 0CEh
SETB TRO ; Khi ong bo nh thi, cho phep Timer-0 chay
Loop : JNB TF0, Loop ; Neu Timer-0 cha tran th ch tran
CLR TF0 ; Xoa c tran
CPL P1.0 ; ao trang thai bit P1.0 e tao xung vuong
SJMP Loop
END 0100000002hM0M1C/TGATEM0M1C/TGATETMOD01234567Bit
ThS.V Thin Lnh 4/15/2013
Vi iu khin 48
V D 3: NG DNG CH 2: 8 BITS AUTORELOAD
95
YU CU: Vit chng trnh xut chui xung
500Hz ra loa (delay s dng timer1, mode 2- 8 bit).
THC HIN: chu k 1/500Hz=2msBEGIN: CPL P2.5
CALL DL1mS; mc 0=mc 1= 1msSJMP BEGIN
DL1mS: .RET
;CHNG TRNH CON DELAY 1 mS
DL1mS: PUSH 07
MOV TMOD,#20H
MOV R7,#5 ; 5x200=1000us
MOV TH1,#56 ; np li cho TL1
MOV TL1,#56 ; 256 - 56=200 us
SETB TR1
X1: CLR TF1
JNB TF1,$ ; ch trn
DJNZ R7, X1
POP 07
RET
P2.5
8951
12Mhz
Cu trc lp N ln (N
ThS.V Thin Lnh 4/15/2013
Vi iu khin 49
9797
V du 5 : Vit chng trnh con to thi gian tr hon 1sec dng timer 0.
Giai : Do chng trnh yu cu to thi gian tr hon nn s chu k m l 1.000.000sChng trnh nh sau:
MOV TMOD,#01h ; Timer-0 : Mode-1 (16bit); ---- Chng trnh chnh ----; ----; ----
Delay1s:MOV R7,#20 ; Lp 20 ln
Lap:MOV TH0, #High(-50000) ; Mi ln tr hon 50.000 sMOV TL0, #Low(-50000)SETB TR0
Lap1:JNB TF0, Lap1CLR TF0CLR TR0DJNZ R7, Lap ; Lp 20 ln th thotRETEND
Lu rng : khi vit chng trnh tr hon nh trn th chng trnh ca AT89C51 xem nh dng li, khng lm g c (c th gii quyt bng cch s dng ngt).
1000000001hM0M1C/TGATEM0M1C/TGATETMOD
01234567Bit
98
V du6: Xt s kt ni Dy Led n nh sau : P0.0 LED0, ., P0.7LED7. Vit chng trnh iu khin Led sng t tri sang phi, mi ln 1 Led.
Giai : Cc Led ni vi Port 0 ca AT89C51 (P0 khi dng nh cc cng nhp / xut th cn phi c in tr ko ln ngun) nn mun Led sng (LED tc ng mc thp) th phi gi d liu ra P0.
Theo s mch, Led sang khi cc bit tng ng ti P0 l 0.Yu cu iu khin Led sang t tri sang phi (ln lt t P0.0 n P0.7) nn d liu gi ra l:- Ln 1: 1111 1110b (0FEh) sng 1 Led tri - Ln 2: 1111 1101b (0FDh) - Ln 3: 1111 1011b (0FBh)- Ln 4: 1111 0111b (0F7h) - Ln 5: 1110 1111b (0EFh) - Ln 6: 1101 1111b (0DFh)- Ln 7: 1011 1111b (0BFh) - Ln 8: 0111 1111b (7Fh) - Ln 9: quay li nh ln 1
MOV DPTR, #MaLed ; DPTR cha v tr bng m LedMain:
MOV R7, #0 ; Phn t u tin ca bng mLoop:
MOV A, R7MOVC A, @A+DPTR ; c bng mMOV P0, A ; Chuyn vo P0 sng LedCALL Delay ; Ch mt ngi c th thyINC R7 ; Chuyn qua trng thi kCJNE R7,#8, Loop ; ht bng m th lp liSJMP main
MaLed: DB 0FEh, 0FDh, 0FBh, 0F7h, 0EFh, 0DFh, 0BFh, 7FhDelay:
MOV TMOD,#01h ; Timer-0 : Mode-1 (16bit)MOV TH0,#HIGH(-50000) ; Ch 50 ms = 50.000sMOV TL0,#LOW(-50000)SETB TR0JNB TF0,$CLR TF0CLR TR0RETEND
1000000001h
M0M1C/TGATEM0M1C/TGATETMOD
01234567Bit
ThS.V Thin Lnh 4/15/2013
Vi iu khin 50
COUNTER Cc b nh thi (timers) cng c th dng nh
nhng b m (counters) m s kin xy ra bn ngoi 8051
Khi , xung t ngoi s lm tng gi tr cc thanh ghi TH, TL
Khi C/T=1, b m s m ln khi c xung xut hin t:
T0: timer 0 input (Pin 14, P3.4) T1: timer 1 input (Pin 15, P3.5)
99
V D: Gi nh 1 xung clock c a vo chn T1,vit chng trnh b m 1 lm vic mode 2 mxung & hin th gi tr ca TL1 ra P2, khi Counter trnth kt thc?Ans:
MOV TMOD, #01100000B ;mode 2, counter 1MOV TH1, #0 SETB P3.5SETB TR1 ;start
BACK: MOV A,TL1 MOV P2,A ;display in P2JNB TF1,BACK ;overflowCLR TR1 ;stopCLR TF1 ;make TF=0
100
ThS.V Thin Lnh 4/15/2013
Vi iu khin 51
2. iu khin LED 7 on Loi Anode chung
101
Loi Cathode chung
102
M cho LED Cathode chung(a l MSB, dp l LSB) M cho LED Cathode chung(a l LSB, dp l MSB)
ThS.V Thin Lnh 4/15/2013
Vi iu khin 52
PHNG PHP QUT LED
103
Sng 2 LED-71. org 0000h2. begin: setb p3.53. clr p3.4 4. mov p0,#0f6h5. lcall delay6. setb p3.47. clr p3.58. mov p0,#0feh9. lcall delay10. sjmp begin11. delay: mov r7,#01h 12. del2: mov r6,#0ffh 13. djnz r6,$ 14. djnz r7,del2 15. ret 16. end
104
ThS.V Thin Lnh 4/15/2013
Vi iu khin 53
Phng php cht
105
Do Led3 v Led4 ni vi 2 IC cht 74LS374 iu khinbng chn P1.0 v P1.1 nn hin th trn 2 Led cnxut d liu ra P0 v kch xung ti chn P1.0 v P1.1
MOV P0,#0B0h ;s 3 CLR P1.0 SETB P1.0 MOV P0,#99h ;s 4CLR P1.1 SETB P1.1 END
106
ThS.V Thin Lnh 4/15/2013
Vi iu khin 54
SNG 4 LED-7
107
XTAL218
XTAL119
ALE30
EA31
PSEN29
RST9
P0.0 /AD0 39
P0.1 /AD1 38
P0.2 /AD2 37P0.3 /AD3 36P0.4 /AD4 35
P0.5 /AD5 34
P0.6 /AD6 33P0.7 /AD7 32
P1.01P1.12P1.23
P1.34
P1.45P1.56P1.67
P1.78
P3.0 /RXD 10P3.1/TXD 11P3.2 /INT0 12
P3.3 /INT1 13
P3.4/T0 14
P3.7 /RD 17P3.6/WR 16P3.5/T1 15
P2.7 /A15 28
P2.0/A8 21
P2.1/A9 22P2.2 /A10 23P2.3 /A11 24
P2.4 /A12 25
P2.5 /A13 26P2.6 /A14 27
U1
AT89C51
X1
C133p
C233p
D1DIODE
D2DIODE
R110k
R2
330R
C310u
R3
4k7
R4
4k7
R54k7
2 3 4 5 6 7 8 91
RP1RESPACK-8
R6
4k7
M LN-XUNG
108
XTAL218
XTAL119
ALE30EA31
PSEN29
R ST9
P0.0/AD0 39P0.1/AD1 38
P0.2/AD2 37
P0.3/AD3 36
P0.4/AD4 35P0.5/AD5 34
P0.6/AD6 33
P0.7/AD7 32
P1.01
P1.12
P1.23
P1.34P1.45P1.56
P1.67
P1.78
P3 .0/RXD 10
P3.1/TXD 11
P3.2/INT0 12
P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15
P2.7/A15 28
P2 .0/A8 21P2 .1/A9 22
P2.2/A10 23
P2.3/A11 24P2.4/A12 25P2.5/A13 26
P2.6/A14 27
U1
AT89C51
X1
C133p
C233p
D1D IODE
D2DIODE
R110k
R2
3 30R
C310u
R34k7
R44k7
R5
4k7
2 3 4 5 6 7 8 91
RP1RESPACK-8
R6
4k7
ThS.V Thin Lnh 4/15/2013
Vi iu khin 55
iu khin ma trn Led
C 2 loi: Anode ni vi ct,
Cathode ni vi hng. Anode ni vi hng,
Cathode ni vi ct.
109
SNG MT IMPhng php: Nu ta tch cc cho mt hng, v mt ct. Th led giao gia hng, v ct s c tch cc ( sng)
SNG MT HNGPhng php: Nu ta tch cc tt c cc ct, th khi ta tch cc hng no th hng s sng
SNG MT CTPhng php: Ngc li nu ta tch cc cho tt c cc hng. Khi ta tch cc cho ct no th ct s sng
110
ThS.V Thin Lnh 4/15/2013
Vi iu khin 56
thc hin sng mt k t trn ma trn Led, ta phi dng
c ch qut, ti mi thi im ch sng mt ct, cc ct cn
li tt i nhng nu cho thi gian qut nhanh th ta vn
thy cc ct sng ng thi.
thc hin sng s 0 ta phi dng c ch qut sau:
111
Anode ni vi ct, Cathode ni vi hng
Chng trnh sng s 0
Org 000hmain:
MOV R0,#0 lap:
MOV A,R0 MOV DPTR,#cot MOVC A,@A+DPTRMOV P0,A ; Xut ct MOV A,R0 MOV DPTR,#hang MOVC A,@A+DPTR MOV P3,A ; Xut hng LCALL delay ; To delay 500usINC R0 ; Chuyn sang ct k
CJNE R0,#5,lap ;Nu qut 5 ct th lp li 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
112
ThS.V Thin Lnh 4/15/2013
Vi iu khin 57
113
org 0000h main: ;HANG=muc 0 va COT=muc 1 thi sangmov p3,#01111111b ;tich cuc hangmov p2,#00001100b ;tich cuc cot
lcall delaymov p3,#10111111b ;tich cuc hangmov p2,#00000010b ;tich cuc cot
lcall delaymov p3,#11011111b ;tich cuc hangmov p2,#00000001b ;tich cuc cot
lcall delaymov p3,#11101111b ;tich cuc hangmov p2,#00000001b ;tich cuc cot
lcall delaymov p3,#11110111b ;tich cuc hangmov p2,#00011101b ;tich cuc cot
lcall delay
mov p3,#11111011b ;tich cuc hangmov p2,#00001001b ;tich cuc cot
lcall delaymov p3,#11111101b ;tich cuc hang tu duoi len P3.1->P3.7mov p2,#00001110b ;tich cuc cot tu trai qua phai P2.0->P2.4
lcall delaysjmp main
delay: mov r1,#100loop1: nop
nopnopnopnopnopdjnz r1,loop1ret
End 114
Chng trnh sng chu G
ThS.V Thin Lnh 4/15/2013
Vi iu khin 58
iu khin ng c DC
115
116
XTAL218
XTAL119
ALE30
EA31
PSEN29
RST9
P0.0/AD0 39
P0.1/AD1 38
P0.2/AD2 37
P0.3/AD3 36
P0.4/AD4 35
P0.5/AD5 34P0.6/AD6 33
P0.7/AD7 32
P1.01
P1.12
P1.23
P1.34
P1.45
P1.56P1.67
P1.78
P3.0/RXD 10
P3.1/TXD 11
P3.2/INT0 12
P3.3/INT1 13
P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15
P2.7/A15 28
P2.0/A8 21
P2.1/A9 22
P2.2/A10 23P2.3/A11 24
P2.4/A12 25
P2.5/A13 26
P2.6/A14 27
U1
AT89C51
R11k
R21k
R41k
Q12N2222
Q22N2222
Q32N2222
Q42N2222
STOP START NGHICH
D1
LED-GREEN
D2
LED-RED
D3
LED-BLUE
ThS.V Thin Lnh 4/15/2013
Vi iu khin 59
iu khin ng c bc
117
iu khin ng c bc
loi 2 pha , 6 dy ( 4 cun dy , 2 common )118
ThS.V Thin Lnh 4/15/2013
Vi iu khin 60
iu khin chiu quay ng c
- i chiu quay bng cch lp trnh*Nu dch bc t tri sang phi th ng c s quay phi
*Nu dch bc t phi sang tri th ng c s quay tri
- i chiu quay bng phn cng
119
120
ThS.V Thin Lnh 4/15/2013
Vi iu khin 61
iu khin chiu quay ng c
quaytrai: mov p2,#01h lcall delay mov p2,#02h lcall delay mov p2,#04h lcall delay mov p2,#08h lcall delay sjmp quaytrai
121
quayphai: mov p2,#08h lcall delay mov p2,#04h lcall delay mov p2,#02h lcall delay mov p2,#01h lcall delay sjmp quayphai
IU KHIN LCD
V phn loi, LCD c nhiu loi :- 8 character *1 line- 16 character *1 line (2 line hoc 4 line)- 20 character * .....
122
ThS.V Thin Lnh 4/15/2013
Vi iu khin 62
LCD LCD c 16 chn:
123
CC THNH PHN CHC NNG CA LCD 16x2
124
ThS.V Thin Lnh 4/15/2013
Vi iu khin 63
125
126
ThS.V Thin Lnh 4/15/2013
Vi iu khin 64
CC LNH THNG DNG CA LCD
127
Cu hnh phn cng
EN bit P3.7RS bit P3.6RW bit P3.5DATA EQU P1
Trc khi c d liu phi Setb RW Trc khi ghi d liu phi Clr RW gi d liu hin th ta phi SETB RS gi lnh iu khin ta phi Clr RS
128
ThS.V Thin Lnh 4/15/2013
Vi iu khin 65
Kim tra trng thi ca LCDWAIT_LCD:
CLR EN ; chn ch ghi lnhCLR RS ; chn thanh ghi lnhSETB RW ;cho php c t LCDMOV DATA,#0FFh ;
SETB EN ; thit lp ch c(xung dng cnh ln) MOV A,DATA ;c gi tr t LCDthanh ghi AJB ACC.7,WAIT_LCD ;nu bit7=1 tc LCD cn bn
CLR EN ;nu bit7=0, thit lp ch ghi(xung m cnh xung)CLR RW ; cho php ghi vo LCD
RET
129
Khi to LCD
Cc bc khi to gi tr ban u cho LCD :
Qu trnh khi to LCD ny ch thc hin mt ln.
Gi m lnh 38h: khi to cho LCD ch dng 8bit, 2 line, dot 5*8.
Gi m lnh 0Eh: bt ch con tr (ko dng nhp nhy, nu bn
mun con tr nhp nhy nh trong ch Word, th thay bng gi m
lnh 0FH) y l m lnh Display on/off control.
Gi m lnh 06h: y l m lnh Entry mode set thit lp ch dch
chuyn con tr.
130
ThS.V Thin Lnh 4/15/2013
Vi iu khin 66
ON CHNG TRNH KHI TO LCDINIT_LCD:
CLR RSMOV DATA,#38h; LCD ch dng 8bit, 2 line, dot 5*8
SETB ENCLR EN
LCALL WAIT_LCD ; kim tra xem LCD c bn khngCLR RSMOV DATA,#0Eh ; bt ch con tr
SETB ENCLR EN
LCALL WAIT_LCD ; ; kim tra xem LCD c bn khng CLR RSMOV DATA,#06h ; thit lp ch dch chuyn con tr.
SETB ENCLR EN
LCALL WAIT_LCD ; ; kim tra xem LCD c bn khngRET
131
Xa hin th LCD
CLEAR_LCD:CLR RSMOV DATA,#01hSETB ENCLR ENLCALL WAIT_LCD
RET
132
ThS.V Thin Lnh 4/15/2013
Vi iu khin 67
GHI LNH VO LCD
write_command: CLR RS ;chon thanh ghi lenh CLR RW SETB EN CLR EN LCALL Delay RET
133
Ghi d liu vo LCD
WRITE_TEXT:MOV DATA,A ;xut d liuSETB RS ;chn thanh ghi d liuSETB ENCLR ENLCALL WAIT_LCD
RET
134
ThS.V Thin Lnh 4/15/2013
Vi iu khin 68
V d: xut ch Hello! ra LCDLCALL INIT_LCDLCALL CLEAR_LCDMOV A,#'H'LCALL WRITE_TEXTMOV A,#'E'LCALL WRITE_TEXTMOV A,#'L'LCALL WRITE_TEXTMOV A,#'L'LCALL WRITE_TEXTMOV A,#'O'LCALL WRITE_TEXTMOV A,#'!'LCALL WRITE_TEXT
135
WRITE_TEXT:MOV DATA,A
SETB RS SETB ENCLR ENLCALL WAIT_LCD
RET
V tr con tr
VD1:CLR RS ; chn thanh ghi lnhMOV DATA,#0C0h; a con tr v u dng 2SETB ENCLR ENLCALL WAIT_LCD
VD2: CLR RS ; chn thanh ghi lnhMOV DATA,#0C4h; a con tr v v tr th 4-dng 2SETB ENCLR ENLCALL WAIT_LCD 136
ThS.V Thin Lnh 4/15/2013
Vi iu khin 69
V d
137
LCALL INIT_LCDLCALL CLEAR_LCD;xut ch Hello trn u dng 1MOV A,#'H'LCALL WRITE_TEXTMOV A,#'E'LCALL WRITE_TEXTMOV A,#'L'LCALL WRITE_TEXTMOV A,#'L'LCALL WRITE_TEXTMOV A,#'O'LCALL WRITE_TEXT
CLR RSMOV DATA,#0C0hSETB ENCLR ENLCALL WAIT_LCD;xut ch World trn u dng 2MOV A,#'W'LCALL WRITE_TEXTMOV A,#'O'LCALL WRITE_TEXTMOV A,#'R'LCALL WRITE_TEXTMOV A,#'L'LCALL WRITE_TEXTMOV A,#'D'LCALL WRITE_TEXT
CNG NI TIP
89C51 c 1 port ni tip. Chc nng chnh ca port ni tip l:
- Chuyn i t song song ni tip i vi d liu xutv ni tip song song i vi d liu nhp.
Truy cp phn cng vi port ni tip thng qua port 3:p3.0 (RXD) chn 10 v p3.1 (TXD) chn 11.
- Port ni tip hot ng song cng.- Hai thanh ghi SBUF v SCON: cho truy xut n cngni tip bng phn mm.
B m SBUF a ch 99H tht ra l 2 b m lSBUF ch cho ghi, v SBUF ch cho c.
138
ThS.V Thin Lnh 4/15/2013
Vi iu khin 70
CC CH CNG NI TIP
139
Thanh ghi cng ni tip
Bit K hiu a ch M t hot ng7 SM0 9FH Bit 0 ca mode port ni tip6 SM1 9EH Bit 1 ca mode port ni tip
5 SM2 9DHBit 2 ca mode port ni tip. Cho php truyn kt ni nhiu vi x l. mode 2 v 3 RI s khng tch cc nu bit th 9 thu vo l 0
4 REN 9CH Cho php nhn k t
3 TB8 9BHPht bit 8, bit 9 pht trong mode 2 v 3, n c setb hoc clr bng phn mm
2 RB8 9AH Thu bit 8, bit 9 thu
1 TI 99HC ngt pht, c set khi truyn xong 1 k t v c xo bi phn mm
0 RI 98HC ngt thu, c set khi nhn xong 1 k t v c xo bi phn mm 140
RB8REN
0
SM0
7
RI
1
SM1
2
SM2
3
TB8
45
TI
61. Thanh ghi SCON:
ThS.V Thin Lnh 4/15/2013
Vi iu khin 71
Xc nh ch
141
2. Thanh ghi m d liu truyn nhn: SBUF (serial buffer)
L thanh ghi 8 bit, truy xut byte, cho php cha byte d liu cn
truyn v byte d liu nhn c t ni khc truyn n.
3. Thanh ghi iu khin cng sut: PCON(power control)
L thanh ghi 8 bit, truy xut byte
SMOD: nhn i tc truyn nhn bit 6, 5, 4: khng s dng GF1
(general flag 1), GF0 (general flag 1): user bit
PD (power down): vi iu khin hot ng ch t tiu tn nng
lng (nu t bng 1, mc nh l 0)
IDL (idle): trng thi ngh ca vi iu khin (nu t bng 1, mc
nh l 0)
142
ThS.V Thin Lnh 4/15/2013
Vi iu khin 72
TO TC BAUD
143
RxD
TxD
8951
10
11Sbuf: 8 bit
RxD: ng tn hiu nhn
TxD: ng tn hiu truyn
10uF
CO
MPO
RT-
DB
9
594837261
10uF 10uF 10uF
U1 MAX232
1345
1615
26
12
9
11
10
13
8
14
7C1+C1-C2+C2-
VC
CG
ND
V+
V-
R1OUT
R2OUT
T1IN
T2IN
R1IN
R2IN
T1OUT
T2OUT
VCC
TO 8
951
12
To tc Baud bng Timer1Khi dng Timer1 to tc Baud, thngthng cn thit lp Timer1 hot ng ch 8 bit t np li v gi tr np ban u caTimer1 (cha trong thanh ghi TH1 ) phthuc vo tc Baud cn to theo cngthc sau:
144
ThS.V Thin Lnh 4/15/2013
Vi iu khin 73
V d:
145
146
ThS.V Thin Lnh 4/15/2013
Vi iu khin 74
Cc gi tr np thng dng
147
Cc bc K hot ng cng ni tip
148
ThS.V Thin Lnh 4/15/2013
Vi iu khin 75
149
150
ThS.V Thin Lnh 4/15/2013
Vi iu khin 76
151
Chng 5: X L NGT Ngt l qu trnh dng chng trnh ang thc thi phc v cho mt
chng trnh khc khi xy ra mt s kin. Chng trnh x l s kin
ngt gi l chng trnh phc v ngt (ISR Interrupt Service Routine).
H MCS-51 c tng cng 5 ngun ngt khc nhau:
ngt ngoi 0, 1 (ti cc chn INT0 , INT1),
timer 0, 1 (khi timer tng ng trn),
cng ni tip (khi c k t n hay khi truyn k t i).
Khi c 2 hoc nhiu ngt ng thi, hoc mt ngt xy ra trong khi 1
ngt khc ang c phc v, th c 2 cch gii quyt:
s tun t hi vng v s u tin. Vic hi vng tun t th c nh,
cn u tin ngt th c th lp trnh 152
ThS.V Thin Lnh 4/15/2013
Vi iu khin 77
Cc thanh ghi iu khin hot ng
Thanh ghi IE (Interrupt Enable): a ch A8H. Cho php v cm cc ngt.
153
Bit Ky hieu a ch bit Chc nang( Enabla=1, Dissble =0 )
7 EA AFH Cho phep ngat toan bo hoac cam toan bo6 AEH Cha dung5 ET2 ADH Dung cho 89C524 ES ACH Cho phep ngat port noi tiep3 ET1 ABH Cho phep ngat Timer 12 EX1 AAH Cho phep ngat ngoai 11 ET0 A9H Cho phep ngat Timer 00 EX0 A8H Cho phep ngat ngoai 0
2. U TIN NGT Thanh ghi IP (Interrupt Priority): a ch
B8H.
154
ThS.V Thin Lnh 4/15/2013
Vi iu khin 78
3. HI VNG TUN T Nu 2 ngt cng u tin xy ra ng
thi, th hi vng tun t s xc nh cino s phc v trc theo th t nh sau:
1.Ngt ngoi 0, 2.timer 0, 3.Ngt ngoi 1, 4.timer 1, 5.port ni tip 6.timer 2.(89x52)
155
Cc vect ngt
156
ThS.V Thin Lnh 4/15/2013
Vi iu khin 79
CC V D V NGT
V d 1: Vit chng trnh to sng vung tn s f = 5 KHzti P1.0 dng ngt timer 1 (gi s tn s thch anh l 12MHz).Gii
f = 5 KHz T = 200 s (200 chu k) thi gian tr hon: 100 chu k
Gi tr m = 100 : dng ch 8 bitTMOD = 0010 0000b (20h)
Ni dung thanh ghi IE:IE = 1000 1000b (88h)
157
Chng trnh thc hin nh sau:
ORG 0000hLJMP main
ORG 001Bh ; ctr ngtCPL P1.0 ; o bitRETI ; tr v ctrnh chnh t ISR
Main:MOV TMOD,#20hMOV IE,#88h
; C th thay th bng 2 lnh sau:; SETB EA; SETB ET1
MOV TH1,#(-100)MOV TL1,#(-100)SETB TR1SJMP $
; Lp ti ch, ngha l chng trnh khng lm g c, ch timer trn ;(cc ng dng thc t c th x l cc cng vic khc)
END
158
Lu rng lnh CPL P1.0 chim 2 byte, lnh RETI chim 1byte, tng cng ISR cho timer 1 l 3 byte khng vt qu 8 byte nnc th t trc tip ti a ch 001Bh.
ThS.V Thin Lnh 4/15/2013
Vi iu khin 80
V d 2: Vit chng trnh to xung vung tn sf=10KHz ti P1.0 dng ngt timer 0 v xung vungtn s f=1KHz ti P1.1 dng ngt timer 1.
Gii Gi tr m cho timer 0: 50. Gi tr m cho timer 1: 500. timer 0: 8 bit, timer 1: 16 bit TMOD = 0001 0010b (12h) Ni dung thanh ghi IE: IE = 1000 1010b (8Ah)
159
Chng trnh thc hin nh sau:
ORG 0000hLJMP main
ORG 000BhCPL P1.0RETIORG 001Bh
MOV TH1,#HIGH(-500) ;2 byteMOV TL1,#LOW(-500) ;2 byte
CPL P1.1 ;2 byteRETI ;1 byte
Main: MOV TMOD,#12hMOV IE,#8AhSETB TR0SETB TR1MOV TH1,#HIGH(-500)MOV TL1,#LOW(-500)MOV TH0,#(-50)MOV TL0,#(-50)SJMP $END
160
Trong v d ny, do timer 1 hot ng ch 16 bit nn mi ln timer trn phi thc hin np li gi tr cho timer 1.
ThS.V Thin Lnh 4/15/2013
Vi iu khin 81
Ngt ngoi MCS-51 c 2 ngun ngt ngoi khc nhau: ngt ngoi 0 v ngt ngoi 1.
Ngt ngoi xy ra khi bit IEx chuyn ln mc 1, qu trnh chuyn mc cabit IEx xy ra khi:
Bit ITx = 0 v xut hin mc logic 0 ti chn INTx tng ng (P3.2 chongt ngoi 0 hay P3.3 cho ngt ngoi 1).
Bit ITx = 1 v xut hin cnh m ti chn INTx. Khi c ngt xy ra v cho php ngt (dng thanh ghi IE), chng trnh
s c chuyn n a ch ca ISR tng ng (0003h cho ngt ngoi 0 v0013h cho ngt ngoi 1) v xo c ngt TFx.
Lu rng cc c ngt c ly mu trong mi chu k nn pht hinngt, yu cu phi:
mc thp ti thiu 1 chu k nu tc ng bng mc logic (ITx = 0). mc cao ti thiu 1 chu k trc khi chuyn xung mc thp v mc
thp cng phi tn ti ti thiu 1 chu k (ITx = 1). Qu trnh iu khin ngt ngoi m t nh sau: Xc nh yu cu ngt bng cnh m hay bng mc logic. Cho php ngt ti ngt ngoi tng ng (dng thanh ghi IE). Xc nh mc u tin (thanh ghi IP). Vit ISR cho cc ngt.
161
1. Org 00h2. Ljmp main3. Org 0013h4. lcall ct15. Reti6. Main:7. mov IE,#84h8. Sjmp $9. Ct1:10. Cpl P1.111. ret12. end
162
;dao trang thai bit;----------------------------------
#include org 00hljmp main
org 03hljmp int0isr
org 40hmain:
setb it0setb ex0setb ea
sjmp $
int0isr:mov a,p1cpl amov p1,areti
end
ThS.V Thin Lnh 4/15/2013
Vi iu khin 82
Vit chng trnh ASM cho 89C51 vi yu cu sau:- S dng Counter 0, ch 1.- Khi Counter m n gi tr 60000 th sng LED
n kt ni vi P2.0- V s mch kt ni phn cng theo yu cu trn.
163
1. Led n 2. Qut phm n 3. Ma trn phm 4. Led 7 on 5. Led ma trn 6. Timer/counter 7. Ngt 8. Cng ni tip 9. LCD
164
ThS.V Thin Lnh 4/15/2013
Vi iu khin 83
165