Bai Giang Lop Vdk Nang Cao

Embed Size (px)

Citation preview

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    1/40

    1

    Bi ging lp VK nng cao

    Bi 1,2Gii thiu chung :

    1.Kin trc vi iu khin:AVR l h vi iu khin mi, vi nhng tnh nng rt mnh c tchhp trong chip ca hng Atmel theo cng ngh RISC, n ngang hang vi cch vi iu khin khc cng thi nh PIC, Pisoc, nhng c s dng phbin hn .

    Do ra i mun hn nn h vi iu khin AVR c nhiu tnh nngmi p ng ti a nhu cu ca ngi s dng, nht l nhng ai s dngqua cc dng vi iu khin trc n nh h 89xx s c s so snh ton dinhn v n nh, kh nng tch hp v s mm do trong vic lp trnhAVR, c bit l n c b phn mm lp trnh v cng tin dng .

    Mt s tnh nng mi ca h AVR:- Giao din SPI ng b.- Cc ng dn vo/ra (I/O) lp trnh c.- Giao tip I2C.- B bin i ADC 10 bit.- Cc knh bm xung PWM.- Cc ch tit kim nng lng nh sleep, stand by..vv.- mt b nh thi Watchdog.- 3 b timer/Counter 8 bit.

    - 1 b timer/Counter 16 bit.- 1 b so snh analog.- b nh EEPROM.- Giao tip USART..vv.

    2. Gii thiu vi iu khin Atmega16L:

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    2/40

    2

    Lachnvi iukhinAtmelga16L vtnh nng c y tnh nngcahAVR, vgi thnh so vicc loikhc th gi thnh l vaphikhinghin cuv lm cc cng vic ngdngtivi iukhin.

    Tnh nng:- B nh 16K(flash) .- 512 byte (EEPROM).- 1 K (SRAM).- ng v 40 chn , trong c 32 chn v o ra d liu chia lm 4

    PORT A,B,C,D. Cc chn ny u c ch pull_up reitors.- Giao tip SPI.- Giao din I2C.- C 8 knh ADC 10 bit.- 1 b so snh analog.- C 4 knh bm xung PWM .

    - 3 b timer/counter , 2 b timer/counter 0,2 ch 8 bit, 1 btimer/counter1 16 bit.

    - 1 b nh thi Watchdog.- 1 b truyn nhn UART lp trnh c.

    Cch s dng v tnh nng cc chn khi thit k mch:- Vcc v GND 2 chn cp ngun cho vi iu khin hot ng.-Reset y l chn reset cng khi ng li mi hot ng ca h thng.- 2 chn XTAL1, XTAL2 cc chn t o b dao ng ngoi cho vi iu khin,cc chn ny c ni vi thch anh (hay s dng loi 4M), t gm (22p).-Chn Vref thng ni ln 5v(Vcc), nhng khi s dng b ADC th chnny c s dng lm in th so snh, khi chn n y phi cp cho nin p c nh, c th s dng diod zener:

    24VCC

    5V

    DIODE BREAKDOWN

    10KR

    GND

    Vref

    Hnh 3.7. Cch ni chn Vref- Chn Avcc thng c ni ln Vcc nhng khi s dng b ADC

    th chn ny c ni qua 1 cun cm l n Vcc vi mc ch nnh in p cho b bin i.

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    3/40

    3

    3. Phn mm lp trnh codevision:Lachnphnmm: y l phnmm csdngrtrngdibi

    n c xy dng trn nn ngn ng lp trnh C, phn mm c vitchuyn nghiphngtingisdngbis n gin, mmdo, shtrcao cc thvinc sn.

    4.Thit lp cng vo ra:

    S b tr chn ca AVR ATMEGA16

    Khi xem xt n cc cng I/O ca AVR th ta phi xt ti 3 thanh ghi bitDDxn,PORTxn,PINxn .Thc hin vic trao i gia VK AVR vi b n ngoi th cn phi bit lang thc hin xut/nhp.Thanh ghi DDRx m nhn vic xut/nhp ca cc chip AVR.-Cc bitDDxn truy cpcho a ch xut nhpDDRx.-Cc bit PORTxn truy cp ti a ch xut nhp PORTx.

    -Cc bit PINxn truy cp ti a ch xut nhp PINx.

    -BitDDxntrong thanh ghi DDRxdng iu khin hng dliuca ccchn ca cng ny.Khi ghi gi tr logic 0 vo bt k bit no ca thanh ghiny th n s tr thnh li vo,cn ghi 1 vo bit th n tr thnh li ra.

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    4/40

    4

    -PINxl cc cng ch c,cc cng ny c th c trng thi logic caPORTx.PINx khng phi l thanh ghi,vic c PINxcho php ta c gi trlogic trn cc chn ca PORTx.ch PINxkhng phi l thanh ghi,vic cPINx cho php ta c gi tr logic trn cc chn ca PORTx.

    -Khi PORTx c ghi gi tr 1 khi cc chn c cu to nh cng ra th intr ko l ch ng(c ni vi cng).Ngt in tr ko ra, PORTx cghi gi tr 0 hoc cc chn c dng nhcng ra.Cc chn ca cng l 3 trngthi khi 1 iu kin reset l tch cc thm ch xung ng h khng hotng.

    -Nu PORTxn c ghi gi tr logic 1 khi cc chn ca cng c dn g nhchn ra ,cc chn c gi tr 1.Nu PORTxnghi gi tr 0 khi cc chn cacng c dng nhchn ra th cc chn c gi tr 0.

    Cc cng ca AVR u c th c,ghi. thit lp 1 cng l cng vo ,ra th ta tc ng ti cc bit DDxn,PORTxn,PINxn.ta c th thit lp tng bit lm cng vo,ra c khng chvi cng,nh vy ta c th s l ti tng bit,y chnh l im mnh ca ccdng Vi iu khin 8 bit.

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    5/40

    5

    Ta c th s dng CodeWizardAVR thit lp cho c c PORTxv Pinx.V d nh trn hnh:cc bit 0,1,2,4,7 ca PORTA lm chn ra c tr ko,cncc bit cn li lm chn vo.

    Khi thit lp xong th cc bit 0,1,2,4,7 s c th xut d liu ra cn cc bitcn li c th nhn d liu vo.

    V d:Ta mun ghi d liu gi tr logic 0 ra PORTA.0 bt tt mt Led th:PORTA.0=1;

    Ta mun c d liu l mt bit t chn 3 ca PORTA:Bit x;x=PINA.3;

    Cng nh vy khi ta thit lp PORTA lm cng ra th ta c th xut d liura t PORTA:PORTA=0xAA;

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    6/40

    6

    PORTA

    Cn nu ta thit lp PORTA lm cng vo v gi tr hin thi ca PORTA :

    PORTA

    Th sau cu lnh c gi tr t PORTA: x=PINA;th x=0x55;

    Khi thit lp PORTA lm cng ra th khi reset gi tr ca PORTA lPORTA=0xFF;

    PORTA

    Khi thit lp PORTA lm cng vo th khi reset gi tr ca PORTA lPORTA=0x00;

    PORTA

    Vic thit lp cng vo ra l mt vic quan trng v ty theo mc ch sdng cc cng no lm cng vo ra,th ta phi thit lp ng th mi c ths dng c,ta c th so snh vn n y vi dng vi iu khin AT8951.

    Nu AT8951,ta thit lp PORTxlm cng vo nhng ta li s dng vimc ch l cng ra,th PORTx s b hng qua vi ln cho kt qu ng,vdo ta qun khng thit lp PORTxl cng ra,cu lnh cng khng khc n n

    ta khng pht hin ra.Khi ta thit lp PORTxlm cng vo nhng lai sdng vi mc ch cng ra th do cu lnh khng khc nn ta cng khngpht hin ra.

    V d:

    PORT0=0xFF;(PORT0 l cng vo)sau ta li xut d liu raPORT0=0xAA;c th ban u vn cho kt qu ng nhng chc chnPORT0 s b hng.

    PORT0=0x00;(PORT0 l cng ra)sau ta li nhp d liu v ox=PORT0;th ta cng khng c c.

    Cn AVR,khi mun nhp d liu vo th phi thit lp PORTxl cng vov dng cu lnh:X=PINx;//khng dng x=PORTx.

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    7/40

    7

    Thc hnh lp trnh:Chng ta tiptcchng trnh vicc bi thchnh:Thitlpchng trnh nhy LED

    5VCCR_470

    D3

    LED

    chan VDK

    Thitlpchng trnh nhsau: Theo s nguyn l nhhnh v ccchn cavi iukhin cnivi nLED qua 1 trko ln 5v chng tathitlpchng trnh cho nLED nhy lin tc cc tnskhc nhau.{// Declare your local variables here

    // Input/Output Ports initialization// Port A initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

    PORTA=0xff;DDRA=0xFF;

    // Port B initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

    PORTB=0xff;DDRB=0xFF;

    // Port C initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0= Out// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

    PORTC=0xff; //su dung tro keo trongDDRC=0xFF;

    // Port D initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out// State7=0 State 6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0

    PORTD=0xff;DDRD=0xFF;

    }

    while (1) { // Place your code here // cho tat ca cac LED deu sang PORTA=0x00; PORTB=0x00; PORTC=0x00;

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    8/40

    8

    PORTD=0x00; delay_ms(300);// delay 300ms, thoi gian de lay co the thay doi

    // tat toan bo cac LED PORTA=0xff; PORTB=0xff; PORTC=0xff; PORTD=0xff; delay_ms(300);// delay 300ms

    };Nh vy trong on chng trnh trn nuchng ta da thigian delay didngbinsc ththay i c tg, ta sthythigian ngngtcaLED sthay i delay_ms(tg).

    Trc ht ta khai bo bin tg nhsau:unsigned char tg; khai bo bintg dngnguyn t0->255.

    /*****************************************************This program was produced by theCodeWizardAVR V1.24.6 ProfessionalAutomatic Program Generator Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.come-mail:[email protected]

    Project :Version :Date : 12/7/2006Author : F4CGCompany : F4CGComments:

    Chip type : ATmega16LProgram type : ApplicationClock frequency : 8.000000 MHzMemory model : SmallExternal SRAM size : 0Data Stack size : 256*****************************************************/

    //************* bai tap giao tiep voi phim bam*******************//***************************************************************/*

    noi dung bai tap la thet lap phim bam o PINA kiem tra cac phim bam de lua chon chuong trinh

    */#include

    http://e-mail:[email protected]/http://e-mail:[email protected]/http://www.hpinfotech.com/
  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    9/40

    9

    #include unsigned char tg; // bien thoi gian la tg co the thay doi

    // Declare your global variables here

    // Phan main thiet lap cac thanh ghi sau khi khoi tao chuong trinhvoid main(void){

    // Declare your local variables here

    // Input/Output Ports initialization// Port A initialization// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=TPORTA=0x00;DDRA=0x00; // thiet lap PORTA lam dau vao

    // Port B initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=OutFunc0=Out

    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0PORTB=0x00;DDRB=0xFF;

    // Port C initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=OutFunc0=Out

    // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 Stat e1=0 State0=0PORTC=0x00;DDRC=0xFF;

    // Port D initialization// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0PORTD=0x00;DDRD=0xFF;

    // Timer/Counter 0 initialization// Clock source: System Clock// Clock value: Timer 0 Stopped// Mode: Normal top=FFh// OC0 output: DisconnectedTCCR0=0x00;TCNT0=0x00;OCR0=0x00;

    // Timer/Counter 1 initialization// Clock source: System Clock

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    10/40

    10

    // Clock value: Timer 1 Stopped// Mode: Normal top=FFFFh// OC1A output: Discon.// OC1B output: Discon.// Noise Canceler: Off// Input Capture on Falling Edge// Timer 1 Overflow Interrupt: Off// Input Capture Interrupt: Off// Compare A Match Interrupt: Off// Compare B Match Interrupt: OffTCCR1A=0x00;TCCR1B=0x00;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;

    OCR1BH=0x00;OCR1BL=0x00;

    // Timer/Counter 2 initialization// Clock source: System Clock// Clock value: Timer 2 Stopped// Mode: Normal top=FFh// OC2 output: DisconnectedASSR=0x00;TCCR2=0x00;TCNT2=0x00;OCR2=0x00;

    // External Interrupt(s) initialization// INT0: Off// INT1: Off// INT2: OffMCUCR=0x00;MCUCSR=0x00;

    // Timer(s)/Counter(s) Interrupt(s) initializationTIMSK=0x00;

    // Analog Comparator initialization

    // Analog Comparator: Off// Analog Comparator Input Capture by Timer/Counter 1: OffACSR=0x80;SFIOR=0x00;tg=50; // gan bien tg=50 ban dau .

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    11/40

    11

    //--------------------------------------------------------------- ------------//---------------- phan chuong trinh chay chinh------------------------ //----------------------------------------------------------------------------while (1) {

    // Place your code here while(!PINA.0) // lenh kiem tra ne u PINA.0=0 { tg=tg+10; delay_ms(100) ;

    }

    PORTC=0xaa; PORTD=0xaa;

    delay_ms(tg);// delay tg ms

    PORTC=0x55; PORTD=0x55; delay_ms(tg);// delay tg ms while(!PINA.1) // lenh kiem tra neu PINA.1=0 {

    PORTC=0x00; PORTD=0x00; } while(!PINA.2) // lenh kiem tra neu PINA.2=0 thi tat cac LED PORTC,D {

    PORTC=0xff; PORTD=0xff; }

    };}

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    12/40

    12

    Bi 3:Gii thiu b bin i ADC, b nh EEPROM ni AVR :+ADC cho LM35 v bintr-> hinthLCD.+Cc bin EEPROM niAVR-> hinthLCD.

    ChcnngcaLCD trong mchRobocon cngnhtrong huhtcc mch(cc b iukhinkhc) hunhchyu mnhn vai trhinthcc thng s, cc thng tin m chng ta munnhpvo haycc thng tin sl m b iukhin ang hot ng ochinthramn hnh , gip chng ta giao tipgnhn viqu trnh hot ngcahthng.

    loiLCD m chng ta sdngl loiSD-DM1602A , loinyhinnay cTrung Qucsnxut. y l LCD 2 dng midng 16k t, n c 16 chn nhhnh v:

    Trong chng ta c th thy2 chn 1,2 ccp nguncho LCDhot ng , chn th3 (chn VSS) cnivoura cabintrdng iu chnh tng phn (phi iu chnhVSS hp l thLCD mihinth c) 2 chn 15,16 y l 2 chn cpngundungbt n caLCD t chn 4->14 l cc chn iukhin c ni

    vivi iukhin, cc chn 4,5,6 cnivivi iukhin iukhin LCD hot ng , cc chn cn li l cc chn Data dung truynnhndliu . chng ta c thtruynData 8 bit mthoc4 bitmt, nhtrong mchcachng ta truynData didng4 bit mtvictruyndidng4bit hoc8 bit phi cthitlpcphncngv phnmm.

    bien tro

    LCD

    123456789

    10111213

    141516

    PB2

    PB5(MOSI)

    VCC

    PB1

    GND

    PB4(SS)

    GND

    VCC

    PB6(MISO)

    PB7(SCK)

    PB0VSS

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    13/40

    13

    sdngtnh nng ADC caAtmega 16L chng ta cnphithitkphncngcaVi iukhinnhsau :Chn AVCC chn ny bnh thng khi thitkmchchng ta a ln5vcc nhng khi trong mchc sdngcc knh ADC caphncngth chng ta phi ni chn ny ln 5vcc qua 1 cun cm nhmmcch cpngun n nhcho cc knh (uvo) cabbin i,

    Chn AREF chn ny cncp1 gi tr in p n nh csdnglm in p tham chiu, chnh v vy in p cpvo chn nycn n nhv khi n thay ilm gi trADC cc knh thu cbtri (thay i) khng n nhvi1 gi tr uvo chng ta c cngthctnh nhsau:

    ADCx=(V_INT*1024)/AREFchdavo cng thc chng ta cng c th thygi trADCx t lthunvi in p vo V_INT(y chnh l V_OUT caSensor).

    Gi trADC thu ctcc knh clu vo 2 thanh ghi ADCH vADCL khi sdngchng ta phi cgi trtcc thanh ghi ny, khi sdng ch 8 bt th chlu vo thanh ghi ADCL.

    BnhEEPROM c thlu cgi trcan khi RESETchng trnh hockhi ttngun

    V d :eeprom unsigned char VA_T;eeprom unsigned char VB_T;eeprom unsigned char TG_T;chng ta thc hin qu trnh khi to ADC v LCD nh sau:

    Hinh1,2

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    14/40

    14

    Hnh 3,4

    Hnh 5,6

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    15/40

    15

    Giao din chng trnh

    Hnh 7

    Nh vy trong bi ny chng ta s dng PORTA lm uvo, 8 chncaPORTA sdnglm 8 knh uvo ADC.

    Gi trAnalog thu ctLM35, bintrta a vo cc chnPINA.0,PINA.1 tng ngvicc knh 0,1 cua bbin iADC.

    cgi trADC tthanh ghi ADCH,ADCL nhsau : m=adc_data[x]x chnh l da ch knh u vo(0->7).

    Cc lnhchnh khi sdng, iukhinLCD nh:

    lcd_gotoxy(0,0); lcd_putsf("VI DIEU KHIEN NANG CAO") ;

    lcd_putchar();Lnh lcd_gotoxy( );

    t ach, vtr con trbt ucadng k t.Lnhlcd_putsf( ) : in ra dng k t.Lnhlcd_putchar( ) : in ra gi tr dngchar

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    16/40

    16

    Thutton in ra sliudidnggi trnguyn nhsau:void lcd_putnum(unsigned char d)

    { //

    unsigned char i,j;

    i=d%10;

    d=d/10;

    j=d%10;

    d=d/10;

    if(d>0) lcd_putchar(48+d); // 48 la gia tri o muc nen d la gia tri

    //hien thi

    if(j>0) lcd_putchar(48+j); // j la gia tri hien thi

    lcd_putchar(48+i); //

    }

    Bi ton thnhtcachng ta l cgi trADC tLM35 hay tbintrv hinthln mn hnh.V d ura caLM35 ta a vo chn thnhtcaPORTA(PINA.0)Lc ny ta hiugi trADC cn cvl knh 0 adc_data[0], hinthlnLDC nhsau:utin chng ta vitchng trnh hinthsliudidng char

    void lcd_putnum(unsigned char d)

    { //

    unsigned char i,j;

    i=d%10;

    d=d/10;

    j=d%10;

    d=d/10;

    if(d>0) lcd_putchar(48+d); // 48 la gia tri o muc nen d la gia tri

    //hien thi

    if(j>0) lcd_putchar(48+j); // j la gia tri hien thi

    lcd_putchar(48+i); //

    }

    Trong chng trnh chnh chng ta cgi trADC nhsau:

    while (1)

    {

    // Place your code here

    lcd_gotoxy(0,0);

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    17/40

    17

    lcd_putsf("bai tap ADC");

    lcd_gotoxy(5,1);

    delay_ms(100);

    };

    Bi ton th 2 chng ta cngiiquyt l sdngcc bindidngbnhEEPROM nhsau:Khai bo bin2 bintg1,tg2 nhsau:eeprom unsigned char tg1=10;unsigned char tg2=10;v sdngthutton giao tipvibn Phm nhbi trcnhsau :while(1){

    lcd_gotoxy(0,0); lcd_putsf(" Gia tri tg1.tg2") lcd_gotoxy(2,1); lcd_putnum(tg1); lcd_putsf(" "); lcd_putnum(tg2);

    while(!PINA.0) // lenh kiem tra neu PINA.0=0 {

    lcd_gotoxy(0,0); lcd_putsf(" Gia tri tg1.tg2")

    lcd_gotoxy(2,1); lcd_putnum(tg1); lcd_putsf(" "); lcd_putnum(tg2);

    tg1=tg1+1; tg1=tg1+1;

    delay_ms(100) ;

    }}

    Sau khi chy chng trnh chng ta RESET ton b h thng chng ta thymn hnh hinth2 gi trtg1v tg2 khc nhau.

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    18/40

    18

    Bi 4. Giao tip I2C: RTC vi DS1307 v 24Cxx.

    Vicgiao tiptheo chunI2C strnn n ginhn viAVR

    Hnh 4.1

    Hnh 4.2

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    19/40

    19

    Hnh 4.3

    Giao dinchng trnh chnh

    Hnh 4.4

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    20/40

    20

    Sau khi thitlpchng trnh xong chng ta vitthm onchng trnhhinLCD nhsau:

    void lcd_putnum(unsigned char d)

    { //

    unsigned char i,j;

    i=d%10;

    d=d/10;

    j=d%10;

    d=d/10;

    if(d>0) lcd_putchar(48+d); // 48 la gia tri o muc nen d la gia tri

    //hien thi

    if(j>0) lcd_putchar(48+j); // j la gia tri hien thi

    lcd_putchar(48+i); //}

    rtc_set_time(9,10,11) ; // hm tthigianchng ta cn c 1 hm nal hm oc thigian rtc_get_time(&h,&s,&m);h : gi.s: pht.M: giy.Trong vng lpchnh chng ta vitdonchng trnh hinththigian nhsau:

    while (1)

    {

    // Place your code here

    rtc_get_time(&h,&s,&m);

    lcd_gotoxy(0,0);

    lcd_putsf("Real Time Clock");

    lcd_gotoxy(0,1);

    lcd_putnum(h);

    lcd_putsf(" ");

    lcd_putnum(s); lcd_putsf(" ");

    lcd_putnum(m);

    delay_ms(200);

    };Ngoi ra chng ta c thvittng tcho chng trnh hinthngy thng,nm .

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    21/40

    21

    Chng ta thit lp I2C vi 24cxx:

    Hinh4.5

    Hinh4.6

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    22/40

    22

    Vit cc hm c v ghi EEROM :

    //==================================================unsigned char eeprom_read(unsigned int address);void eeprom_write(unsigned int address, unsigned char data);

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

    /* read a byte from the EEPROM */unsigned char eeprom_read(unsigned int address){ unsigned char data; i2c_start(); i2c_write(EEPROM_BUS_ADDRESS);

    i2c_write(address>>8); i2c_write(address); i2c_start(); i2c_write(EEPROM_BUS_ADDRESS | 1); data=i2c_read(0); i2c_stop(); return data;

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    23/40

    23

    }

    /* write a byte to the EEPROM */void eeprom_write(unsigned int address, unsigned char data){ i2c_start(); i2c_write(EEPROM_BUS_ADDRESS); i2c_write(address>>8); i2c_write(address); i2c_write(data); i2c_stop(); /* 10ms delay to complete the write operation */ delay_ms(1);

    }

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

    By gichng ta vit onchng trnh ghi vo bnhngoi 100 gitrsau cra v hinthvo PPORTD :void test_24C(){ int i; while(1){

    for(i=0; i

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    24/40

    24

    Bi 5,6 Giao tip qua cng RS232 , giao tip VB vi th vin MSCOMM

    Giao tip theo chun RS232 l chun giao tip ni tip dung nh dngkhng ngb, csdngkh phbintrong vicktnivimy tnhv cc thit bngoivi khc. MSComm l 1 iukhindung trong truynthng nitip, cc tnh chtcaMSComm cdung thitlpgiao tipvicc ngoivi qua cngRS232 , MSComm chtrcho cVB v VC, nhng iviVB th n trnn n ginhn.Cc thit lp v lp trnh:

    - thitlpvicodevision:o

    Gao dinchnh

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    25/40

    25

    Chng ta c 2 hm cbnm phnmm khito l hmputchar()v hm getchar()Sau khi khitoxung chng ta c thvitchng trnh truynvnhn nhsau:

    Khai bo bins: unsigned char sSau trong chng trnh chng ta thchincc lnhtruynv nhncc dliunhsau:

    s=getchar();PORTC=s;

    putchar(s);delay_ms(100);

    Chng ta c ththchinch text thchng trnh truynnhnnhsau:

    Ta cgiao dinchng trnh text nhsau:

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    26/40

    26

    V chng ta c thtruynv nhngi trsau khi npchng trnh.- Cch xy dng giao din giao tip vi my tnh thng qua

    cng RS232 v s dng thvin MSComm nh sau:

    Giao dinchng trnh:

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    27/40

    27

    Trn thanh cng cta xy dnggiao din:

    Sau xy dngcc thuctnh:

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    28/40

    28

    Vit chng trnh cho cc thuc tnh nh sau:Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True

    End Sub

    Private Sub Ket_Thuc_Click() MSComm1.PortOpen = False End

    End SubPrivate Sub nhan_Click() Timer1.Interval = 10 ' Text1.Text = 12

    ' val_nhan.Text = MSComm1.Input

    End Sub

    Private Sub Timer1_Timer()

    val_nhan = Chr$(Val(MSComm1.Input))

    End Sub

    Private Sub Truyen_Click() MSComm1.Output = Chr$(Val(Text)) x = Val(Val_Truyen.Text) If x

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    29/40

    29

    Bi 7,8 Gi thiu cc loi ng c:- ngcDC, ngcbc- Mch iukhinv lptrnh

    - ngcDC thngc rtnhiuloikhc nhau vcng sut, kiudng vcuto nhc cc loi ngccng sutln ngdngtrong cc cng vicchutiln, hay cc loi ngcc hay khng c hpgimtctuthaongdngcthm chng ta c cch lachn ngccho hpl.- ngcBc(Step motor)II. NGUYN L IUKHINCC LOI NGCBC.2.1 ngcbcnam chm vnhcuPM.

    Nguyn l hot ng:

    S

    N

    N

    S

    V+

    S4

    S1

    S3

    S2

    +V

    L1

    L2

    L3

    L4

    L4

    L3

    L2

    L1

    V+

    S2

    S3

    S1

    S4

    +V

    SN

    N

    S

    S NN S

    V+

    S4

    S1

    S3

    S2

    +V

    L1

    L2

    L3

    L4

    L4

    L3

    L2

    L1

    V+

    S2

    S3

    S1

    S4

    +V

    S

    N

    N

    S

    +V

    V+

    +VV+

    a b

    dc

    Hnh 2.1. Nguyn l hot ngca ngcPM

    n ginta xt ngcPM c hai cp cunpha. Hai cpcunpha clpixngqua rotor. Cc tnh ca cc cun i xng l gingnhau. S ni dy cccunpha ucchra nhhnh v.

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    30/40

    30

    vtrutin, gisrotor blchmt gc nhtrn hinh 2.1a. Lc ny cha cinvo ngc. Khi ta ngcc kha S1 v S3, ngc uccp in. Dng inchiu inthV+ chyqua cc cunL1 v L3. Ttrngcahai cuntng ln, xuthinmmen intlm cho rotor l nam cha vnhcu quay cho tikhi cc N castator ixngvicc S carotor nhtrn hnh 2.1b. Tiptheo ta mcc kha S1, S3 v ng

    S2, S4. Lc ny cpcunpha L2 v L4 ccp in. Ttrng cahai cunny tngdnv mmen intdo hai cundy ny tora lm cho rotor quay cho tikhi t cvtr nh hnh 2.1d.

    Vy, trong mi ln ng v mcc chuyn mch, rotor ca ngc squay imtgc l 900. i vicc ngcc scpcundy pha cng lnth gc quay carotor sau miln ng, mcc chuynmchlicng nh, c nghal cc ngcc khnng iuchnhvtr ngy cng chnh xc.

    Bcgc ca ngcPM c tnh theo cng thc:

    staZS

    360 ()

    Trong Zstal scccastator.

    p dngcng thctrn. Vi ngcc 4 ccstator sc bcgc l 900, vi ngcc 8 ccstator sc bcgc l 450

    iukhin ngcPM: iukhin ngcPM, vimi cp cctrn stators cnivimt dy pha v ngcPM s c iu khin bngcch cpdng mtcch thtcho cc dy pha. ivi ngcPM 2 pha, ta sc s nidy v dicpxung yu cunhsau:

    Hnh 2.2 S ni dy v di xung iu khin ng c PM 2 pha

    Gisthi imbt ukhost t0, cpcunpha A ca ngc ccpdngdng. Dng in i t uA, qua hai cundy ixngv v t. Giathigian t0vt1 ngc vtr cn bng. n thi imt1dng cpcho pha A bngtv cpdngdng cho pha B. Lc ny dng in i t uB, qua hai cundy ixngv v t.Mmen ttrngslm cho ngcquay i mt gc 900, thi im ngcquay cgc 900tng ng vithi imt2. Lc ny pha B cngt inv cpdng in m

    A

    BN

    S

    00 0

    90 1800 0

    270 3600

    A

    B

    t0 1t t23t t 4

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    31/40

    31

    cho pha A, lc ny hai cun dy trn stator ni vi pha A s i cc tnh, mmen dochng tora slm cho ngctiptcquay theo chiucthm mt gc 900. Thi imngcquay c900 ny tng ngvithi imt3. Lc ny dng vo pha A cct, cpdng m cho pha B, ngcstiptcquay theo chiucmt gc 900. Vidixung cplin tcnhvy, ngcsquay vi tc v v trn nhtrong qu trnh

    vnhnh.

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    32/40

    32

    Hnh 2.3. S iukhin ngcPM 2 pha sdngcc cng tcchuynmch

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    33/40

    33

    2.2 ngcbcttrthay iVR.Nguyn l hot ng:

    Hnh 2.4. Nguyn l hot ngca ngcVR ba pha bncpcctrn stator

    Khi ta cp incho cc cundy caccA, cc cun A1 v A2 c cng cctnh(N), cc cunA3 v A4 c cng cctnh (S). Tthng cacc ccny tng dnv khpkn virotor theo ngnt t cchra trn hnh v. Dng tthng i tccbcA1vo rng 1 trn stator, sau tch ra thnh hai nhnh. Mt nhnh i qua rng 3 castator,

    mtnhnh i qua rng 4 castator, sau chai nhnh livA1. Cc dng t thngcchr trn hnh minh ha. Khi ngc vtr nhhnh v, dng incpcho cunpha A c ttrl nhnht, do ngccn bng, rotor khng quay.

    Ngngcp incho pha A, cp incho pha B ca stator. Lc ny ttrtrongngcln, momen tstc ngln trcrotor, lm cho rotor quay cho tikhi c ttrnhnht, lc rotor ttivtr cn bngmi.

    Ta cp inmt cch lin tccho cc cundy A B C A rotor squay theo tngbc. Qu trnh cp dng mt cch th t cho cc cun dy c thc hin qua ccchuynmchckh hocchuynmch in.

    V rotor ca ng c VR lm bng thp non nn khi khng c in, rotor skhng c tdv khng bhm, ngcstiptcquay theo qun tnh. y chnh l

    nhc imcnkhcphckhi iukhinloi ngcny.Bcgc ca ngcVR ctnh theo cng thc:

    P

    R

    N

    SS ()

    Trong SR l bcgc carotor, Npl spha ca ngc.

    S

    SN

    S0360

    ()R

    RN

    S0360

    A

    A

    AA

    B

    B

    C

    C

    C

    B

    C

    B

    S S

    N

    N

    1

    2

    3 4

    A1

    A3

    A2

    A4

    st

    rt

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    34/40

    34

    NS, NR: srng castator v carotor.ivi ngcchng ta ang khost:

    3012

    360SS () 458

    360RS () 153

    45S ()

    Tng t, ivi ngcVR 3 pha, 4 rng trn tator ta c bcca ngcl S = 300.Th tcpdng cho cc pha ca ngccng tng tnh trn, tuy nhin mibcquay, rotor squay i mt gc gp i ngcta khost. iuny c nghal chnh xc vvtr ca ngccngbgim i.

    Hnh 2.5. S cp dng cho ngcVR 3 pha, bcgc S = 300

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    35/40

    35

    2.3. ng cbckiulai.Nguyn l hot ng.

    Hnh 2.6.

    Mtctdc ngcbckiulai.

    Hnh2.7. S nidy ngcbckiulai

    Rotor ca ngcbckiu lai ccu to thai on trc. Bn ngoi cchtobngthp non, bn trong l trcnam chm vnhcu. Cch nidy trn hai ontrc cchra hnh trn. Trong dy pha A c mu sm, dy pha B c mu mhn.Cunpha A lptrn cc cclcn cunpha B clptrn cc trcchn.

    Trn hai onrotor ca ngcbckiulai, rng trn onrotor ny trng virnh trn onrotor kia, hai on rotor c tha tng ngvi cc ca nam chmvnhcu. y ta gis ontrcA c cctl N, ontrcB c cctl S.

    B BAA

    AB

    7

    8

    1

    2

    3

    4

    5

    66

    5

    7

    8

    1

    2

    3

    4

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    36/40

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    37/40

    37

    POWER DRIVER:C nhim v cp ngun in c iuchnh a vo ngc. N ly intngun cung cpv xung iukhintkhi iukhin tora dngincpcho ngchot ng.STEPPER MOTOR: ngcbc. Cc thng sca ngcgmc: Bcgc, saisbcgc, mmen ko, mmen hm, mmen lm vic.

    i vih iukhin ngcbc, ta thy l mt hthngkh n ginvkhng hc phn tphnhi. iuny c cv ngcbc trong qu trnh hotngkhng gy ra sai stch ly, sai sca ngcdo sai strong khi chto. Vicsdng ngcbc tuy em lai chnh xc cha cao nhng ngy cng c sdngphbin. V cng sutv chnh xc cabcgc ang ngy cng ccithin.

    Bc gc ca ngcbc cchtotheo bngtiu chunsau:

    Hnh 2.9. Cc bcgc tiu chunca ngcbc.2.4.2. iukhincbc. v iukhinnabc.

    iukhincbc.

    iukhinnabc

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    38/40

    38

    Hnh 2.11.iukhincbcv iukhin na bc. n gin, ta khost vi ngcPM c 2 cpcc, 4 pha.iukhincbc cthchinbngcch cp incho micunpha mt

    cch tunt v khi mt cunpha ccp inth cc cunpha khc skhng c in.

    Khi iukhincbc, vtr cn bngca ng c, cccarotor lun c vtrixngvicccastastor.iukhinnabc cthchinbngcch cp incho mt cunpha v hai

    cunpha ngthi. Trong iukhinnabuc, c thi imchai cunpha ucin. iuny cho php bxung cc vtr cn bngmicho ngc. l cc vtrgiacc bcca ngc. Nhvytrong qua trnh hot ng, ngcsquay nabcmt chkhng phiquay mtbucmt.

    3.4. Nguyn tc iukhin ngc.- Nguyn tc th bm xung l vic ta chia 1 xung ln ra thnh cc xung nh, tcl lcny v nguyn tc th ng c c ng ngt lin tc nhng do tn s cao nn ta c

    cm gic ng c ch thay i v tc .- C th bm xung bng phn mm hoc bng phn cng, i vi Atmega16L ngoi mrng cc tnh nng khc phn cng ca n c n m rng thm 4 knh bm xung 2 knhca b timmer 0 timmer2 , 2 knh ca b timmer1. Mt iu rt thun tin khi s dngAVR l n c rt nhiu tnh nng mi m cc h khc khng c ngoi ra phn mm lih tr rt mnh cho vic lp trnh,nh vy khi s sng cc knh PWM ta ch vic khito gi tr cc thanh ghi cu n v n t ng bm xung rt chnh xc theo tn s v rng xung chn. y l 1 ng dng rt quan trng trong cc bi ton iu khin tc ng c .2 knh ca b timmer1 ng vi cc chn PORT D.4, PORT D.5 ca PORT D v 2 knhkhc b timer 0 v 2 .S mchnguyn l iukhin ngcbcv ngcthng:

    PB7(SCK)

    PC2

    PA1

    PD4

    GND

    PB2

    C9

    GND

    C10

    CAP NPGND

    PC3

    J2

    123456789

    10

    PA3

    XTAL1

    R11R

    PA2

    RESETPB5(MOSI)

    GND

    J3

    ATMEGA16

    123456789

    1011121314151617181920

    4039383736353433323130292827262524232221

    PC6

    PC1

    GND

    PB4(SS)

    XTAL2

    GND

    PC4

    PD3

    GND

    PB6(MISO)

    PA4

    PB1

    PC7

    GNDGND

    VCC

    PD2

    PD0(RXD)

    GND

    VCC

    PB3

    RESET

    PC0

    GND

    PA7

    GND

    PB0 PA0

    VCC

    PC5

    R10

    R

    RESET

    CAM KHANG

    GND

    PD6

    Y1

    GND ZENNER_5V

    AREF

    J23JUMPER

    12

    PA6

    24VCC

    RESET

    khoi vi dieu khien

    PD7

    PA5

    GND

    PD5

    AREF

    PD1(TXD)

    GND

    C11

    CAP NP

    C8

    VCC

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    39/40

    39

    D10

    LED

    R4_2

    R3_4

    R3_1

    R2_2

    R1_4

    VCC

    R2_1

    J14

    DE CAM OPTO

    12345678 9

    10

    14

    1615

    131211

    R4_4

    24VCC

    24VCC

    R1_1

    R4_1

    D4LED

    R1_3

    OPTO_OUT8

    OPTO_OUT2

    R4_3

    VCC

    OPTO_OUT1

    OUT_9

    PD7

    PC3

    PC2

    OPTO_OUT3

    D8

    LED

    R15

    R

    PC6

    PC7

    R1_4

    24VCC

    R2_4

    R3_2

    J11

    TRO THANH 1K

    12345

    R2_3 PC5

    J13

    TRO THANH10K

    12345

    PC0

    OPTO_OUT4

    R3_1

    R3_4

    D9

    LED

    R2_2

    R1_2

    R2_3

    R2_4

    khoi tro thanh va opto lay tin hieu dieu khien tu VDK , khoi nay co nhiem vu dk IRF

    R4_4

    OPTO_OUT6

    D12

    LED

    R4_2

    R2_1

    R1_2

    R1_3PC1

    D3LED

    J23JUMPER

    12

    J16

    DE CAM OPTO

    1

    2345678 9

    10

    14

    16

    15

    131211

    R3_3

    R3_2

    PC4

    J10

    TRO THANH 1K

    12345

    D7LED

    VCC

    D6LED

    R14

    R

    OPTO_OUT7

    ISO11OPTO ISOLATOR

    2

    1

    5

    4

    OPTO_OUT5

    D5LED

    R1_1

    R4_3

    J12

    TRO THANH10K

    12345

    R4_1

    R3_3

    GND

    CONG NAP

    SPI

    13579

    10

    8 6 4 2

    PB6(MISO)

    PB5(MOSI)

    PB7(SCK)

    VCC

    RESET

    cong nap SPI

    GND

  • 8/13/2019 Bai Giang Lop Vdk Nang Cao

    40/40

    IRF_OUT8

    GND

    GND

    R3

    R

    OPTO_OUT6

    IRF_OUT3

    GND

    GND

    GND

    GND

    IRF_OUT6

    OPTO_OUT3

    GND

    OPTO_OUT1

    GND

    OPTO_OUT2

    GND

    Q7IRF540N/TO OPTO_OUT1

    GND

    OPTO_OUT6

    GND

    OPTO_OUT2

    OPTO_OUT3

    GND

    GND

    OPTO_OUT1

    GND

    IRF_OUT4

    OPTO_OUT5OPTO_OUT5

    GND

    OPTO_OUT3

    OPTO_OUT2

    GND

    OPTO_OUT5

    IRF_OUT1

    IRF_OUT2

    R6

    R

    OPTO_OUT2

    GND

    OPTO_OUT1

    GND

    OPTO_OUT3

    OPTO_OUT1

    OUT_9

    khoi IRF lay tin hieu dieu khien tu opto dung dieu khien dong co

    GND

    OPTO_OUT3

    OPTO_OUT1

    Q3IRF540N/TO

    R5

    R

    Q5IRF540N/TO

    OPTO_OUT4

    OPTO_OUT3

    IRF_OUT7

    GNDGND

    R7

    R

    OPTO_OUT6

    OPTO_OUT4

    IRF_OUT5

    Q9IRF540N/TO

    GND

    GND

    ZENNER_5V

    R13

    R

    OPTO_OUT4

    OPTO_OUT7

    R8

    R

    OPTO_OUT8

    GND

    GND

    GND

    R2

    R

    GND

    GND

    OPTO_OUT7

    OPTO_OUT8

    GND

    Q6IRF540N/TO

    GNDGND

    R1

    R

    OPTO_OUT7

    OPTO_OUT4

    Q8IRF540N/TO

    R4

    R

    GND

    OPTO_OUT8

    GND

    Q1IRF540N/TO

    OPTO_OUT7

    Q2IRF540N/TO

    OPTO_OUT6

    IRF_OUT9

    OPTO_OUT8

    GND

    Q4IRF540N/TO

    GNDGNDGND

    U1

    LM7805/TO

    1

    3

    2VIN

    GNDVOUT

    R9

    R_470

    phan cap nguon cho he thong hoat dong

    J1

    JACK NGUON

    21

    C1

    CAP

    DIODE_5A

    D2

    LED

    24VCC

    C2

    CAP NP

    VCCVCC 24VCC