bao cao - volmet dien tu

31
ĐỒ ÁN MÔN VI ĐIỀU KHIỂN Lời nói đầu Ngày nay cùng sự phát triển không ngừng của khoa học kỹ thuật, nó đã đem lại cho con người những thành tựu to lớn cho xã hội, giúp cho con người dễ dàng tiếp cận với nhiều máy móc, thiết bị hiện đại giúp nâng cao năng suất lao động. Hoà nhập cùng xu hướng đó, vi điều khiển đã khẳng định được vị thế vững chắc của mình trong mọi ứng dụng. Điển hình trong công nghệ đo lường và điều khiển và đặc biệt trong hệ thống đo lường, vi điều khiển đã đóng một vai trò quan trọng và không thể thiếu trong các thiết bị đòi hỏi có độ chính xác cao, vi điều khiển có mặt trong hầu hết các thiết bị đo lường như đo quãng đường, đo vận tốc, đo điện áp, dòng điện… và 1 trong số đó là ứng dụng dùng đo điện áp với độ chính xác cao đã được ứng dụng rộng rãi với nhiều thiết bị đa dạng, phong phú. Qua một thời gian nghiên cứu, tìm hiểu đề tài ” thiết kế kế Volmet điện từ hiển thị led 7 đoạn” chúng em đã hoàn thành được đề tài và đạt được một số kết quả. Do thời gian có hạn nên đề tài của chúng em có thể còn có chỗ thiếu sót, mong các thầy cô góp ý để đề tài của chúng em được hoàn thiện hơn nữa. Chúng em xin chân thành cảm ơn các thầy cô và các bạn đã giúp đỡ chúng em trong quá trình thực hiện. Chúng em xin chân thành cảm ơn!

Upload: hieu020492

Post on 08-Feb-2016

138 views

Category:

Documents


0 download

TRANSCRIPT

N MN VI IU KHINLi ni uNgy nay cng s pht trin khng ngng ca khoa hc k thut, n em li cho con ngi nhng thnh tu to ln cho x hi, gip cho con ngi d dng tip cn vi nhiu my mc, thit b hin i gip nng cao nng sut lao ng. Ho nhp cng xu hng , vi iu khin khng nh c v th vng chc ca mnh trong mi ng dng. in hnh trong cng ngh o lng v iu khin v c bit trong h thng o lng, vi iu khin ng mt vai tr quan trng v khng th thiu trong cc thit b i hi c chnh xc cao, vi iu khin c mt trong hu ht cc thit b o lng nh o qung ng, o vn tc, o in p, dng in v 1 trong s l ng dng dng o in p vi chnh xc cao c ng dng rng ri vi nhiu thit b a dng, phong ph.Qua mt thi gian nghin cu, tm hiu ti thit k k Volmet in t hin th led 7 on chng em hon thnh c ti v t c mt s kt qu. Do thi gian c hn nn ti ca chng em c th cn c ch thiu st, mong cc thy c gp ti ca chng em c hon thin hn na.Chng em xin chn thnh cm n cc thy c v cc bn gip chng em trong qu trnh thc hin. Chng em xin chn thnh cm n! Nhm sinh vin

PHN 1: C S L THUYTChng 1: Tm hiu Vi iu khin Atmega8Nhng Tnh Nng Chnh Ca ATmega8: C 8 Kbyte b nh flash C th xa lp trnh c v c th chu c 10000 ln ghi xa. C 32 thanh ghi a nng 8 bit, C 512 byte b nh EEPROM tch hp trn chp, Cc 1 kbyte SRAM ni. C hai b Timer/counter 8 bit v mt b timer/counter 16 bit vi b chia tn lp trnh c. C ba knh iu xung, 6 knh li vo chuyn i ADC vi phn gii 10 bit. Atmega8 c 28 chn, trong c 23 cng vo ra. Ngun nui t 2.7 n 5.5 i vi Atmega8L v t 4.5 n 5.5 i vi Atmega8, Lm vic tiu th dng 3.6mA. S dng mch dao ng ngoi t 0 n 8 Mhz vi Atmega8L v t 0 n 16 Mhz vi Atmega8. Ngoi ra chp Atmega8 cn c b xung ni bn trong c th lp trnh ch xung nhpVi iu khin AVR do hng Atmel ( Hoa K ) sn xut c gi thiu ln u nm1996. AVR c rt nhiu dng khc nhau bao gm dng Tiny AVR ( nh AT tiny 13, ATtiny 22) c kch thc b nh nh, t b phn ngoi vi, ri n dng AVR ( chn hnAT90S8535, AT90S8515,) c kch thc b nh vo loi trung bnh v mnh hn ldng Mega ( nh ATmega32, ATmega128,) vi b nh c kch thc vi Kbyte n vi trm Kb cng vi cc b ngoi vi a dng c tch hp trn chip, cng c dng tch hp c b LCD trn chip ( dng LCD AVR ). Tc ca dng Mega cng cao hn so vi cc dng khc. S khc nhau c bn gia cc dng chnh l cu trc ngoi vi, cn nhn th vn nh nhau,

