GiaotrinhAVR Tech24.Vn

Embed Size (px)

DESCRIPTION

GiaotrinhAVR Tech24.Vn

Citation preview

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Thc hnh trn KIT AVR_DKS_03

    1

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 2

    MC LC Bi 1: iu khin IO (vo ra) led n 4

    1.Kn trc v vi iu khin 4 2. Gii thiu vi iu khin Atmega16L 4 2.1.M t cc chn: 4 3. Phn mm lp trnh codevision(Hitech): 6 3.1.M t phn cng trn KIT AVR 03: 6 3.2.Lp trnh: 7

    Bi 2.iu khin vi led 7 on 18 1.Yu cu 18 2.M t 18 3.Thc hnh 18

    Bi 3.iu khin IO vi LCD 23 1.Yu cu 23 2.L thuyt 23 3.M t 23 4.Thc hnh 24

    Bi 4.ADC vi LM35 27 1.Yu cu 27 2.L thuyt 27 3.M t 28 4.Thc hnh 28

    Bi 5.Giao tip I2C vi DS1307 32 1.Yu cu 32 2.M t 32 3.Thc hnh 32

    Bi 6.Truyn thng RS-232 vi Visual Basic 38 1.Yu cu 38

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 3

    2.M t 38 3.Thc hnh 40 4.Visual Basic 42

    Bi 7.o lng s dng my tnh 54 1.Yu cu 54

    2.M t 54 3.Thc hnh 54

    Bi 8.iu khin Step motor 59 1.Yu cu 59 2.L thuyt 59 2.1.Gii thiu ng c bc 59 2.2.H thng iu khin ng c bc 59 3.Nguyn l iu khin ng c n cc 61

    4.Mch iu khin ng c bc 62

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Yu cu:

    - Khi to project bng CodeVision. - Np chng trnh. - iu khin led n trn KIT theo mun.

    L thuyt: 1.Kin trc vi iu khin:

    AVR l h vi iu khin 8 bit theo cng ngh mi, vi nhng tnh nng rt mnh c tch hp trong chip ca hng Atmel theo cng ngh RISC, n mnh ngang hng vi cc h vi iu khin 8 bit khc nh PIC, Pisoc.Do ra i mun hn nn h vi iu khin AVR c nhiu tnh nng mi p ng ti a nhu cu ca ngi s dng, so vi h 8051 89xx s c n nh, kh nng tch hp, s mm do trong vic lp trnh v rt tin li.

    * 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:

    4

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Atmelga16L c y tnh nng ca h AVR, v gi thnh so vi cc

    loi khc th gi thnh l va phi khi nghin cu v lm cc cng vic ng dng ti vi iu khin. Tnh nng:

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

    PORT A,B,C,D. Cc chn ny u c ch pull_up resistors. - Giao tip SPI. - Giao din I2C. - C 8 knh ADC 10 bit. - 1 b so snh analog. - 4 knh PWM. - 2 b timer/counter 8 bit, 1 b timer/counter1 16 bit. - 1 b nh thi Watchdog. - 1 b truyn nhn UART lp trnh c.

    2.1.M t cc chn: - 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 to 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 chn ny c s dng lm in th so snh, khi chn ny phi cp cho n in p c nh, c th s dng diode zener:

    5

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    24VC

    C

    5V

    DIODE BREAKDOWN

    10KR

    GN

    D

    Vref

    Hnh 2.1. 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 ln Vcc vi mc ch n nh in p cho b bin i.

    3. Phn mm lp trnh codevision(Hitech): La chn phn mm : y l phn mm c s dng rt rng di bi n c xy dng trn nn ngn ng lp trnh C, phn mm c vit chuyn nghip hng ti ngi s dng bi s n gin, s h tr cao cc th vin c sn. 3.1.M t phn cng trn KIT AVR 03: Cc led n ni vi cc cng vo ra ca ATMEGA16L(PORTA-PORTB-PORTC-PORTD). led sng cn a mc logic ca cc chn IO ca AVR ln mc cao(5V), led tt a cc chn IO ca AVR xung mc thp.

    6

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    7

    5VCCR_470D3

    LED

    chan VDK

    3.2.Lp trnh: Thit lp cng vo ra: Khi xem xt n cc cng I/O ca AVR th ta phi xt ti 3 thanh ghi bit DDxn,PORTxn,PINxn.

    -Cc bit DDxn truy cp cho a ch xut nhp DDRx. Bit DDxn trong thanh ghi DDRx dng iu khin hng d liu ca cc chn ca cng ny.Khi ghi gi tr logic 0 vo bt k bit no ca thanh ghi ny th n s tr thnh li vo,cn ghi 1 vo bit th n tr thnh li ra.

    -Cc bit PORTxn truy cp ti a ch xut nhp PORTx. Khi PORTx c ghi gi tr 1 khi cc chn c cu to nh cng ra th in tr ko l ch ng(c ni vi cng).Ngt in tr ko ra, PORTx c ghi gi tr 0 hoc cc chn c dng nh cng ra.Cc chn ca cng l 3 trng thi khi 1 iu kin reset l tch cc thm ch xung ng h khng hot ng.

    -Cc bit PINxn truy cp ti a ch xut nhp PINx. PINx l cc cng ch c,cc cng ny c th c trng thi logic ca PORTx.PINx khng phi l thanh ghi,vic c PINx cho php ta c gi tr logic trn cc chn ca PORTx.ch PINx khng phi l thanh ghi,vic c PINx cho php ta c gi tr logic trn cc chn ca PORTx.

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Nu PORTxn c ghi gi tr logic 1 khi cc chn ca cng c dng nh chn ra ,cc chn c gi tr 1.Nu PORTxn ghi gi tr 0 khi cc chn ca cng c dng nh chn 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 ch vi cng,nh vy ta c th s l ti tng bit,y chnh l im mnh ca cc dng Vi iu khin 8 bit.

    Ta c th s dng CodeWizardAVR thit lp cho cc PORTx v Pinx. V d nh trn hnh:cc bit 0,1,2,4,7 ca PORTA lm chn ra c tr ko,cn cc 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 bit cn 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:

    8

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    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 liu ra t PORTA:

    PORTA=0xAA; 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=PORTA th x=0x55. Khi thit lp PORTA lm cng ra th khi reset gi tr ca PORTA l PORTA=0xFF;

    PORTA Khi thit lp PORTA lm cng vo th khi reset gi tr ca PORTA l PORTA=0x00; PORTA Vic thit lp cng vo ra l mt vic quan trng v ty theo mc ch s dng cc cng no lm cng vo ra,th ta phi thit lp ng th mi c th s dng c, ng tc ny khc vi h vi iu khin 8051- AT8951. CodeVision: Chy CodeVision bng cch click chut vo ICON ca CodeVision trn Desktop c ca s nh sau:

    9

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    to Project mi chn trn menu: File New c nh sau:

    Chn Project sau click chut vo OK c ca s hi xem c s dng Code Winzard khng:

    Chn Yes c ca s CodeWinzardAVR nh sau :

    10

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    S dng chp AVR no v thch anh tn s bao nhiu ta nhp vo tab Chip. khi to cho cc cng IO ta chuyn qua tab Ports. Cc chn IO ca AVR mc nh trng thi IN, mun chuyn thnh trng thi OUT c th a cc mc logic ra ta click chut vo cc nt IN (mu trng) n chuyn thnh OUT trong cc Tab Port. Sau chn File Generate, Save and Exit.

    11

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    c ca s yu cu nh cc file ca Project. y l v d IO nn ta save tn l IO.

    Sau khi nh song 3 file : IO.c IO.prj IO.cwp c ca s nh sau:

    12

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Chng ta c code vision khi to code. Trong c y code cn thit m khi ny chng ta cu hnh cho cng IO. Chng ta bt u son code. led nhp nhy chng ta dng hm delay_ms(). Do ta thm th vin delay.h bng cch tm dng lnh: #include ngay u chng trnh vit ngay di dng lnh sau: #include . led nhp nhy cng IO ta a ra cng IO mt bin temp c gi tr tng dn t 0 n 255. Do ta khai bo thm mt bin unsigned char temp ngay di dng // Declare your global variables here nh sau:

    13

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Khi to cho cc cng IO

    Trong hm main c vng while(1). Chng ta son code vo nh sau:

    14

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    temp=0; while (1) { // Place your code here PORTA=temp; PORTB=temp; PORTC=temp; PORTD=temp; delay_ms(1000); temp++; }; }

    dch chng trnh n F9 hoc vo menu : Project Compile. c ca s Information nh sau:

    15

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Cu hnh cho mch np

    Chng trnh khng c li. Nhp OK. np chng trnh cc bn cn cu hnh cho mch np. Vo menu: Settings Programmer c ca s nh bn cnh. Mch np ta dng STK 200 do cc bn chn Kanda Systems STK200+/300. Nhp OK. Sau cc bn chn trn menu: Projects Configure c ca s nh sau:

    16

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Trong tab After Make cc bn nh du vo Program the Chip v nhp OK. Nhn t hp phm Shift + F9 c nh hnh bn. Cm Jump mch np vo .Click vo Program. i np xong nh jump np ra n Reset thy led chy.

    17

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    1.Yu cu: Bit phng php qut led. a s bt k ra hng led. 2.M t: 4 led 7 thanh anot chung, 4 chn anot chung(chn dng) c ni vi 4 transitor ta c th qut led s dng 4 chn ca PORTD, cc chn iu khin sng cc thanh cn li c ni song song nhau v a vo PORTB ca AVR v c th t nh sau: T bt 0 6 ng vi t A G. Bt th 7 l du chm.

    V c 4 led nn ta c th hin th n hng nghn. Do u vo ca ta l mt s bt k ln ti hng nghn. Ta phi tch ly tng s hng nghn, trm, chc, n v ri a vo 4 bin ri ty vo 4 bin s m ta a ra tng led. Qut let ta lm nh sau: a PORTD.0 xung 0 bt ngun cho led hng n v, y tr s hng n v ra PORTB, tr mt khong thi gian a PORTD.0 ln mt tt ngun led n v, a PORTD.1 xung 0 bt ngun cho led hng chc, y gi tr hng chc ra PORTB, tr mt

    18

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 19

    khong thi gian, C lm nh vy n hng nghn. Nh vy ti mt thi im ch c mt led sng ch bng 1/3 thi gian led tt, nhng do tn s bt led nhanh, mt ngi lu nh nn vn thy led sng nh lc no cng bt ngun cho led. 3.Thc hnh: Cc bc khi to tng t bi mt. Chng ta son tho code gm hai hm nh sau v t ngay pha trn hm main nh trong hnh. void daydulieu(unsigned char x)// Ham dua du lieu ra PORT { switch(x) // Tuy thuoc vao bien dau vao ma dua du lieu ra tu 0...9 { //logic 1 tat led, logic 0 bat led case 0: { PORTB=0xC0; break; } // So 0 case 1: { PORTB=0xF9; break; } // So 1 case 2: { PORTB=0xA4; break; } // So 2 case 3: { PORTB=0xB0; break; } // So 3 case 4: { PORTB=0x99; break; } // So 4 case 5: { PORTB=0x92; break; } // So 5 case 6: { PORTB=0x82; break; } // So 6 case 7: { PORTB=0xF8; break; } // So 7 case 8: { PORTB=0x80; break; } // So 8 case 9: { PORTB=0x90; break; } // So 9 } } void hienthi(int n) { int a,b,c,d; // Lay cac so cac hang a= n/1000; // lay hang nghin b=(n-a*1000)/100; // lay hang tram c=(n-a*1000-b*100)/10; // lay hang chuc d=(n-a*1000-b*100-c*10);// lay hang don vi // Quet led PORTD=0xFE;// led dau tien daydulieu(d);// day ra hang don vi

    delay_ms(10);// tre PORTB=0xFF;// tat toan bo led PORTD=0xFD;//led thu hai daydulieu(c);// dua ra hang chuc delay_ms(10);// tre PORTB=0xFF;// tat toan bo led PORTD=0xFB; daydulieu(b); delay_ms(10); PORTB=0xFF; PORTD=0xF7; daydulieu(a); delay_ms(10); PORTB=0xFF; }

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    20

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Trong vng while(1) trong hm main ta ch dng mt cu lnh gi hm hin th nh sau:

    21

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Ch : trong bi ny v nu a cc PORTD v PORTB lc khi to bng 0x00 th tt c cc led s sng do ti cc cu lnh khi to cho hai PORT ny cc bn hy gn cho n gi tr 0xFF nh hnh sau:

    22

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    1.Yu cu: Bit khi to cho LCD vi CodeWinzardAVR vi bt k cng no. Hin th ra LCD cc k t bt k. 2.M t: LCD c ni vi PORTB.

    3.L thuyt:

    Chc nng ca LCD trong hu ht cc mch, cc b iu khin m nhn vai tr hin th cc thng s, cc thng tin m chng ta mun nhp vo hay cc thng tin x l m b iu khin ang hot ng oc hin th ra mn hnh, gip chng ta giao tip gn hn vi qu trnh hot ng ca h thng. Loi LCD m chng ta s dng l loi SD-DM1602A 2 dng mi dng 16 k t, loi ny do Trung Quc sn xut . N c 16 chn nh hnh v. Trong chng ta c th thy 2 chn 1,2 c cp ngun cho LCD hot ng, chn th 3 (chn VSS) c ni vo u ra ca bin tr dng iu chnh tng phn (phi iu chnh VSS hp l th LCD mi hin th c) 2 chn 15,16 y l 2 chn cp ngun dung bt n ca LCD t chn 4->14 l cc chn iu khin c ni vi vi iu khin, cc chn 4,5,6 c iu khin hot ng ca LCD, cc chn cn li l 8 bit Data dng truyn nhn d liu. Chng ta c th giao tip Data 8 bit hoc 4 bit nh

    23

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    trong mch ca chng ta truyn Data di dng 4 bit. Vic truyn di dng 4bit hoc 8 bit phi c thit lp c phn cng v phn mm. 4.Thc hnh: Cc bc khi to trong CodeWinzard nh sau:

    Trong ca s CodeWinzard, chn tab LCD, trong list mc nh l None, cc bn chuyn thnh PORTB cho ph hp vi phn cng ca KIT( thit k LCD PORTB). Chn File Generate, Save and Exit c nh sau:

    24

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Code cho LCD cc bn c th tham kho trong Help bng cch chn trn menu Help Help Topic(hoc n F1). c ca s Help nh sau:

    Trong tab Contents, click p chut vo CodeVisionAVR C Compiller Library Functions c nh bn cnh. Nhp p vo LCD Functions tham kho cc hm cho LCD.

    25

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Trong vng while(1) trong hm main ta vit cc cu lnh nh sau: while (1) { // Place your code here lcd_gotoxy(0,0);// Dua con tro ve goc, dong 0, cot 0 lcd_putsf("DKS-MTC-JACKY");// Hien thi dong chu lcd_gotoxy(0,1);// Dua con tro ve dong 1, cot 0 lcd_putsf("Wellcome you"); // Hien thi dong chu delay_ms(3000); // Tre 3 s lcd_gotoxy(0,0); // Dua con tro ve dong 0 cot 0 lcd_putsf("embestdks.com"); // Hien thi dong chu delay_ms(3000); // Tre 3 s };

    26

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    1.Yu cu: o c nhit t LM35 hin th ln LCD. 2.L thuyt:

    i vi ATMEGA 16L: 8 chn ca PORTA s dng lm 8 knh u vo ADC. s dng tnh nng ADC ca Atmega 16L chng ta cn phi thit k phn cng ca Vi iu khin nh sau : * Chn AVCC chn ny bnh thng khi thit k mch chng ta a ln Vcc(5V) nhng khi trong mch c s dng cc knh ADC ca phn cng th chng ta phi ni chn ny ln Vcc qua 1 cun cm nhm mc ch cp ngun n nh cho cc knh (u vo) ca b bin i. * Chn AREF chn ny cn cp 1 gi tr in p n nh c s dng lm in p tham chiu, chnh v vy in p cp vo chn ny cn n nh v khi n thay i lm gi tr ADC cc knh thu c b tri (thay i ) khng n nh vi 1 gi tr u vo chng ta c cng thc tnh nh sau:

    ADCx=(V_INT*1024)/ AREF ch da vo cng thc chng ta cng c th thy gi tr ADCx t l thun vi in p vo V_INT. Gi tr ADC thu c t cc knh c lu vo 2 thanh ghi ADCH v ADCL khi s dng chng ta phi c gi tr t cc thanh ghi ny, khi s dng ch 8 bt th ch lu vo thanh ghi ADCL. 3.M t: u ra ca LM35 v chn 2 bin tr 1K trn Kit c ni vi 2 jump ch. Vi AMEGA16L c 8 knh ADC l chc nng th 2 ca PORTA. Do ADC ta dung dy ni 2 chn vi 2 bit ca PORTA l bit 0 v bit 1..

    27

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Theo datasheet LM35 th c 10mV tng ng vi 10C, 00C in p ra l 0V, tng ng vi gi tr ADC l 0. Vi Vref=5V, gi tr ca ADC t 0 n 256, ly trn 250 mc. Mi gi tr ADC ng vi 5V/250= 20 mV. Vy 1 gi tr ADC ng vi 20C. Mun tng phn gii ADC ta gim Vref. 4.Thc hnh: Cc bc khi to code nh sau:

    Trong tab ADC check vo ADC enable:

    28

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Cu hnh ADC. Khi to LCD.

    Ta check vo Use 8 bt, ADC tr v gi tr 8 bt, v ta ADC dng ngt check vo Interrupt, v in p tham kho AREF th ly in p ca chn AREF ca AVR c ni vi 5V. Tn s ADC ty cc bn thch nhanh hoc chm chn gi tr ph hp. Trong box Automatically Scan Inputs cc bn check vo Enabled. V chng ta cn ADC 2 knh, 1 knh dng bin tr test ADC, mt knh t LM35 u vi 2 bit 0 v 1 ca PORTA do chn First 0, Last 1. Khi to cho LCD vo PORTB nh hnh bn cnh. Chn Generate, Save and Exit.

    29

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 30

    hin th c mt s bt k ln LCD, trong th vin hm khng c v ta phi t vit hm . u vo l mt bin unsigned char, ta phi tch ly hng trm, hng chc, hng n v v a ln lt ln LCD. Code nh sau: void lcd_putnum(unsigned char so,unsigned char x,unsigned char y) { unsigned char a,b,c; a=so/100;

    // lay fan tram b=(so-100*a)/10;

    // lay fan chuc c=(so-100*a-10*b);

    // lay hang don vi lcd_gotoxy(x,y);

    // ve vi tri x,y lcd_putchar(a+48);

    // day ra hang tram, ma ascii lcd_putchar(b+48);

    // day ra hang chuc, ma ascii lcd_putchar(c+48);

    // day ra hang don vi, ma ascii } Trong vng while(1) trong hm main ta vit nh sau: while (1) { // Place your code here lcd_putnum(2*adc_data[1],0,0);

    // dua gia tri ADC tu LM35*2= nhiet do lcd_putnum(adc_data[0],0,1);

    // dua gia tri ADC tu bien tro delay_ms(3000);

    // tre 3 s, cap nhat du lieu mot lan };

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    31

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    o nhit bng LM35 qua ADC thng c sai s v tri, do ta cn hiu chnh nhit bng cch so snh vi nhit k.

    1.Yu cu: Hiu c giao tip I2C. Nguyn l hot ng ca DS1307. c thi gian v ngy thng t DS1307 v hin th ln LCD. 2.M t: Bus ca I2C t DS1307 v 24Cxx c ni vi mt jumper gip ta c th ni vi bt k 2 bt ca hai cng bt k ca AVR trn KIT bi mt dy ni.

    3.Thc hnh: Khi to cho LCD v DS1307 nh sau:

    32

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Khi to cho LCD- PORT B

    Khi to I2C

    Khi to DS1307 Trong tab cc chip ta chn chp DS1307, check vo Enabled xc nh s dng DS1307 v trong Square Wave Output ta check vo Enabled, trong

    33

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    list Freq: Chn 1 Hz khi to cho chn output ca DS1307 c 1 s c mt xung ra, trong mch chn ni vi 1 led v khi to va ri lm cho led nhp nhy vi tn s 1 Hz. Sau chn File Save, Generate and Exit.

    c ca s son tho code. S lm vic vi DS1307 nh sau: Khi to I2C

    Khi to DS1307

    Thit lp thi gian cho DS1307

    c thi gian t DS1307 (1Hz)

    Hin th ra LCD thi gian

    Coding nh sau: B xung th vin delay.h vo u chng trnh.

    34

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Ngay trc vng while(1) trong hm main b xung cu lnh t thi gian v ngy thng cho RTC. I2C, DS1307, LCD khi to bng CodeWinzard AVR.

    c th c c thi gian ta dng hm rtc_get_time() v rtc_get_date c sn trong th vin DS1307.h.( tham kho cc hm c th m Help tng t nh tham kho cc hm ca LCD bi trc.)

    35

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Chng ta phi khai bo 3 bin lu thng tin v thi gian l gi h; pht m; giy s v 3 bin lu thng tin v ngy thng l ngy day; thng month; nm year ngay pha trc hm main nh sau:

    hin th cc s ra LCD ta phi vit thm mt hm LCD_putnum nh sau:

    Chng trnh chnh trong vng while(1) nh sau:

    36

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Dch v np chng trnh, xem kt qu.

    37

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    1.Yu cu: - Bit khi to RS232 trong CodeWinzard AVR.

    - Vit chng trnh nhn d liu t cng COM PC v truyn ln cng COM ng d liu .

    - Cc thuc tnh v cc control trong Visual Basic 6.0. - T to mt Project trong Visual Basic 6.0 truyn d liu xung cng COM v c d liu t cng COM ln.

    2.M t: Cng ni tip trn KIT.

    38

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    3.Thc hnh: Cc bc khi to cho cng ni tip dng CodeWinzard nh sau:

    Khi to RS232

    Trong tab USART check vo cc Receiver cho php nhn d liu; Rx Interrupt nhn d liu s dng ngt; Transmitter cho php truyn d liu; Tx Interrupt truyn d liu s dng ngt. Cc thng s cn li: Receiver Buffer v Transmitter Buffer l b nh m nhn v m truyn. Trong ng dng n gin chng ta mc nh l 8, trong cc ng dng truyn s lng thng tin ln ta c th tng b m trnh mt thng tin. Tc baud mc nh l 9600 (bit/s). Cc thng s ca b truyn: 8 bit, 1 bit dng(stop), khng u tin. Ch truyn khng ng b. Theo yu cu l nhn d liu v truyn ln d liu ta vit code nh sau. Trc tin ta khai bo mt bin trung gian truyn nhn d liu v khi to cho PORTA l u ra nh sau:

    39

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Trong hm main ta vit code nh sau:

    40

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Chn File Save All. n F9 dch chng trnh. Np chng trnh vo AVR.

    41

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    4.Visual Basic v cc control n gin. Khi to Project trong VB. Kch p v biu ICON ca VB c ca s New Project nh sau:

    Hoc khi m mt Project sn mun to mt Project mi c th s dng Menu: File New Project (phm tt Ctrl + N). Nh sau:

    42

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Trong ca s New Project c 3 tab: New to Project mi; Existing m mt Project c sn; Recent: m cc Project gn y. Trong tab new c nhiu loi Project : Standar Exe, ActiveX exe, ActiveX DLL, . Chng ta chn Standar EXE v chn Open c Project nh sau:

    sa tn ca Form trong thuc tnh iu khin ca FORM ta sa Text trong Caption nh sau:

    43

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    V d : To FORM n gin nh sau: truyn v nhn d liu khi nhp vo mt nt. u vo s c 1 tham s a truyn, u ra c 1 thng s- nhn d liu- nh vy ta s dng 2 textbox control, ngoi ra ta cn s dng 3 nt bm button xc nh s kin truyn, nhn v thot. c th a mt control vo trong FORM, phn CAC DIEU KHIEN CO BAN ta ch cn nhp p vo cc control mi dng. V d ly textbox control.

    Trong phn thuc tnh ca Textbox Text1, tm text v xo ch Text1 i. Text 1 thnh trng, di chuyn cc control ta nhp tri chut v d cht v di chuyn ti v tr thch hp.

    44

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    ng bin ca cc Control u c cc im t mu m, a tr chut ti tr chut bin thnh mi tn, nhp tri chut v d cht thay i kch thc ca cc control. Ly LABEL nh sau:

    Thay i Caption ca Label thnh MSCOM CONTROL BASIC . Ly cc button v sa cc thuc tnh tng t nh sau:

    45

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Tng t ly cc text v cc label v sp xp li nh sau:

    46

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Trong trng hp cc bn kch p chut vo mt iu khin n s hin ra ca s CODE, cc bn c th tt nh du X trn gc trn phi m hnh :

    Trong thuc tnh ca cc control chng ta c th thay i cc thng s nh tn ca cc control v d: Name, Font ch hin th, mu sc ch, mu nn, v.v.Nh vy ta to ra mt FORM cc tham s a,b hin th bi cc textbox1,2. Nt truyn l Command1, nt nhn l thot l Command2, nt thot l Command3. Form chy nh sau: Nhp thng s vo cc text 1, nhn nt Truyn th d liu trong text1 c truyn ra cng COM. Nhn nt nhn th d liu nhn c s hin th ln text 2. Phm thot thot khi chng trnh. V Control iu khin cng COM MSCOM khng phi control c bn nn n khng hin th trn tools, chng ta phi ly trong th vin ra. Nh sau: kch chut phi vo thanh cc control n gin chn Component .

    47

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    c ca s Components nh sau:

    48

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Tm dng Microsoft Comm Control 6.0 v check vo v nhn OK. By gi trn thanh cng c c thm mt biu tng mi l MSCOMM control. Kch p vo ly control vo Form.nh sau:

    Thuc tnh mc nh cho MSCOMM nh sau:

    49

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    vit Code cho i tng no ta ch cn nhp p chut vo i tng ca s vit code s hin ra. Khi chy chng trnh th trc ht ta cn khi to cho control MSCOMM. Nh vy ta phi khi to trong hm Form_Load. Ta chuyn tr chut n nh du Form ( Nhp p vo khong trng trn Form) thc hin nh sau:

    Ta c ca s son code nh sau:

    50

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    VB t khi to cho ta mt hm khi load form. Vit m lnh nh sau:

    vit m lnh cho nt truyn kch p chut vo button truyn:

    M lnh nh sau:

    51

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Tng t lm cho nt nhn vit code. M lnh nh sau:

    Tng t lm cho nt EXIT:

    Chn File Save Project v File Save Form vi tn l tut. lu li Project va to. Chn File Make tut.exe to file thc thi v chy nh phn mm thng thng.

    52

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    c kt qu nh sau:

    Cm cng COM vo v test chng trnh.

    53

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    1.Yu cu: iu khin led n trn KIT AVR 03 bng my tnh. o kt qu ADC t bin tr v cm bin nhit LM35 hin th ln my tnh.

    iu khin led: To mt Form bng VB nh sau:

    Trong FORM c: 1 i tng picturebox cha logo ca DKS. C 10 i

    tng button trong 8 i tng button Led1...Led8 l mt mng button c tn t Command1(0) ... Command1(7). Mun to mt mng button ta ch vic ly ra 8 i tng button v sa tn tt c chng thnh Command 1. Hai button cn li l Phn hi v Exit. C mt textbox hin th d liu phn hi. Hot ng ca phn mm nh sau: Khi nhn vo button Led 1 th truyn d liu l 0x01 xung cng ni tip ca PC, AVR nhn c v a d liu ra cng ca AVR 1 led trn Kit sng. Tng t cho bm cc nt Led cn li. ng thi AVR gi lun gi tr va nhn c ln PC. V khi bm nt phn hi th d liu hin ra trn Textbox. Khi nhn nt Exit th thot khi phn mm.

    54

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 55

    Thc hnh: Phn mm trn VB Code nh sau: Private Sub Command1_Click(Index As Integer) If Index = 0 Then MSComm1.Output = Chr$(1) End If If Index = 1 Then MSComm1.Output = Chr$(2) End If If Index = 2 Then MSComm1.Output = Chr$(4) End If If Index = 3 Then MSComm1.Output = Chr$(8) End If If Index = 4 Then MSComm1.Output = Chr$(16) End If If Index = 5 Then MSComm1.Output = Chr$(32) End If If Index = 6 Then MSComm1.Output = Chr$(64) End If If Index = 7 Then MSComm1.Output = Chr$(128) End If End Sub Private Sub Command2_Click() MSComm1.PortOpen = False End End Sub Private Sub Command3_Click() If MSComm1.Input = "" Then Exit Sub Else Text1.Text = Asc(MSComm1.Input) End If End Sub

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True End Sub Firm ware: Khi to trong CodeVision AVR cho php cng ni tip hot ng, PORT D l out put nh cc bi trc hc. Sau lp trnh cho hm main nh sau:

    Trong hm main c s dng thm mt bin temp nn d nhin cc bn phi khai bo thm bin pha ngoi hm main. Np chng trnh vo chip AVR Kt ni dy cng Com t KIT v cng Com my tnh v test kt qu.

    56

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    o ADC t bin tr v LM35. Trn VB to ra mt giao din phn mm nh sau:

    Form gm c: 4 label hin th nh hnh. 2 text box hin th d liu. 2 button: Thu du lieu v Thoat khi phn mm. Code trn VB nh sau: Private Sub Command1_Click() If MSComm1.Input = "" Then Exit Sub Else Text1.Text = Asc(MSComm1.Input) Text2.Text = Asc(MSComm1.Input) End If End Sub Private Sub Command2_Click() MSComm1.PortOpen = False

    57

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    End End Sub Private Sub Form_Load() MSComm1.CommPort = 1 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True End Sub Firm Ware: Khi to bng CodeWinzard AVR cho cng ni tip USART hot ng, cho php ADC hot ng(interrupt) nh cc bi trc sau vit code cho hm main nh sau:

    Dch np chng trnh v test .

    58

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com

    1.Yu cu : Hiu nguyn l iu khin ng c bc n cc. iu khin c bng AVR.

    2.L thuyt: 2.1.Gii thiu v ng c bc: ng c bc thc cht l mt ng c ng b dng bin i cc

    tn hiu iu khin di dng cc xung in ri rc k tip nhau thnh cc

    chuyn ng gc quay hoc cc chuyn ng ca roto v c kh nng c

    nh roto vo nhng v tr cn thit. ng c bc lm vic c l nh c

    b chuyn mch in t a cc tn hiu iu khin vo stato theo mt th

    t v mt tn s nht nh. Tng s gc quay ca roto tng ng vi s ln

    chuyn mch, cng nh chiu quay v tc quay ca roto, ph thuc vo

    th t chuyn i v tn s chuyn i. Khi mt xung in p t vo cun

    dy stato (phn ng) ca ng c bc th roto (phn cm) ca ng c s

    quay i mt gc nht nh, gc y l mt bc quay ca ng c. Khi cc

    xung in p t vo cc cun dy phn ng thay i lin tc th roto s

    quay lin tc. (Nhng thc cht chuyn ng vn l theo cc bc ri

    rc).

    2.2.H thng iu khin ng c bc. Mt h thng c s dng ng c bc c th c khi qut theo s sau.

    59

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 60

    .C.SUPPLY: C nhim v cung cp ngun mt chiu cho h thng. gun mt chiu ny c th ly t pin nu ng c c cng sut nh. Vi

    c ng c c cng sut ln c th dng ngun in c chnh lu t gun xoay chiu. ONTROL LOGIC: y l khi iu khin logic. C nhim v to ra tn iu iu khin ng c. Khi logic ny c th l mt ngun xung, hoc c l mt h thng mch in t. N to ra cc xung iu khin. ng c

    bc c th iu khin theo c bc h c theo na bc. OWER DRIVER: C nhim v cp ngun in c iu chnh a vo ng c. N ly in t ngun cung cp v xung iu khin t khi iu khin to ra dng in cp cho ng c hot ng. TEPPER MOTOR: ng c bc. Cc thng s ca ng c gm c: c gc, sai s bc gc, mmen ko, mmen hm, mmen lm vic.

    i vi h iu khin ng c bc, ta thy l mt h thng kh n gin v khng h c phn t phn hi. iu ny c c v ng c c trong qu trnh hot ng khng gy ra sai s tch ly, sai s ca ng

    DNcnChth

    oPSB bc do sai s trong khi ch to. Vic s dng ng c bc tuy em lai

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 61

    bc gc ang ngy cng c ci thin.

    .

    chnh xc cha cao nhng ngy cng c s dng ph bin. V cng sut v chnh xc ca Bc gc ca ng c bc c ch to theo bng tiu chun sau:

    3.Nguyn tc iu khin ng c bc n cc:

    ng c bc n cc, ( c th l ng c vnh cu hoc ng c hn

    hp ) c 5,6 hoc 8 dy ra thng c qun nh s di. Khi dng, cc

    u ni trung tm thng c ni vo cc dng ngun cp, v hai u

    cn li ca mi mu ln lt ni t o chiu t trng to bi qun

    Hnh 1-5 : ng c n cc.

    Tn hi

    Winding 1a 1100110011001100110011001 Winding 1b 0011001100110011001100110 Winding 2a 0110011001100110011001100 Winding 2b 1001100110011001100110011

    u iu khin. iu khin bc (full step) : Winding 1a 1000100010001000100010001 Winding 1b 0010001000100010001000100 Winding 2a 0100010001000100010001000 Winding 2b 0001000100010001000100010 time --->

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 62

    time --->

    iu khin na bc ( half step ) Winding 1a 11000001110000011100000111 Winding 1b 00011100000111000001110000 Winding 2a 01110000011100000111000001 Winding 2b 00000111000001110000011100 time --->

    4.Mch iu khin nng sau y:

    .

    t kch t.

    dao ng c hc.

    ng. Thnh phn ca mch l cc bn

    ng c bc theo th t 1-2-3-4 do

    t T1 n T4 thc hin.Vi vic thay i v tr b

    theo chiu kim ng h hoc ngc li.

    ng c bc: Mch iu khin ng c bc bao gm mt s chc

    To cc xung vi nhng tn s khc nhau

    Chuyn i cc phn cho ph hp vi th

    Lm gim cc

    u vo ca mch iu khin l cc xu

    dn, vi mch. Kch thch cc phn ca

    cc transistor cng su

    chuyn mch, ng c c th quay

    in p c cp qua cc kho chuyn nui cc cun dy, to ra t

    trng lm quay rotor. Cc kho y khng c th, c th l bt c thit b

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 63

    y

    tnh. Vi ng c nh c dng c 500 mili Ampe, c th dng IC loi dy

    darlington collector h nh :

    ULN2003, ULN2803 ( Allegro Microsystem)

    DS2003 (National Semiconductor), MC1413 ( Motorola)

    h hp TTL, cc u emitor c ni vi chn

    i diode. Mt mc gia emitor

    iode th hai ni

    collector vi chn 9. Nu chn 9 ni vi cc dng ca cun dy, to thnh

    mch bo v cho transitor.

    Vi cc ng c ln c dng > 0.5A cc IC h ULN khng p ng

    c ta c th dng cc Tranzitor trng(IRF).Mt s loi IRF thng dng:

    IRF540 tranzitor ngc c th chu dng n 20A

    IRF640 tranzitor ngc c th chu dng n 18A

    ng ct no iu khin c nh rle, transitor cng sut... Tn hiu iu

    khin c th c a ra t b iu khin nh vi mch chuyn dng, m

    IC h ULN200x c u vo p

    8. Mi transitor darlington c bo v bi ha

    ti collector chn in p ngc ln t ln transitor. D

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 64

    IRF250 tranzitor ngc c th chu dng n 30A .

    S mch c thit k nh sau:

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 65

    5.Code : #include #include // Khai bao bien unsigned char stepA[] = {0xFF,0xFE,0xFD,0xFB,0xF7}, stepB[] = {0xFF,0xEF,0xDF,0xBF,0x7F}, stepC[] = {0xFF,0xEF,0xDF,0xBF,0x7F}; unsigned char indexA, indexB, indexC; unsigned char n_data; unsigned char n_step=10; unsigned int n_step3=5000,n_i; //------------------- // Declare your global variables here void 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=T PORTA=0xFF; DDRA=0xFF; // Port B 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=T PORTB=0xFF; DDRB=0xFF; // Port C 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=T PORTC=0xFF; DDRC=0xFF; // Port D initialization // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

    State6=T State5=T State4=T State3=T State2=T State1=T State0=T // State7=T PORTD=0xFF; DDRD=0xFF;

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 66

    initialization

    ystem Clock lock value: Timer 1 Stopped

    .

    ow Interrupt: Off Interrupt: Off

    Compare A Match Interrupt: Off terrupt: Off

    ;

    R1H=0x00;

    ;

    alization

    top=FFh isconnected

    SSR=0x00;

    zation

    // Timer/Counter 0// Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x00; TCNT0=0x00; OCR0=0x00; // Timer/Counter 1 initialization // Clock source: S// C// Mode: Normal top=FFFFh // OC1A output: Discon. // OC1B output: Discon// Noise Canceler: Off // Input Capture on Falling Edge // Timer 1 Overfl// Input Capture//// Compare B Match InTCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00;TCNT1L=0x00ICICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00;OCR1BL=0x00 // Timer/Counter 2 initi// Clock source: System Clock // Clock value: Timer 2 Stopped // Mode: Normal// OC2 output: DATCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initiali

  • DKS_GROUP Microcontroller Training Center

    DKS Group www.EmbestDKS.com 67

    CUCR=0x00;

    ) initialization

    ialization Off

    er/Counter 1: Off

    ode here >3) indexA = 1; >3) indexB = 1;

    ++>3) indexC = 1; stepA[indexA] & stepB[indexB];

    pC[indexC];

    );

    // INT0: Off // INT1: Off // INT2: Off MMCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(sTIMSK=0x00; // Analog Comparator init// Analog Comparator: // Analog Comparator Input Capture by TimACSR=0x80; SFIOR=0x00; while (1) { // Place your c if(indexA ++ if(indexB ++ if(indexC PORTA = PORTC = ste //------- delay_ms(500 }}