Upload
maianhbao6519
View
227
Download
3
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