Hnh 1.1 Block Diagram

. t bit, nm 2008, Atmel li tip tc cho ra i dng AVR mi l XmegaAVR, vi nhng tnh nng mnh m cha tng c cc dng AVR trc . C th ni XmegaAVR l dng MCU 8 bit mnh m nht hin nay.

1.1 Cc dng AVR khc nhau: Tiny, AVR v Mega

B Nh D Liu : B nh d liu ca AVR chia lm 2 phn chnh l b nhSRAM v b nh EEPROM. Tuy cng l b nh d liu nhng hai b nh ny li tch bitnhau v c nh a ch ring. B nh SRAM c dng lng 1 K bytes, B nh SRAM c hai ch hot ngl ch thng thng v ch tng thch vi ATmega103, mun thit lp b nhSRAM hot ng theo ch no ta s dng bit cu ch M103C ( M103C fuse bit (9) ).

Atmega8 l vi iu khin 8 bit da trn kin trc RISC. Vi kh nng thc hin mi lnh trong vng mt chu k xung clock, Atmega8 c th t c tc 1MIPS trn mi MHz (1 triu lnh/s/MHz).Di y l s khi ca Atmega8 S cu trc Atmega8ATmega 8 h tr y cc chng trnh v cng c pht trin h thng nh: trnh dch C, macro assemblers, chng trnh m phng/sa li, kit th nghim,..1. CU TRC CHUNG AVRCPU ca AVR c chc nng bo m s hot ng chnh xc ca cc chng trnh. Do n phi c kh nng truy cp b nh, thc hin cc qu trnh tnh ton, iu khin cc thit b ngoi vi v qun l ngt.2.1.Cu trc tng qut

AVR s dng cu trc Harvard, tch ring b nh v cc bus cho chng trnh v d liu. Cc lnh c thc hin ch trong mt chu k xung clock. B nh chng trnh c lu trong b nh Flash.2.2. ALU ALU lm vic trc tip vi cc thanh ghi chc nng chung. Cc php ton c thc hin trong mt chu k xung clock. Hot ng ca ALU c chia lm 3 loi: i s, logic v theo bit.2.3. Thanh ghi trng thiy l thanh ghi trng thi c 8 bit lu tr trng thi ca ALU sau cc php tnh s hc v logic.

Thanh ghi trng thi SREG

C: Carry Flag ;c nh (Nu php ton c nh c s c thit lp)Z: Zero Flag ;C zero (Nu kt qu php ton bng 0)N: Negative Flag (Nu kt qu ca php ton l m) V: Twos complement overflow indicator (C ny c thit lp khi trn s b 2)V, For signed tests (S=N XOR V)S: NH: Half Carry Flag (c s dng trong mt s ton hng s c ch r sau)T: Transfer bit used by BLD and BST instructions(c s dng lm ni chung gian trong cc lnh BLD,BST).I: Global Interrupt Enable/Disable Flag (y l bit cho php ton cc ngt. Nu bit ny trng thi logic 0 th khng c mt ngt no c phc v.)2.4. Cc thanh ghi chc nng chung

