Professional Documents
Culture Documents
DKS Group
www.EmbestDKS.com
DKS_GROUP
MC LC
Bi 1: iu khin IO (vo ra) led n
1.Kn trc v vi iu khin
2. Gii thiu vi iu khin Atmega16L
2.1.M t cc chn:
3. Phn mm lp trnh codevision(Hitech):
3.1.M t phn cng trn KIT AVR 03:
3.2.Lp trnh:
Bi 2.iu khin vi led 7 on
4
4
4
4
6
6
7
18
1.Yu cu
18
2.M t
18
3.Thc hnh
18
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
32
1.Yu cu
32
2.M t
32
3.Thc hnh
32
38
38
www.EmbestDKS.com
DKS_GROUP
2.M t
38
3.Thc hnh
40
4.Visual Basic
42
54
1.Yu cu
54
2.M t
54
3.Thc hnh
54
59
1.Yu cu
59
2.L thuyt
59
2.1.Gii thiu ng c bc
59
59
3.Nguyn l iu khin ng c n cc
61
4.Mch iu khin ng c bc
62
DKS Group
www.EmbestDKS.com
DKS_GROUP
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:
DKS Group
www.EmbestDKS.com
DKS_GROUP
DKS Group
www.EmbestDKS.com
24VCC
DKS_GROUP
10K
R
Vref
5V
GND
DIODE BREAKDOWN
DKS Group
www.EmbestDKS.com
DKS_GROUP
D3
R_470
chan VDK
5VCC
LED
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
www.EmbestDKS.com
DKS_GROUP
DKS Group
www.EmbestDKS.com
DKS_GROUP
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:
DKS Group
www.EmbestDKS.com
DKS_GROUP
DKS Group
10
www.EmbestDKS.com
DKS_GROUP
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.
DKS Group
11
www.EmbestDKS.com
DKS_GROUP
DKS Group
12
www.EmbestDKS.com
DKS_GROUP
DKS Group
13
www.EmbestDKS.com
DKS_GROUP
14
www.EmbestDKS.com
DKS_GROUP
temp=0;
while (1)
{
// Place your code here
PORTA=temp;
PORTB=temp;
PORTC=temp;
PORTD=temp;
delay_ms(1000);
temp++;
};
}
15
www.EmbestDKS.com
DKS_GROUP
DKS Group
16
www.EmbestDKS.com
DKS_GROUP
DKS Group
17
www.EmbestDKS.com
DKS_GROUP
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.
18
www.EmbestDKS.com
DKS_GROUP
DKS Group
19
www.EmbestDKS.com
DKS_GROUP
DKS Group
20
www.EmbestDKS.com
DKS_GROUP
DKS Group
21
www.EmbestDKS.com
DKS_GROUP
DKS Group
22
www.EmbestDKS.com
DKS_GROUP
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
DKS Group
23
www.EmbestDKS.com
DKS_GROUP
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:
DKS Group
24
www.EmbestDKS.com
DKS_GROUP
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:
DKS Group
25
www.EmbestDKS.com
DKS_GROUP
DKS Group
26
www.EmbestDKS.com
DKS_GROUP
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..
DKS Group
27
www.EmbestDKS.com
DKS_GROUP
DKS Group
28
www.EmbestDKS.com
DKS_GROUP
Cu hnh ADC.
Khi to LCD.
DKS Group
29
www.EmbestDKS.com
DKS_GROUP
DKS Group
30
www.EmbestDKS.com
DKS_GROUP
DKS Group
31
www.EmbestDKS.com
DKS_GROUP
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:
DKS Group
32
www.EmbestDKS.com
DKS_GROUP
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
DKS Group
33
www.EmbestDKS.com
DKS_GROUP
Khi to DS1307
Thit lp thi
gian cho DS1307
Hin th ra LCD
thi gian
c thi gian t
DS1307 (1Hz)
Coding nh sau:
B xung th vin delay.h vo u chng trnh.
DKS Group
34
www.EmbestDKS.com
DKS_GROUP
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.
DKS Group
35
www.EmbestDKS.com
DKS_GROUP
DKS Group
36
www.EmbestDKS.com
DKS_GROUP
DKS Group
37
www.EmbestDKS.com
DKS_GROUP
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.
DKS Group
38
www.EmbestDKS.com
DKS_GROUP
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:
DKS Group
39
www.EmbestDKS.com
DKS_GROUP
40
www.EmbestDKS.com
DKS_GROUP
DKS Group
41
www.EmbestDKS.com
DKS_GROUP
DKS Group
42
www.EmbestDKS.com
DKS_GROUP
43
www.EmbestDKS.com
DKS_GROUP
DKS Group
44
www.EmbestDKS.com
DKS_GROUP
DKS Group
45
www.EmbestDKS.com
DKS_GROUP
DKS Group
46
www.EmbestDKS.com
DKS_GROUP
DKS Group
47
www.EmbestDKS.com
DKS_GROUP
c ca s Components nh sau:
DKS Group
48
www.EmbestDKS.com
DKS_GROUP
DKS Group
49
www.EmbestDKS.com
DKS_GROUP
DKS Group
50
www.EmbestDKS.com
DKS_GROUP
M lnh nh sau:
DKS Group
51
www.EmbestDKS.com
DKS_GROUP
DKS Group
52
www.EmbestDKS.com
DKS_GROUP
c kt qu nh sau:
DKS Group
53
www.EmbestDKS.com
DKS_GROUP
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:
54
www.EmbestDKS.com
DKS_GROUP
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
55
www.EmbestDKS.com
DKS_GROUP
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:
DKS Group
56
www.EmbestDKS.com
DKS_GROUP
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
DKS Group
57
www.EmbestDKS.com
DKS_GROUP
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:
DKS Group
58
www.EmbestDKS.com
DKS_GROUP
1.Yu cu :
Hiu nguyn l iu khin ng c bc n cc.
iu khin c bng AVR.
2.L thuyt:
DKS Group
59
www.EmbestDKS.com
DKS_GROUP
DKS Group
60
www.EmbestDKS.com
DKS_GROUP
chnh xc cha cao nhng ngy cng c s dng ph bin. V cng sut
v chnh xc ca bc gc ang ngy cng c ci thin.
Bc gc ca ng c bc c ch to theo bng tiu chun sau:
Winding 1a 1100110011001100110011001
Winding 1b 0011001100110011001100110
Winding 2a 0110011001100110011001100
Winding 2b 1001100110011001100110011
DKS Group
61
www.EmbestDKS.com
DKS_GROUP
time --->
62
www.EmbestDKS.com
DKS_GROUP
IRF640
DKS Group
63
www.EmbestDKS.com
DKS_GROUP
IRF250
DKS Group
64
www.EmbestDKS.com
DKS_GROUP
5.Code :
#include <mega16.h>
#include <delay.h>
// 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
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0xFF;
DDRD=0xFF;
DKS Group
65
www.EmbestDKS.com
DKS_GROUP
// Timer/Counter 0 initialization
// 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: System Clock
// 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: Off
TCCR1A=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: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
DKS Group
66
www.EmbestDKS.com
DKS_GROUP
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
while (1)
{
// Place your code here
if(indexA ++>3) indexA = 1;
if(indexB ++>3) indexB = 1;
if(indexC ++>3) indexC = 1;
PORTA = stepA[indexA] & stepB[indexB];
PORTC = stepC[indexC];
//------delay_ms(500);
}}
DKS Group
67
www.EmbestDKS.com