0~5V數(shù)字式直流電壓表設(shè)計(jì)實(shí)驗(yàn)報(bào)告《電子與控制系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告_第1頁
0~5V數(shù)字式直流電壓表設(shè)計(jì)實(shí)驗(yàn)報(bào)告《電子與控制系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告_第2頁
0~5V數(shù)字式直流電壓表設(shè)計(jì)實(shí)驗(yàn)報(bào)告《電子與控制系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告_第3頁
0~5V數(shù)字式直流電壓表設(shè)計(jì)實(shí)驗(yàn)報(bào)告《電子與控制系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告_第4頁
0~5V數(shù)字式直流電壓表設(shè)計(jì)實(shí)驗(yàn)報(bào)告《電子與控制系統(tǒng)設(shè)計(jì)》實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、電子與控制系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)項(xiàng)目名稱:05v數(shù)字式直流電壓表設(shè)計(jì)指導(dǎo)老師: 元澤懷 完成時(shí)間: 2015年11月3日 姓名: 劉文開 班級: 12電氣1班 學(xué)號: 201224122116 成績: 電子信息與機(jī)電工程學(xué)院 編制實(shí)驗(yàn)項(xiàng)目010v數(shù)字式直流電壓表設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目類型驗(yàn)證演示綜合設(shè)計(jì)其他*一、實(shí)驗(yàn)?zāi)康?. 掌握 a/d轉(zhuǎn)換程序的設(shè)計(jì);2. 掌握數(shù)據(jù)采集與顯示的應(yīng)用;3掌握數(shù)據(jù)處理的方法;二、實(shí)驗(yàn)內(nèi)容1. 編一程序,實(shí)現(xiàn)05v 數(shù)字式直流電壓表功能,用電位器rv1 作模擬量的輸入,右邊4位數(shù)碼管顯示輸入電壓值,使用 pa7 進(jìn)行模擬量輸入。其仿真電路見下圖5-1所示。圖5-1 05v 數(shù)

2、字式直流電壓表仿真電路圖2. 實(shí)現(xiàn)輸入信號的幅值為 010v,重新設(shè)計(jì)實(shí)現(xiàn)電路和算法程序,電路圖如5-2所示。圖5-2 010v數(shù)字式直流電壓表仿真電路圖三、使用儀器設(shè)備及材料1、安裝windows xp操作系統(tǒng)的微型計(jì)算機(jī)1臺2、avr單片機(jī)c語言集成開發(fā)環(huán)境iccavr6.31a3、單片機(jī)仿真平臺proteus7.54、avr單片機(jī)下載軟件progisp5、avr單片機(jī)實(shí)驗(yàn)板1套(含下載器)四、實(shí)驗(yàn)過程原始記錄1、主程序流程圖2.顯示函數(shù)流程圖:2、軟件主要程序及注解驅(qū)動(dòng)程序:/*lcd1602液晶驅(qū)動(dòng)程序*/ #include #include #define xtal 8 #defin

3、e pb0 0 #define pb1 1 #define pb2 2 /- #define uchar unsigned char #define uint unsigned int #define set_bit(x,y) (x|=(1y) #define clr_bit(x,y) (x&=(1y) #define get_bit(x,y) (x&=(131)l+; for(i=0;il;i+) displayonechar(x+,y,ptri); if(x=16) x=0;y=1; /*演示第二行移動(dòng)字符串子函數(shù)* void displayline2(uchar dd) uchar i;