Thanh ghi chc nng chungTip ghanh ghi ( register file ) : Tip 32 thanh ghi a chc nng ( $0000 - $001F ) c ni trn, ngoi chc nng l cc thanh ghi a chc nng, th cc thanh ghi t R26 ti R31 tng i mt to thnh cc thanh ghi 16 bit X, Y, Z c dng lm con tr tr ti b nh chng trnh v b nh d liu .Thanh ghi con tr X, Y c th dng lm con tr tr ti b nh d liu, cn thanh ghi Z c th dng lm con tr tr ti b nh chng trnh. Cc trnh bin dch C thng dng cc thanh ghi con tr ny qun l Data stack ca chng trnh C.

Chc nng con tr ca cc thanh ghi R26 R31

2.5. Con tr ngn xp (SP)L mt thanh ghi 16 bit nhng cng c th c xem nh hai thanh ghi chc nng c bit 8 bit. C a ch trong cc thanh ghi chc nng c bit l $3E (Trong b nh RAM l $5E). C nhim v tr ti vng nh trong RAM cha ngn xp.

Thanh ghi con tr ngn xp

Khi chng trnh phc vu ngt hoc chng trnh con th con tr PC c lu vo ngn xp trong khi con tr ngn xp gim hai v tr. V con tr ngn xp s gim 1 khi thc hin lnh push. Ngc li khi thc hin lnh POP th con tr ngn xp s tng 1 v khi thc hin lnh RET hoc RETI th con tr ngn xp s tng 2. Nh vy con tr ngn xp cn c chng trnh t trc gi tr khi to ngn xp trc khi mt chng trnh con c gi hoc cc ngt c cho php phc v. V gi tr ngn xp t nht cng phi ln hn hoc bng 60H (0x60) v 5FH tr li l vng cc thanh ghi.5 .Cc cng vo ra (I/O)Vi iu khinATmega8 c 23 ng vo ra chia lm 2 nhm 8 bit,mt nhm 7 bit . Cc ng vo ra ny c rt nhiu tnh nng v c th lp trnh c. y ta s xt chng l cc cng vo ra s. Nu xt trn mt ny th cc cng vo ra ny l cng vo ra hai chiu c th nh hng theo tng bit. V cha c in tr pull-up (c th lp trnh c). Mc d mi port c cc c im ring nhng khi xt chng l cc cng vo ra s th dng nh iu khin vo ra d liu th hon ton nh nhau. Chng ta c thanh ghi v mt a ch cng i vi mi cng, l : thanh ghi d liu cng ( PORTB, PORTC, PORTD), thanh ghi d liu iu khin cng (DDRB, DDRC, DDRD) v cui cng l a ch chn vo ca cng (PINB, PINC, PIND).13.B BIN I A/D( Analog/Digital)

Vi iu khinAtmega8 c mt b bin i ADC tch hp trong chip vi cc c im: phn gii 10 bit Sai s tuyn tnh: 0.5LSB chnh xc +/-2LSB Thi gian chuyn i:65-260s 6 Knh u vo c th c la chn C hai ch chuyn i free running v single conversion C ngun bo ngt khi hon thnh chuyn i Loi b nhiu trong ch ng

S b bin i A/D

Tm u vo ca ADC l tm chn ca PORTA v chng c chn thng qua mt MUX. iu khin hot ng vo ra d liu ca ADC v CPU chng ta c 3 thanh ghi: ADMUX l thanh ghi iu khin la chn knh u vo cho ADC, ADCSRA l thanh ghi iu khin v thanh ghi trng thi ca ADC, ADCH v ADCL l 2 thanh ghi d liu.

13.1. ADMUX: Multiplexer select registery l thanh ghi iu khin 8 bit.

Hnh 7.2. Thanh ghi ADMUX

Vi 4 bit c nh ngha l MUX3, MUX2, MUX1,v MUX0, ng vi cc t hp logic ta c th chn knh u vo. C th:

Cc bit REFS1 v REFS0 dng chn gi tr in p tham kho cho ADC, nh sau:

Ch : Nu nh ta thay i knh trong thi im m ADC ang chuyn i th khi qu trnh chuyn i hon thnh th knh vo mi c thay i.13.2. ADCSR-ADC control and status registery l thanh ghi iu khin v lu trng thi ca ADC.

