You are on page 1of 12

p trnh AVR bng CodeVisionAVR C Compiler cho ngi mi bt u

Mnh mi bt u hc AVR thi,tuy nhin cng xin ng gp mt cht cho din n.Mong cc bn gp ! CH TNG T:
Key pad 2*3 vi PIC- CCS IAR compiler CodevisionAVR 1.24.6

compiler

Chia s
o o o o o

sprobo_cdt06, chanxi9, tdct v 1 ngi na cm n ni dung ny. PHP Code Vn Reply With Quote 19-03-08 15:43 #2 anhxtanh3087 Thnh vin mi Tham gia Mar 2008 Bi vit 7

To project mi v s dng CodeWizardAVR

Trc tin to 1 Project mi,vo menu New,chn Project ->Ok

Tip theo nu mun s dng CodeWizardAVR th nhn Yes (tt nhin!).Cc bn mi bt u th nn s dng ci ny v vi CodeWizardAVR bn khng cn hiu r v cc thanh ghi vn c th s dng cc interrupt v cc timer rt d dng.

Cc table hay dng: Chip: chip: chn loi AVR,clock: chn xung nhp hot ng ca AVR Ports: chn chiu d liu vo ra cho cc chn ca cc cng,in l vo out r ra External IRQ: chn interrupt mun s dng Timers: chn timer mun s dng.V d mnh thng s dng timer 1. Clock Source: nguyn system clock Clock value: nu mun timer chy th phi set ci ny (vd: mnh dng AVR atmega16 s dng xung nhp 16MHz th c th chn 16000kHz,2000kHz...) Mode: chn ch .Cc ch ca timer: Ch Thng Thng: y l ch hot ng n gin nht ca Timer .B m s lin tc m tng ln cho n khi vt qu gi tr ln nht TOP v sau s c khi ng li ti gi tr Bottom.Trong cc hot ng thng thng th c trn s c thit lp khi gi tr trong

Timer t gi tr khng v khng b xo i.Tuy nhin nu m ngt trn c chp nhn th c ngt s t ng b xo khi ngt c thc hin.Gi tr trong Timer c th c vit vo bt c lc no Ch So Snh (CTC): y l ch m gi tr trong Timer lun c so snh vi gi tr trong thanh ghi ORC .Khi gi tr trong Timer bng gi tr trong thanh ghi ORC th gi tr trong Timer s b xo i.Gi tr trong ORC ng vai tr l gi tr TOP cho b m.Ch ny cng cho php to ra tn s so snh u ra.Tuy nhin trong ch ny nu gi tr mi ghi vo thanh ghi ORC m nh hn gi tr tc thi ca b m th th 1 so snh s b l, khi b m s m n gi tr ln nht sau ri xung gi tr 0 trc khi so snh tip theo xut hin. Ch Phase correct PWM: Ch ny hot ng da trn hai sn ln xung.B m s m lin tc t gi tr BOTTOM n gi tr MAX v sau t gi tr MAX n gi tr BOTTOM.Trong ch so snh khng o chn so snh (OCx) s b xa khi gi tr TCNTx bng gi tr OCRx trong qu trnh m ln v s c set bng 1 khi gi tr so snh xut hin trong qu trnh m xung.Ch so snh o th cc gi tr l ngc li.Vi hot ng hai sn xung ny th ch ny khng to ra c tn s nh nh ch mt sn xung .Nhng do tnh cn i ca hai sn xung th n tt hn cho iu khin ng c Ch phase correct PWM hot ng c nh l 8 bt.Trong ch ny b m s tng cho n khi t gi tr MAX ,khi n s i chiu m.Biu thi gian y m t hot ng ca ton b qu trnh. Bn c th chn cc ch y.VD: mnh chn ch Ph. & fr. cor. PWM top=ICR1. Interrupt on: cho php ngt so snh hay ngt trn.Vd: timer 1overflow l cho php ngt trn,khi bn cn set gi tr ngt xy ra ti Inp. Capture Table LCD: Nu bn s dng LCD th chn cng kt ni LCD ti y Project information: thng tin v project ca bn ...(cn nhiu table nhng hin ti mnh cha dng n nn cha bit ) Xong ri chn File -> Generate,Save and exit.Chn file name C, project,v cwp Ok!Gi th xem n cho bn file C nh th no nha: /************************************************** *** http://PHPCodeVn.com Project : Test Version : 1.0 Date : 3/19/2008 Author : Anhxtanh3087 Company : BKA Comments: KSCLC-K50

Chip type : ATmega16 Program type : Application Clock frequency : 16.000000 MHz Memory model : Small

External SRAM size : 0 Data Stack size : 256 ************************************************** ***/ #include <mega16.h> // Alphanumeric LCD Module functions #asm .equ __lcd_port=0x1B ;PORTA #endasm #include <lcd.h> // Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) { // Place your code here } // 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=0x00; DDRA=0x00; // 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=0x00; DDRB=0x00; // 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=0x00; DDRC=0x00; // 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=0x00; DDRD=0x00; // 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: 16000.000 kHz // Mode: Ph. & fr. cor. PWM top=ICR1 // OC1A output: Discon. // OC1B output: Discon. // Noise Canceler: Off // Input Capture on Falling Edge TCCR1A=0x00; TCCR1B=0x11; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x50; 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 // INT0: Off // INT1: Off // INT2: Off

