BÁO CÁO_PIC16F877A_LM35_LCD

download BÁO CÁO_PIC16F877A_LM35_LCD

of 20

Transcript of BÁO CÁO_PIC16F877A_LM35_LCD

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    1/20

    BO CO N THIT K K THUTCN BN V PIC16F877A

    O NHIT DNG LM35, HIN TH LN LCD

    Sau y l qui trnh tm hiu v PIC ca nhm

    1. Trc ht nhm ln mng tm hiu tng quan v PIC xem mnh nn bt u t u, v ch yu hc t din nwww.picvietnam.com, tin th nhm xin gi li cm n ti din n ny.

    Nhm tm c 1 bi dn dt v PIC ca tc gi FALLEAF, v theo th hcPIC ta nn bt u bng vic tm hiu v cc khi nim v lm cc cng vic

    -Thanh ghi-register

    -C-flag

    -nh thi-Timer

    -Lm mch nhp nhy Led

    Nhng nu search trn mng vi t kho PIC v cc khi nim ny th c rt t, thm chnhm tm khng ra. L do n gin v cc phn kin thc ny ng l phi c hc trong ccmn tin cho PIC nh kin trc my tnh hay vi x l.

    Nhm tm ti hi cc anh i trc, v theo hng dn ca anh Ca ( SV Bch Khoa K05)th nn tm hiu v vi iu khin 8051 trc, v nn hc lp trnh bng ASM

    tm hiu 8051, nhm tm c sch v 8051 ca tc gi Tng Vn On. Chnh trongsch ny, nhm hiu c cc khi nim v thanh ghi, nh thi, v ngn ng ASM (ch mc cn bn)

    Nhm xin c ni v cch hiu ca mnh v cc khi nim trn

    Thanh ghi

    Trong mt vi x l 8051 c rt nhiu thanh ghi (khong hn trm thanh) mithanh l mt chui cc bit, mi bit c 2 gi tr l 1 hoc 0 v c th uc gn bi ngi lp trnh,a s thanh ghi c 8 bit, ngoi ra cn c cc thanh 13 bit. Mi thanh nh th c cc chc nngring.

    http://www.picvietnam.com/http://www.picvietnam.com/
  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    2/20

    C thanh ch n thun ch nh mt gi tr no , thanh ghi 8 bit th ch nh

    c 82 256= gi tr t 0 ti 255

    C thanh dng iu khin, v d thanh ghi cho php xut hoc nhp PORTB.PORTB c 8 chn, mi chn c iu khin l chn xut hay nhp bi thanh ghi PORTB. Nu

    thanh ghi PORTB c gi tr 00000001b th c ngha l chn B0 l chn nhp d liu, cn ccchn B1-B7 l chn xut d liu

    C (flag)

    C cng l 1bit, nhng n c chc nng c bit hn cc bit khc nn ngi ta ttn cho n. Ta s hiu k hn v n qua mt v d trong phn timer

    nh thi (Timer)

    nh thi l mt chc nng khng th thiu ca cc vi iu khin, n cho php viiu khin m thi gian. Tuy nhin khng th m mt cch trc tip nh con ngi c,timer m thi gian thng qua vic m xung dao ng. Mt vi iu khin c khong vi timer.

    B nh thi cng l cc thanh ghi, chng c iu khin bi bit nh thi. Khita set bit nh thi bng 1 th thanh ghi nh thi bt u nhy s 0, 1, 10 cho n khi thanhghi nh thi c gi tr 11111111. Bit 7 ca thanh ghi nh thi l mt c, bnh thng th bit nybng 0, cho n khi thanh ghi m ln ti gi tr max th bit ny mi bng 1, v sau thanh

    ghi timer li tr v gi tr 0 v bt u m li, , v n ch dng khi bit nh thi c gn bng 0tr li. C ny nh mt cch nh du mt chu k m, gia 2 ln c ny bng 1 l 256 gi tr c m

    Cng c timer nhiu hn 8bit

    Hp ng ASM

    Vi iu khin mun hot ng c phi c cc ch dn cho n lm vic, lcc file hex. M mt file hex ta thy ton nhng 0 vi 1. Con ngi s mt rt nhiu thi gian vit nn 1 chng trnh ton 0 vi 1, v vy ngi ta xy dng cc ngn ng lp trnh. Thay vvit 1 dng lnh ton 0 vi 1 th ta vit mt dng lnh khc tng ng nhng gn gi hn vingn ng con ngi. Ngn ng cng gn vi con ngi th c cp cng cao.

    ASM l ngn ng gn vi file hex nht. Lm vic vi ASM ta ch yu lm vicvi cc bit, nh vic set bit bng 1 hay di chuyn gi tr t thanh ghi ny sang thanh ghi khc,

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    3/20

    2. Sau khi tm hiu qua sch v nhng khi nim ny txong, nhm bt u chnh thc tm hiu v PIC.

    Cng c m phng hu hiu l ProteusNgn ng lp trnh l CCS, hc t Tutorial ca anh Trn Xun Trng K2001 HBKNhm tm hiu v PIC thng qua tutorial ca tc gi Nguyn Trung Chnh trn din n

    picvietnam, xin cm n anh Chnh vit mt tutorial rt hay v cn bn v xin php ly cchnh nh minh ho t tutorial ny

    S chn ca PIC16F877A :

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    4/20

    PIC hot ng ta cn cp ngun cho PIC. Ngoi ra c th thm vo b dao ng thch

    anh, v nt nhn reset:

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    5/20

    V y l mch nhy Led PortB:

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    6/20

    M phng bng Proteus:

    - Mch nhp nhy Led

    PIC16F877A

    Led

    Tr 330 Ohm

    Dng 1 DCVolmeter chn B0, ta thy in p xut ra chn ny thay i 0V, 5V saumi thi gian delay

    Code :

    #include#device* =16 ADC=8#FUSESNOWDT,HS,NOPUT,NOPROTECT,NODEBUG,NOBROWNOUT,NOLVP,NOCPD,NOWRT

    #use delay (clock=20000000)

    void main()

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    7/20

    {

    //Thiet lap che do cho PORT B

    Set_tris_b(0x00); //Tat ca PORT B deu la cong xuat du lieu

    output_b(0xFF); //Mo het cac Led

    While(TRUE) //Vong lap vo han

    {

    output_b(0xFF); //Cho cc Led sng

    delay_ms(500); // Delay 0.5s

    output_b(0x00); //Tat het cac Led

    delay_ms(500); Cho 0.5s

    }

    }

    Sau tin hnh thc nghim:

    Phi lm ngun 5V cho PIC

    Phi lm mch nhp nhy Led

    Sau khi xem qua cc linh kin ca mt anh K05 (anh Ca) bit mt cc linh kin n ralm sao th ra Nht To mua

    - Cc dng c c bn;Test board

    Board c lM hn, ch, nha thngMi khoan

    Ht ch

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    8/20

    - Cc linh kin cho ngun 5V:

    Board c l

    Bin p cch ly-cn gi l tng ph

    7805- dng xn 5V (7806 th xn 6V), c thm nhm tn nhit

    Domino

    Cu diod

    T 1000 uF 35V

    T 10uF 50V5

    T ko 104

    S mch ngun 5V

    3. S dng LCD TC1602A

    y l LCD 2 hng, mi hang 16 k t

    s dng LCD , ta hy c file LCD.C trong th vin Driver ca CCS. CCS

    hng dn cch ta i dy cho cc chn ca LCD, ng thi CCS vit sn cho ta cchm thao tc cho LCD:

    Cch ni dy:

    // As defined in the following structure the pin connection is as follows:

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    9/20

    // D0 enable

    // D1 rs

    // D2 rw

    // D4 D4

    // D5 D5

    // D6 D6

    // D7 D7

    // LCD pins D0-D3 are not used and PIC D3 is not used.

    Cc hm thng dng

    lcd_init() : l hm phi c bo rng s s dng LCD

    lcd_putc( char c) : hm xut k t ra LCD

    lcd_gotoxy( BYTE x, BYTE y) : hm cho php con tr nhy ti v tr (x,y) trn LCD

    M phng v d dng LCD bng Proteus:

    Code :

    #define

    #include "16F877A.h"

    #device *=16 adc=8

    //#device PIC16F877A *=16

    #use delay(clock=20000000)

    #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT

    #use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    10/20

    #include

    void main ()

    {

    lcd_init();

    lcd_putc("Do an ky thuat");

    }

    Kt qu:

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    11/20

    4. LM35

    y l cm bin nhit

    LM35 c 3 chn : 2 chn cp ngun v 1 chn xut in p ra ty theo nhit

    Nhit tng 1C th in p xut ra chn out ca LM35 tng 10mV

    Cc c tnh k thut khc :

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    12/20

    M phng bng Proteus:

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    13/20

    Nhit l 27C, in p xut ra l V=0.27176 chng t s tng 10mV /C l khchnh xc.

    Khi m phng Proteus, nu khi LM35 khng hot ng, th click chut phi/ editproperties/ b check exclude from Simulation i.

    5. Chc nng ADC ca PIC16F877A

    Chc nng ADC cho php PIC nhn tn hiu tng t t cc chn c h tr ADC v chuyn tn hiu sang tn hiu s x l.

    Cc chn c h tr ADC ca PIC16F877A l : A0 A1 A2 A3 A5 E0 E1 E2.Mt s lnh cn bn khi dng ADC:

    Mun dng ADC, ta phi khai bo #DEVICE cho bit dng ADC my bit, chng hn#device*=16 ADC=8 cho bit dng ADC 8 bit

    Setup_ADC(mode)

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    14/20

    .Mode l ADC_OFF : tt chc nng ADC

    .Mode l ADC_CLOCK_INTERNAL : thi gian ly mu bng xung clock

    .Mode l ADC_CLOCK_DIV_2 : gian ly mu bng xung clock /2

    Setup_ADC_ports(value) //Xc nh chn ly tn hiu Analog v in th chun

    .Value l ALL_ANALOGS : dng tt c cc chn c h tr ADC

    .Value l NO_ANALOG : khng dng ADC

    .Value la ANi : dng chn ANi l chn ADC

    Set_ADC_channel(channel) //chn chn c gi tr analog bng lnh read_adc()

    .Vi PIC16F877A channel c 8 gi tr 0-7 tng ng l cc chn A0-E2 nh k trn

    . chnh xc ta nn delay khong 10ms truc khi c tn hiu:

    .Vd: set_ADC_channel(0);

    delay_ms(10);

    read = read_adc();

    Sau on code ny, read s c gi tr bng gi tr in p m chn c

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    15/20

    6. Ti y ta cng c lm mch hon chnh

    M phng bng Proteus:

    Kt qu :

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    16/20

    Code:

    #define

    #include "16F877A.h"

    #device *=16 adc=8

    //#device PIC16F877A *=16

    #use delay(clock=12000000)

    #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,NOLVP, NOCPD, NOWRT

    //#use rs232(baud=115200,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=9)

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    17/20

    #include

    #INT_EXT

    int8 read;

    void main(void)

    {

    // set_tris_b(0);

    set_tris_a(0xFF);

    set_tris_d(0x00);

    // Khoi tao cho ngat ngoai

    enable_interrupts (INT_EXT);

    ext_int_edge(H_TO_L);

    enable_interrupts (GLOBAL);

    //Khoi tao ADC

    setup_adc_ports(AN0);

    setup_adc(ADC_CLOCK_INTERNAL);

    delay_ms(50);

    while(TRUE)

    {

    lcd_init();

    read=read_adc();

    read =read*1.960784314;

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    18/20

    printf(lcd_putc,"\rNhiet do: %u",read);

    delay_us(20);

    }

    }

    Khi dng ADC 8bit, tn hiu ADC c c t chn ADC nh sau:

    1V 2V 3V 4V 5V51 102 153 204 255

    Tc l nu in p vo 1V th tn hiu digital tng 51

    1V ADC=51

    1C10mVADC=10*51/1000

    Suy ra TADC = T*10*51/1000

    Suy ra T = ADC*1000/10/51 = ADC * 1.960784314

    Cng thc ny dng on code trn

    7. Lm mch thc t:

    V mch in dng chc nng ARES trong Proteus:

    Xin cm n bn Thi Thin hng dn ti cch s dng ARES

    Sau khi v xong s nguyn l nh trn, ta chn nt ARES chuyn qua mch vmch in, sau khi sp xp, b sung, i dy mch v in ra PDF (dng chng trnh inmy in o Virtual PDF Printer ta c c mt s nh sau:

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    19/20

    C th xem ch 3D :

  • 8/3/2019 BO CO_PIC16F877A_LM35_LCD

    20/20

    em mch in trn ra tim in Laser (in phun khng c), ch cc xem bn in cva vi chn PIC khng, nu khng th phi in li vi t l thch hp. Thng thngin ln giy king, nhng in ln giy A4 thng cng c

    Mua board ng v t bn in ln, dng bn i i qua li khong 5ph, lc u cngh i lu s n mc, nhng khng phi vy. i board ng ngui ri g ra, nudng giy A4 thng th nn thm thm t nc mc d bm vo ng

    Mua thm cy vit v mch in, nu mc ch no cha bm tt th ln.

    em board ng ngm vo dung dch FeCl3 mua ch, vt ln xem nu ng btri ht th ly ra, nu cha th ngm tip.

    Dng xng chi i lp mc cn bm, ta c c mt mch hon chnh

    V cui cng nhm xin cm n nhng ngi ch dn cho chng ti