4、 for(i=0;i16;i+) displayonechar(i,1,dd+); dd&=0x7f; if(dd32)dd=32; /*顯示光標(biāo)定位子函數(shù)* void locatexy(char posx,char posy) uchar temp=0; temp&=0x7f; temp=posx&0x0f; posy&=0x01; if(posy)temp|=0x40; temp|=0x80; lcdwritecommand(temp); /*顯示光標(biāo)定位的一個(gè)字符子函數(shù)* void displayonechar(uchar x,uchar y,uchar wdata) locatexy(

5、x,y); lcdwritedata(wdata); /*lcd初始化子函數(shù)* void initlcd(void) lcdwritecommand(0x38);/顯示模式設(shè)置(固定),8位數(shù)據(jù)接口 delay_nms(5); lcdwritecommand(0x01);/清屏 delay_nms(5); lcdwritecommand(0x0c);/開顯示,不顯示光標(biāo) delay_nms(5); /*寫命令到lcm子函數(shù)* void lcdwritecommand(uchar cmd) lcm_rs_0;lcm_rw_0; dataport=cmd; lcm_en_1;delay_nms(1

6、);lcm_en_0; /*寫數(shù)據(jù)到lcm子函數(shù)* void lcdwritedata(uchar dataw) lcm_rs_1;lcm_rw_0; dataport=dataw; lcm_en_1;delay_nms(1);lcm_en_0; /*1ms延時(shí)子函數(shù)* void delay_1ms(void) uint i; for(i=1;i(uint)(xtal*143-2);i+) ; /=n*1ms延時(shí)子函數(shù)= void delay_nms(uint n) uint i=0; while(in) delay_1ms(); i+; 05v 數(shù)字式直流電壓表程序:#include #de

7、fine uchar unsigned char #define uint unsigned int uchar const seg710=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f;/單個(gè)數(shù)碼管19顯示 uchar const act4=0xfe,0xfd,0xfb,0xf7;/選通數(shù)碼管 uint adc_val,dis_val; uchar i,cnt; /*/ void port_init(void) porta = 0x7f; ddra = 0x7f; portb = 0xff; ddrb = 0xff; portc = 0x

8、ff; ddrc = 0xff; portd = 0xff; ddrd = 0xff; /*/ void adc_init(void) adcsra = 0xe3; admux = 0x47; /* void timer0_init(void) tcnt0 = 0x83; tccr0 = 0x03; timsk = 0x01; /*/ void init_devices(void) port_init(); timer0_init(); adc_init(); sreg =0x80; /* #pragma interrupt_handler timer0_ovf_isr:10 void tim

9、er0_ovf_isr(void) tcnt0 = 0x83; cnt+; /= uint adc_convert(void) uint temp1,temp2; adc_init(); temp1=(uint)adcl; temp2=(uint)adch; temp2=(temp28)+temp1; return(temp2); /*/ uint conv(uint i) long x; uint y; x=(5000*(long)i)/1023; y=(uint)x; return y; void delay(uint k) uint i,j; for(i=0;ik;i+) for(j=0

10、;j100) adc_val=adc_convert(); dis_val=conv(adc_val); cnt=0; delay(10);for(i=0;i100;i+) portc=act0; portb=seg7dis_val%10; delay(1); portc=act1; portb=seg7dis_val/10%10; delay(1); portc=act2; portb=seg7dis_val/100%10; delay(1); portc=act3; portb=0x80|seg7dis_val/1000; delay(1); 輸入信號的幅值為 010v程序:#includ

11、e #include lcd1602_8bit.c uchar const title=0-10v d_voltager; #define uchar unsigned char #define uint unsigned int uint adc_val,dis_val; uchar i,cnt; /*/ void port_init(void) porta = 0x7f; ddra = 0x7f; portb = 0xff; ddrb = 0xff; portc = 0xff; ddrc = 0xff; portd = 0xff; ddrd = 0xff; /*/ void adc_ini

12、t(void) adcsra = 0xe3; admux = 0x47; /* void timer0_init(void) tcnt0 = 0x83; tccr0 = 0x03; timsk = 0x01; /*/ void init_devices(void) port_init(); timer0_init(); adc_init(); sreg =0x80; /* #pragma interrupt_handler timer0_ovf_isr:10 void timer0_ovf_isr(void) tcnt0 = 0x83; cnt+; /= uint adc_convert(vo

13、id) uint temp1,temp2; adc_init(); temp1=(uint)adcl; temp2=(uint)adch; temp2=(temp28)+temp1; return(temp2); /*/ uint conv(uint i) long x; uint y; x=(10000*(long)i)/1023; y=(uint)x; return y; void delay(uint k) uint i,j; for(i=0;ik;i+) for(j=0;j100) adc_val=adc_convert(); dis_val=conv(adc_val); cnt=0;

14、 delay(10); displayonechar(5,1,(adc_val/1000)+0x30); displayonechar(6,1,(adc_val/100)%10+0x30); displayonechar(7,1,(adc_val/10)%10+0x30); displayonechar(8,1,(adc_val%10)+0x30); displayonechar(10,1,(dis_val/10000)+0x30); displayonechar(11,1,(dis_val/1000)%10+0x30); displayonechar(13,1,(dis_val/100)%10+0x30); disp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論