Professional Documents
Culture Documents
Giáo Trình Vi Điều Khiển AVR
Giáo Trình Vi Điều Khiển AVR
Bin tp bi:
DKS Group
Gio trnh vi iu khin AVR
Bin tp bi:
DKS Group
Cc tc gi:
DKS Group
1/70
iu khin IO(vo-ra) vi led n
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.
- 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.
2/70
Gii thiu vi iu khin Atmega16L
- 1 b nh thi Watchdog.
M t cc chn
3/70
- 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:
4/70
Lp trnh
-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
5/70
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.
6/70
Ta mun ghi d liu gi tr logic 0 ra PORTA.0 bt tt mt Led th:
PORTA.0=1;
x=PINA.3;
PORTA=0xAA;
CodeVision:
Chy CodeVision bng cch click chut vo ICON ca CodeVision trn Desktop c
ca s nh sau:
7/70
to Project mi chn trn menu: File New c nh sau:
8/70
Chn Yes c ca s CodeWinzardAVR nh sau :
S dng chp AVR no v thch anh tn s bao nhiu ta nhp vo tab Chip.
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.
9/70
c ca s yu cu nh cc file ca Project. y l v d IO nn ta save tn l IO.
10/70
Sau khi nh song 3 file : IO.c IO.prj IO.cwp c ca s nh sau:
led nhp nhy chng ta dng hm delay_ms(). Do ta thm th vin delay.h bng
cch tm dng lnh: #include <mega16.h> ngay u chng trnh vit ngay di dng
lnh sau:
11/70
Khi to cho cc cng IO
temp=0;
while (1)
12/70
PORTA=temp;
PORTB=temp;
PORTC=temp;
PORTD=temp;
delay_ms(1000);
temp++;
};
c ca s Information nh sau:
13/70
Chng trnh khng c li. Nhp OK.
14/70
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.
15/70
iu khin vo ra vi led 7 on
M t
Thc hnh
16/70
{
void hienthi(int n)
int a,b,c,d;
17/70
c=(n-a*1000-b*100)/10; // lay hang chuc
// Quet led
delay_ms(10);// tre
delay_ms(10);// tre
PORTD=0xFB;
daydulieu(b);
delay_ms(10);
PORTB=0xFF;
PORTD=0xF7; d
aydulieu(a);
delay_ms(10);
PORTB=0xFF;
18/70
Trong vng while(1) trong hm main ta ch dng mt cu lnh gi hm hin th nh sau:
19/70
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:
20/70
21/70
iu khin IO vi LCD
M t
LCD c ni vi PORTB.
L thuyt
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
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.
Thc hnh
22/70
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:
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:
23/70
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.
24/70
Trong vng while(1) trong hm main ta vit cc cu lnh nh sau:
25/70
ADC vi LM35
L thuyt
* 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.
M t
26/70
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.
Thc hnh
Code nh sau:
a=so/100;
27/70
// lay fan tram
b=(so-100*a)/10;
c=(so-100*a-10*b);
lcd_gotoxy(x,y);
// ve vi tri x,y
lcd_putchar(a+48);
lcd_putchar(b+48);
lcd_putchar(c+48);
28/70
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.
29/70
Giao tip I2C vi RTC DS1307
M t
Thc hnh
30/70
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 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.
31/70
c ca s son tho code.
Coding nh sau:
32/70
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.
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:
33/70
hin th cc s ra LCD ta phi vit thm mt hm LCD_putnum nh sau:
34/70
Dch v np chng trnh, xem kt qu.
35/70
Truyn thng ni tip RS232 v Visual Bais
M t
Thc hnh
36/70
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.
37/70
Trong hm main ta vit code nh sau:
38/70
Chn File Save All. n F9 dch chng trnh. Np chng trnh vo AVR.
39/70
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:
40/70
sa tn ca Form trong thuc tnh iu khin ca FORM ta sa Text trong Caption
nh sau:
41/70
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.
42/70
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:
43/70
Tng t ly cc text v label v sp xp li nh sau:
44/70
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.
45/70
c ca s Components nh sau:
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:
46/70
Thuc tnh mc nh cho MSCOMM nh sau:
47/70
Ta c ca s son code nh sau:
48/70
vit m lnh cho nt truyn kch p chut vo button truyn:
M lnh nh sau:
49/70
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.
c kt qu nh sau:
50/70
Cm cng COM vo v test chng trnh.
51/70
o lng s dng my tnh
iu khin led
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.
Thc hnh:
If Index = 0 Then
52/70
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
End If
If Index = 4
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)
53/70
End If
End Sub
End Sub
Exit Sub
Else
Text1.Text = Asc(MSComm1.Input)
End If
End Sub
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, PORTD l out put
nh cc bi trc hc. Sau lp trnh cho hm main nh sau:
54/70
Trong hm main c s dng thm mt bin temp nn d nhin cc bn phi khai bo
thm bin pha ngoi hm main.
55/70
Form gm c:
Exit Sub
Else
Text1.Text = Asc(MSComm1.Input)
Text2.Text = Asc(MSComm1.Input)
End If
56/70
End Sub
MSComm1.PortOpen = False
End
End Sub
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:
57/70
iu khin Step Motor
L thuyt
Gii thiu v ng c bc
H thng iu khin ng c bc
58/70
CONTROL LOGIC: y l khi iu khin logic. C nhim v to ra tn hiu iu
khin ng c. Khi logic ny c th l mt ngun xung, hoc c th l mt h thng
mch in t. N to ra cc xung iu khin. ng c bc c th iu khin theo c
bc hoc theo na bc.
Nguyn tc iu khin ng c bc n cc
ng c n cc
59/70
Tn hiu iu khin. iu khin bc (full step) :
Winding 1a 1000100010001000100010001
Winding 1b 0010001000100010001000100
Winding 2a 0100010001000100010001000
Winding 2b 0001000100010001000100010
time --->
Winding 1a 1100110011001100110011001
Winding 1b 0011001100110011001100110
Winding 2a 0110011001100110011001100
Winding 2b 1001100110011001100110011
time --->
Winding 1a 11000001110000011100000111
Winding 1b 00011100000111000001110000
Winding 2a 01110000011100000111000001
Winding 2b 00000111000001110000011100
time --->
Mch iu khin ng c bc
60/70
u vo ca mch iu khin l cc xung. Thnh phn ca mch l cc bn dn, vi
mch. Kch thch cc phn ca ng c bc theo th t 1-2-3-4 do cc transistor cng
sut T1 n T4 thc hin.Vi vic thay i v tr b chuyn mch, ng c c th quay
theo chiu kim ng h hoc ngc li.
61/70
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:
62/70
Code
#include <mega16.h>
#include <delay.h>
stepC[] = {0xFF,0xEF,0xDF,0xBF,0x7F};
//-------------------
// Port A initialization
DDRA=0xFF;
// Port B initialization
63/70
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In
Func1=In Func0=In
DDRB=0xFF;
// Port C initialization
DDRC=0xFF;
// Port D initialization
PORTD=0xFF;
DDRD=0xFF;
// Timer/Counter 0 initialization
TCCR0=0x00;
TCNT0=0x00;
64/70
OCR0=0x00;
// Timer/Counter 1 initialization
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
65/70
OCR1BL=0x00;
// Timer/Counter 2 initialization
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
TIMSK=0x00;
ACSR=0x80; SFIOR=0x00;
66/70
while (1)
PORTC = stepC[indexC];
//------- delay_ms(500);
}}
67/70
Tham gia ng gp
Ti liu: Gio trnh vi iu khin AVR
Bin tp bi: DKS Group
URL: http://voer.edu.vn/c/b68a6564
Giy php: http://creativecommons.org/licenses/by/3.0/
68/70
Giy php: http://creativecommons.org/licenses/by/3.0/
69/70
Chng trnh Th vin Hc liu M Vit Nam
Chng trnh Th vin Hc liu M Vit Nam (Vietnam Open Educational Resources
VOER) c h tr bi Qu Vit Nam. Mc tiu ca chng trnh l xy dng kho
Ti nguyn gio dc M min ph ca ngi Vit v cho ngi Vit, c ni dung phong
ph. Cc ni dung u tun th Giy php Creative Commons Attribution (CC-by) 4.0
do cc ni dung u c th c s dng, ti s dng v truy nhp min ph trc
ht trong trong mi trng ging dy, hc tp v nghin cu sau cho ton x hi.
Hanoi Spring l mt nn tng cng ngh tin tin c thit k cho php cng chng d
dng chia s ti liu ging dy, hc tp cng nh ch ng pht trin chng trnh ging
dy da trn khi nim v hc liu m (OCW) v ti nguyn gio dc m (OER) . Khi
nim chia s tri thc c tnh cch mng c khi xng v pht trin tin phong
bi i hc MIT v i hc Rice Hoa K trong vng mt thp k qua. K t , phong
tro Ti nguyn Gio dc M pht trin nhanh chng, c UNESCO h tr v c
chp nhn nh mt chng trnh chnh thc nhiu nc trn th gii.
70/70