TTVXL - D3DTVT - EPU

download TTVXL - D3DTVT - EPU

of 75

Transcript of TTVXL - D3DTVT - EPU

  • 8/3/2019 TTVXL - D3DTVT - EPU

    1/75

    Nhm 1 3dtvt

    TRNG I HC IN LCKHOA IN T - VIN THNG

    BO CO

    THC TP MN VI X L

    ti : Led Cube 8x8x8

    Gio vin hng dn: Hong Vn ng

    Sinh vin : NHM 1

    inh Vit An

    Phm Vn ng

    V Chung Kin

    Lp : D3_DTVT

  • 8/3/2019 TTVXL - D3DTVT - EPU

    2/75

    Nhm 1 3dtvt

    Gii Thiu Chung1. S khc nhau gia vi x l v vi iu khin

    Vi x l, v d nh con chip intel hay ADM trong cc my tnh thng thng,nkhng c RAM,ROM,cng IO v cc thit b ngoi vi on chip. Cn vi iu khin chamt b vi x l,RAM,ROM,cng IO v c th cha cc thit b ngoi vi. Trong bi thchnh ny chng ta ch nghin cu v vi iu khin.

    2. Gii thiu v dng AT89C51

    AT89C51 l mt b vi x l 8 bit,loi CMOS,c tc cao v cng sut thp vib nh Flash c th lp trnh c.N c sn xut vi cng ngh b nh khng bay himt cao ca hng Atmel, v tng thch vi h MCS-51TM v chn ra v tp lnh.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    3/75

    Nhm 1 3dtvt

    S khi ca AT89C51

    AT89C51 c cc c trng c bn sau : 4Kbyte Flash,128 byte RAM, 32 ng xutnhp,hai b nh thi/m 16 bit,mt cu trc ngt hai u tin v 5nguyn nhn ngt,mt postni tip song cng,mch dao ng v to xung clock trn chip. AT89C51 c thit k vi logictnh cho hot ng c tn s gim xung 0 v h tr hai ch tit kim nng lng c lachn bng phn mm.Ch ngh dng CPU trong khi vn cho php RAM,cc b dnhthi/m,port ni tip v h thng ngt tip tc hot ng. Ch ngun gim duy tr ni dungca RAM nhng khng cho mch dao ng cung cp xung clock nhm v hiu ha cc hotng khc ca chip cho n khi c reset cng tip theo.

    Trong h AT89C51 ta i nghin cu vi iu khin 8051

    3. Gii thiu chung v 8051

    a. S chn:

  • 8/3/2019 TTVXL - D3DTVT - EPU

    4/75

    Nhm 1 3dtvt

    L IC ng v dng DIP c 40 chn,mi chn c mt k hiu tn v chc nng nh sau: chn40 : ni vi ngun VCC (+5v); chn 20: ni vi Mass GND; chn 29(PSEN)(program storeenable):l tn hiu iu khin xut ra ca 8051, n cho php chn b nh ngoi v c nichung vi chn OE(OutOut Enable) ca EPROM ngoi cho php c cc byte ca chngtrnh; chn 30(ALE: Adress Latch Enable): l tn hiu iu khin xut ra ca 8051 n cho php

    phn knh ca bus a ch v bus d liu ca port 0;chn 31(EA:Eteranl Acess): c a xungthp cho php chn b nh ngoi.i vi 8051 thi EA=5V chn ROM ni, EA=0V chn ROMngoi. 32 chn cn li chia lm 4 cng vo ra: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 21 - 28 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 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 dao ng cho vi iu khin.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    5/75

    Nhm 1 3dtvt

    BI 1 : IU KHIN IO VI LED N1. Lp mch

    2. Nguyn l hot ngLed ni t chn vi iu khin xung t vy nu chn vi iu khin l 5V n s

    sng,0V n tt.3. Lp trnh

    Trc ht iu khin 1 LED, iu khin 1 LED ta ch vic gn chn ni t caLED vi 0 hoc 1 th in p chn s l 0V hoc 5V tng ng vi in p ns sang hoc tt.Lm tng t vi cc chn cn li ca vi iu khin ta s c mt dy ccn LED sang theo mun. y ta s iu khin 8 LED.

    CODE:

    #include //khai bao thu vien//

    #define bat 0 // dinh nghia bat den led//

    #define tat 1 //dinh nghia tat den led//

    //khai bao bien toan cuc

    sbit led1= P2^0; //khai bao led1 kieu bit chan P2_0//

    sbit led2= P2^1;

  • 8/3/2019 TTVXL - D3DTVT - EPU

    6/75

    Nhm 1 3dtvt

    sbit led3= P2^2;

    sbit led4= P2^3;

    sbit led5= P2^4;

    sbit led6= P2^5;

    sbit led7= P2^6;

    sbit led8= P2^7;

    //*khai bao ham tre//

    void tre (long time)

    {

    long n;

    for (n=0;n

  • 8/3/2019 TTVXL - D3DTVT - EPU

    7/75

    Nhm 1 3dtvt

    tre(1000);

    led3=bat;

    tre(1000);

    led3=tat;

    tre(1000);

    led4=bat;

    tre(1000);

    led4=tat;

    tre(1000);

    led5=bat;

    tre(1000);

    led5=tat;

    tre(1000);

    led6=bat;

    tre(1000);

    led6=tat;

    tre(1000);

    led7=bat;

    tre(1000);

    led7=tat;

  • 8/3/2019 TTVXL - D3DTVT - EPU

    8/75

    Nhm 1 3dtvt

    tre(1000);

    led8=bat;

    tre(1000);

    led8=tat;

    tre(1000);

    led1=bat;

    tre(1000);

    led2=bat;

    tre(1000);

    led3=bat;

    tre(1000);

    led4=bat;

    tre(1000);

    led5=bat;

    tre(1000);

    led6=bat;

    tre(1000);

    led7=bat;

    tre(1000);

    led8=bat;

    tre(1000);

    led8=bat;

  • 8/3/2019 TTVXL - D3DTVT - EPU

    9/75

    Nhm 1 3dtvt

    tre(1000);

    led8=tat;

    tre(1000);

    led7=bat;

    tre(1000);

    led7=tat;

    tre(1000);

    led6=bat;

    tre(1000);

    led6=tat;

    tre(1000);

    led5=bat;

    tre(1000);

    led5=tat;

    tre(1000);

    led4=bat;

    tre(1000);

    led4=tat;

    tre(1000);

    led3=bat;

  • 8/3/2019 TTVXL - D3DTVT - EPU

    10/75

    Nhm 1 3dtvt

    tre(1000);

    led3=tat;

    tre(1000);

    led2=bat;

    tre(1000);

    led2=tat;

    tre(1000);

    led1=bat;

    tre(1000);

    led1=tat;

    tre(1000);

    }

    }

    Sau khi chy chng trnh,kim tra li va m phng trn protus ta s c mch sau:

  • 8/3/2019 TTVXL - D3DTVT - EPU

    11/75

    Nhm 1 3dtvt

    Tuy nhin,vi cch iu khin tng chn ca vi iu khin nh trn th rt tncng,thay cch iu khin tng chn nh thng thng ta c th xut gi tr ra c cng.

    Nguyn tc thc hin ca cch ny nh sau: 1 cng c 8 bit t hp ca 8 bit c28=256 trng thi.Khi a ra cng 1 gi tr a thp phn (0-255) th s a s c i sangh nh phn ri a ra cc 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) cc chn cn li u bng 0V. Chng ta c tha ra cng 1 gi tr hexa t 0 ti ff tng ng vi 0 ti 255. V d P1=1 tng ngvi P1=0x01; P1=10 tng ng vi P1=0x0A.Nh vy chng trnh xut ra c cngtng ng vi chng trnh iu khin 8 LED tng chn nh sau:

    #include

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

    void tre(int time)

    {

    int n;// khai bao bien cuc bo

    for(n=0;n

  • 8/3/2019 TTVXL - D3DTVT - EPU

    12/75

    Nhm 1 3dtvt

    }

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

    void main()

    {

    while(1)

    {

    P2=0xFF;tre(5000);

    P2=0xFE;tre(5000);

    P2=0xFD;tre(5000);

    P2=0xFB;tre(5000);

    P2=0xF7;tre(5000);

    P2=0xEF;tre(5000);

    P2=0xDF;tre(5000);

    P2=0xBF;tre(5000);

    P2=0x7F;tre(5000);

    P2=0x7f;tre(10000);

    P2=0xBF;tre(10000);

    P2=0xDF;tre(10000);

    P2=0xEF;tre(10000);

    P2=0xF7;tre(10000);

    P2=0xFB;tre(10000);

    P2=0xFD;tre(10000);

    P2=0xFE;tre(10000);

  • 8/3/2019 TTVXL - D3DTVT - EPU

    13/75

    Nhm 1 3dtvt

    P2=0x7e;tre(5000);

    P2=0xBD;tre(5000);

    P2=0xDB;tre(5000);

    P2=0xE7;tre(5000);

    P2=0xE7;tre(5000);

    P2=0xDB;tre(5000);

    P2=0xBD;tre(5000);

    P2=0x7e;tre(5000);

    }

  • 8/3/2019 TTVXL - D3DTVT - EPU

    14/75

    Nhm 1 3dtvt

    BI 2 : IU KHIN LED 7 THANH DNG ANOT CHUNG

    1. Led 7 on

    Led 7 on c 2 loi la anot chung v katot chung,n c cu to ch l 8 con led uchung 1 u anot hoc katot.Led 7 on c tt c 10 chn c k hiu nh hnh v

    Mch led s dng led anot chung nh sau:

  • 8/3/2019 TTVXL - D3DTVT - EPU

    15/75

    Nhm 1 3dtvt

    2. Nguyn l hot ng

    Khi cm ngun vo mch tt c cc chn ca cc cng IO ca vi iu khin 5V(nucng 0 khng lp in tr treo th s l 0V). Nhn s mch khng c s chnh lch inp nn khng c n no sng. Ta mun led no sng ta ch vic a ra in p 0V chn viiu 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

    Ngoi led 7 thanh cn c th hin th 1 ch s.v d :Hin th ch A: thanh hin A,B,C,E,F,G;thanh tt D;gi tr ca P2 :1000 10003. Lp trnh

    - Cch 1 : ging nh bi th nht, lp trnh d hiu khng cn tnh ton nhng phivit copy,past v chnh sa nhiu

    - Cch 2 : cng ging nh bi trn chng ta iu khin tng cng khng theo tng

    chn nh cch 1,tuy nhin phi tnh ton nhiu. y chng ta s lm theo cch 2,ta c code sau:#include // dinh nghia

    //khai bao bien toan cucunsigned char i;unsigned char so_dem[] ={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09};//so 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

  • 8/3/2019 TTVXL - D3DTVT - EPU

    16/75

    Nhm 1 3dtvt

    unsigned char so_dem2[] = {0x00 ,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90};//so 0, 1, 2, 3, 4, 5, 6, 7, 8, 9//chuong trinh convoid taotre(long time )

    { int n;for(n=0;n

  • 8/3/2019 TTVXL - D3DTVT - EPU

    17/75

    Nhm 1 3dtvt

  • 8/3/2019 TTVXL - D3DTVT - EPU

    18/75

    Nhm 1 3dtvt

    BI 3 : C BN PHM(c ma trn phm)

    1. Nhim v : quyt bn phm 16 phm (4x4),xem phm no c bm,cc phm c nh

    s t 0 n 15 ri hin th ra led 7 thanh.2. S bn phm :

    3. Nguyn l qut :- V sao mch phm u theo ma trn? v nu c 16 nt bm thng thng th cn

    phi u vi 16 chn vi iu khin. Cn nu u theo ma trn th ta ch cn 8 chn viiu khin cng c th iu khin c 16 phm bm

    - C hai cch qut phm theo ct v theo hng. y, chng ta chn cch qut phmtheo hng.

    - Bc 1: Ta a chn P3.0 ni hng 1 xung 0V. Ri ta kim tra gi tr logic ca ccchn P3.4,P3.5,P3.6.P3.7. Nu phm 1 c bm th ct 1_P3.4 s c gi tr bng0V.Nu phm 2 c bm th ct 2_P3.5 s c gi tr bng 0V.Nu phm 3 c

    bm th ct 3_P3.6 s c gi tr bng 0V. Nu phm 4 c bm th ct 4_P3.7 s cgi tr bng 0V. Ta cn c vo xc nh xem phm no c bm.- Bc 2: Ta a chn P3.1 ni hng 2 xung 0V. Ri ta kim tra gi tr logic ca cc

    chn P3.4,P3.5,P3.6.P3.7. Nu phm 5 c bm th ct 1_P3.4 s c gi tr bng0V.Nu phm 6 c bm th ct 2_P3.5 s c gi tr bng 0V.Nu phm 7 cbm th ct 3_P3.6 s c gi tr bng 0V. Nu phm 8 c bm th ct 4_P3.7 s cgi tr bng 0V. Ta cn c vo xc nh xem phm no c bm.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    19/75

    Nhm 1 3dtvt

    - Bc 3: Ta a chn P3.2 ni hng 3 xung 0V. Ri ta kim tra gi tr logic ca ccchn P3.4,P3.5,P3.6.P3.7. Nu phm 8 c bm th ct 1_P3.4 s c gi tr bng0V.Nu phm 9 c bm th ct 2_P3.5 s c gi tr bng 0V.Nu phm 10 cbm th ct 3_P3.6 s c gi tr bng 0V. Nu phm 11 c bm th ct 4_P3.7 sc gi tr bng 0V. Ta cn c vo xc nh xem phm no c bm.

    - Bc 4: Ta a chn P3.3 ni hng 4 xung 0V. Ri ta kim tra gi tr logic ca ccchn P3.4,P3.5,P3.6.P3.7. Nu phm 12 c bm th ct 1_P3.4 s c gi tr bng0V.Nu phm 13 c bm th ct 2_P3.5 s c gi tr bng 0V.Nu phm 14 cbm th ct 3_P3.6 s c gi tr bng 0V. Nu phm 15 c bm th ct 4_P3.7 sc gi tr bng 0V. Ta cn c vo xc nh xem phm no c bm.

    - Ta s dung cu lnh IF kim tra.4. Lp trnh

    CODE :#include unsigned char Ma[] ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x8

    2};unsigned char stt=0,a;sbit H_1 =P3^4;sbit H_2 =P3^5;sbit H_3 =P3^6;sbit H_4 =P3^7;sbit C_1 =P3^3;sbit C_2 =P3^2;sbit C_3 =P3^1;sbit C_4 =P3^0;void scan(void);void delay( unsigned long time ){long i;for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    20/75

    Nhm 1 3dtvt

    if (!H_1){

    C_1 = 1;C_2 = 1;C_3 = 1;

    C_4 = 1; H_1 = 0;if(!C_1) stt = 1;else if (!C_2) stt = 2;else if (!C_3) stt = 3;

    else if (!C_4) stt = 4;}

    if (!H_2){

    C_1 = 1;

    C_2 = 1;C_3 = 1;C_4 = 1;

    H_2 = 0;if(!C_1) stt = 5;else if (!C_2) stt = 6;else if (!C_3) stt = 7;

    else if (!C_4) stt = 8;}if(!H_3){

    C_1 = 1;C_2 = 1;C_3 = 1;

    C_4 = 1;H_3 = 0;if(!C_1) stt = 9;else if (!C_2) stt = 10;else if (!C_3) stt = 11;

    else if (!C_4) stt = 12;}if(!H_4){

    C_1 = 1;C_2 = 1;C_3 = 1;

    C_4 = 1;H_4 = 0;if(!C_1) stt = 13;else if (!C_2) stt = 14;

  • 8/3/2019 TTVXL - D3DTVT - EPU

    21/75

    Nhm 1 3dtvt

    else if (!C_3) stt = 15;else if (!C_4) stt = 16;

    }}

    }

    void main(){while(1){

    scan();P2=Ma[stt];a=stt/10;

    P0=Ma[a];}

    }Sau khi chy v kim tra li ta c mch chy m phng sau :

  • 8/3/2019 TTVXL - D3DTVT - EPU

    22/75

    Nhm 1 3dtvt

    BI 4 : IU KHIN LCD 16X21. Nhim v : iu khin hin th LCD 16x2 dng ch : Nhom 18-d3dtvt v hin th thi

    gian

    2. Gii thiu v LCD:LCD 16x2 hin th c hai hng mi hng hin th c 16 k t.(LCD c 14 chnc hin th nh hnh v :

    Thng s ca LCD :+Kch thc hin th : 16 k t x 2 dng

    +Mu hin th: en/trng

    +Ch giao tip : 8 bt v 4 bt

    +C ch hin th : 5x7 hoc 5x10

    Cu trc ca LCD :LCD c tng s 14 chn chia lm 3 nhm:

    Nhm 1: (3 chn) Cp ngun VDD, VSS : cp 5V, 0V

    VEE: thay i in p thay i tng phnNhm 2: (8 chn) Vo ra thng tin vi VK : T chn D0-D7

    Nhm 3 : (3 chn) iu khin vic vo ra thng tin : E,RS,R/W

    E :(bt /tt ) (cho php/ khng cho php trao i thng tin vi VK )

    RS :(loi thng tin trao i)Thng tin trao i l lnh iu khin hay l

    d liu hin th

  • 8/3/2019 TTVXL - D3DTVT - EPU

    23/75

    Nhm 1 3dtvt

    R/W : (hng truyn ca thng tin) c trng thi t LCD hay thng tin cho VK LCD hin th.

    C th tn gi v bng chc nng ca cc chn c vit trong bng sau :

    Interface Pin ConnectionsChns

    Khiu

    Tn M t chc nng

    1 VSS Cp ngun 0V (GND)2 VDD Cp ngun Ni vi dng ngun (+4.5V~+5.5V)

    3 VEE Contrastiu chnh in p chn ny s tng gim tngphn ca LCD. cho nn n thng c ni vi bintr.

    4 RS Chn thanh ghiNu RS=0 : LCD nhn lnh t VKNu RS=1: LCD nhn d liu t VK hin th

    5 RW Read/Write Chn chc nng ghi/ cRS=1 : chn chc nng c d liu t LCD vo VKRS=0 : chn chc nng ghi d liu t VKvo LCD hin th

    6 E Read Write enable

    Cho php/ ko cho php LCD trao i thng tin viVK.Ch khi E chuyn t 10 th tn hiu cc chn D0-D7 mi c a vo LCD.

    7 D0 Data bus 0-78 chn ny c ni viVK vo/ra thng tin

    8 D1

    9 D210 D3

    11 D4

    12 D5

  • 8/3/2019 TTVXL - D3DTVT - EPU

    24/75

    Nhm 1 3dtvt

    13 D614 D7

    T nhng c im v chc nng c cp trn ta c s VDK sau :

    3. Nguyn tc hot ng

    Cc chn Vcc Vee Vss : cp dng ngun -5V v t tng ng th VEE dng iukhin ch tng phn ca LCD.

    Chn chn thanh ghi RS(regiter select):C hai thanh ghi trong LCD,chn RS c

    dng chn thanh ghi,nh sau : nu RS=0 thi thanh ghi m lnh c chn cho phpngi dng gi 1 lnh chng hn nh xa mn hnh,a con tr v u dngnu RS=1th thanh ghi d liu c chn cho php ngi dng gi d liu cn hin th trn LCD.

    Chn c/ghi (R/W):u vo c/ghi cho php ngi dng ghi thng tin trn LCDkhi RW=0 hoc c thng tin t n khi RW=1.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    25/75

    Nhm 1 3dtvt

    Chn cho php E(Enable):chn cho php E c s dng bi LCD cht d liuca n.Khi d liu c cp n chn d liu th mt xung mc cao xung thp phi cp n chn ny LCD cht d liu trn cc chn d liu.Xung ny phi rng ti thiu450ns.

    Chn D0-D7: y l 8 chn d liu 8bit c dng gi ni dung ln LCD hocc ni dung ca cc thanh ghi trong LCD. hin th cc ch ci v cc con s chng tas dng m ASCII ca cc ch ci t A-Z,a-f v cc con s t 0-9 n cc chn ny khiRS=1.

    Cng c cc m lnh c gi n LCD xa mn hnh hoc a con tr v udng hoc nhp nhy con tr.

    *Ch : Chng ta c th s dng RS=0 kim tra bit bn xem LCD c sn sngnhn thng tin.C bn l bt D7 v c th c c thi R/W=1 v RS=0 nh sau:

    Nu R/W=1, RS=0, D7=1(c bn) th LCD bn 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 nhn thngtin mi.Lu chng ta nn kim tra c bn trc khi ghi bt k d liu no ln LCD.

    Sau y l bng m lnh ca LCD:

    M(Hex) Lnh n thanh ghi ca LCD1 Xa mn hnh hin th2 Tr v u dng3 Gim con tr (dch con tr sang bn tri)4 Tng con tr (dch con tr sang bn phi)5 Dch hin th sang phi6 Dch hin th sang tri7 Tt con tr,tt hin th8 Tt hin th,bt con trA Bt hin th,tt con trC Bt hin th,nhp nhy con trE Tt con tr,nhp nhy con trF Dch v tr con tr sang tri10 Dch vi tr con tr sang phi14

    18 Dch ton b hin th sang tri1C Dch ton b hin th sang phi80 p con tr v u dng th nhtC0 p con tr v u dng th 238 Hai dng v ma trn 5x7

    iu khin LCD qua cc bc sau:- Bc 0: chn b phn cng.dng tuc vt xoay bin tr 5k iu chnh tng phn ca

  • 8/3/2019 TTVXL - D3DTVT - EPU

    26/75

    Nhm 1 3dtvt

    LCD.Xoay cho n khi cc vung (cc im nh)ca LCD hin ln th xoay ngc bin tr li1 cht.-Bc 1: Khi to cho LCD.-Bc 2: Gn gi tr cho cc bit iu khin cc chn RS,R/W,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 c bn xem LCD sn sng nhn d liu mi cha-Bc 5: Quay vng li bc 1.4. Lp trnhCode :#include #include

    //------------Khoi tao bien va cac gia tri gan-------------//sbit RS_LCD = P2^5;sbit RW_LCD = P2^6;

    sbit E_LCD = P2^7;//---------------Sau day la cac chuong trinh con------------//unsigned char min,sec,hour,x0,x1;//ngat do bo dinh thoi 0void timer0_isr() interrupt 1{

    x0++;if (x0==100)

    {x0 = 0;x1++ ;if (x1 == 100)

    {x1 = 0;sec ++;if (sec==60)

    {sec=0;min++;if(min==60)

    {min=0;

    hour++;if(hour==24){hour=0;}

    }}

  • 8/3/2019 TTVXL - D3DTVT - EPU

    27/75

    Nhm 1 3dtvt

    }}

    }

    //--------------Ham tre khoang thoi gian rat ngan phuc vu viec kiem tr co ban---------------//

    void delay(){unsigned int i;for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    28/75

    Nhm 1 3dtvt

    E_LCD =1;delay(); //xung cho phep chot du lieu >450nsE_LCD = 0;

    }//-----------Ham ghi chuoi ky tu ra LCD------------//

    void ghi_chuoi(char *str){while(*str){// delay(50);

    ghi_kytu(*str);str++;

    }}//-----------Ham khoi tao LCD------------//

    void setting_LCD(){ghi_lenh(0x38);ghi_lenh(0x01); // Xoa man hinhghi_lenh(0x0f); // Co dich hien thi

    }/*CHUONG TRINH CHINH */void main(){

    TMOD = 0x02; //Bit chon che do thu nhat cho timer0TH0 = 155; //155-255 100 lan dem thi ngatIE = 0x82; //cho phep ngat tu ben ngoai (ngat ngoai 0)TR0 = 1; //Cho phep timer0 chaysetting_LCD();

    while(1){ghi_lenh(0x80);ghi_lenh(0x0c);ghi_chuoi ("Nhom 18-d3dtvt");ghi_lenh(0xc0);ghi_lenh(0x0c);

    ghi_kytu(hour/10+0x30); // chuyen sag bang ASCIIghi_kytu(hour%10+0x30);ghi_kytu(':') ;

    ghi_kytu(min/10+0x30);ghi_kytu(min%10+0x30);ghi_kytu(':') ;ghi_kytu(sec/10+0x30);ghi_kytu(sec%10+0x30);

  • 8/3/2019 TTVXL - D3DTVT - EPU

    29/75

    Nhm 1 3dtvt

    }}Hin th m phng :

  • 8/3/2019 TTVXL - D3DTVT - EPU

    30/75

    Nhm 1 3dtvt

    BI 5 : LED MA TRN1. Nhim v : iu khin LED ma trn 8x8 dng ch chy NHOM-18

    LED ma trn:

    2. C s l thuyt

    Da trn nguyn tc nh qut mng hnh,ta c th thc hin vic hin th ma trn n bngcch qut theo hng v qut theo ct.Mi led trn ma trn c th coi l mt im nh.a ch cami im nh c xc nh ng thi vi b gii m hng v gii m ct.im nh ny dcxc nh trng thi nh vi iu khin 8051.

    Nh vy ti mi thi im ch c trng thi ca mt im nh c xc nh.Tuy nhinkhi xc nh a ch v trng thi ca im nh tip theo th cc im nh cn li s chuyn vtrng thi tt(nu LED ang sng th s tt dn).V th hin th c ton b hnh nh ca ma

    trn n.Ta c th qut ma trn nhiu ln vi tc qut rt ln,ln hn nhiu ln thi gian ttca n.Mt ngi ch nhn bit c ti a 24hnh/s do nu tc quet rt ln th s khngnhn ra c s thay i nh ca n m s thy c ton b hnh nh cn hin th.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    31/75

    Nhm 1 3dtvt

    3. Nguyn l hot ng

    Mun cho led sng ta cp dng 5V vo hng,0V vo ct dng 10mA n 15mA.V d : mun led v tr 5x4 sng, ta a in p ct 4(P0_3) xung 0V n hng5(P2_5) ln 5V.

    Hin th ch : thng k cc im sng thnh ch ri cho cc hng ct in p tng

    ng.Ging nh quyt bn phm a in p 0V ra tng ct ni vi cng 0. Nh vy s c8 gi tr: 0xFE, 0xFD, 0xFB, 0xF7, 0xEF, 0xDF, 0xBF, 0x7F phi a vo 1 mng 8phn t,ri sau a vo 1 vng for tng dn 1 bin tng dn phn t mng cot[8].Vi mi ln 1 chn cng 0 xung 0V ta dng cng 2 a ra 1 gi tr 8 bt iu khintrong 1 ct nhng n no sng. V d mun hng 1v hng 3 sng th hng 1v 3 c gitr 5V cn cc hng khc 0V, ta c gi tr 8 bt sau: 0x05 (1010 000). Ti mi thiim ch c mt s n trn 1ct sng,nhng do ta qut 8 ct vi tn s nhanh, v mt chin tng lu nh nn ta thy trong 1 thi im ta thy ton b k t.Vi 8 ct ln ltbng 0V ta phi a ra tng ng 8 gi tr 8 bit ra cng 2, do ta phi lu 8 gi tr vo 1 mng 8 k t kytu1[8], ta s vit cc k t trn 7 ct. mi k t s cch nhau1ct khng sng.Ta khai bo mng kytu1[9] c 9 phn t v phn t u tin c gi tr

    y ra cng 2 l 0x00 tt ton b ct .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.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    32/75

    Nhm 1 3dtvt

    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.4. Lp trnh :

    Code :

    #include

    unsigned int m,n,k,p,x,y;

    unsigned char hang[8]={0X80,0X40,0X20,0X10,0X08,0X04,0X02,0X01};

    unsigned char cot[75]={0XFF,0XFF,0XFF,0XFF,

    0X00,0X00,0X9F,0XCF,0XE7,0xF3,0X00,0X00, //chu N

    0XFF,0X00,0X00,0XE7,0XE7,0X00,0X00,//chu H

    0XFF,0XFF,0X81,0X00,0X3C,0X00,0X81, // chu o

    0XFF,0X00,0X00,0X9F,0XCF,0XCF,0X9F,0X00,0X00, //chu M

    0XFF,0XFF,0XF7,0XF7,0XF7,0XF7, // dau -

    0XFF,0XFF,0XFF,0XFF,0XCC,0X00,0X00,0XFC,// so 1

    0XFF,0XFF,0X00,0X00,0X24,0X24,0X00,0X00, // so 8

    0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF};

    void delay(unsigned int t)

    {

    unsigned int i;

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    33/75

    Nhm 1 3dtvt

    }

    void scan(void)

    {

    P3=hang[n];

    if(p8) P1=cot[p-8];

    if(p>16) P0=cot[p-16];

    }

    void main(void)

    {

    m=0;

    while(1)

    {

    for(n=0;n

  • 8/3/2019 TTVXL - D3DTVT - EPU

    34/75

    Nhm 1 3dtvt

    if(m==75) m=0;

    }

    }

    Hin th trn protus :

  • 8/3/2019 TTVXL - D3DTVT - EPU

    35/75

    Nhm 1 3dtvt

    BI 6 : NGT NGOI M XUNG

    1. Ngt ngoi

    a. X l ngt

    C 5 nguyn nhn to ra ngt (gi tt l nguyn nhn ngt) i vi 8051: hai ngt do bnngoi, hai ngt do b nh thi v mt ngt do port ni tip. Song cng c nhiu ti liu k thutni rng c 6 ngt, nguyn nhn l do h tnh c lnh RESET, khi ta thit lp trng thi ban ucho h thng (gi tt l reset h thng), tt c cc ngt u b v hiu ha (cm) v sau chngc cho php ring r bng phn mm.

    Khi xy ra hai hay nhiu ngt ng thi hoc xy ra mt ngt trong khi mt ngt khc angc phc v, ta c 2 s x l cc ngt: s chi vng v s hai mc u tin. S

    chui vng l s c nh, cn s u tin ngt c lp trnh bi ngi s dng.

    Khi Reset th tt c mi ngt u b cm (b che), c ngha l khng c ngt no c b viiu khin p ng nu chng c kch hot. Cc ngt phi c cho php bng phn mm b vi iu khin c th p ng c. C mt thanh ghi c gi l cho php ngt (InterruptEnable) chu trch nhim v vic cho php (khng che) v cm (che) cc ngt.

    IE Register (Interrupt Enable)

    EA bit enable hoc disable tt c cc interrupt.

    EA=0 th khng ngt no c nhn.

    EA=1 th tng ngun ngt s c m hoc cm bng cch bt hoc xa bit cho phptng ng.

    ES bit enable hoc disable ngt cng ni tip.

    ES=0 th khng cho php ngt ni tip.

    ES=1 cho php ngt ni tip.

    ET1 bit enable hoc disable ngt trn ca ca Timer1.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    36/75

    Nhm 1 3dtvt

    ET1=0 Timer1 khng nh hng n ngt.

    ET1=1 Timer1 kch hot ngt.

    EXT1 cho php hoc cm ngt ngoi ca Timer1.

    EXT1=0 th s thay i trng thi ca cng INT0 khng nh hng n vic ngt.

    EXT1=1 enable ngt ngoi ngay ti thi im INT0 thay i trng thi.

    ET0 bit enable hoc disable ngt trn ca Timer0.

    ET0=0 Timer0 khng nh hng n ngt.

    ET0=1 Timer0 kch hot ngt.

    EX0 bit enable hoc disable ngt ngai ca Timer0.

    EX0=0 th s thay i trng thi ca INT1 khng nh hng n vic ngt.

    EX0=1 enable ngt ngoi ngay ti thi im INT1 thay i trng thi.

    b. Ngt ngoi

    Ngt ngoi x ra khi c mc thp hoc c cnh m trn chn INT0 hoc INT1 ca 8051.y l cc chn a hp vi 2 chn P3.2 v P3.3 ca port .

    Thc t nh cc c to ra cc ngt ny l cc bit IE0 v IE1 ca thanh ghi TCON. Khi mtngt ngoi c to ra, c to ra ngt c xa bi phn cng khi CPU tr n trnh phc vngt ch nu ngt thuc loi tc ng cnh. Nu ngt thuc loi tc ng mc, nguyn nhn ngtngoi s iu khin mc ca c thay v l phn cng trn chip.

    Vic chn cc ngt loi tc ng cnh hay cc ngt loi tc ng mc c lp trnh thngqua cc bit IT0 v IT1 ca thanh ghi TCON. Ly v d nu IT1=0, ngt ngoi 1 c kch khicnh, ch ny nu cc mu lin tip chn INT1 cho thy chn ny mc cao trong mtchu k v mc thp trong chu k k, c ngt IE1 trong thanh ghi TCON c set bng 1; kn IE1 yu cu mt ngt.

    V cc chn ngt ngoi c ly mu mt ln mi mt chu k my, cc ng vo ny phic duy tr ti thiu 12 chu k dao ng bo m vic ly mu l ng. Nu ngt ngoithuc loi tc ng cnh, nguyn nhn ngt ngoi phi c duy tr ti chn yu cu mc caoti thiu mt chu k v sau mc thp ti thit mt chu k na m bo rng s chuyntrng thi c pht hin. IE0 v IE1 t ng c xa khi CPU tr ti trnh phc v ngt tngng.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    37/75

    Nhm 1 3dtvt

    Nu ngt ngoi thuc loi tc ng mc, nguyn nhn ngt ngoi phi c duy tr trng thitch cc cho n khi ngt theo yu cu thc s c to ra. Sau nguyn nhn ngt phi trngthi th ng trc khi trnh phc v ngt c thc thi xong hoc trc khi c mt ngt khcc to ra.

    Thng thng, mt cng vic c thc thi bn trong trnh phc v ngt lm cho nguyn nhnngt tr tn hiu yu cu ngt tr v trng thi khng tch cc.

    2. Lp trnh

    Code :

    #include

    #include

    //khai bao va dinh nghiaunsigned const t = 100;

    unsigned char giay = 0,gio=3,phut=45;

    unsigned char date=29,month=9;

    //unsigned char count=0;

    //dinh nghia LCD

    sbit BF = P2^7;

    sfr databus=0xA0;

    ///

    sbit rs = P3^0;

    sbit rw = P3^1;

    sbit e = P3^3;

    //chuong trinh tao tre

  • 8/3/2019 TTVXL - D3DTVT - EPU

    38/75

    Nhm 1 3dtvt

    void taotre(long time )

    {

    long i;

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    39/75

    Nhm 1 3dtvt

    {

    ready();

    databus = c;

    rs = 0;//chon thanh ghi lenh

    rw = 0;//chon che do ghi

    e = 1;//dua chan chot tu 1 xuong 0 de day du lieu tren bus vao LCD

    e = 0;

    }

    //khoi tao LCD

    void lcd_init(void)

    {

    control(0x01);// xoa man hinh hien thi truoc do

    control(0x38);//0x38:giao tiep 8 bit,hien thi 2 dong va che do 5x8 diem anh

    //0x37:giao tiep 8 bit,hien thi 1 dong,kieu ky tu 5x10 diem anh

    control(0x0c);//0x0f: bat hien thi,nhap nhay con tro

    //0x0c:tat con tro

    control(0x06);//dich con tro sang phai 1 vi tri khi co thao tac doc/ghi du lieu trenDDRAM,nhung

    // khong dich toan bo noi dung hien thi.neu muon dich toanbo thi nap vao 0x05

    }

    //chuong trinh ghi du lieu

    void putchar(unsigned char c)

    {

  • 8/3/2019 TTVXL - D3DTVT - EPU

    40/75

    Nhm 1 3dtvt

    ready();

    databus = c;

    rs = 1;// chon thanh ghi du lieu

    rw = 0; // chon che do ghi

    e = 1;

    e = 0;

    }

    // chuong trin in sau ki tu

    void lcd_putsf(unsigned char *s)//,unsigned char row)

    {

    unsigned char do_dai;

    /*if(row == 1)

    control(0x80); //ep con tro ve dau dong thu nhat

    else if(row == 2)

    control(0xc0);//ep con tro ve dau dong thu hai

    */

    do_dai = strlen(s); //lay do dai bien duoc tro boi con tro,strlen(s) la ham lay do dai bienduoc tro

    // boi con tro s

    while(do_dai != 0)

    {

    putchar(*s); //ghi ra LCD du lieu duoc tro boi bien con tro s

    s++; //tang gia tri cua bien con tro

  • 8/3/2019 TTVXL - D3DTVT - EPU

    41/75

    Nhm 1 3dtvt

    do_dai--;//tru do_dai di mot don vi,co den khi bang 0 di thoat khoi while

    }

    }

    //hien thi so nguyen

    void integer(unsigned int d )

    {

    unsigned char nghin,tram,chuc,don_vi;

    if(d>999)

    {

    don_vi = d%10; //duoc chuc so hang don vi

    d = d/10; //duoc so da bo di hang don vi ->lam viec voi so d moi

    //sau moi lan chia cho 10 va lay phan nguyen thi lai duoc 1 so moimat di mot hang ben phai

    chuc = d%10; //duoc chu so hang chuc

    d = d/10;

    tram = d%10; // duoc chu so hang tram

    nghin = d/10;//duoc hang nghin

    putchar(48+nghin);//hien thi hang nghin

    putchar(48+tram); //hien thi hang tram

    putchar(48+chuc); //hien thi hang chuc

    putchar(48+don_vi); //hien thi hang don vi

    }

    else if((d99))

  • 8/3/2019 TTVXL - D3DTVT - EPU

    42/75

    Nhm 1 3dtvt

    {

    don_vi = d%10; //duoc chuc so hang don vi

    d = d/10; //duoc so da bo di hang don vi ->lam viec voi so d moi

    //sau moi lan chia cho 10 va lay phan nguyen thi lai duoc 1 so moimat di mot hang ben phai

    chuc = d%10; //duoc chu so hang chuc

    d = d/10;

    tram = d%10; // duoc chu so hang tram

    putchar(48+tram); //hien thi hang tram

    putchar(48+chuc); //hien thi hang chuc

    putchar(48+don_vi); //hien thi hang don vi

    }

    else

    {

    don_vi = d%10; //duoc chuc so hang don vi

    chuc = d%10; //duoc chu so hang chuc

    putchar(48+chuc); //hien thi hang chuc

    putchar(48+don_vi); //hien thi hang don vi

    }

    /*hien thi so trong bang ma ASSCII thi so 0 co ma la 48,so 1 la 49,cu tiep tuc nhu vay */

    putchar(48+nghin);//hien thi hang nghin

    putchar(48+tram); //hien thi hang tram

    putchar(48+chuc); //hien thi hang chuc

    putchar(48+don_vi); //hien thi hang don vi

  • 8/3/2019 TTVXL - D3DTVT - EPU

    43/75

    Nhm 1 3dtvt

    }

    //dua con tro toi vi tri bat ky

    void lcd_gotoxy(unsigned char x,y) //y la cot y = 0->15, x la hang x = 1,2

    {

    unsigned char i;

    if(x == 1 )

    control(0x80); //ep con tro ve dau dong thu nhat

    else

    control(0xc0); //ep com tro ve dau dong thu 2

    if(y

  • 8/3/2019 TTVXL - D3DTVT - EPU

    44/75

    Nhm 1 3dtvt

    }

    // ISR cho ngat ngoai 0

    void ngatngoai_isr(void) interrupt 0

    {

    //count++;

    //TH0 = 0xf7;

    //EX0 = 0;

    giay++;

    if(giay == 60)

    {

    giay = 0;

    phut++;

    if(phut == 60)

    {

    phut = 0;

    gio++;

    if(gio == 24)

    {

    gio = 0;

    date++;

    if(date == 30)

    {

    date = 1;

  • 8/3/2019 TTVXL - D3DTVT - EPU

    45/75

    Nhm 1 3dtvt

    month++;

    if(month == 12 )

    month = 1;

    }

    }

    }

    }

    // EX0 = 1;

    }

    /////////////////////////////////

    //chuong trinh hien thiso

    void hienthi_so(unsigned char q)

    {

    unsigned char dv,ch;

    ch = q/10;

    dv = q%10;

    putchar(48+ch); //hien thi hang chuc

    putchar(48+dv); //hien thi hang don vi

    }

    //chuong trinh hien thi thoi gian

    void hienthi_time(unsigned char h,m,s)

    {

  • 8/3/2019 TTVXL - D3DTVT - EPU

    46/75

    Nhm 1 3dtvt

    //hien thi gio

    if(h>=13)

    {

    h = h-12;

    lcd_gotoxy(1,4);

    hienthi_so(h);

    lcd_gotoxy(1,1);

    lcd_putsf("pm");

    //hien thi dau ':'

    lcd_gotoxy(1,6);

    lcd_putsf(":");

    //hien thi phut

    lcd_gotoxy(1,7);

    hienthi_so(m);

    //hien thi dau ':'

    lcd_gotoxy(1,9);

    lcd_putsf(":");

    //hien thi giay

    lcd_gotoxy(1,10);

    hienthi_so(s);

    }

    else if(h == 12)

  • 8/3/2019 TTVXL - D3DTVT - EPU

    47/75

    Nhm 1 3dtvt

    {

    lcd_gotoxy(1,4);

    hienthi_so(h);

    lcd_gotoxy(1,1);

    lcd_putsf("pm");

    //hien thi dau ':'

    lcd_gotoxy(1,6);

    lcd_putsf(":");

    //hien thi phut

    lcd_gotoxy(1,7);

    hienthi_so(m);

    //hien thi dau ':'

    lcd_gotoxy(1,9);

    lcd_putsf(":");

    //hien thi giay

    lcd_gotoxy(1,10);

    hienthi_so(s);

    }

    else

    {

    lcd_gotoxy(1,4);

    hienthi_so(h);

  • 8/3/2019 TTVXL - D3DTVT - EPU

    48/75

    Nhm 1 3dtvt

    lcd_gotoxy(1,1);

    lcd_putsf("am");

    //hien thi dau ':'

    lcd_gotoxy(1,6);

    lcd_putsf(":");

    //hien thi phut

    lcd_gotoxy(1,7);

    hienthi_so(m);

    //hien thi dau ':'

    lcd_gotoxy(1,9);

    lcd_putsf(":");

    //hien thi giay

    lcd_gotoxy(1,10);

    hienthi_so(s);

    }

    }

    //hien thi lich

    void hienthi_lich(unsigned char dt,mt)

    {

    //hien thi ngay

    lcd_gotoxy(2,6);

    hienthi_so(dt);

    //hien thi dau '/'

  • 8/3/2019 TTVXL - D3DTVT - EPU

    49/75

    Nhm 1 3dtvt

    lcd_gotoxy(2,8);

    lcd_putsf("/");

    //hien thi thang

    lcd_gotoxy(2,9);

    hienthi_so(mt);

    //hien thi dau '/'

    lcd_gotoxy(2,11);

    lcd_putsf("/");

    //hien thi nam

    lcd_gotoxy(2,12);

    integer(2011);

    }

    //chuong trinh chinh

    void main(void)

    {

    //unsigned char a;

    lcd_init();

    ex_init();

    while(1)

    {

    //control(0x01);

  • 8/3/2019 TTVXL - D3DTVT - EPU

    50/75

    Nhm 1 3dtvt

    //for(a=0;a

  • 8/3/2019 TTVXL - D3DTVT - EPU

    51/75

    Nhm 1 3dtvt

    BI 7 : MCH O TN S

    Code :

    #include

    #include

    #include

    #define RS P3_5

    #define RW P3_6//RW=0 => ghi

    #define EN P3_7//RW=1 => doc

    //RS=0 => code

    //RS=1 => data

    #define lcd_PORT P1

    #define INTR P3_0

    #define RD P3_1

    #define WR P3_2

  • 8/3/2019 TTVXL - D3DTVT - EPU

    52/75

    Nhm 1 3dtvt

    //===========================

    void delay_ms(int n)

    {

    int k,j;

    for(k=0;k

  • 8/3/2019 TTVXL - D3DTVT - EPU

    53/75

    Nhm 1 3dtvt

    //============================

    void lcd_command(unsigned char c) //CT con ghi du lieu len LCD

    {

    RS=0;

    RW=0;

    lcd_PORT=c;

    EN=1;

    EN=0;

    delay_5ms();

    }

    //==============================

    void lcd_data(unsigned char c) //CT con doc du lieu tu LCD

    {

    RS=1;

    RW=0;

    lcd_PORT=c;

    EN=1;

    EN=0;

    delay_5ms();

    }

    //=============================

    void lcd_gotoxy(int x, int y)

    {

  • 8/3/2019 TTVXL - D3DTVT - EPU

    54/75

    Nhm 1 3dtvt

    if((x2)&&(y16))

    {

    x=1;

    y=1;

    }

    if(x == 1)

    lcd_command(0x7F+y);

    else

    lcd_command(0xBF+y);

    }

    //===============================

    void lcd_init() // Khoi tao LCD

    {

    delay_15ms();

    lcd_command(0x38);

    lcd_command(0x0C);

    // lcd_command(0x06);

    lcd_command(0x01); // Xoa man hinh LCD

    }

    //================================

    void lcd_clear()

  • 8/3/2019 TTVXL - D3DTVT - EPU

    55/75

    Nhm 1 3dtvt

    {

    lcd_command(0x01);

    }

    //===============================

    void lcd_home()

    {

    lcd_command(0x80);

    }

    //=============================

    void lcd_putsf(unsigned char *s)

    {

    while (*s)

    {

    lcd_data(*s);

    s++;

    }

    }

    //============================

    void HienThi_ADC(unsigned char t)

    {

    unsigned char v;

    if(t

  • 8/3/2019 TTVXL - D3DTVT - EPU

    56/75

    Nhm 1 3dtvt

    else if(t

  • 8/3/2019 TTVXL - D3DTVT - EPU

    57/75

    Nhm 1 3dtvt

    WR=0; // Bat dau chuyen doi gia tri tu ADC

    delay_ms(5); // Tao tre de cap nhat du lieu tu ADC

    WR=1; //

    while(!INTR);

    RD=0; // Nhan du lieu da duoc chuyen doi

    gt=P2;

    lcd_command(0x01);

    lcd_command(0x83);

    lcd_putsf("8051 & ADC");

    lcd_command(0xC0);

    lcd_putsf("Nhiet do:");

    HienThi_ADC(gt);

    delay_ms(150);

    }

    }

    M phng :

  • 8/3/2019 TTVXL - D3DTVT - EPU

    58/75

    Nhm 1 3dtvt

  • 8/3/2019 TTVXL - D3DTVT - EPU

    59/75

    Nhm 1 3dtvt

    BO CO THC TP VI X L

    ti : LED CUBE 8X8X8

    1. Tm hiu chung

    1.1 Atmega32

    Atmega16 c cu trc RISC vi:

    +131 lnh,hu ht c thc thi trong 1 chu k xung nhp.

    +32x8 thanh ghi a dng

    +Full static operation

    +Tc lm vic 16MPIS,vi thch anh 16MHz

    - B nh:

    +32KB ISP Flash vi kh nng 10.000ln ghi/xa

    +1024 Byte EEROM+2KB SRAM ngai

    * Giao tip JTAG

    +Kh nng qut ton din theo chun JTAG

    +H tr kh nng go roi

    +H tr lp trnh Flash,EEROM,fuse

    +Lock bit qua giao tip JTAG

    * Ngai vi:

    +2 timer/counter 8 bit vi cc mode :so snh v chia tn s

    +1 timer/counter 16 bit vi cc mode:so snh,chia tn s,capture,PWM

    +1 timer thi gian thc(Real time clock) vi b dao ng ring bit

  • 8/3/2019 TTVXL - D3DTVT - EPU

    60/75

    Nhm 1 3dtvt

    +4 knh PWM(hc nhiu hn trong cc VK khc thuc h ny)

    +8 knh bin i ADC 10bit

    +H tr giao tip I2C

    +B giao giao tip ni tip lp trnh c USART+Giao tip SPI

    +Watch_dog timer vi b dao ng on-chip ring bit

    * Nhng thuc tnh c bit:

    +Power On reset v Brown-out detection

    +ch hiu chnh b sai s cho b dao ng RC On-chip

    +Cc ch ngt ngai v trong a dng+6 mode sleep:Idle,ADC noise reduction,tit kim nng lng,power-down,

    standby,extended standby

    * I/O port:

    +32 chn I/O(Atmega16) v 21 chn I/O (Atmega8) lp trnh c

    +v 40 chan (Atmega16) ,28 chn(Atmega8),64 chn(AT90can128);

    * Ngun cp:2,7->5.5 V vi ATmega32L

    4.5->5.5V vi ATmega32H

    * Tiu hao nng lng:

    +Khi hat ng tiu th dng 1,1mA

    + mode Idle tiu th dng 0.35mA

    + ch Power_down tiu th dng nh hn 1uA

    * y l nhng chc nng c bn thng thy trong cc Vi iu khin

    AVR,ngai ra trong cc vi iu khin khc thuc dng vi iu khin ny th

    thng c h tr thm nhng chc nng c bit.V d AT90can128 h tr

  • 8/3/2019 TTVXL - D3DTVT - EPU

    61/75

    Nhm 1 3dtvt

    thm b giao tip mng Can bus on-chip

    * Cc phn mm lp trnh cho AVR:

    + AVRStuido (free), Code Vision. Cc phn mm ny c h tr phn np v

    debug on chip

    1.2 ULN2803

    Nguyn l hot ng ca ULN2803:

    ULN2803 dng m dng (khuch i dng). N bin i chn u vo 1 thnh0, nu u vo l 0 u ra khng xc nh.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    62/75

    Nhm 1 3dtvt

    1.3 IC 74HC595

    Chn 11 l chn xung clock. Khi c 1xung t thp ln cao th nhn 1 bit d liuvo chn Data.

    Chn 14 l chn data cho tng bit d liu khi c xung vo chn 11. Cc bit d liuny dch t chn QA ti chn QH, nu cc bit y QA n QH th d liu trnxung chn 9 l chn SDO (chn trn)

    Chn 12 l chn cht d liu (STR). d liu sau khi c a vo chn data, khic xung t 0 ln 1 vo chn STR th d liu s c xut ra khi IC74hc595.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    63/75

    Nhm 1 3dtvt

    2.Mach nguyn l iu khin led cube 8x8x8

    Ta s dng chn PC0 lm chn xut data t vi iu khin vo chn data caIC74hc5995. Chn PC1 chn cht d liu cho 74hc595. Chn PC2 lm chn xutxung clock cho chn CLK ca 74hc595.

  • 8/3/2019 TTVXL - D3DTVT - EPU

    64/75

    Nhm 1 3dtvt

    Ta dng PORTA xut d liu cho ULN2803 iu khin cc tng ca led cube.Mi tng tng ng vi 1bit ca PORTA.

    ta s dng cc chn CLK, STR, DATA a d liu t vi iu khin ti 64 ctthng qua 8 con 74hc595

  • 8/3/2019 TTVXL - D3DTVT - EPU

    65/75

    Nhm 1 3dtvt

    4.Lp trnh hin th led cube 8x8x8

    Mch led cube gm 8 tng mc cathode chung, mi tng c iu khin 1bit caPORTA thng qua con ULN2803. V c im ca ULN2803 bin 1 thnh 0, nnta s xut cc tn hiu 1 t bit ca PORTA ca vi iu khin iu khin cho led

    sng khi chn anode ca led c tn hiu 1.

    64 ct ca led cube tng ng vi 8temp mi temp 8bit iu khin led sngtng ng.

    Code lp trnh mt s hiu ng n gin

    #include

    #include

    #define DATA PORTC.0

    #define chot PORTC.1

    #define xung PORTC.2

    #define mat PORTA

    #define L1 PORTA.0

    #define L2 PORTA.1

    #define L3 PORTA.2

    #define L4 PORTA.3

    #define L5 PORTA.4

    #define L6 PORTA.5

    #define L7 PORTA.6

    #define L8 PORTA.7

    unsigned char temp1,temp2,temp3,temp4,temp5,temp6,temp7,temp8,;

    unsigned char i,j;//k,c;

  • 8/3/2019 TTVXL - D3DTVT - EPU

    66/75

    Nhm 1 3dtvt

    void hienthi(unsigned char x)

    {

    unsigned char i,temp;

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    67/75

    Nhm 1 3dtvt

    hienthi(temp5);

    hienthi(temp6);

    hienthi(temp7);

    hienthi(temp8);

    chot=0;

    chot=1;

    }

    void tat()

    {

    hienthi(0x00);

    hienthi(0x00);

    hienthi(0x00);

    hienthi(0x00);

    hienthi(0x00);

    hienthi(0x00);

    hienthi(0x00);

    hienthi(0x00);

    chot=0;

    chot=1;

    }

    void dtvt(unsigned char m)

    {

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    68/75

    Nhm 1 3dtvt

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x07;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L8=1;delay_ms(1);L8=0;

    temp1=0x00;temp2=0x00;temp3=0x07;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L7=1;delay_ms(1);L7=0;

    temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L6=1;delay_ms(1);L6=0;

    temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L5=1;delay_ms(1);L5=0;

    temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L4=1;delay_ms(1);L4=0;

    temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L3=1;delay_ms(1);L3=0;

    temp1=0x00;temp2=0x00;temp3=0x07;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L2=1;delay_ms(1);L2=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x07;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L1=1;delay_ms(1);L1=0;

    }

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    69/75

    Nhm 1 3dtvt

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x70;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L8=1;delay_ms(1);L8=0;

    temp1=0x00;temp2=0x00;temp3=0x70;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L7=1;delay_ms(1);L7=0;

    temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L6=1;delay_ms(1);L6=0;

    temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L5=1;delay_ms(1);L5=0;

    temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L4=1;delay_ms(1);L4=0;

    temp1=0x00;temp2=0x70;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L3=1;delay_ms(1);L3=0;

    temp1=0x00;temp2=0x00;temp3=0x70;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L2=1;delay_ms(1);L2=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x70;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L1=1;delay_ms(1);L1=0;

    }

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    70/75

    Nhm 1 3dtvt

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;temp8=0x00;xuat();L7=1;delay_ms(1);L7=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;temp8=0x00;xuat();L6=1;delay_ms(1);L6=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;temp8=0x00;xuat();L5=1;delay_ms(1);L5=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;temp8=0x00;xuat();L4=1;delay_ms(1);L4=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;temp8=0x00;xuat();L3=1;delay_ms(1);L3=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x1c;temp5=0x00;temp6=0x00;temp7=0x00;temp8=0x00;xuat();L2=1;delay_ms(1);L2=0;

    }

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    71/75

    Nhm 1 3dtvt

    temp1=0x07;temp2=0x00;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x00;temp8=0x07;xuat();L5=1;delay_ms(1);L5=0;

    temp1=0x00;temp2=0x07;temp3=0x00;temp4=0x00;temp5=0x00;temp6=0x00;temp7=0x07;temp8=0x00;xuat();L4=1;delay_ms(1);L4=0;

    temp1=0x00;temp2=0x00;temp3=0x07;temp4=0x00;temp5=0x00;temp6=0x07;temp7=0x00;temp8=0x00;xuat();L3=1;delay_ms(1);L3=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x07;temp5=0x07;temp6=0x00;temp7=0x00;temp8=0x00;xuat();L2=1;delay_ms(1);L2=0;

    }

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    72/75

    Nhm 1 3dtvt

    temp1=0x00;temp2=0x00;temp3=0x70;temp4=0x00;temp5=0x00;temp6=0x70;temp7=0x00;temp8=0x00;xuat();L3=1;delay_ms(1);L3=0;

    temp1=0x00;temp2=0x00;temp3=0x00;temp4=0x70;temp5=0x70;temp6=0x00;temp7=0x00;temp8=0x00;xuat();L2=1;delay_ms(1);L2=0;

    }

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    73/75

    Nhm 1 3dtvt

    }

    for(i=0;i

  • 8/3/2019 TTVXL - D3DTVT - EPU

    74/75

    Nhm 1 3dtvt

    ASSR=0x00;

    TCCR2=0x00;

    TCNT2=0x00;

    OCR2=0x00;

    MCUCR=0x00; MCUCSR=0x00

    TIMSK=0x00;

    ACSR=0x80;

    SFIOR=0x00;

    while (1)

    { tat();

    phaohoa(25);

    hinhhopgoc1(30);

    hinhhopgoc3(30);

    hinhhopgoc2(30);

    hinhhopgoc4(30);

    //khung1(100,1);

    danglen(100,1);

    quet1(100,1);

    quet2(100,1);

    cheo2(20);

    // khung1(100,1);

    quacau(20);

    hinhhoptrungtam(10);

    traitim2(10,1);

  • 8/3/2019 TTVXL - D3DTVT - EPU

    75/75

    Nhm 1 3dtvt

    traitimdac(30);

    dtvt(25);

    };

    }