83
ThS.Võ Thiện Lĩnh 4/15/2013 Vi điều khiển 1 1 GV: ThS.VÕ THIỆN LĨNH TRƯỜNG ĐH GTVT CƠ SỞ 2 Email: [email protected] 2 Vi xử lý • CPU cho các máy tính • Không có RAM, ROM, I/O trên CPU chip • Vd: Intel’s x86, Motorola’s 680x0

Bai Giang Vdk Linh Ppt

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