Hnh 7.3. Thanh ghi iu khin v trng thi ADC

13.2.1. Bit 7-ADEN:ADC enabley l bit iu khin hot ng ca ADC.Khi bit ny c set 1 th ADC c th hot ng v ngc li.Nu nh ta ngng hot ng ca ADC trong khi n ang chuyn i th n s kt thc qu trnh chuyn i.Mc d cha chuyn i xong.13.2.2. Bit 6-ADSC: ADC start conversionTrong ch chuyn i n th bit ny phi c set ln 1 bt u chuyn i.Trong ch chuyn i t do th bit ny cn c set ln 1 bt u ln chuyn i u tin.Bit ny c gi st trong qu trnh chuyn i v c xa khi m chuyn i xong.13.2.3. Bit 5-ADATE :ADC Auto Trigger enableKhi bit ny c set th ADC s bt u chuyn i mi khi c mt ngun kch hot xut hin. Vic la chn ngun kch hot c thc hin bng cch set cc bit trong thanh ghi SFIOR.13.2.4. Bit 4-ADIF: ADC interrupt FlagBit ny c set ln 1 bi phn cng khi qu trnh chuyn i hon thnh v thanh ghi d liu c cp nht. Bit ny c xa bng phn cng nu nh ngt ny c php v c phc v. Hoc n c th c xa bng cch ghi gi tr logic 0vo c ny. C th khi ngt b cm ta c th s dng cc lnh sbi v cbi tc dng ln bit ny.13.2.5. Bit 3-ADIE:ACD interrupt EnableNu bit ny set 1 v ngt ton cc c cho php th ngt ny c php phc v (khi chuyn i xong d liu) v nu b xa th ngc li.13.2.6. Bit 2.1.0-ADPS2ADPS0: Bit la chn xung nhp(Tc )Ngun xung c ly t ngun xung ca Vi iu khin(XTAL) v c chia tn thng qua b chia tn.Cc bit ADPS c nhim v chn s chia cho b chia tn theo bng sau:

13.3. Thanh ghi d liu ACDH v ADCLThanh ghi ny cha d liu chuyn i t tng t sang s, c sp xp nh hnh di y.

Thanh ghi d liu ADC

13.4. Nguyn tc hot ng v lp trnh iu khinADC c nhim v chuyn i tn hiu in p tng t thnh tn hiu s c phn gii 10 bit.Vi gi tr nh nht ca in p t chn AGND v gi tr cc i ca in p tng t c mc vo chn AREF. Tm knh tng t u vo c chn la thng qua ADMUX v ADMUX ny c iu khin bi thanh ghi ADMUX.ADC ny c th hot ng c hai ch . l chuyn i n: ch chuyn i mt ln khi c lnh chuyn i v ch t chuyn i (Free running mode) y l ch m ADC t ng chuyn i khi c hot ng v cng vic chuyn i c tnh tun hon (ch cn khi ng mt ln).ADC c php hot ng nh thit lp bit ADEN. Qu trnh chuyn i c bt u bng vic ghi vo bit ADSC mc logic 1 v trong sut qu trnh chuyn i bit ny lun c gi mc cao. Khi qu trnh chuyn i hon thnh th bit ny c xa bng phn cng v c AIDF c bt ln.D liu sau khi chuyn i c a ra thanh ghi d liu ADCL v ADCH, nhng ch khi c d liu t hai thanh ghi ny th c ADCL trc ri mi c ADCH. Nu c ADCH trc th d liu cp nht c th ghi ln ADCL (Vi iu khin ngh rng c xong d liu). iu khin vo ra d liu vi ADC, cc bc thc hin nh sau:Bc 1: nh ngha cc cng vo cho tn hiu tng tXa bit tng ng vi chn trong thanh ghi DDRA. Sau loi b in tr treo bng cch xa bit tng ng thanh ghi PORTA.Bc 2: Chn knh tng t vo (chn chn vo cho ADC) thng qua thanh ghi ADMUX (c th thay i trong qu trnh hot ng).Bc 3: Thit lp cc thng s cho ADCTc chuyn i thng qua xung nhip chuyn i.Ch chuyn i : n hoc t ng.S dng ngt hoc khng.Bc 4: Bt u chuyn i v c d liu.

