giaotrinh8051

Embed Size (px)

Citation preview

  • 8/7/2019 giaotrinh8051

    1/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 1 - www.EmbestDKS.com

  • 8/7/2019 giaotrinh8051

    2/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 2 - www.EmbestDKS.com

    MC LCBi 1: Gii thiu v vi iu khin 3

    1.1.Tiu chun trong la chn mt b vi iu khin 3

    1.2.Vi iu khin v vi x l 3

    1.3.S chn vi iu khin 8051 3

    1.4.Mch 8051 ti thiu 6

    1.5.Cu trc s khi ca vi iu khin 7

    1.6.Cc thnh vin khc ca h 8051 9

    1.7.Ram ni v cc thanh ghi SFR ca 8051 11

    Bi 2.Ngn nglp trnh cho vi iu khin (Phn 1) 12

    2.1.Cu trc mt chng trnh

    122.2.Cc loi bin trong C 13

    2.3.Hm trong C 15

    2.4.Ton t cbn 15

    2.5.Cu trc lnh r nhnh 15

    2.6.B tin x l 16

    Bi 2.Hng dn sdng keil C (Phn 2) 17

    2.1.Khi to project 17

    2.2.Son tho chng trnh 362.3.Dch chng trnh 41

    2.4.M phng 45

    Bi 3.iu khin O(out) vi Led n 50

    3.1.Lp mch 50

    3.2.Nguyn l hot ng 51

    3.3.Lp trnh 52

    3.4.Np chng trnh 60

    3.5.Kt qu 61

    3.6.iu khin Led tng chic 1 62

    3.7.iu khin Out 62

    Bi 4.iu khin led 7 thanh 67

    4.1.Lp mch 67

  • 8/7/2019 giaotrinh8051

    3/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 3 - www.EmbestDKS.com

    4.2.Nguyn l hot ng 68

    4.3.Lp trnh 69

    4.4.Np chp75

    4.5.Kt qu 75

    Bi 5.c bn phm 78

    5.1.Lp mch 78

    5.2.Nguyn l qut phm 79

    5.3.Lp trnh 79

    Bi 6.iu khin LCD 16x2 94

    6.1.Lp mch 94

    6.2.Nguyn l hot ng ca LCD 97

    6.3.Lp trnh 97

    6.3.1.nh ngha con tr 99

    6.3.2.Cch s dng 99

    Bi7.iu ch rng xung 100

    7.1.Lp mch theo s 101

    7.2.Nguyn l hot ng 110

    Bi 8.Led ma trn1148.1.Lp mch 114

    8.2.Nguyn l hot ng 116

    8.2.Code 117

  • 8/7/2019 giaotrinh8051

    4/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 4 - www.EmbestDKS.com

    Ch : y hon ton l phn l thuyt, mnh rt gn ti a, do cc bn nn c

    ht. Cha nn thc hnh vi v ti s hng dn sau.1.1 Tiu chun trong la chn mt b vi iu khinL kh nng sn sng p ng v s lng trong hin ti v tng lai. i vi mt s

    nh thit kiu ny l quan trong hn c . Hin nay, cc b vi iu khin 8 bit ngu l h 8051 c s lng ln nht cc nh cung cp a dng (nhiu ngun). Nhcung cp c ngha l nh sn xut bn cnh nh sng ch ca b vi iu khin. Trongtrng hp 8051 th nh sng ch ca n l Intel, nhng hin nay c rt nhiu hngsn xut n (cng nh trc kia sn xut).

    Cc hng ny bao gm: Intel, Atmel, Philips/signe-tics, AMD, Siemens, Matrav Dallas, Semicndictior.

    Bng a ch ca mt s hng sn xut cc thnh vin ca h 8051.Hng a ch WebsiteIntelAntelPlips/ SignetisSiemensDallas Semiconductor

    www.intel.com/design/mcs51www.atmel.comwww.semiconductors.philips.comwww.sci.siemens.comwww.dalsemi.com

    8051 l mt b x l 8 bit c ngha l CPU ch c th lm vic vi 8 bit dliu ti mt thi im. D liu ln hn 8 bit c chia ra thnh cc d liu 8 bit cho x l. 8051 c tt c 4 cng vo - ra I/O mi cng rng 8 bit. Cc nh sn xut cho xut xng ch vi 4K byte ROM trn chp.

    Bng cc c tnh ca 8051 u tin.c tnh S lng

    ROM trn chpRAMBnh thiCc chn vo - raCng ni tipNgun ngt

    4K byte128 byte23216

    1.2.Vi iu khin v vi xl:Xin nhc n ci my tnh ca bn, con chp Intel hay ADM ca bn l 1 b vi x l,n khng c RAM, ROM,cng IO v cc thit b ngoi vi on Chip. Cn vi iu khincha 1 b vi x l v RAM,ROM, cng IO, v c th c cc thit b ngoi vi.1.3. S chn vi iu khin 8051:L IC ng v dng DIP c 40 chn, mi chn c mt k hiu tn v c cc chc nng

    nh sau:Chn 40: ni vi ngun nuI +5V.Chn 20: ni vi t(Mass, GND).Chn 29 (PSEN)(program store enable) l tn hiu iu khin xut ra ca 8051, n

    cho php chn b nhngoi v c ni chung vi chn ca OE (Outout Enable) ca

    EPROM ngoi cho php c cc byte ca chng trnh. Cc xung tn hiu PSEN

    h thp trong sut thi gian thi hnh lnh. Nhng m nh phn ca chng trnh c

  • 8/7/2019 giaotrinh8051

    5/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 5 - www.EmbestDKS.com

    c t EPROM i qua bus d liu v c cht vo thanh ghi lnh ca 8051 bi m

    lnh.(ch vic c y l c cc lnh (khc vi c d liu), khi VXL chc

    cc bit opcode ca lnh v a chng vo hng i lnh thng qua cc Bus a ch v

    d liu)

    Chn 30 (ALE : Adress Latch Enable) l tn hiu iu khin xut ra ca 8051, n cho

    php phn knh bus a ch v bus d liu ca Port 0.

    Chn 31 (EA : Eternal Acess) c a xung thp cho php chn b nhm ngoI

    i vi 8051.

    i vi 8051 th : EA = 5V : Chn ROM ni. EA = 0V : Chn ROM ngoi.

    32 chn cn li chia lm 4 cng vo ra:

    Vo ra tc l c th dng chn c mc logic (0;1 tng ng vi 0V ; 5V)vohay xut mc logic ra(0;1)

    P0 t chn 39 32 tng ng l cc chn P0_0 P0_7P1 t chn 1 8 tng ng l cc chn P1_0 P1_7P2 t chn 2128 tng ng l cc chn P2_0 P2_7P3 t chn 10 17 tng ng l cc chn P3_0 P3_7

    Ring cng 3 c 2 chc nng mi chn nh trn hnh v:P3.0 RxD : chn nhn d liu ni tip khi giao tip RS232(Cng COM ).P3.1 _ TxD : phn truyn d liu ni tip khi giao tip RS232.

    P3.2 _ INTO : interrupt 0 , ngt ngoi 0.P3.3 _ INT1: interrupt 1, ngt ngoi 1.P3.4 _T0 : Timer0 , u vo timer0.P3.5_T1 : Timer1, u vo timer 1.P3.6_ WR: Write, iu khin ghi d liu.P3.7 _RD: Read , iu khin c d liu.

    Chn 18, 19 ni vi thch anh to thnh mch to dao ng cho VK

    P0 P1 P2 P3 Port's BitP0.0 P1.0 P2.0 P3.0 D0

    P0.1 P1.1 P2.1 P3.1 D1P0.2 P1.2 P2.2 P3.2 D2P0.3 P1.3 P2.3 P3.3 D3P0.4 P1.4 P2.4 P3.4 D4P0.5 P1.5 P2.5 P3.5 D5P0.6 P1.6 P2.6 P3.6 D6P0.7 P1.7 P2.7 P3.7 D7

    U1

    AT89C51

    31

    1918

    9

    12131415

    1234567

    8

    393837363534

    3332

    2122232425262728

    1716

    293011

    10

    40

    20

    EA/VP

    X1X2

    RESET

    INT0INT1T0T1

    P1.0P1.1P1.2P1.3P1.4P1.5P1.6

    P1.7

    P0.0P0.1P0.2P0.3P0.4P0.5

    P0.6P0.7

    P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7

    RDWR

    PSENALE/PTXD

    RXD

    VCC

    VSS

  • 8/7/2019 giaotrinh8051

    6/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 6 - www.EmbestDKS.com

    Tn s thch anh thng dng trong cc ng dng l : 11.0592Mhz(giao tip vi cngcom my tnh) v 12Mhz Tn s ti a 24Mhz. Tn s cng ln VK x l cngnhanh.

    Dao ng ca thch anhS1 S2 S3 S4 S5

    S6

    P1 P2

    Ring cng 3 c thm chc nng nh di yP3.0 RxD : chn nhn d liu ni tip khi giao tip RS232(Cng COM ).P3.1 _ TxD : phn truyn d liu ni tip khi giao tip RS232.P3.2 _ INTO : interrupt 0 , ngt ngoi 0.P3.3 _ INT1: interrupt 1, ngt ngoi 1.P3.4 _T0 : Timer0 , u vo timer0.P3.5_T1 : Timer1, u vo timer 1.P3.6_ WR: Write, iu khin ghi d liu.P3.7 _RD: Read , iu khin c d liu.

    Chn 18, 19 ni vi thch anh to thnh mch to dao ng cho VKTn s thch anh thng c dng trong cc ng dng l : 11.0592Mhz(giao tipvi cng com my tnh) v 12Mhz

    Tn s ti a 24Mhz. Tn s cng ln VK x l cng nhanh.

    U3

    8051

    31

    1918

    9

    3938373635343332

    20

    40

    EA/VP

    X1X2

    RESET

    P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7

    GND

    VCC

    R110K

    5VDC

    C133p

    + C310uF/25V

    C233p

    R7

    R410Kx9

    R9

    12Mhz

  • 8/7/2019 giaotrinh8051

    7/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 7 - www.EmbestDKS.com

    Mch ny cha c khi ngun to ngun 5V cc bn dng con IC sau:

    S chn:

    Gii thiu IC n p 7805 : u vo > 7V u ra 5V 500mA. Mch n p: cn choVK v nu ngun cho VK khng n nh th s treo VK, khng chy ng, hocreset lin tc, thm ch l cht chp.Mch ngun

    U1

    LM7805/TO1

    2

    3VIN

    GND

    VOUT

    + C3

    10uF/25V

    12VDC In

    C2

    104

    5VDC Out

    C1

    104

    1.4. Mch vi iu khin cbn

    12Mhz

    U1

    8051

    19

    18

    9

    40

    20 X1

    X2

    RESET

    VCC

    VSS

    + C3

    10uF/25V

    5VDC

    R110K

    C233p

    C133p

    U6LM7805/TO1 3

    2

    VIN VOUT

    GND

  • 8/7/2019 giaotrinh8051

    8/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 8 - www.EmbestDKS.com

    1.5. Cu trc vi iu khin 89c51

    Ch :S khi bn trong con 8051 c nhng ti nguyn . Interrupt, Ram, Timer,Serial prort.1.6.Cc thnh vin khc ca h 8051:C hai b vi iu khin thnh vin khc ca h 8051 l 8052 v 8031.B vi iu khin 8052: 8052 c tt c cc c tnh chun ca 8051 ngoi ra n cthm 128 byte RAM v mt bnh thi na. Hay ni cch khc l 8052 c 256 byteRAM v 3 bnh thi. N cng c 8K byte ROM. Trn chp thay v 4K byte nh8051.

    Bng : So snh cc c tnh ca cc thnh vin h 8051.

    c tnh 8051 8052ROM trn chip 4K byte 8K byteRAM 128 byte 256 byteBnh thi 2 3Cng ni tip 1 1Ngun ngt 6 8

    Do vy tt c mi chng trnh vit cho 8051 u chy trn 8052 nhng iungc li l khng ng.c bit : Mt nh sn xut chnh ca h 8051 khc na lPhilips Corporation. Hng ny c mt di la chn dng ln cho cc b vi iu khin

    COUNTER

    OS

    INTERRUPT

    4 I/OPORTS

    BUSCONTRO

    SERIALPORT

    EXTERNALINTERRUPTS

    CPU

    ON -CHIP

    ETC

    TIMER

    TIMER

    ADDRESS/DAT

    TXD RXDP P P P

  • 8/7/2019 giaotrinh8051

    9/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 9 - www.EmbestDKS.com

    h 8051. Nhiu sn phm ca hng c km theo cc c tnh nh cc b chuyni ADC, DAC, chn PWM, cng I/0 mrng .

    Update sn phm 8051 mi ti cc trang web ca cc nh sn xut a chc phn gii thiu. Ch yu:www.atmel.com1.7.Ram ni v cc thanh ghi

    Cc thanh ghi SFRc a ch nm gia 80Hv FFH cc a ch ny

    F0 F7 F6 F5 F4 F3 F2 F1 F0

    E0 E7 E6 E5 E4 E3 E2 E1 E0

    D0 D7 D6 6D 6C 6B 6A 69 68

    B8 - - - BC BB BA B9 B8

    B0 B7 B6 B5 B4 B3 B2 B1 B0

    A8 AF AE AD AC AB AA A9 A8

    A0 A7 A6 A5 A4 A3 A2 A1 A0

    99 Khng nh a ch tng bt98 9F 9E 9D 9C 9B 9A 99 98

    90 97 96 95 94 93 92 91 908D Khng nh a ch tng bt8C Khng nh a ch tng bt8B Khng nh a ch tng bt8A Khng nh a ch tng bt89 Khng nh a ch tng bt88 8F 8

    E8D 8C 8B 8A 89 88

    87 Khng nh a ch tng bt

    83 Khng nh a ch tng bt82 Khng nh a ch tng bt81 Khng nh a ch tng bt80 87 86 8

    5

    84 83 82 81 80

    THANH GHI CHC NNG C BIT

  • 8/7/2019 giaotrinh8051

    10/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 10 - www.EmbestDKS.com

    trn 80H, v cc a ch t 00 n 7FH l a ch ca b nhRAM bn trong8051. Khng phi tt c mi a ch t 80H n FFH u do SFR s dng, nhngv tr ngn nht 80H n FFH cha dngl d tr v lp trnh vin 8051 cngkhng c s dng.

    Bng : chc nng ca thanh ghi chc nng c bit SFR

    SFR nh a ch tng bit( nhng thanh ghi cn nhi khi lp trnh cbn C)

    Thanh ghi /Bit

    K hiu Chc nng

    TMOD Chn model cho bnh thi 17 GATE Bt iu khin cng. Khi c set ln 1, bnh

    thi ch hot ng trong khi INT1 mc cao6 C/T Bt chn chc nng m hoc nh thi:

    1= m skin0= nh thi trong mt khong thi gian

    5 M1 Bit chn ch thnht4 M0 Bit chn ch th2

    M1 M0 Ch

    Chc nng

    0 0 0 Chnh thi 13 bit0 1 1 Chnh thi 16 bit1 0 2 Ch tng np li 8

    bit1 1 3 Chnh thi chia x

    3 GATE Bit iu khin cng cho bnh thi 02 C/T Bit chn chc nng m /nh thi cho bnh

    thi 01 M1 Bit chn ch thnht cho bnh thi 00 M0 Bit chn ch th2 cho bnh thi 0

    TF1 TR1 TF1 TR0 IE1 IT1 IE0 IT0Thanh ghi / Bit K hiu Chc nng

    TCON iu khin binh thiTCON.7 TF1 Ctrn ca bnh thi 1. Cny c set bi

    phn cng khi c trn, c xo bi phn mm,hoc bi phn cng khi b vi xl trn trnh

    phc v ngtTCON.6 TR1 Bit iu khin hot ng ca bnh thi 1. Bit

    ny c set hoc xo bi phn mm iukhin bnh thi hot ng hay ngng

    TCON.5 TF0 Ctrn ca bnh thi 0TCON.4 TR0 Bit iu khin hot ng ca bnh thi 0TCON.3 IE1 Cngt bn ngoi 1 (kch khi cnh). Cny

    c set bi phn cng khi c cnh m (cung)xut hin trn chn INT1, c xo bi phnmm, hoc phn cng khi CPU trn trnh

    phc v ngt

  • 8/7/2019 giaotrinh8051

    11/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 11 - www.EmbestDKS.com

    TCON.2 IT1 Cngt bn ngoi 1 (kch khi cnh hoc mc).Cny c set hoc xo bi phn mm khi xyra cnh m hoc mc thp ti chn ngt ngoi

    TCON.1 IE0 Cngt bn ngoi 0 (kch khi cnh)TCON.0 IT0 Cngt bn ngoi 0 ( kch khi cnh hoc mc)EA ET2 ES ET1 EX1 EX0 ET0

    iu khin cc ngun ngtIE (0: khng cho php; 1: cho php)

    IE.7 EA Cho php/ khng cho php ton ccIE.6 --- Khng sdngIE.5 ET2 Cho php ngt do bnh thi 2IE.4 ES Cho php ngt do port ni tipIE.3 ET1 Cho php ngt cho bnh thi 1IE.2 EX1 Cho php ngt tbn ngoi (ngt ngoi 1)IE.1 EX0 Cho php ngt tbn ngoi (ngt ngoi 0)

    IE.0 ET0 Cho php ngt do bnh thi 0

    CH 3 thanh ghi ny cng rt cbn, nhtn thanh ghi, tn cc bt trong thanh ghi,

    chc nng tng thanh ghi v tng bt trong thanh ghi.

    1.8.Gii thiu squa cc ngun ngt:

    Ngt do C a ch vectorReset h thng RST 0000HNgt ngoi 0 IE0 0003H

    Bnh thi 0 TF0 000BHNgt ngoi 1 IE1 0013HBnh thi 1 TF1 001BHPort ni tip RI hoc TI 0023H

    Bnh thi 2 TF2 hoc EXF2 002BH

    Timer

    * ** * ** * **

    Main Program

    Main

    ISR

    Main

    ISR

    Main

    ISR

    Main

    Program excution without interrut

    Program excution with interrupt.

  • 8/7/2019 giaotrinh8051

    12/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 12 - www.EmbestDKS.com

    Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh cngt th c khi no iu kin ngt c m bo th con tr s nhy sang hm ngtthc hin xong hm ngt li quay vng ch c v thc hin tip chng trnh. Tac 1 v d nh sau: Bn ang n cm , c ting in thoi , bn t bt cm ra nghein thoi , nghe xong li quay v bng bt cm ln n tip. Th qu trnh n cm cabn l chng trnh chnh,c in thoi gi n l iu kin ngt, bn ra nghe inthoi l thc hin chng trnh ngt(Interrupt Service Rountine),quay vn cm tipl tip tc thc hin chng trnh chnh.

    Ngt i vi ngi mi hc vi iu khin l rt kh hiu, v a s cc ti liu ukhng gii thch ngt lm g. C nhiu loi ngt khc nhau nhng tt cu cchung 1 c im, ngt dng cho mc ch a nhim. a tc l nhiu, nhim tc lnhim v. Thc hin nhiu nhim v .Cc bn nhn vo tin trnh ca hm main vichng trnh c ngt :Chng trnh chnh ang chy, ngt xy ra, thc hin hm ngt ri quay li chng

    trnh chnh. Chng trnh trong vi iu khin khc vi v dn cm nghe in thoica ti ch , thi gian thc hin hm chnh l rt ln,thi gian thc hin hm ngtl rt nh, cho nn thi gian thc thi hm ngt khng nh hng nhiu lm n chcnng hm chnh. Nh vy trong hm ngt cc bn lm 1 vic, trong hm chnh ccbn lm 1 vicnh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 quang thi gian tng ingn c mS, ch thc ra ti 1 thi im vi iu khin ch thc thi 1 lnh.V d : Bn th nghxem lm th no va iu ch xung PWM iu chnh tcng c, va c cc cm bin u vo m tc ng cph thuc u vo cmbin.

    2.1.Cu trc mt chng trnh://nh km cc file#include #include //Khai bo bin ton ccunsigned char x,y;int z;long n=0;//Khai bo v nh ngha cc hm

    void Hm1(void){//Cc cu lnh

    }

    void Hm2(unsigned char x){

    //Cc cu lnh}

  • 8/7/2019 giaotrinh8051

    13/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 13 - www.EmbestDKS.com

    //Hm chnh bt buc chng trnh no cng phI cvoid main(void){

    //Cc cu lnh}

    Cc cu lnh trong hm chnh c th c li gi cc hm khai bo trnhoc khngKhi c li gi hm no th chng trnh nhy n hm thc hin hm xong contr li quay v chng trnh chnh(hm main) thc hin tip cc hm hoc cu lnh.Cc cu lnh trong C kt thc bng du ;Cc li giI thch c t trong du: Mu bng /* kt thc bng */Nu li giI thch trn 1 dng th c th dng du: //Khi lp trnh nn giI thch cc cu lnh khi lnh lm g v sau khi chng trnhln d sa li.

    2.2.Cc loi bin trong C:

    Dng bin S Bit S Byte Min gi tr

    char 8 1 -128 n +127

    unsigned char 8 1 0 n 255

    short 16 2 -32,768 n +32,767

    unsigned short 16 2 0 n 65,535

    int 16 2 -32,768 n +32,767

    unsigned int 16 2 0 n 65,535

    long 32 4-2,147,483,648n+2,147,483,647

    unsigned long 32 4 0 n 4,294,697,295

    Khai bo binCu trc : Kiu bin Tn binVD: unsigned char x;Khi khai bo bin c th gn lun cho bin gi tr ban u.VD :Thay v: unsigned char x;x=0;

    Ta ch cn : unsigned char x=0;C th khai bo nhiu bin cng mt kiu mt lcVD: unsigned int x,y,z;Ngoi ra dng cho vi iu khin trnh dch chuyn dng cn h trcc loi binsau:

    Dng bin S Bit S Byte Min gi tr

    bit 1 0 0 ; 1

    sbit 1 0 0 ; 1

  • 8/7/2019 giaotrinh8051

    14/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 14 - www.EmbestDKS.com

    sfr 8 1 0 n 255

    sf16 16 2 0 n 65,535

    VD:Ngoi ra ,chng ta c th nh ngha bin kiu bt hay kiu SFR (special functionregister)Bit Kiemtra;Sfr P10=0x90;VD:Bit Kiemtra;Sfr P10=0x90;Cc SFR khng cn phi hc thuc ch cn bit, v chng c khai bo trong thvinAT89X51.H v AT89X52.H

    2.3.Hm trong C:Hm trong C c cu trc nh sauC 2 loi hm

    Hm tr li gi tr:Cu trc: Kiu gi tr hm tr lii Tn hm (Bin truyn vo hm)

    {// Cc lnh x l y}

    VD : unsigned char Cong(unsigned char x, unsigned char y){// Cc lnh x l y

    }Hm khng tr li gi trCu trc: void Tn hm (Bin truyn vo hm)

    {// Cc cu lnh x l y}

    VD d : void Cong(unsigned char x, unsigned char y){

    // Cc cu lnh x l y}

    Hm c th truyn vo bin hoc khngVD

    Hm khng c bin truyn vo:unsigned char Tnhm(void)

    {// Cc cu lnh x ly

    }Hm c bin truyn vo:

    void Tnhm(unsigned char x)

  • 8/7/2019 giaotrinh8051

    15/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 15 - www.EmbestDKS.com

    {// Cc cu lnh x ly

    }S bin truyn vo ty (min b nh), ngn cch bi du ,V d:

    Void TnHm(unsigned char x, unsigned char y, unsigned char z){// Cc cu lnh x ly}

    Ngoi ra ring cho vi iu khin phn phm Keil C cn c mt loi hm l hmngt:Cu trc:Void Tnhm(void) interrupt ngunngt using bngthanhghi

    {

    }Hm ngt khng c php tr li gi tr hay truyn tham bin vo hm.Tn hm bt kInterrupt l t kha ch hm ngt

    Ngun ngt t 0 ti 5 theo bng vector ngtNgt do C a ch vector

    Reset h thng RST 0000HNgt ngoi 0 IE0 0003H

    Bnh thi 0 TF0 000BHNgt ngoi 1 IE1 0013H

    Bnh thi 1 TF1 001BH

    Port ni tip RI hoc TI 0023HBnh thi 2 TF2 hoc EXF2 002BH

    Khng tnh ngt reset h thng bt u m t ngt ngoi 0Bng thanh ghi trn ram chn t 0 n 32.4.Cc ton tcbn:Php gn: =VD: x=y; // x phi l bin y c th l bin hoc gi tr nhng phi ph hp kiuPhp cng: +Php tr: -Php nhn: *Php chia: /Cc ton t logic:

    Bng : ==And: &&Or: ||Not: !Dch tri: >2.5.Cc cu trc lnh r nhnh, kim tra thng dng:Cu lnh r nhnh if:

  • 8/7/2019 giaotrinh8051

    16/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 16 - www.EmbestDKS.com

    Cu trc: if (iukin) { // Cc cu lnh x l }Gii thch: Nu iukin ng th x l cc cu lnh bn trong cn sai th nhy

    quaCu lnh la chn switch:

    Cu trc: switch(Bin){

    case giatr1: { // Cc cu lnh break; }case giatr2: { // Cc cu lnh break; }case giatr3: { // Cc cu lnh break; }case giatrn: { // Cc cu lnh break; }}

    Gii thch : Ty vo Bin c giatr1 th thc hin cc cu lnh sau tng ng rithot khi cu trc nhcu lnh break;

    Bin c giatr2 th thc hin cc cu lnh sau tng ng ri

    thot .Bin c giatrn th thc hin cc cu lnh sau tng ng ri

    thotCu lnh vng lp xc nh for:

    Cu trc: for( n=m; nl), cn n l binThc hin lp cc cu lnh (l-m) ln

    Cu lnh vng lp khng xc nh while:Cu trc:

    While( iu kin)

    { //Cc cu lnh}

    GiI thch:Thc hin lp cc cu lnh khi iu kin ng, nu cu lnh sai thi thot khi

    vng lp2.6. B tin xl:#define : Dng nh ngha. V d:#define dung 1#define sai 0c ngha l dung c gi tr bng 1. Trong chng trnh c th c on code nh sau:bit kiemtra

    if (bit==dung) { // Cc cu lnh}if (bit==sai) { // Cc cu lnh}Vic ny gip lp trnh d sa li hn.

    Mt s web hay :www.dientuvietnam.net www.atmel.comwww.svbkol.org www.keil.comwww.diendandientu.com www.iguanalabs.com

  • 8/7/2019 giaotrinh8051

    17/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 17 - www.EmbestDKS.com

    www.microchip.comwww.elechtro-tech-online.comwww.diendansv.hutech.edu.vnwww.ttvnol.comwww.8052.comwww.kmitl.ac.thwww.ftdichip.com

    Bi 2 (Tip)Phn 2: Sdng Keil C.

    Sau khi ci t1> Khi to cho Project:

  • 8/7/2019 giaotrinh8051

    18/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 18 - www.EmbestDKS.com

    to 1 project mi chn Project New project nh sau:

  • 8/7/2019 giaotrinh8051

    19/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 19 - www.EmbestDKS.com

    c hnh sau:

  • 8/7/2019 giaotrinh8051

    20/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 20 - www.EmbestDKS.com

    nh tn v chuyn n th mc bn lu project. Bn nn to mi mt th mc cho 1 project.Ri chn Save.

  • 8/7/2019 giaotrinh8051

    21/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 21 - www.EmbestDKS.com

    c hnh sau:

  • 8/7/2019 giaotrinh8051

    22/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 22 - www.EmbestDKS.com

    Trong ny c 1 lot cc hng in t sn xut 8051. Bn lp trnh cho con no th chn con y,kch chut vo cc du + mrng cc con IC ca cc hng. y ta lp trnh choAT89C51 ca hng Atmel nn ta chn nh sau:

  • 8/7/2019 giaotrinh8051

    23/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 23 - www.EmbestDKS.com

    Khi chn chip th ngay lp tc ci bng hin ra 1 s tnh nng ca chp cc bn c th nhnthy. 8051 based Fully Static 24Mhz . Nhap OK c ca s nh sau:

  • 8/7/2019 giaotrinh8051

    24/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 24 - www.EmbestDKS.com

    Chn No. Chn Yes ch lm cho file lp trnh ca bn thm nng . c ca s sau:

  • 8/7/2019 giaotrinh8051

    25/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 25 - www.EmbestDKS.com

    to 1 file code cc bn chn File New hoc n Ctrl+N. Nh sau:

  • 8/7/2019 giaotrinh8051

    26/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 26 - www.EmbestDKS.com

    c ca s nh sau:

  • 8/7/2019 giaotrinh8051

    27/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 27 - www.EmbestDKS.com

    Cho ca s Text 1 to ra c nh sau:

  • 8/7/2019 giaotrinh8051

    28/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 28 - www.EmbestDKS.com

    Tip theo bn chn File Save As hoc Ctrl+S. nhfile mc d cha c g. Nh sau:

  • 8/7/2019 giaotrinh8051

    29/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 29 - www.EmbestDKS.com

    c ca s sau:

  • 8/7/2019 giaotrinh8051

    30/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 30 - www.EmbestDKS.com

    Cc bn nhp tn vo text box file name. Ch tn g cng c nhng khng c thiu uimrng .C . Nhn Save. c ca s sau:

  • 8/7/2019 giaotrinh8051

    31/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 31 - www.EmbestDKS.com

    Trong bn tri mn hnh, ca s project workspace, cc bn mrng ci target 1 ra c nhsau:

  • 8/7/2019 giaotrinh8051

    32/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 32 - www.EmbestDKS.com

    Nhp chut phi vo th mc Suorce Group1 c hnh nh trn. Chn Add files to GroupSource Group1 add file vo project. c nh sau:

  • 8/7/2019 giaotrinh8051

    33/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 33 - www.EmbestDKS.com

    Chn file .C m cc bn va nh. Ca ti l Dieukhienled_IO . Nhn Add 1 ln ri n Close.Nu bn n Add 2 ln n s thng bo l file add bn ch vic OK ri nhn Close. c nhsau:

  • 8/7/2019 giaotrinh8051

    34/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 34 - www.EmbestDKS.com

    By ginhn trong Source Group 1 thy file Dieukhienled_IO.C . Cc bn nhp chut phivo vng son tho file Dieukhienled_IO.C nh sau, thm file th vin.Chn Insert#include

  • 8/7/2019 giaotrinh8051

    35/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 35 - www.EmbestDKS.com

    Cc bn bit file l g nu cc bn hc bi trc k theo yu cu ca ti. c nhsau:

  • 8/7/2019 giaotrinh8051

    36/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 36 - www.EmbestDKS.com

    Phn cui cng ca cng vic khi to l cc bn vit li gii thch cho d n ca mnh .Phnny rt cn thit v n ngi khc hiu mnh lm g tron project ny v khi mnh cn s dngli code c li mnh cn bit n l ci g.Cc bn to li gii thch theo mu sau:

  • 8/7/2019 giaotrinh8051

    37/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 37 - www.EmbestDKS.com

    2> Son tho chng trnh:

    Cc bn vit chng trnh ca bi 3 vo y lm v d. Khi vit xong 1 dng lnh nngii thch dng lnh lm g. Nh sau:

  • 8/7/2019 giaotrinh8051

    38/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 38 - www.EmbestDKS.com

    Cc bn nn chia chng trnh nh ti lm. Vi 1 file nh th n hi rm r. Nhng vi 1 fileln khong 1000 dng code th n li rt sng sa. Cc bn nn to 1 file mu ri nhvo 1 filetext u mi ln dng ch vic copy ri paste qua ch khng nn mi ln to mt cinh vy li phn tc dng. Pha trn l phn b tin x l v khai bo bin. Tip theo l vithm tr.

  • 8/7/2019 giaotrinh8051

    39/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 39 - www.EmbestDKS.com

    Tip theo l vit hm main. Nh sau:

  • 8/7/2019 giaotrinh8051

    40/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 40 - www.EmbestDKS.com

    Ri nhn Ctrl+S. Hoc chn File Save nhfile va son tho.

    Cc bn nhn vo code c th cc bn hiu con AT89C51 n lm g nu cc bn nmvng cc bi trc. Cn nu khng hiu th ti s gii thch li cho cc bn.

  • 8/7/2019 giaotrinh8051

    41/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 41 - www.EmbestDKS.com

    y l s nguyn l ca 1 led. Project l 8 led(v phc v cho bi 3) nhng ti ch giithch 1 led l cc bn hiu. Mc ch l lm con led nhp nhy.

    + C3

    10uF/25V

    C2

    33p

    C133p X1

    19

    X218

    RESET9

    P1.01

    VCC

    40

    VSS20

    U1

    8051

    R110K

    5VDC

    12Mhz

    D1

    LED

    R2

    470

    Bin Led1 c khai bo (gn cho) chn P0_1 ca vi iu khin bng cu lnh sbitLed1=P1^0; . Gi tr bt bat c nh ngha l 0.Khi cc bn gn : Led1=bat; trong hm main th chn P1_0 ca AT89C51 c mc logic l 0V.Theo s nguyn l: 5V Tr470 Led1 P1_0 (0 V). C chnh lch p c dngin qua led Led sng. Cc bn c th tnh tan ch ny d dng l ti sao li l tr470 m.

    in p mt led l Uak (0,6 n 0,7V) ly =0,6V.in p chn P1_0 l 0V. in p hai utr: 5V -0,6V = 4,4V. Dng qua tr= dng qua led = 4,4V/470 m xp x 10 mA. Vi dng10mA n 15mA l led dng sng v sng rt p. Nu dng yu th led m, cn dngln th cc bn bit sao ri y.

    Khi cc bn gn: Led1= tat; tc l chn P1_0 c gi tr 1 tng ng in p ca n l5V . Hiu in th gia hai u +5V v P1_0 l 0V . Nn khng c dng qua led Ledtt.Nhng nu trong hm main cc bn vit ch c nh sau:

    While(1){

    Led1=bat;Led1=tat;

    }Khi chy debug th vn thy led nhp nhy. Nhng khi np chng trnh vo chp lp vo mchth led khng nhy hoc ch sng mhoc tt ngm. V lnh Led1=bat; l lnh 1 chu k my ,tn s thch anh l 12 Mhz, 1 chu k my c thi gian l 1uS. Va bt ln 1 uS ri li tt ngay.Led khng p ng c tn s cao vy nn khng nhp nhy. Do cn ti hm tr . Bt ledln tr 1 thi gian kh lu(0,5 giy), ri tt led i kh lu(0,5s) ri li bt li to thnh vng lpsc led nhp nhy.Tc dng ca cu lnh while(1) . iu kin bn trong vng while l 1 lun lun ng nn n lvng lp v hn ln. Nu khng c vng while(1) th led ca cc bn ch sng ln 1 ln ri tt

  • 8/7/2019 giaotrinh8051

    42/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 42 - www.EmbestDKS.com

    v ht chng trnh ri cn u. Phn ny nu bn no mi hc in t th no cng c cu hithc mc c nhn tin hoc gi mail.3> Dch chng trnh:Son tho song nhn Ctrl +S nh. Nhxong cc bn bin dch chng trnh bng cch nphm F7 hoc chn Build target l biu tng ngay trn ca s workspace nh trn hnh:

    Cc bn s thy nh sau:

  • 8/7/2019 giaotrinh8051

    43/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 43 - www.EmbestDKS.com

    Trong ca s Output Window ngay pha trn dng ch ny c cc dng ch Compiling

    LinkingProgram Size: data =17.0 code =96 0 error , 0 Warning .Nh vy l OK. Nu khng c nh vy n s bo li v cc bn kim tra xem son thong cha. Ti v d xa 1 du ; trong hm main dng : Led1=bat; , gibi thnh Led1=bat .Ri dch li (n F7) trnh bin dch s bo nh sau:

  • 8/7/2019 giaotrinh8051

    44/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 44 - www.EmbestDKS.com

    Syntax error near tre. Sai c php gn tr. Cc bn nhp p tri chut vo dng thng bo nycon tr sngay dng di dng c li thm du nhn du mi tn mu xanh hnh di y,g vo du ; v dch li l OK. Trong chng trnh ln i khi con tr chn gn ch c lithi v bn phi t tm ra li.

  • 8/7/2019 giaotrinh8051

    45/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 45 - www.EmbestDKS.com

    Sau khi dch li c hnh sau:

  • 8/7/2019 giaotrinh8051

    46/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 46 - www.EmbestDKS.com

    4> Chy m phng v sa li.Trc khi debug chng ta khi to nh sau. Cc ban vo Option for target 1.

  • 8/7/2019 giaotrinh8051

    47/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 47 - www.EmbestDKS.com

    c bng sau. Nhp tn s thch anh l 12 Mhz ng vi tn s thch anh.

  • 8/7/2019 giaotrinh8051

    48/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 48 - www.EmbestDKS.com

    Chn OK. debug cc bn nhn t hp phm Ctrl + F5. Hoc nhn vo icon c ch D mu trong ciknh lp trn thanh cng c. c ca s sau:

  • 8/7/2019 giaotrinh8051

    49/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 49 - www.EmbestDKS.com

    Trong menu Peripherals(cc thit b ngoi vi) chn IO port , Port 1. c nh sau:

  • 8/7/2019 giaotrinh8051

    50/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 50 - www.EmbestDKS.com

    Cc bn thy 1 ca s nh Parallel Port 1 xut hin l ci m phng cho cng 1 caAT89C51. Du tch tng ng chn mc cao(5V) , khng tch chn mc thp (0V).Trong menu peripherals cn cc ngoi vi khc nh timer , interrupt, serial. Cc bi sau dngn cc bn nhly trong ny. chy chng trnh cc bn nhp chut phi vo mn hnh son tho.Ri n F11. Mi ln n s chy 1 lnh. Khi debug nu cc bn chhm delay lu qu 1000 lnlp . Cc bn nhn Ctrl + F11 b qua hm.

  • 8/7/2019 giaotrinh8051

    51/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 51 - www.EmbestDKS.com

    Hoc n F10 chy tng dng lnh. Cc bn s thy chn P1_0 thay i gi tr.Bng bn tri , Project workspace by gic cc thanh ghi. Cc bn c th thy chng thayi. Nhng cc bn khng cn quan tm n cc thanh ghi ny. V mnh hc ngn ng C m.Nu hc asembly th mi phi s dng chng. Cng mt y. Ci bn quan tm nht l ci sec.N cng thay i. V thch anh l 12Mhz, nn mi chu k my l 10-6 giy. Cc bn cn c voy bit lnh no mt bao nhiu chu k my, lm thi gian thc th cn lm y. Thot khidebug li n Ctrl+F5 hoc n vo icon debug.

    .3.1.Lp mch :

    -Khi ngun 5V cc bn nh lp mch n nhy.-Cc bn lp mch theo s sau:

    + C3

    10uF/25V

    C233p

    C133p X1

    19

    X218

    RESET

    9

    P1.01

    VCC

    40

    VSS20

    P1.12

    P1.23

    P1.34

    P1.45

    P1.56

    P1.67

    P1.78

    EA31

    P0.039

    P0.138

    P0.237

    P0.336

    P0.435

    P0.534

    P0.633

    P0.732

    U1

    8051

    R110K

    5VDC

    12Mhz

    D1

    D2

    D3

    D4

    D5

    D6

    D7

    D8

    1

    2 3 4 5 6 7 8 910

    R11

    RESISTOR SIP 10

    - Hng dn lp mch:* Qui nh : nu linh kin no ti khng nhc n chiu th cc bn lp linh kin chiu

    no cng c.Hng dc ngoi l ngun 5 V.Hng dc trong l GND.Th t chn cc bn phi nhkhng ging th t sp xp tronh hnh v mch.

    Cch m chn cc bn con chip xui m cc bn nhn dng ch AT89C51/52xui, chn 1 l chn gn du trn v hnh tam gic nh mu trng. m t trn xungdi tri qua phi. S chn con IC tht sm ng th ny. Khi lp mch phim chn.

  • 8/7/2019 giaotrinh8051

    52/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 52 - www.EmbestDKS.com

    Khng nn lp ngun 12V vo vi ch khi np chp xong lp vo mch mi lpngun.Khi mun gchp ra phi rt ngun ra ri mi gchp.

    * Chun b board nh sau:Lp 4 dy ni ngn ni cc sng.Lp 1 dy ni ni hng trn cng vi hng di cng lm ngun +5V.Lp 1 dy ni ni hng gn trn cng vi hng gn di cng lm GND.Lp chp nh hnh.

    * Bc 1 lp mch dao ng:Lp 1 con t 33pF t chn 19 xung chn 20.(ng hi ti sao).Lp 1 con t 33pF t chn 18 xung chn 20.Ly dy cu t chn 20 xung GND.Lp 1 con thch anh 12M vo chn 18 v 19.

    * Bc 2 lp mch reset.

    Lp 1 con tr10K(nu en cam) t chn 9 xung GND.Lp 1 con t 10uF/50V cc dng ln +5V, cc m vo chn 9.* Bc 3 lp trbng.

    chp chy vi ROM trong chn EA phi ln +5V qua 1 in tr.Cng 0 l cng c cc mng hmun thc hin c IO th phi c in tr

    treo.(Thy ci ny l xem li bi 2). Nn lp 1 con trbng 10 chn vo cng 0 vchn EA.Chn 1 ca trbng ( Chn u tin c nt trn mu trng) vo chn 40. Chn 10 catrbng vo chn 31.Nu khng c trbng cc bn c th thay trbng 10 chn bng 9 con trthng vtrbng 10 chn chnh l 9 con tru chung 1 u nh trong s mch pha trn.* Bc 4 lp led:

    d dng khi lp mch nn chng ta lp led theo s nh trn.Lp chn di ca 1 led vo chn 1 vi iu khin chn ngn vo GND.Tng t lp 7 led cn li vo chn 2 n chn 8.* Bc 5 cu 1 dy nh t chn 40 ln ngun 5V.3.2. Nguyn l hot ng:

    Led ni t chn vk xung t vy nu chn vi iu khin 5V th led s sng,nu chn vi iu khin 0V th led s ti.

    in p 5V v sao led khng chy m li cn sng yu?

    U1

    AT89C51

    31

    1918

    9

    12131415

    12345678

    3938373635343332

    21

    22232425262728

    1716

    293011

    10

    40

    20

    EA/VP

    X1X2

    RESET

    INT0INT1T0T1

    P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

    P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7

    P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7

    RDWR

    PSENALE/PTXD

    RXD

    VCC

    VSS

  • 8/7/2019 giaotrinh8051

    53/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 53 - www.EmbestDKS.com

    V vi iu khin 8051 ch c th cung cp dng nh khng 10mA 1 chn nn ledsng yu. Cn nu mun led sng p th lp nh sau t dng 5V Chn di caled Chn ngn ca ledChn vi iu khin. Ci ny s ni sau.* Bc 5 lp ngun:

    Lp 1 dy t chn 40 ln hng ngun 5V.3.3. Lp trnh :Trc ht iu khin 1 led. iu khin 1 led th cc bn ch vic gn chn ni viled bng 0 hoc 1, th in p chn s l 0V hoc 5V, ty vo in p n ssng hoc ti.Code nh sau:/* ====================================================

    Mo ta:Dieu khien den led.

    Phan cung:8 led noi tu +5V qua dien tro han dong vao 8 chan cong 1.

    Thach anh: 12 MhzTac gia:

    Nguyen Huy Thanh.Thoi gian:

    Bat dau: 1h03 16/7/2005Hoan thanh: 1h07 16/7/2005

    =====================================================*/

    /******************Bo tien xu li*******************************/#include // Dinh kem file thu vien#define bat 1 // Dinh nghia gia tri bat den led

    #define tat 0// Dinh nghia gia tri tat den led

    /************************************************************/

    /*******************Khai bao bien toan cuc**********************/sbit Led1=P1^0; //Khai bao bien Led1 kieu bit chan P1_0sbit Led2=P1^1; // ...sbit Led3=P1^2;sbit Led4=P1^3;sbit Led5=P1^4;sbit Led6=P1^5;sbit Led7=P1^6;

    sbit Led8=P1^7;//Khai bao bien Led8 kieu bit chan P1_7/***********************************************************/

    /********************Khai bao ham****************************/

    /*----------------Ham tre-------------------------------Ham tao thoi gian tre.Dau vao: 1 bien thoi gian.

  • 8/7/2019 giaotrinh8051

    54/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 54 - www.EmbestDKS.com

    Dau ra: khong------------------------------------------------------*/void tre(long time){

    long n;// Khai bao bien cuc bofor(n=0; n

  • 8/7/2019 giaotrinh8051

    55/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 55 - www.EmbestDKS.com

  • 8/7/2019 giaotrinh8051

    56/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 56 - www.EmbestDKS.com

  • 8/7/2019 giaotrinh8051

    57/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 57 - www.EmbestDKS.com

    * c th np chng trnh vo chp th fi to ra file .hex. to ra file .hex lmnh sau . Vo Option for target ch chnh tn s thch anh.

  • 8/7/2019 giaotrinh8051

    58/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 58 - www.EmbestDKS.com

    c hnh sau:

  • 8/7/2019 giaotrinh8051

    59/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 59 - www.EmbestDKS.com

    Kch vo tab Output. c hnh sau:

  • 8/7/2019 giaotrinh8051

    60/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 60 - www.EmbestDKS.com

    Tch vo check : Create Hex File. Nhp OK. Nhn fm F7 bin dch li . Khi di cas output window c ch Creating hex file

  • 8/7/2019 giaotrinh8051

    61/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 61 - www.EmbestDKS.com

    Creating hex file from Dieukhienled_IO nh ngay trn hnh.3.4.Np chp:Cm u cng COM vo cng COM my tnh.Cm ngun vo mch np.Cho chp vo socket 40 chn mu xanh. Rt ch phi cho ng chiu chp khng l

    hng. Chiu chp ging chiu con chp c sn trong mch(Chp MASTER).Mphn mm EZDL4 ln. Thy c ch identifing target chip . Nhy. Gt cn nh

    socket 40 chn kp chp cho tip xc.

  • 8/7/2019 giaotrinh8051

    62/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 62 - www.EmbestDKS.com

    Trn EZDL4 s thy ch AT89C51 hoc AT89C52 ty cc bn dng loi chpno.

    Kch vo Send. Chn ng dn n th mc lu project ca bn chn file :Dieukhienled_IO.hex . Nhn OK. Chmch bo ch Complete th gt ny trn socketly chp ra cm vo mch.3.5. Kt qu:

    Cm ngun vo mch . Ch khng cm ngc m dng.Nu mch khng chy rt ngun ra kim tra cc ch sau:1) Kim tra mch dao ng xem tng gi tr khng, lp ng s khng,

    lp c lng khng.2) Kim tra xem tmch reset chn 9 lp ng cc khng, c lng khng.

    Dng ng ho chn 9 nu 0V hoc xp x 0V l OK.3) Trbng lp ng chiu cha, chn 1 vo chn 40. Dng ng ho chn

    31(EA) xem c bng 5V khng , nu 5V th OK.4) Kim tra chn 20 ni GND cha, chn 40 ni +5V cha dng ng h

    o in p.5) Kim tra xem lp ng chiu led cha.6) Cc bn c th lp lng chp hoc do cht lng board ly tay t mnh con

    chp xung board .Nu vn khng chy th lin lc vi ti.

    3.6. iu khin 8 led tng chic 1:Cc bn c th sa li hm main nh sau:void main(void){

    while(1)// Lap vo han{

    Led1= bat;// Bat led 1

    tre(1000);// Tre 1 khoang thoi gianLed1= tat;// Tat led 1tre(1000);// Tre 1 khoang thoi gianLed2= bat;// Bat led 2tre(1000);// Tre 1 khoang thoi gianLed2= tat;// Tat led 2tre(1000);// Tre 1 khoang thoi gianLed3= bat;// Bat led 3tre(1000);// Tre 1 khoang thoi gianLed3= tat;// Tat led 3tre(1000);// Tre 1 khoang thoi gianLed4= bat;// Bat led 4

    tre(1000);// Tre 1 khoang thoi gianLed4= tat;// Tat led 4tre(1000);// Tre 1 khoang thoi gianLed5= bat;// Bat led 5tre(1000);// Tre 1 khoang thoi gianLed5= tat;// Tat led 5tre(1000);// Tre 1 khoang thoi gianLed6= bat;// Bat led 6tre(1000);// Tre 1 khoang thoi gian

  • 8/7/2019 giaotrinh8051

    63/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 63 - www.EmbestDKS.com

    Led6= tat;// Tat led 6tre(1000);// Tre 1 khoang thoi gianLed7= bat;// Bat led 7tre(1000);// Tre 1 khoang thoi gianLed7= tat;// Tat led 7tre(1000);// Tre 1 khoang thoi gianLed8= bat;// Bat led 8tre(1000);// Tre 1 khoang thoi gianLed8= tat;// Tat led 8tre(1000);// Tre 1 khoang thoi gian

    }

    }iu khin 8 led.Vi chng trnh ny cc bn c th cho th t cc led tt bt khc nhau c cc

    kiu nhy khc nhau.3.7. iu khin out c cng:Nu cc bn nhm chn vi vic iu khin tng chn 1 vit code rt tn cng

    cc bn c th xut gi tr ra c cng.Trc ht cc bn cn nm cc iu nh sau:

    - 1 cng c 8 bit t hp 8bit c 28 = 256 trng thi. Khi cc bn a ra cng 1gi tr a(thp phn) t 0 n 255 th s a sc i ra h nh phn ri a racc bit( chn) ca cng. V d:

    Nu c lnh: P1=1; v 1(10) = 0000 0001(2) nn chn P1_0(bit 0) s bng 1(5V)cn li cc t P1_1(bit 1) n P1_7(bit 7) s bng 0(0V).

    P1=10; v 10(10) = 0000 1001(2) th s c P1_0 v P1_3 bng 1(5V) cnli cc chn khc s l 0(0V).

    - Cc bn c tha ra cng 1 gi tr s hex t 0 n ff tng ng t 0 n 255.Cc s cstrong h hex.(HEX)0 1 2 3 4 5 6 7 8 9 A B C D E F(10) 10 11 12 13 14 15Cch s hex ra s thp phn: c s hex : N(16)=abf1 i ra h s 10

    N(10)=1.160 + 15.161+ 11.162+ 10.163= Bm my tnh h nh.

    i s nh phn sang hex: Gp 4 s nh phn thnh 1 s hexV d: 0010 0001(2) = 21(16) 4 su c bit 1 = 1 nn 1x2

    1= 24 s sau c bit 0 =1 nn 1x20=1.

    Cc bn thy vt v vi phn ny d bn c hiu hay khng hiu 1 lt na s bitcch lm lin.Cch a ra nh sau:

    V d lnh P1=1; tng ng vi P1=0x01;P1=10; tng ng vi P1=0x0A;

    Chng trnh xut ra c cng tng ng vi chng trnh iu khin 8 led tng ci1 nh sau:

    void main(void){

    while(1)// Lap vo han{

  • 8/7/2019 giaotrinh8051

    64/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 64 - www.EmbestDKS.com

    P1=0x01;// Bat led 1tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 1tre(1000);// Tre 1 khoang thoi gianP1=0x02;// Bat led 2tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 2tre(1000);// Tre 1 khoang thoi gianP1=0x04;// Bat led 3tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 3tre(1000);// Tre 1 khoang thoi gianP1=0x08;// Bat led 4tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 4

    tre(1000);// Tre 1 khoang thoi gianP1=0x10;// Bat led 5tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 5tre(1000);// Tre 1 khoang thoi gianP1=0x20;// Bat led 6tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 6tre(1000);// Tre 1 khoang thoi gianP1=0x40;// Bat led 7tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 7

    tre(1000);// Tre 1 khoang thoi gianP1=0x80;// Bat led 8tre(1000);// Tre 1 khoang thoi gianP1=0x00;// Tat led 8tre(1000);// Tre 1 khoang thoi gian

    }

    }

    Nh vy g code vn mi tay lm t c mc ch 8 n nhy lin tip cc bnc th lm nh sau:/******************Ham chinh****************************/

    void main(void){unsigned char n; // Khai bao them bien n cho vong for

    while(1)// Lap vo han{

    P1=0x01;// Bat led 1for(n=0 ; n

  • 8/7/2019 giaotrinh8051

    65/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 65 - www.EmbestDKS.com

    tre(1000);}

    }

    }

    /***********************************************************/

    Debug quan st s thay i ca cng 1 thy c li hi ca php dch bit xangtri.

    hiu thao tc xut ra cng , chn, cc cc bn lm cho mnh 1 v d na nh sau:/***********************Ham chinh*******************************/void main(void){unsigned char n; // Khai bao them bien n cho vong for

    while(1)// Lap vo han{P1=0x01;// Bat led 1for(n=0 ; n

  • 8/7/2019 giaotrinh8051

    66/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 66 - www.EmbestDKS.com

    Cc bn thy trong ca s m phng cng 3 c ghi gi tr ca cng 3 l : 0xFF tngng tt c 8 bit l 1111 1111. Gicc bn b du tch trn chn 3.5 v 3.2 i . m ttri qua phi nh.

  • 8/7/2019 giaotrinh8051

    67/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 67 - www.EmbestDKS.com

    Thy cng 3 c gi tr l 0xDB. Nh vy cc bn mt cng nhm i s nh phn ra s hex.Nu khng dng cch ny l nh trn cc bn phi nghtrong u ra c dy s 11011011 ri i qua s HEX kt qu s l 0xDB nhng mt lm.

  • 8/7/2019 giaotrinh8051

    68/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 68 - www.EmbestDKS.com

    4.1 Lp mch :

    a b

    dotcV-de

    f g V -

    1 2 3 4 5

    678910

    A

    B

    C

    DOD

    E

    F

    G

    D10

    LED CATOT Chung

    a b

    dotcV+de

    f g V +

    1 2 3 4 5

    678910

    A

    B

    C

    DOTD

    E

    F

    G

    D11

    LED CATOT Chung

    C hai loi led 7 thanh: Ant chung v Catt chung. Hnh trn l s chnca hai loi led. N c cu to nh sau:

    3

    7 6 4 2 1 10 9 5

    A B C D E F G DP

    8

    D12A

    Catot chung

    3

    7 6 4 2 1 10 9 5

    8

    D13AAnot chung

    Ch l 8 con led u chung 1 u: Ant hoc Catt.Mch lp s dng led Ant chung nh sau:

  • 8/7/2019 giaotrinh8051

    69/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 69 - www.EmbestDKS.com

    + C3

    10uF/25V

    C233p

    C133p

    R110K

    5VDC

    EA/VP31

    X119

    X2

    18

    RESET9

    P2.021

    P2.122

    P2.223

    P2.324

    P2.425

    P2.526

    P2.627

    VCC

    40

    VSS20

    U3

    8051

    R310K

    12Mhz

    A

    B

    D

    C

    G

    F

    E

    - Lp mch: Mch bi trc(iu khin led n) nguyn,ch lp thm vo.+ Bc1: Lp 7 in vo 7 chn cng P2 t P2.0 n P2.7( T chn 21 Chn27) ca vi iu khin. Ch m bit ca cng 2 t di ln trn.+ Bc2: Lp led 7 thanh 5 chn pha trn sng, 5 chn pha di sng(Ging lpAT89C51).+ Bc 3: Dng dy in cu t cc chn theo s. Chn iu khin thanh A

    vo in trni vo P2.0 v c thn chn iu khin thanh G vo in trnivo P2.7. B qua chn iu khin du chm(Dot chn 5 ca led 7 thanh).+ Bc 4: Dng dy cu chn 3(hoc chn 8, hoc c hai chn 3 v 8) ln +5V.Lp mch nn dy cu khc mu v r rng trnh nhm ln.- Test led:

    Cho ngun vo( Dnhin led n bi trc vn nhp nhy).Rt 1 u in trni vi chn P2.0 ca VK cm xung t thy led 7thanh sng n A,cm li in trv v tr c. Tng t test 6 thanh cnli. Thanh no khng sng th kim tra li xem cm dy tip xc cha. Vnkhng sng th led hng thay led khc vo.

    4.2. Nguyn l hot ng:Khi cm ngun vo mch tt c cc chn ca cc cng IO ca VK l 5V(

    Nu cng 0 khng lp in trtreo th s l 0V). Nhn s mch khng c chnhlch in p nn khng c n no sng. Chng ta mun sng thanh no ch vic ara in p 0V chn vi iu khin ni vi thanh .

    Thanh hin Thanh tt Gi tr(P2) hin th s 1: B,C cc thanh cn li 1111 1001 hin th s 2: A,B,D,E,G cc thanh cn li 1010 0100. hin th s 8: Tt c cc thanh khng thanh no 1000 0000

  • 8/7/2019 giaotrinh8051

    70/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 70 - www.EmbestDKS.com

    gfe dcbaBt th 8 P2.7 khng

    dng.Ngoi ra led 7 thanh cn c th hin th 1 s ch hin th ch B: Ging s 8Hin th ch A: A,B,C,E,F,G D 1000 1000

    4.3.Lp trnh :Cch 1: Lp trnh d hiu khng cn phi tnh ton nhng phi vit v copy,

    past v sa nhu.Code nh sau:#include /* Khai bao cac bien bit gan voi chan vi dieu khien*/sbit ThanhA = P2^0;sbit ThanhB = P2^1;sbit ThanhC = P3^5;

    sbit ThanhD = P3^4;sbit ThanhE = P3^3;sbit ThanhF = P2^2;sbit ThanhG = P2^3;/* Khai bao bien */long n;// Cho vong for

    /* Khai bao ham */

    /* Ham tre */void delay(long time){

    for(n=0; n

  • 8/7/2019 giaotrinh8051

    71/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 71 - www.EmbestDKS.com

    /* Ham tat tat ca cac thanh */void tat(void){

    ThanhA =1;ThanhB =1;ThanhC =1;ThanhD =1;ThanhE =1;ThanhF =1;ThanhG =1;}

    /* Cac ham hien thi chu va so */

    void so1(void){tat();ThanhA =1;ThanhB =0;ThanhC =0;ThanhD =1;ThanhE =1;ThanhF =1;ThanhG =1;}

    void so2(void){tat();ThanhA =0;ThanhB =0;ThanhC =1;ThanhD =0;ThanhE =0;ThanhF =1;ThanhG =0;

    }void so3(void){tat();ThanhA =0;ThanhB =0;ThanhC =0;ThanhD =0;

    ThanhE =1;ThanhF =1;ThanhG =0;

    }

    void so4(void){tat();ThanhA =1;ThanhB =0;ThanhC =0;ThanhD =1;ThanhE =1;ThanhF =0;

    ThanhG =0;}

    void so5(void){tat();ThanhA =0;ThanhB =1;ThanhC =0;ThanhD =0;ThanhE =1;

    ThanhF =0;ThanhG =0;}

    void so6(void){tat();ThanhA =0;ThanhB =1;ThanhC =0;ThanhD =0;

    ThanhE =0;ThanhF =0;ThanhG =0;}

    void so7(void){tat();

  • 8/7/2019 giaotrinh8051

    72/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 72 - www.EmbestDKS.com

    ThanhA =0;ThanhB =0;ThanhC =0;

    ThanhD =1;ThanhE =1;ThanhF =1;ThanhG =1;}

    void so8(void){tat();ThanhA =0;ThanhB =0;

    ThanhC =0;ThanhD =0;ThanhE =0;ThanhF =0;ThanhG =0;}

    void so9(void){tat();ThanhA =0;

    ThanhB =0;ThanhC =0;ThanhD =0;ThanhE =1;ThanhF =0;ThanhG =0;}

    void chuA(void){tat();

    ThanhA =0;ThanhB =0;ThanhC =0;ThanhD =1;ThanhE =0;ThanhF =0;ThanhG =0;}

    void chuB(void){

    tat();ThanhA =0;ThanhB =0;ThanhC =0;ThanhD =0;ThanhE =0;ThanhF =0;ThanhG =0;}

    void chuC(void)

    {tat();ThanhA =0;ThanhB =1;ThanhC =1;ThanhD =0;ThanhE =0;ThanhF =0;ThanhG =1;}

    void chuD(void){tat();ThanhA =0;ThanhB =0;ThanhC =0;ThanhD =0;ThanhE =0;ThanhF =0;ThanhG =1;}

    void chuE(void){tat();ThanhA =0;ThanhB =1;ThanhC =1;ThanhD =0;

  • 8/7/2019 giaotrinh8051

    73/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 73 - www.EmbestDKS.com

    ThanhE =0;ThanhF =0;ThanhG =0;

    }

    void chuF(void){tat();ThanhA =0;ThanhB =1;ThanhC =1;ThanhD =1;ThanhE =0;ThanhF =0;

    ThanhG =0;}void chuG(void){tat();ThanhA =0;ThanhB =1;ThanhC =0;ThanhD =0;ThanhE =0;ThanhF =0;

    ThanhG =1;}

    void chuH(void){tat();ThanhA =1;ThanhB =0;ThanhC =0;ThanhD =1;ThanhE =0;

    ThanhF =0;ThanhG =0;}

    void chuI(void){tat();ThanhA =1;

    ThanhB =1;ThanhC =1;ThanhD =1;

    ThanhE =0;ThanhF =0;ThanhG =1;}

    void chuL(void){tat();ThanhA =1;ThanhB =1;ThanhC =1;

    ThanhD =0;ThanhE =0;ThanhF =0;ThanhG =1;}

    void chuO(void){tat();ThanhA =0;ThanhB =0;

    ThanhC =0;ThanhD =0;ThanhE =0;ThanhF =0;ThanhG =1;}

    void chuP(void){tat();ThanhA =0;

    ThanhB =0;ThanhC =1;ThanhD =1;ThanhE =0;ThanhF =0;ThanhG =0;}

  • 8/7/2019 giaotrinh8051

    74/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 74 - www.EmbestDKS.com

    void chuR(void){tat();

    ThanhA =0;ThanhB =0;ThanhC =0;ThanhD =1;ThanhE =0;ThanhF =0;ThanhG =0;}

    void chuS(void){

    tat();ThanhA =0;ThanhB =1;ThanhC =0;ThanhD =0;ThanhE =1;ThanhF =0;ThanhG =0;}

    void chuU(void){tat();

    ThanhA =1;ThanhB =0;ThanhC =0;ThanhD =0;ThanhE =0;ThanhF =0;ThanhG =1;}

    void chuY(void){

    tat();ThanhA =1;ThanhB =0;ThanhC =0;ThanhD =0;ThanhE =1;ThanhF =0;ThanhG =0;}

  • 8/7/2019 giaotrinh8051

    75/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 75 - www.EmbestDKS.com

    /* Ham chinh */void main(void){

    while(1){so0();delay(20000);so1();delay(20000);so2();delay(20000);so3();delay(20000);so4();

    delay(20000);so5();delay(20000);so6();delay(20000);so7();delay(20000);so8();delay(20000);so9();delay(20000);

    chuA();delay(20000);chuB();delay(20000);chuC();delay(20000);chuD();delay(20000);chuE();delay(20000);chuF();

    delay(20000);chuG();delay(20000);chuH();delay(20000);chuI();delay(20000);chuL();

  • 8/7/2019 giaotrinh8051

    76/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 76 - www.EmbestDKS.com

    delay(20000);chuO();delay(20000);

    chuP();delay(20000);chuR();delay(20000);chuS();delay(20000);chuU();delay(20000);chuY();delay(20000);}

    }Cch 2: Cc bn vit 1 chng trnh n gin ri dng cng c Debug xem s hex rivit vo rt ngn gn.

    V d:Hm hin th s 1:

    void so1(void){tat();P2=0xF5;}Cc bn debug cho hin th cng P2 ln. du tch cc n tt(1) , b du tch cc

    n cn bt(0). Ri c gi tr hex nh ti hng dn bi trc.4.4.Np chp:

    hng dn. Nu cc bn gp phi vn ca mch np. Thng l:+ Treo chip Master: Rt ngun mch np ra, i cht ri cm li.+ Khng nhn cng COM. Cc bn nhp chut phi vo Mycomputer, chnProperties Device manage. Nhn vo Scan for hardware change my tnh nhnli cng COM. Ri khi ng li my.+ L do khc cc bn th kim tra phn cng mch np.+ Vn khng c ti chu.T bi sau s khng c phn ny.

    4.5.Kt qu:

    Nhn vo hm main cc bn thy chng trnh s hin th s 1 led 7 thanh, tr 1khong thi gian, ri nhy sang s 2 n s 9 , ri n ch. Nu cc bn khng c hmtr th led s hin th ra sao?Led s hin s 8. V tt c 8 led c bt tt qu nhanh (ch cn >24 Hz) do hin tnglu nh mt cc bn s nhn thy tt c cc led sng ch khng hin s.4.6.Kinh nghim :

    Sau khi thc hin theo cc rt gn nh vit hm s 1 trn cc bn p dngcu trc lnh switch case vit li chng trnh th chng trnh s rt gn.

  • 8/7/2019 giaotrinh8051

    77/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 77 - www.EmbestDKS.com

    void Hienthiled(unsigned char x) // Co 1 bien dau vao de xac dinh xem la hien thi so nao{

    switch(x){

    case 1: { tat(); P2=0xF5; break;} // So 1case 2: { tat(); P2=0xFF; break;}// So 2case 9: { tat(); P2=0xFF; break;}// So 9case 10: { tat(); P2=0xFF; break;}// Chu A.case 20: { tat(); P2=0xFF; break; }// Chu Y

    }}

    Cc gi trtrn ch l v d cc bn rt gn v t copy vo. Vi hm hin th led ccbn vit hin cc s v cc ch gihm main ch cn nh sau:

    void main (void){while(1){

    for(n=0; n

  • 8/7/2019 giaotrinh8051

    78/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 78 - www.EmbestDKS.com

    Phn 1: c 1 phm.Nhim v:

    m s ln phm bm gii hn t 0 n 9 hin th ra led 7 thanh.5.1.Lp mch nhsau:

    + C3

    10uF/25V

    C233p

    C133p X1

    19

    X218

    RESET9

    P2.021

    VCC

    40

    VSS20

    P2.122

    P1.01

    P1.12

    P2.223

    P2.324

    P2.425

    P2.526

    P2.627

    U1

    8051

    R110K

    5VDC

    12Mhz

    1 2

    SW1

    C4

    CAP NP

    D12LED

    R291K

    a b

    dotcV+de

    f g V +

    1 2 3 4 5

    678910

    A

    B

    C

    DOTD

    E

    F

    G

    D11

    LED ANOT Chung

    - Mch bi 5 led 7 thanh gi nguyn.Lp mch: qu n gin.

    Bc 1: Lp 1 nt bm u trn mch.Bc 2: Dng dy cu 1 chn nt bm vi P1.0( Thay th led bi 4).Bc 3: Dng dy cu 1 chn nt bm xung t.Bc 4: Lp 1 t 104 gia 2 chn nt bm.Bc 5: Lp trvo chn P1.0 v led t +5V vo u trcn li(Ch ng

    chiu led.- Test nt bm: Cm ngun vo, nhn nt n sng. Nh nt n tt.

  • 8/7/2019 giaotrinh8051

    79/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 79 - www.EmbestDKS.com

    5.2.Nguyn l hot ng:- Phn nt bm: (khi khng c t 104) ban u chn P1.0 mc cao +5V, nu

    bm nt 2 u nt bm thng vi nhau. Chn P1.0 thng vi GND. Led sng do c chnh

    p. Chn P1.0 thng t.Nu c t 104 tin c np in, khi bm nt tin s phng in t cc

    dng sang cc m lm chn P1.0 thng vi GND nhng lu v 0 V hn 1 cht( trcng).

    - Khi bm nt theo nguyn l thi bm 1 ci l xung 0 lin, nhng do tip imckh ca nt bm nn khi bm nt n s c 1 s xung in ch khng phi lbm ci l n xung 0 lun. T 104 gim nhiu . T 104 cng c th bi khng lp v ta c th kh nhiu bng phn mm.

    5.3.Lp trnh:Code bi 5 gi nguyn: son thm mt s hm nh sau hm c phm bm.Hm c s ln n phm

  • 8/7/2019 giaotrinh8051

    80/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 80 - www.EmbestDKS.com

  • 8/7/2019 giaotrinh8051

    81/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 81 - www.EmbestDKS.com

    Hm hin th s tng ng.

  • 8/7/2019 giaotrinh8051

    82/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 82 - www.EmbestDKS.com

    Hm main c sa li nh sau:

  • 8/7/2019 giaotrinh8051

    83/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 83 - www.EmbestDKS.com

    y l code cc hm b sung:unsigned char i=0;// Khai bao them bien toan cuc de dem so lan an nut

    unsigned char Doccongtac(void)// Ham tra lai gia tri unsigned char{

    if( P1_0 ==0)// Neu nut duoc bam{

    delay(300);// Tre 1 khoang thoi gian qua xung nhieuwhile(P1_0 ==0) // Cho toi khi nha tay khoi nut bam{

    ;//Khong lam gi}

    i++;// Nha ty thi tang i

    if( i ==10) i=0;// Quay vong gia tri cua i}return i;

    }

    void hienthisolannhanphim(unsigned char solan){

    switch(solan)// Tuy vao so lan{

    case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switchcase 1: { so1(); break; }// Neu so lan =1 hien so 1 thoat khoi switch

    case 2: { so2(); break; }// ....case 3: { so3(); break; }case 4: { so4(); break; }case 5: { so5(); break; }case 6: { so6(); break; }case 7: { so7(); break; }case 8: { so8(); break; }case 9: { so9(); break; }// Neu so lan =9 hien so 9 thoat khoi switch

    }}

    void main(void){while(1){

    Doccongtac(); // Goi ham doc so lan nhan phimhienthisolannhanphim(i);// Hien thi so lan nhan phim, bien i la bien toan cuc

    }}

  • 8/7/2019 giaotrinh8051

    84/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 84 - www.EmbestDKS.com

    5.4) Kinh nghim:- Xem cc gi tr ca bin trong Debug.Sau khi vit xong chng trnh v bin dch chng trnh cc bn vo cng c Debug ca

    Keil C. c mn hnh sau: Chn ViewWatch& Call Stack Window.

    c nh sau:

  • 8/7/2019 giaotrinh8051

    85/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 85 - www.EmbestDKS.com

  • 8/7/2019 giaotrinh8051

    86/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 86 - www.EmbestDKS.com

    Trong khung pha di chnh l Watch& Call Stack Window. Chuyn sang tab watch#1,nhp chut vo ch F2 to edit,nhn F2 v g vo tn bin cn quan st.

    Phn 1 kt thc.

  • 8/7/2019 giaotrinh8051

    87/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 87 - www.EmbestDKS.com

    Chng ta quan st bin I, nn g I vo v c hnh nh trn. Cc bn nhn F11 chym phng. Mi ln n phm, cho chn P1.0 xung 0 ri ln 1, tng ng vi n phmv nh phm I s tng 1 nh sau: (Khi n phm phi chhm delay(300) v hm

    while(P1_0 ==0) xong I mi tng v mnh lp trnh th m.

    Gi tr ca I hin th theo s hex.

  • 8/7/2019 giaotrinh8051

    88/119

  • 8/7/2019 giaotrinh8051

    89/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 89 - www.EmbestDKS.com

    6.2 Nguyn l qut phm:- V sao mch phm u theo ma trn. Nu c t 16 nt bm bnh thng phi

    dng 16 chn vi iu khin. Nu u theo dng ma trn th ch mt 8 chn ta cng c th

    c c 16 phm bm.- C 2 cch qut phm theo ct v theo hng, ti chn cch qut theo hng, qut

    theo ct cc bn c th lm tng t.- Bc 1 : Ta a chn P3.0 ni vi Hng 1 xung 0V.Ri ta kim tra gi tr logic

    ca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 1 c bm th Ct 1_ P3.4 s c gi tr bng0. Nu phm 2 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 3 c bm thCt 3_ P3.6 s c gi tr bng 0. Nu phm 4 c bm th Ct 4_ P3.7 s c gi tr bng0. Ta cn c vo xc nh xem phm no c bm.

    - Bc 2 : Ta a chn P3.1 ni vi Hng 2 xung 0V.Ri ta kim tra gi tr logicca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 5 c bm th Ct 1_ P3.4 s c gi tr bng0. Nu phm 6 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 7 c bm th

    Ct 3_ P3.6 s c gi tr bng 0. Nu phm 8 c bm th Ct 4_ P3.7 s c gi tr bng0. Ta cn c vo xc nh xem phm no c bm.

    - Bc 3 : Ta a chn P3.2 ni vi Hng 3 xung 0V.Ri ta kim tra gi tr logicca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 9 c bm th Ct 1_ P3.4 s c gi tr bng0. Nu phm 10 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 11 c bm thCt 3_ P3.6 s c gi tr bng 0. Nu phm 12 c bm th Ct 4_ P3.7 s c gi tr bng0. Ta cn c vo xc nh xem phm no c bm.

    - Bc 4 : Ta a chn P3.3 ni vi Hng 1 xung 0V.Ri ta kim tra gi tr logicca cc chn P3.4,P3.5,P3.6,P3.7.Nu phm 13 c bm th Ct 1_ P3.4 s c gi trbng 0. Nu phm 14 c bm th Ct 2_ P3.5 s c gi tr bng 0. Nu phm 15 cbm th Ct 3_ P3.6 s c gi tr bng 0. Nu phm 16 c bm th Ct 4_ P3.7 s c gi

    tr bng 0. Ta cn c vo xc nh xem phm no c bm.Ta s dng cu lnh if kim tra.

    6.3. Lp trnh:- To 1 project mi, copy phn hin th cc s 09 cc ch AY ca bi trc. Ri bsung cc hm sau. Hm hin th phm n.void phim_duoc_an(unsigned char phim){

    switch(phim)// Tuy vao so lan{

    case 0: { so0(); break; }// Neu so lan =0 hien so 0 thoat khoi switchcase 1: { so1(); break; }// Neu so lan =1 hien so 1 thoat khoi switch

    case 2: { so2(); break; }// ....case 3: { so3(); break; }case 4: { so4(); break; }case 5: { so5(); break; }case 6: { so6(); break; }case 7: { so7(); break; }case 8: { so8(); break; }case 9: { so9(); break; }// Neu so lan =9 hien so 9 thoat khoi switch

  • 8/7/2019 giaotrinh8051

    90/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 90 - www.EmbestDKS.com

    }}Hm qut phm:

    /*Khai bao 1 mang 4 phan tu nhu sau: quetphim[4]={P0=0xFE,0xFD,0xFB,0xF7}De dua 0 ra lan luot cac hang phim, khi do neu nut nao duoc an thi chan vi dieu khien sexuong 0.Chu y fai kiem tra phim khoang 100 lan.*/unsigned char quetphim[4]={0xFE,0xFD,0xFB,0xF7};// Dinh nghia so lan quet phim#define solanquetphim 100 // Cac ban co the thay doi gia tri nay cho phu hopunsigned char quetbanphim(void){unsigned char giatribanphim;// Bien de luu gia tri phim an tu 0 den 15 ma hoa 16 phimunsigned char x,y;

    //Quet 4 hang phim

    for(x=0; x

  • 8/7/2019 giaotrinh8051

    91/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 91 - www.EmbestDKS.com

    Vit hm phm c n:

  • 8/7/2019 giaotrinh8051

    92/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 92 - www.EmbestDKS.com

    Vit hm qut bn phm v hm main.

  • 8/7/2019 giaotrinh8051

    93/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 93 - www.EmbestDKS.com

  • 8/7/2019 giaotrinh8051

    94/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 94 - www.EmbestDKS.com

    5.4. Kinh nghim:- Cc bn chy Debug xem s thay i gi tr ca bin gi tr bn phm.- Cc bn mi dng 10 phm t 09 . Bi tp cho cc bn l dng phm 16

    chn mode: nhn phm 16 th thay i ch hin s thnh hin ch v phm 1 tngng ch A,phm 2 tng ng ch B v c nh vy.

    - Cc bn th thay i gi tr #define solanquetphim 100 xem sao.- ng lo lng v cc warning. Cc warning n cnh bo l bn c khai bo 1 s

    hm m bn khng dng n. Nh hm delay(); hm ch A, vv.

    Nhim v: iu khin hin th LCD 16x2 dng ch www.EmbestDKS.comchy trn mn hnh LCD.C 16 chn nh sau:

    Chn K hiu I/O M t1 VSS - t2 VCC - Dng ngun 5v3 VEE - Cp ngun iu khin phn4 RS I RS = 0 chn thanh ghi lnh. RS = 1 chn

    thanh d liu5 R/W I R/W = 1 c d liu. R/W = 0 ghi6 E I/O Cho php7 DB0 I/O Cc bt d liu8 DB1 I/O Cc bt d liu9 DB2 I/O Cc bt d liu10 DB3 I/O Cc bt d liu11 DB4 I/O Cc bt d liu12 DB5 I/O Cc bt d liu13 DB6 I/O Cc bt d liu14 DB7 I/O Cc bt d liu

    Chn 15 v chn 16: ghi l A v K. N l ant v katt ca 1 con led dng sng LCDtrong bng ti. Chng ta khng s dng. Nu cc bn mun dng th ni chn A qua 1in trt 1K n 5K ln dng 5V, chn K xung t n s sng.6.1.Lp mch theo s sau:

  • 8/7/2019 giaotrinh8051

    95/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 95 - www.EmbestDKS.com

    D5

    D6D7

    R

    S

    R

    w

    E

    N

    ENRw

    RS

    RST9

    XTAL218

    XTAL119

    G

    N

    D

    2

    0

    PSEN29ALE/PROG30EA/VPP31

    V

    CC

    4

    0

    P1.01

    P1.12

    P1.23

    P1.34

    P1.45

    P1.56

    P1.67

    P1.78

    P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528

    P3.0/RXD10

    P3.1/TXD11

    P3.2/INT012

    P3.3/INT113

    P3.4/T014

    P3.5/T115

    P3.6/WR16

    P3.7/RD17

    P0.0/AD039

    P0.1/AD138

    P0.2/AD237

    P0.3/AD336

    P0.4/AD435

    P0.5/AD534

    P0.6/AD633

    P0.7/AD732

    U1

    AT89C51

    1

    23456789

    1

    0

    R1 10K

    5VVCC

    123456789

    1

    0

    1

    1

    1

    2

    1

    3

    1

    4

    1

    5

    1

    6

    J1

    LCD

    R2

    5K

    Y112Mhz

    C133p

    C233p

    R310K

    5V

    LCD16x02

    + C3CAPACITOR POL

    5V5V

    C6

    104

    D0D1D2D3D4

  • 8/7/2019 giaotrinh8051

    96/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 96 - www.EmbestDKS.com

    - Hng dn: Cm lun 8 bit d liu ca LCD t D0 n D7 vo cng 2 ca 8051 mkhng cn cu dy. tha 6 chn ra ngoi l: EN,RW,RS,Ve, Vcc, GND ra ngoi. Ri

    dng dy cu chn 1 xung GND, chn 2 ln +5V, chn 3 vo chn gia ca bin trtinh 5K, 2 chn cn li ca bin trtinh 1 chn ln +5V,1 chn xung 0V.6.2.Nguyn l hot ng ca LCD:

    - Chn VCC, VSS v VEE: Cc chn VCC, VSS v VEE: Cp dng ngun - 5v v ttng ng th VEEc dng iu khin tng phn ca LCD.

    - Chn chn thanh ghi RS (Register Select): C hai thanh ghi trong LCD, chnRS(Register Select) c dng chn thanh ghi, nh sau: Nu RS = 0 th thanh ghi mlnh c chn cho php ngi dng gi mt lnh chng hn nh xo mn hnh, acon tr vu dng v.v Nu RS = 1 th thanh ghi d liu c chn cho php ngidng gi d liu cn hin th trn LCD.

    - Chn c/ ghi (R/W): u vo c/ ghi cho php ngi dng ghi thng tin ln

    LCD khi R/W = 0 hoc c thng tin t n khi R/W = 1.- Chn cho php E (Enable): Chn cho php E c s dng bi LCD cht d

    liu ca n. Khi d liu c cp n chn d liu th mt xung mc cao xung thp phic p n chn ny LCD cht d liu trn cc chn d liu. Xung ny phi rng tithiu l 450ns.

    - Chn D0 - D7: y l 8 chn d liu 8 bt, c dng gi thng tin ln LCDhoc c ni dung ca cc thanh ghi trong LCD. hin th cc ch ci v cc con s,chng ta gi cc m ASCII ca cc ch ci t A n Z, a n f v cc con s t 0 - 9 ncc chn ny khi bt RS = 1.

    Cng c cc m lnh m c thc gi n LCD xo mn hnh hoc a contr vu dng hoc nhp nhy con tr.

    - Ch :Chng ta cng s dng RS = 0 kim tra bt cbn xem LCD c snsng nhn thng tin. C bn l bt D7 v c thc c khi R/W = 1 v RS = 0 nhsau:

    Nu R/W = 1, RS = 0 khi D7 = 1 (cbn 1) th LCD bn bi cc cng vic bntrong v s khng nhn bt k thng tin mi no. Khi D7 = 0 th LCD sn sng nhnthng tin mi. Lu chng ta nn kim tra cbn trc khi ghi bt k d liu no lnLCD.

    - Sau y l bng m lnh ca LCD:

    M (Hex) Lnh n thanh ghi ca LCD1 Xo mn hnh hin th

    2 Trvu dng4 Gim con tr (dch con tr sang tri)6 Tng con tr (dch con tr sang phi)5 Dch hin th sang phi7 Dch hin th sang tri8 Tt con tr, tt hin thA Tt hin th, bt con trC Bt hin th, tt con tr

  • 8/7/2019 giaotrinh8051

    97/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 97 - www.EmbestDKS.com

    E Bt hin th, nhp nhy con trF Tt con tr, nhp nhy con tr10 Dch v tr con tr sang tri

    14 Dch v tr con tr sang phi18 Dch ton b hin th sang tri1C Dch ton b hin th sang phi80 p con tr vu dng th nhtC0 p con tr vu dng th hai38 Hai dng v ma trn 5 7

    - iu khin LCD qua cc bc sau:Bc 0 : Chun b phn cng. Dng tuc vt hay ci g bn c xoay bin tr5 K

    iu chnh tng phn ca LCD. Xoay cho n khi cc vung(cc im nh) caLCD hin ln th xoay ngc bin trli 1 cht.

    Bc 1 : Khi to cho LCD.Bc 2 : Gn cc gi tr cho cc bit iu khin cc chn RS,RW,EN cho ph hp

    vi cc ch : Hin th k t ln LCD hay Thc hin 1 lnh ca LCD.Bc 3: Xut byte d liu ra cng iu khin 8 bit d liu ca LCD.Bc 4: Kim tra cbn xem LCD sn sng nhn d liu mi cha.Bc 5: Quay vng li bc 1.

    6.3.Lp trnh:- c th lp trnh cho LCD ta thm vo th vin string.h ca trnh bin dch

    bng cu lnh:#include - Khai bo cc chn ca LCD gn vi cc cng:/*RS chon thanh ghi

    =0 ghi lenh=1 ghi du lieu

    RW doc ghi=0 ghi=1 doc

    E cho fep chot du lieuxung cao xuong thap toi thieu 450 ns.

    Bit co ban D7khi RS=0 RW=1 neu D7=1 LCD ban

    D7=0 LCD san sang.*/sfr LCDdata = 0xA0;// Cong 2 , 8 bit du lieu P0 co dia chi 0x80, P1 0x90 , P2 0xA0sbit BF = 0xA7; // Co ban bit 7sbit RS = P3^5;sbit RW = P3^4;sbit EN = P3^3;

  • 8/7/2019 giaotrinh8051

    98/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 98 - www.EmbestDKS.com

    - Vit 1 s hm iu khin LCD nh sau:* Hm kim tra LCD c bn hay khng:void wait(void)

    {long n = 0;EN=1;// Dua chan cho fep len caoRS=0;// Chon thanh ghi lenhRW=1;// Doc tu LCDLCDdata=0xFF;// Gia tri 0xFFwhile(BF){n++; if(n>100) break;}// Kiem tra co ban// Neu ban dem n den 100 roi thoat khoi whileEN=0;// Dua xung cao xuong thap de chotRW=0;// Doc tu LCD

    }

    * Hm iu khin LCD thc hin 1 lnh:void LCDcontrol(unsigned char x){

    EN=1;// Dua chan cho fep len caoRS=0;// Chon thanh ghi lenhRW=0;// Ghi len LCDLCDdata=x;// Gia tri xEN=0;// Xung cao xuong thapwait();// Doi LCD san sang

    }Hm c 1 bin u vo l cc gi tr trong bng m lnh ca LCD.

    * Hm khi to LCD:void LCDinit(void){

    LCDcontrol(0x30);//Che do 8 bit.LCDcontrol(0x30);LCDcontrol(0x30);LCDcontrol(0x38);// 2 dong va ma tran 5x7LCDcontrol(0x0C);// Bat con troLCDcontrol(0x06);// Tang con tro xang faiLCDcontrol(0x01);// Xoa man hinh

    }

    * Hm lnh cho LCD hin th 1 k t :void LCDwrite(unsigned char c){

    EN=1;// Cho fep muc caoRS=1;// Ghi du lieuRW=0;// Ghi len LCDLCDdata=c;// Gia tri CEN=0;// Xung cao xuong thap

  • 8/7/2019 giaotrinh8051

    99/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 99 - www.EmbestDKS.com

    wait();// Cho}

    Hm c 1 bin u vo l m ca k t trong bng ASCII.

    * Hm lnh cho LCD hin th 1 xu k t ( dng ch):void LCDputs(unsigned char *s,unsigned char row){unsigned char len;if(row==1) LCDcontrol(0x80);// Ep con tro ve dau dong 1else LCDcontrol(0xC0);// Ep con tro ve dau dong 2

    len=strlen(s);// Lay do dai bien duoc tro boi con trowhile(len!=0)// Khi do dai van con{

    LCDwrite(*s);// Ghi ra LCD gia tri duoc tro boi con tros++;// Tang con tro

    len--;// Tru do dai}

    }Hm c hai bin u vo l : xu k t cn hin th v dng cn hin th xu (1 hoc 2).

    *s l con tr, tr ti bin s6.3.1. nh ngha con trB nhca VK cc bn tng tng nh 1 ci t nhiu ngn. Khi khai bo 1

    bin, v d bin kiu unsigned char i; th vk lu bin I vo 1 ngn trong t_ 1 nhtrong b nh, dnhin xc nh cc ngn t ngi ta nh s cho tng ngn, cn vkcp cho cc nhtrong b nh1 a ch xc nh nh.V d tip: I c gi tr l100, th ni dung ca nhlu bin I l 100,i=100, cn con tr trn I c gi tr l a

    ch ca nhcha bin I .6.3.2. Cch s dng con tr: khai bo con tr c thm du * trc tn bin. *I l bin kiu con tr, tr ti

    bin i(unsigned char). I mang gi tr t 0 n 255, *I mang i ch ca nhcha i.* Hm hin th 1 s integer:void LCDwritei(int d){unsigned char i,j,k,l;i=d%10;// Chia lay phan du, duoc chu so hang don vid=d/10;// Chia lay phan nguyen, duoc nhung chu so da bo hang don vij=d%10;// Duoc chu so hang chuc

    d=d/10;// Nhung chu so da bo hang don vi va hang chuck=d%10;// Duoc hang traml=d/10;// Duoc hang nghinLCDwrite(48+l);// Hien thi ki tu trong bang asciiLCDwrite(48+k);// Trong bang ascii so 0 co co so thu tu la 48LCDwrite(48+j);LCDwrite(48+i);

  • 8/7/2019 giaotrinh8051

    100/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 100 - www.EmbestDKS.com

    }Hm c 1 bin u vo l s int ln n hng nghn cn hin th.

    * Hm tr:

    void delay(long time){

    long n;for(n=0;n

  • 8/7/2019 giaotrinh8051

    101/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 101 - www.EmbestDKS.com

    Nhim v:To ra xung c rng thay i, 10 cp, tn s 1Khz, iu khin tc ng

    c(10 cp tc ).7.1. Lp mch theo s sau:

    + C3

    10uF/25V

    C233p

    C133p

    R110K

    5VDC

    1 2

    SW1

    1 2

    SW2

    X119

    X218

    RESET9

    P2.021

    VCC

    40

    VSS20

    EA31

    P1.01

    P1.12

    U1

    8051

    12Mhz

    3 B

    2C

    1E

    C828

    1

    2

    A

    -

    +

    DC Motor

    12V

    R210K

    - Hng dn: Chn ca C828 l ECB, nu cm xui transitor nhn vo mt c ch, tnh tbn tri sang.7.2.Lp trnh:- Cch to xung c rng thay i bng VK.

    + Cch 1: Nh cc bn iu khin nhp nhy 1 con led, l to ra 1 xung 1chn ca vi iu khin, nhng xung c rng cnh, tn s ln, cch bn c thiu chnh li hm delay tn s ca n ng 1 Khz. Tuy nhin v l dng hm delaynn trong thi gian c xung ln 1(5V) v thi gian khng c xung(0V) vi iu khinkhng lm g c, hn na to xung bng vic delay m cc bn c nhu cu cn 2 b pht

  • 8/7/2019 giaotrinh8051

    102/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 102 - www.EmbestDKS.com

    xung 2 knh, c cng tn s m khc rng xung th trnn rt kh khn. Cho nnchng ta dng bnh thi Timer ca vi iu khin trong trng hp ny rt tin.

    + Cch 2: Dng ngt Timer ca b vi iu khin.

    Trc ht nhc li v ngt ca vi iu khin:+ Ngt l g ? tr li cu hi ny ti xin trch an v ngt trong bi 2 v d cho

    ngt timer:

    Timer

    * ** * ** * **

    Mt chng trnh chnh khng c ngt th chy lin tc, cn chng trnh c ngtth c khi no iu kin ngt c m bo th con tr s nhy sang hm ngt thc hinxong hm ngt li quay vng ch c thc hin tip chng trnh chnh. Ti c 1 v dnh sau: Bn ang n cm , c ting in thoi , bn t bt cm ra nghe in thoi ,nghe xong li quay v bng bt cm ln n tip. Th qu trnh n cm ca bn l chngtrnh chnh,c in thoi gi n l iu kin ngt, bn ra nghe in thoi l thc hinchng trnh ngt(Interrupt Service Rountine),quay vn cm tip l tip tc thc hinchng trnh chnh.

    Ngt i vi ngi mi hc vi iu khin l rt kh hiu, v a s cc ti liu ukhng gii thch ngt lm g. C nhiu loi ngt khc nhau nhng tt cu c chung1 c im, ngt dng cho mc ch a nhim. a tc l nhiu, nhim tc l nhim v.

    Thc hin nhiu nhim v .Cc bn nhn vo tin trnh ca hm main vi chng trnh c ngt :

    Chng trnh chnh ang chy, ngt xy ra, thc hin hm ngt ri quay li chng trnhchnh. Chng trnh trong vi iu khin khc vi v dn cm nghe in thoi ca ti ch, thi gian thc hin hm chnh l rt ln,thi gian thc hin hm ngt l rt nh, chonn thi gian thc hin hm ngt khng nh hng g n thi gian thc hin hm chnhNh vy trong hm ngt cc bn lm 1 vic, trong hm chnh cc bn lm 1 vic

    Main Program

    Main

    ISR

    Main

    ISR

    Main

    ISR

    Main

    Program excution without interrut

    Program excution with interrupt.

  • 8/7/2019 giaotrinh8051

    103/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 103 - www.EmbestDKS.com

    nh vy coi nh cc bn lm c 2 vic(a nhim) trong 1 qung thi gian tng ingn cmS, ch thc ra ti 1 thi im vi iu khin ch thc thi 1 lnh.V d : Bn th nghxem lm th no va iu ch xung PWM iu chnh tc

    ng c, va c cc cm bin u vo m tc ng cph thuc u vo cm bin.Vy ngt l 1 iu kin no xy ra ngu nhin m vi iu khin c th bit do

    phn cng ca vi iu khin, ri ta cn c vo lp trnh.* V d: Vi ngt bnh thi timer, hay bm counter l khi trn bm th

    phn cng ca vi iu khin s bo c ngt xy ra v nhy n chng trnh phc vngt( ISR_ Interrupt Sevice Rountine) 1 cch tng.

    Vi ngt ngoi, chn P3.2 chng hn, nu ta khai bo trc chn s dng chnP3.2 s dng cho ngt ngoi ch khng phi s dng cho mc ch IO thi c khi c 1xung xut hin t mch ngoi vi truyn vo chn P3.2 th phn cng ca vi iu khinnhn ra v chuyn ti chng trnh phc v ngt.

    Vi ngt ni tip th c khi c k t truyn t my tnh xung vi iu khin th s

    c hin tng ngt xy ra.- Hm ngt:Cu trc:Void Tnhm(void) interrupt ngunngt using bngthanhghi{// Chuong trinh phuc vu ngat o day}Ch v hm ngt:

    + Hm ngt khng c php tr li gi tr hay truyn bin vo hm.+ Tn hm bt k.+ interrupt l t kha phn bit hm ngt vi hm thng.

    + Ngun ngt t 0 ti 5 theo bng vector ngt.+ Bng thanh ghi trn ram chn t 0 n 3.

    Ty theo bn vit hm ngt cho ngun no bn chn ngun ngt t bng sau:

    Ngt do C a ch vectorReset h thng RST 0000HNgt ngoi 0 IE0 0003H

    Bnh thi 0 TF0 000BHNgt ngoi 1 IE1 0013H

    Bnh thi 1 TF1 001BH

    Port ni tip RI hoc TI 0023HBnh thi 2 TF2 hoc EXF2 002BH

    Ring ngt Reset khng tnh, bt u m t 0 v t ngt ngoi 0. V d: ti cn vit hmngt cho bnh thi timer 1 hm ngt s l.void timer1_isr(void) interrupt 3 using 0{// Lenh can thuc hien.}

  • 8/7/2019 giaotrinh8051

    104/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 104 - www.EmbestDKS.com

    - V using 0: C 4 bng thanh ghi bn c th chn cho chng trnh phc v ngt, ci nycng khng quan trng. Trong hm ngt cc bn c th bi t using 0, khi vi iukhin s t sp xp l dng bng thanh ghi no.

    - Hm ngt khc hm bnh thng ch no. Hm bnh thng v d hm delay, c khibn gi n th n sc thc hin, c ngha l n c v tr cnh trong tin trnh hmmain, c ngha l bn bit n xy ra khi no. Cn hm ngt th khng c tin trnh cnh, iu kin ngt c th xy ra bt k lc no trong tin trnh hm main v c khi noc iu kin ngt th hm ngt sc gi tng.- s dng ngt ta phi lm cc cng vic sau:

    1) Khi to ngt: dng ngt no th cho php ngt hot ng bng cch gn gitr tng ng cho thanh ghi cho php ngt IE( Interrupt Enable):

    EA ET2 ES ET1 EX1 EX0 ET0iu khin cc ngun ngt

    IE (0: khng cho php; 1: cho php)

    IE.7 EA Cho php/ khng cho php ton ccIE.6 --- Khng s dngIE.5 ET2 Cho php ngt do bnh thi 2IE.4 ES Cho php ngt do port ni tipIE.3 ET1 Cho php ngt cho bnh thi 1IE.2 EX1 Cho php ngt t bn ngoi (ngt ngoi 1)IE.1 EX0 Cho php ngt t bn ngoi (ngt ngoi 0)IE.0 ET0 Cho php ngt do bnh thi 0

    IE l thanh ghi c th x l tng bt. V d : bn mun cho php ngt timer 1 bn dnglnh: ET1=1; Khng cho php na bn dng lnh : ET1=0; Hoc bn c th dng lnhIE= 0x08; th bit 3 ca thanh ghi IE tc(IE) s ln 1. Nhng cch th nht tin hn.

    2) Cu hnh cho ngt: Trong 1 ngt n li c nhiu ch v d: vi ngt timer.Bn phi cu hnh cho n chy ch no, ch timer hay counter, ch 16 bit, hay8 bit, bng cch gn cc gi tr tng ng cho thanh ghi TMOD( Timer MODe).

  • 8/7/2019 giaotrinh8051

    105/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 105 - www.EmbestDKS.com

    TMOD Chn model cho bnh thi 1

    7 GATE Chn model cho bnh thi 16 C/T Bt chn chc nng m hoc nh thi:

    5 M1 Bit chn ch thnht4 M0 Bit chn ch th2

    M1 M0 Ch

    Chc nng

    0 0 0 Chnh thi 13 bit0 1 1 Chnh thi 16 bit1 0 2 Ch t ng np li 8

    bit

    1 1 3 Chnh thi chia x3 GATE Bit iu khin cng cho bnh thi 02 C/T Bit chn chc nng m /nh thi cho bnh

    thi 01 M1 Bit chn ch thnht cho bnh thi 00 M0 Bit chn ch th2 cho bnh thi 0

    V d ti cu hnh cho bnh thi 1 ch timer,vi bm 8 bit tng np li(autoreload) dng lnh sau: TMOD=0x20.Cc bn ng lo v vic phi nhbng thanh ghi ny, cc bn khng phi nhni trngra nh vy, chuyn sang phn lp trnh cc bn sc hng dn lm th no khngphi nh, nhng ch lp trnh vi C mi lm c cn lp trnh Asem th bt buc phi

    nh. 3)Bt u chng trnh c ngt:-Trc khi bt u cho chy chng trnh ta phi cho php ngt ton cc c

    xy ra bng cch gn EA(Enable All interrupt) bng 1, th ngt mi xy ra.-Thng th ngay vo u chng trnh(hm main) trc vng while(1) chng ta

    t cng vic khi to, cu hnh v cho php kim tra ngt. V d vi bnh thi timerta gn cc gi tr ph hp cho thanh ghi TCON( Timer CONtrol).

    TCON iu khin binh thiTCON.7 TF1 Ctrn ca bnh thi 1. Cny c set bi

    phn cng khi c trn, c xo bi phn mm,hoc bi phn cng khi b vi x l trn trnh

    phc v ngtTCON.6 TR1 Bit iu khin hot ng ca bnh thi 1. Bitny c set hoc xo bi phn mm iu khin

    bnh thi hot ng hay ngngTCON.5 TF0 C trn ca bnh thi 0TCON.4 TR0 Bit iu khin hot ng ca bnh thi 0TCON.3 IE1 C ngt bn ngoi 1 (kch khi cnh). Cny c

    set bi phn cng khi c cnh m (cung) xut hin

  • 8/7/2019 giaotrinh8051

    106/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 106 - www.EmbestDKS.com

    trn chn INT1, c xo bi phn mm, hocphn cng khi CPU trn trnh phc v ngt

    TCON.2 IT1 Cngt bn ngoi 1 (kch khi cnh hoc mc). C

    ny c set hoc xo bi phn mm khi xy racnh m hoc mc thp ti chn ngt ngoi

    TCON.1 IE0 Cngt bn ngoi 0 (kch khi cnh)TCON.0 IT0 Cngt bn ngoi 0 ( kch khi cnh hoc mc)

    V d chy bnh thi timer 1 ta dng cu lnh: TR1=0;TR1(Timer Run 1). Cn bn no thch kh th:TCON=0xxx;Cn cc loi ngt khc qu trnh tng t, y l kha hc cbn ch lm vic vi ngttimer, trong kha nng cao s c cc ngt cn li, tuy nhin lm vic c vi ngt timerth cc ngt khc cc bn cng c th lm tng t, cc bn lm n ngt no th dng tiliu tra bng thanh ghi ca ngt . Ti liu ti s gi cng bi ny.- Quay trli bi hc:

    Sau khi khi to song v cho ngt timer 1 chy th iu g xy ra?Khi bt u cho timer 1 chy th bm ca timer sm dao ng ca thch anh, c 12dao ng ca thch anh(1 chu k my), bm ca timer 1 TL1(Timer Low1) s tng1,c thn ni timer 1 m s chu k my. i vi ch 8 bt.TL1 l 1 thanh ghi 8 bt, l bm ca bnh thi r ri. N m c t 0, n 255.Nu n m n 256 th bm trn, TL1 quay vng li bng 0, v cngt TF1(TimerFlag 1) tng c gn ln 1(bng phn cng ca vi iu khin) nh 1 cng tc tngbt, v ngt xy ra.

    Cn vi ch 16 bt, bm ca bnh thi cn 1 thanh ghi 8 bt na lTH1(Timer high 1), nu cu hnh cho timer 1 hot ng ch 16 bit th khi TL1 trnn sm sang TH1(TH1 s tng 1). Nh vy ta c thm: 216 chu k my( 2 thanh ghi

    8+8=16 bt).Ch l khi bm trn ngt s xy ra. Nu ta cn m 256 chu k my th khi khi tota cho TL1=0; , cn nu khng mun m 256 chu k my m ta ch cn m 100 thingt xy ra ri th ta fi lm nh sau: 256-100 = 156; v khi khi to ta gn :TL1=155; v m t 155 n 255 l 100 ln th ngt xy ra.

    Vi yu cu ca bi. To xung tn s 1Khz Chu k = 1/103 = 0,001 giy= 1 miligiy=1000 uS= 1000 chu k my. Vi 10 cp tc , tc l bn phi to ra c xung10%, 20%, 30%, 40%, , 90%, 100%. 1 xung nh sau:

    5V

    0V

    T : Chu k1000 miro giy.

    Khong thi gian xung ko di 5V l T1. Xung 10% tc l T1/ T= 10%=1/10. Xung 20%T2/T=2/10PWM(Thay i rng xung)By giti mi xin ni v phn 2.

  • 8/7/2019 giaotrinh8051

    107/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 107 - www.EmbestDKS.com

    7.3) Nguyn l hot ng:- Xung PWM: a ra mtransitor, xung vi rng ln hn transitor s mlu

    hn ng cs quay nhanh hn,dnhin khng tuyn tnh. Khng c xung ng cs

    khng quay, c xung 100% ng cs quay max.Tuy nhin xung phi ln hn 1 mcno th mi khi ng cho ng c. Cc c tnh ny cc bn tham kho trong giotrnh v my in, kh cin, nu cc bn cn thng s chnh xc. c th thay i 10 cp tc vi chu k 1000uS, ta khi to cho ngt timer: 100 uSngt 1 ln. Trong hm ngt kim tra xem ta cn cp xung bao nhiu % th ta s gn gi trcho n. C th nh sau:* Hm khi to ngt.

    Dng ngt timer 0, 100 uS ngt 1 ln, dng ch 2 8 bit tng np li catimer (v mnh ch cn m n 100).TL0 np bng 156. i vi ch 2 khi trn bmTL0 s quay vng gi tr bng 0, nhng sau n li c np gi tr lu trong TH0(gitr np li), do ta ch cn gn gi tr choTL0 v TH0 trong hm khi to, cn cc ch

    khc 16 bit, 2 timer counter 8 bit, khi trn bm TL0 khng c np li m ta phit gn li gi tr cho n trong hm ngt.void khoitaotimer0(void)// Ham khoi tao{EA=0;// Cam ngat toan cucTMOD=0x02;// Timer 0 che do 2 8 bit auto reloadTH0=0x9B;// Gia tri nap lai 155 doi ra so hexTL0=0x9B;// Gia tri khoi tao 155 doi ra so hexET0=1;// Cho phep ngat timer 0EA=1;// Cho phep ngat toan cucTR0=1;// Chay timer 0 bat dau dem so chu ki may

    }

  • 8/7/2019 giaotrinh8051

    108/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 108 - www.EmbestDKS.com

  • 8/7/2019 giaotrinh8051

    109/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 109 - www.EmbestDKS.com

    * Hm ngt:unsigned char dem=0;// Khai bao bien dem de dem tu 1 den 10unsigned char phantramxung;// Bien chua phan tram xung(0...10)

    void timer0(void) interrupt 1 //Ngat timer 0{TR0=0;// Dung chay timer 0TF0=0;// Xoa co, o che do co tu duoc xoa,che do khac can toi cu viet vao daydem++;if(dem

  • 8/7/2019 giaotrinh8051

    110/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 110 - www.EmbestDKS.com

    phantramxung=9;delaylong(20000);phantramxung=4;

    delaylong(20000);}}

    Gi s khi cc bn gn phantramxung=4; Th c mi 100uS ngt xy ra 1 ln, v kim trabin m. Ln u dem=1

  • 8/7/2019 giaotrinh8051

    111/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 111 - www.EmbestDKS.com

    P2_0=0 mc thp, , dem =10

  • 8/7/2019 giaotrinh8051

    112/119

  • 8/7/2019 giaotrinh8051

    113/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 113 - www.EmbestDKS.com

    Ch vo list mode: Chn ch, ri quan st gi trTMOD ri quay li in vochng trnh.Ch : V cng quan trng cc bn chc chy vi ng cloi nh, nu ng cloi

    to phi c mch iu khin ring khng l s chy chip. Nu khng c mch iu khincc bn c th lm, c th mn ca ti, khng th chu kh chy m phng.

  • 8/7/2019 giaotrinh8051

    114/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 114 - www.EmbestDKS.com

    Nhim v:iu khin Led ma trn 8x8. Hin th dng ch chy MTC

    Chun b:Led ma trn 8x8

    12345678

    9 10 11 12 13 14 15 16

    LED MATRIX 1

    8x8

    S chn led ma trn 8x8:Chn Ct Hng Chn Ct Hng1 4 9 8

    2 2 10 53 7 11 34 6 12 55 1 13 86 4 14 77 3 15 28 6 16 6

    8.1. Lp mch theo s sau:

  • 8/7/2019 giaotrinh8051

    115/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 115 - www.EmbestDKS.com

    Hang6

    VCC

    C

    o

    t3

    Cot4

    H

    a

    n

    g

    1

    H

    a

    n

    g

    3

    Hang4

    Hang8Cot7

    H

    a

    n

    g

    7

    Cot3 Hang3

    C233p

    C

    o

    t2

    Cot2Hang1

    H

    a

    n

    g

    6

    12345678

    9 10 11 12 1 3 14 15 1

    LED MATRIX 1

    8x8

    C

    t1

    H

    a

    n

    g

    5

    C

    o

    t5

    10K

    H

    a

    n

    g

    2

    Cot1

    Hang7

    Cot5

    C133p

    C

    o

    t6

    C

    o

    t8

    Hang5

    R2

    10K

    Hang2

    U1

    8051

    2930

    40

    2

    0

    31

    1918

    9

    3938

    373635343332

    12345678

    2122

    232425262728

    1011121314151617

    PSENALE

    VCC GN

    D

    EA

    X1X2

    RST

    P0.0/AD0

    P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

    P1.0P1.1P1.2P1.3P1.4P1.5P1.6

    P1.7

    P2.0/A8

    P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

    P3.0/RXDP3.1/TXD

    P3.2/INT0P3.3/INT1

    P3.4/T0P3.5/T1

    P3.6/WR

    P3.7/RD

    Cot6

    H

    4

    C

    o

    t4

    +C3

    10uF

    R3

    1

    23456789

    Cot8

    Y1

    12M

    C

    o

    t7

    H

    a

    n

    g

    8

  • 8/7/2019 giaotrinh8051

    116/119

  • 8/7/2019 giaotrinh8051

    117/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 117 - www.EmbestDKS.com

    Qu trnh iu khin hin th nh sau:Ct 1, hng 1, ct 2 hng 2, , ct 8 , hng 8.

    lm ch chy:

    Thm 1 bin vo iu khin th t hin th hng.Hin 1 ch trn led nh trn a ra:Ct 1, hng 1, ct 2 hng 2, , ct 8 , hng 8.Mun ch dch chuyn sang trI ta hin th nh sau:Ct 1, hng 2, ct 2 hng 3, , ct 7, hng 8,ct 8 , hng 1 k t sau.

    Ct 1, hng 3, ct 2 hng 4, , ct 7 hng 1 k t sau,ct 8 , hng 2 k t sau.

    8.3) Code:#include /* Cot tu P0.0 den P0.7Hang tu P2.0 den P2.7De quet dua muc logic 0 lan luot ra cong 0*//* Ham tre */void delay(long time){long n;for(n=0; n

  • 8/7/2019 giaotrinh8051

    118/119

    DKS_GROUP Microcontroller Training Center

    DKS_GROUP - 118 - www.EmbestDKS.com

    kytu1[4]=0xFF; kytu1[5]=0x01; kytu1[6]=0x01; kytu1[7]=0x01; kytu1[8]=0x00;break;}

    // Chu Ccase 3: { kytu1[0]=0x00; kytu1[1]=0x7E; kytu1[2]=0x81; kytu1[3]=0x81;kytu1[4]=0x81; kytu1[5]=0x81; kytu1[6]=0x42; kytu1[7]=0x00; kytu1[8]=0x00;break; }// Dau trangcase 4: { kytu1[0]=0x00; kytu1[1]=0x00; kytu1[2]=0x00; kytu1[3]=0x00;kytu1[4]=0x00; kytu1[5]=0x00; kytu1[6]=0x00; kytu1[7]=0x00; kytu1[8]=0x00;break; }}}/* Ham quet led ma tran_ vua hien thi vua dich ky tu dan sang trai*/

    void hienthi(void){unsigned char n,m,lap;unsigned char cot[8]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; // Cacphan tuquet cotfor(m=0; m

  • 8/7/2019 giaotrinh8051

    119/119