MCUCR=0x00; MCUCSR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x04; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off // Analog Comparator Output: Off ACSR=0x80; SFIOR=0x00; // LCD module initialization lcd_init(16); // Global enable interrupts #asm("sei") while (1) { // Place your code here }; }

Chia s
o o o o o

hiodong, fghjkl, hoang_tuan v 11 ngi na cm n ni dung ny. PHP Code Vn Reply With Quote 19-03-08 15:49 #3 anhxtanh3087 Thnh vin mi Tham gia Mar 2008 Bi vit 7

Hehe,vy l d khng bit j v cc thanh ghi bn vn c th lp trnh vi AVR ri,d nhin l bit th vn hn!!! Tuy nhin n cho bn rt nhiu dng lnh tha,bn c th xa chng i chng trnh ca mnh gn hn.VD: mnh xa on sau cng k nh hng j n chng trnh,v l mc nh ca AVR // 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;

Chia s
o o o o o

hoang_tuan, sprobo_cdt06, chanxi9 v 2 ngi na cm n ni dung ny. PHP Code Vn Reply With Quote 19-03-08 15:53 #4 anhxtanh3087 Thnh vin mi Tham gia Mar 2008 Bi vit 7 By gi th lp trnh trn AVR k khc j lp trnh cho my tnh.Lu l nh ngha 1 chn l u vo bn nh ngha nh sau: VD #define cb1 PINA.0 nh ngha 1 chn l u ra: #define cb1 PORTA.0

Chia s
o o o o

hoang_tuan, sprobo_cdt06, chanxi9 v 1 ngi na cm n ni dung ny. PHP Code Vn Reply With Quote 19-03-08 16:10 #5 anhxtanh3087 Thnh vin mi Tham gia Mar 2008 Bi vit 7

Th vit 1 chng trnh hin th LCD


Xem hng dn trn,s dng table LCD,chn cng ra D,v ni cng vi cc chn LCD nh n bo nha. y mnh s dng AVR: Atmega16, LCD: LM016L,phn mm m phng: proteus (ISIS) Th vin x l vi LCD n cho ri nn chng ta ch cn lm 1 vic n gin nh sau: lcd_gotoxy(0,0); lcd_putsf("Chao Anhxtanh3087!"); File gi km

Anhxtanh3087.zip (49.2 KB, 5547 views) Chia s


o o o o o

hoang_tuan, vinh viet le, chanxi9 v 5 ngi na cm n ni dung ny. PHP Code Vn Reply With Quote 19-03-08 17:13 #6 NgocNghec

Thnh vin mi Tham gia Sep 2005 Bi vit 1 Bc c bit khai bao bin flash m nh c a ch khng V d nh 0x125 flash unsigned char Temp @ 0x125 Em vit xong CAVR n khng hiu. C bc no bit chi em vi Thank

Chia s
o o o o o

Reply With Quote 20-03-08 01:05 #7 vdgiap

Thnh vin chnh thc Tham gia Jan 2008 Bi vit 46 Bc anhxtanh3087 c ti liu ting vit ca con ATMega16 ko cho em xin ci, c ting anh va mt va nhc mt qu, c xong cng chng nh c l bao nhiu na.Bc ho tm port ln cho cc bc n em hc hi i.Thank you bc.

Chia s
o o o o o

tienqb cm n ni dung ny.

Reply With Quote 25-03-08 19:46 #8 LamVanTruong

Thnh vin mi Tham gia Mar 2008 Bi vit 19 Bi vit ca bn kh y, nhng mnh c mt cht rc ri trong chng trnh C Complies mnh mun bn ch mnh vi chiu! you ng ch? ch l cch son tho chng trnh np cho AVR bng C v np bng phn mm g? mail ca mnh l: lamvantruongthdt06d - phone: 0907 853445

Chia s
o o o o o

hoang_tuan cm n ni dung ny. Reply With Quote 30-03-08 00:22 #9 hutieumaizo

Thnh vin chnh thc Tham gia Jul 2006 Bi vit 59 Nu bn dng codevisionAvr th s dng n np cng c, build chuong trnh sang file hex (shift+F9), sau m mc program on chip len, chon cc thng s trong fulse bit cho ph hp ri nap thi. Nn nh trc khi np bn chon ch np l loi no, ty theo bo np ca bn (stk500, stk200-300,...) ri np l xong. Nu khng mun dng th s dng thng avr studio np cng c, ch cn load thang file .h built sn ri chn chip nap l xong ( ch dng np theo chun no na nh)

Chia s
o o o o o

hoang_tuan, LamVanTruong v chanxi9 cm n ni dung ny. Reply With Quote 30-03-08 22:43 #10 hoang_tuan

Thnh vin tch cc Tham gia Jul 2007 Bi vit 202 post bi na i bn

Chia s
o o o o o

hoan_spkt v ldhung cm n ni dung ny.

You might also like