Chng 2: Tm hiu LED 7 thanh1. Cu trc v hin th trn led 7 ona. Hnh nh thc t

Led Anode chung

i v i dng Led anode chung, chn COM ph i c m c logic 1 v mun sng Led th tng ng cc chn a f, dp s mc logic 0.

Bng m cho Led Anode chung

Dng phng php qut Khi kt ni chung cc ng d liu ca Led 7 on, ta khng th cho cc Led ny sng ng th i (do nh hng ln nhau gia cc Led) m ph i thc hin phng php qut, ngha l ti mi thi im ch sng mt Led v tt cc Led cn li. Do hin tng lu nh ca mt, ta s th y cc Led sng ng thi.

PHN 2: THIT K V THI CNG1. s nguyn l

2. S mch in

3. S b tr linh kin

4. Nguyn l hot nga. Phn cung cp ngun cho ton mch hot ngDo cc IC Atmega8 hot ng vi in p 5V nn ta cn cung cp cho mch mt in p n nh 5V mch c th hot ng bnh thng, y ta dng IC n p 7805 to ra in p chun 5V t in p 12V a vo mch, IC ny c th cung cp dng ti a 1A m bo cho mch hot ng bnh thng trong mi trng hp.b. Phn hin th dng LED 7 thanhTrong ti yu cu hin th gi tr o c ln led 7 thanh nn chng em quyt nh chn led 7 thanh Anode chung vi 4 led ghp ni vi nhau v s dng phng php qut led hin th gi tr o c ln led.c. Phn chn thang o dng Swich Vi yu cu o c 3 di vi cc thang o t 0-5V, 0-10V,0-50V nn chng em s dng Swich kt hp vi cu phn p chn knh o ph hp cho mch, vi thang o th nht in p cn o c a trc tip vo thang o th nht qua 1 in tr 1K v 1 diode zener c tc dng khng ch in p a vo khng c vt qu 5V trnh tnh trng a in p qua ln vo mch gy hng IC atmega8d. Phn iu khin trung tmTrong mch s dng 1 vi iu khin atmega 8 c tc dng o in p 3 knh c lp u vo v xut gi tr o c hin th ln led 7 thanh.e. Hin th chn thang oChng em s dng 3 led n hin th cc gi tr thang o ln lt 0-5V, 0-10V, 0-50V5. Chng trnh iu khin cho Atmega8/*****************************************************This program was produced by theCodeWizardAVR V2.05.0 ProfessionalAutomatic Program Generator Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.http://www.hpinfotech.com

Project : DO AN MON VI DIEU KHIENVersion : 2.0Date : 7/27/2013Author : NGUYEN HUU QUANGCompany : Ha Noi University Of InductryComments: Do dien ap hien thi LED 7 thanh

Chip type : ATmega8Program type : ApplicationAVR Core Clock frequency: 8.000000 MHzMemory model : SmallExternal RAM size : 0Data Stack size : 256*****************************************************/

#include

#include

#define LED_DATA PORTD#define LED_1 PORTB.6#define LED_2 PORTB.4#define LED_3 PORTB.5

//----khai bao bien-----unsigned long so_hang_nghin,so_hang_tram,so_hang_chuc,so_hang_don_vi;// khai bao ma cac so tuong ung 0 1 2 3 4 5 6 7 8 9 unsigned char ma_led_7_thanh[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};char dem_ngat_timer0;char i_kenh_1,i_kenh_2,i_kenh_3;unsigned long gia_tri_dien_ap,gia_tri_adc_kenh_1,gia_tri_adc_kenh_2,gia_tri_adc_kenh_3;

//----------ham doc gia tri ADC-------------unsigned int read_adc(unsigned char adc_input){ADMUX=adc_input;// delay 1 khoang thoi gian nhat dinh cho on dinh dau vaodelay_us(10);// bat dau chuyen doiADCSRA|=0x40;// cho cho den khi chuyen doi xong bit ADIF se duoc set len de bao cho qua trinh chuyen doi xongwhile ((ADCSRA & 0x10)==0); //xoa co ADIF de chuan bi cho qua trinh chyen doi tiep theo//viec xoa co ADIF duoc thuc hien bang cach ghi ADCSRA|=0x10; //tra ve gia tri ADC doc duocreturn ADCW;}//---ham ngat time 0---//moi lan ngat 4msinterrupt [TIM0_OVF] void timer0_ovf_isr(void){ TCNT0=0XE0; dem_ngat_timer0++; if(dem_ngat_timer0==1) { /* - PORTB.0,PORTB.1,PORTB.2,PORTB.3 tuong ung voi cac chan dieu khien quet led trong moi lan quet chi co 1 PORT sang trong khi cac chan con lai tat de quet led */ PORTB.0=1;PORTB.1=0;PORTB.2=0;PORTB.3=0; //chan du lieu cua led duoc gan bang cac ma led theo cac so LED_DATA=ma_led_7_thanh[so_hang_nghin]; if(PINC.3==0) PORTD.7=0; //hien thi dau cham else PORTD.7=1; } //hien thi so hang tram else if(dem_ngat_timer0==2) { PORTB.0=0;PORTB.1=1;PORTB.2=0;PORTB.3=0; LED_DATA=ma_led_7_thanh[so_hang_tram]; if(PINC.4==0||PINC.5==0) PORTD.7=0; else PORTD.7=1;//hien thi dau cham } //hien thi so hang chuc else if(dem_ngat_timer0==3) { PORTB.0=0;PORTB.1=0;PORTB.2=1;PORTB.3=0; LED_DATA=ma_led_7_thanh[so_hang_chuc]; } //hien thi so hang don vi else if(dem_ngat_timer0==4) { PORTB.0=0;PORTB.1=0;PORTB.2=0;PORTB.3=1; LED_DATA=ma_led_7_thanh[so_hang_don_vi]; } else { /* ------- Phan do ADC va quy ra dien ap thuc te------ - tien hanh lay 16 mau ADC trong 1 lan do de tang do chinh xac - gia tri do duoc de duoc cong don vao bien gi_tri_adc - sau khi du 16 mau thi gia tri tong hop duoc tu cac lan do se duoc chia 16 de lay trung binh */ dem_ngat_timer0=0; PORTB.0=PORTB.1=PORTB.2=PORTB.3=0; if(PINC.3==0) //thang thu nhat duoc chon - dai do tu 0-5V { LED_1=1;LED_2=0;LED_3=0;//sang LED 1 bao cho biet thang so 1 duoc su dung gia_tri_adc_kenh_1=gia_tri_adc_kenh_1+read_adc(0); //doc gia tri ADC cua kenh 0 i_kenh_1++; //tang bien dem mau len sau moi lan lay mau if(i_kenh_1==16) //neu du 16 mau(tu 0-15) thi chia gia tri do duoc cho 16 de lay gia tri trung binh { i_kenh_1=0;//xoa bien dem mau /*dich phai 4 bit tuong ung voi chia cho 2^4=16 - ta su dung phep dich bit de toi uu hoa cho thoi gian xu ly vi trong vi dieu khien phep dich bit se ton it chu ky may hon trong cac phep nhan chia thong thuong */ gia_tri_adc_kenh_1=gia_tri_adc_kenh_1>>4; gia_tri_dien_ap=((gia_tri_adc_kenh_1*5000)>>10); //ADC 10 bit nen phai chia cho 2^10=1024 so_hang_nghin=gia_tri_dien_ap/1000; so_hang_tram=(gia_tri_dien_ap-(1000*so_hang_nghin))/100; so_hang_chuc=(gia_tri_dien_ap-(1000*so_hang_nghin)-(100*so_hang_tram))/10; so_hang_don_vi=(gia_tri_dien_ap-(1000*so_hang_nghin)-(100*so_hang_tram)-(so_hang_chuc*10)); gia_tri_adc_kenh_1=0;//sau khi tinh toan xong ta can xoa gia tri ADC de chuan bi cho lan lay mau tiep theo } } /* Trong dai do nay ta se dung 4 so de hien thi, do vay se tach di so hang don vi - so hang don vi duoc bot di vi nguong do max=25V=25000mv. vi vay ta chi co the hien thi 4 so */ else if(PINC.4==0)//thang thu hai duoc chon - dai do tu 0-25V { LED_1=0;LED_2=1;LED_3=0; gia_tri_adc_kenh_2=gia_tri_adc_kenh_2+read_adc(1); i_kenh_2++; if(i_kenh_2==16) { i_kenh_2=0; gia_tri_adc_kenh_2=gia_tri_adc_kenh_2>>4; gia_tri_dien_ap=((gia_tri_adc_kenh_2*25000)>>10); so_hang_nghin=gia_tri_dien_ap/10000; so_hang_tram=(gia_tri_dien_ap-(10000*so_hang_nghin))/1000; so_hang_chuc=(gia_tri_dien_ap-(10000*so_hang_nghin)-(1000*so_hang_tram))/100; so_hang_don_vi=((gia_tri_dien_ap-(10000*so_hang_nghin)-(1000*so_hang_tram)-(so_hang_chuc*100))/10); gia_tri_adc_kenh_2=0; } } else if(PINC.5==0)//thang thu ba duoc chon - dai do tu 0-50V { LED_1=0;LED_2=0;LED_3=1; gia_tri_adc_kenh_3=gia_tri_adc_kenh_3+read_adc(2); i_kenh_3++; if(i_kenh_3==16) { i_kenh_3=0; gia_tri_adc_kenh_3=gia_tri_adc_kenh_3>>4; gia_tri_dien_ap=((gia_tri_adc_kenh_3*50000)>>10); so_hang_nghin=gia_tri_dien_ap/10000; so_hang_tram=(gia_tri_dien_ap-(10000*so_hang_nghin))/1000; so_hang_chuc=(gia_tri_dien_ap-(10000*so_hang_nghin)-(1000*so_hang_tram))/100; so_hang_don_vi=((gia_tri_dien_ap-(10000*so_hang_nghin)-(1000*so_hang_tram)-(so_hang_chuc*100))/10); gia_tri_adc_kenh_3=0; //sau khi tach duoc cac so hang tram, chuc, don vi thi xoa di de chuan bi luot do tiep theo } } else//khong co thang do nao duoc chon { gia_tri_dien_ap=0; so_hang_nghin=so_hang_tram=so_hang_chuc=so_hang_don_vi=0; gia_tri_adc_kenh_1=gia_tri_adc_kenh_2=gia_tri_adc_kenh_3=0; LED_1=LED_2=LED_3=0; } }}

void main(void){/*----khai bao PORTB la PORT ra-------PORTB.0 -> PORTB.3 dung dieu khien quet led 7 thanhPORTB.4 -> PORTB.6 dung dieu khien led bao thang do*/PORTB=0x00;DDRB=0xFF;

/*---khai bao PORTC la PORT vao dung doc du lieu----PORTC.0 -> PORTC.2 dung de doc gia tri ADCPORTC.3 -> PORTC.5 dung de doc xac dinh kenh do*/PORTC=0xF8;//PORTC=0xFF;DDRC=0x00;

//Khai bao PORTD la cong ra dung xuat du lieu dieu khien LED 7 thanhPORTD=0x00;DDRD=0xFF;

//khai bao cho timer0 hoat dongTCCR0=0x05;TCNT0=0x00;

//khai bao ADCADMUX=0x00;ADCSRA=0x83;// cho phep ngat timer0TIMSK=0x01;//cho phep ngat toan cuc#asm("sei") //cho phep ngat

while (1) {

}}PHN 3: KT LUNQua n Thit k m hnh Voltmet in t, hin th bng led 7 on chng em t c mt s kt qu sau: Tm hiu v dng vi iu khin AVR ca atmel v c th l vi iu khin atmega8 c s dng trong n. Phng php o in p s dng vi iu khin. Thc hnh phng php qut led 7 thanh anode chung dng vi iu khin. Thc hnh lp trnh cho vi iu khin v lm mch thc t.Do thi gian c hn nn n ca chng em cn nhiu hn ch mong thy c v cc bn gp chng em hon thin n hn na.Chng em xin chn thnh cm n.