版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、s 作品名:數字電壓表學院:電氣工程學院 專業(yè): 姓名: 學號: 指導老師:目錄第一章:設計方案.3第二章:硬件電路設計.42.1主控芯片.42.2模數轉換部分.42.3顯示模塊.6第三章:軟件設計.73.1主程序設計.73.2 a/d轉換子模塊.8第四章:系統調試.94.1硬件調試.9 4.1.1 硬件故障.9 4.1.2硬件調試方法.94.2軟件調試9 4.2.1 軟件故障.9 4.2.2軟件調試方法9第五章:實驗數據處理.105.1實驗數據.105.2實驗數據分析.10第六章:結論.11附錄一:作品圖11附錄二:程序.12第一章: 設計方案基于51單片機,以adc0804芯片實現模數轉換
2、,由1602液晶屏顯示,具有量程變換功能。量程轉換模塊adc0804模數轉換模塊單片機控制模塊1602led顯示模塊上電復位串口通信adc08041602led顯示電源電路at89c51 p0 p2 p1 p3第二章:硬件設計2.1主控芯片本電壓表采用stc89c52為主控芯片,電路如下圖所接:晶振電路和復位電路略去,端口和上面各圖的接口是一致的。2.2模擬轉換部分該電壓表采用的adc0804,此芯片優(yōu)點是并行輸出,速率快,缺點是只有8位,精度不高。下來adc0804芯片圖:為了方便,將數字地和模擬地都直接接到了一起,db0db7為并行輸出口,cs,rd,wr為控制芯片模數轉換及讀取芯片數據和
3、寫數據的引腳,adc0804可以自己產生時鐘,只要在clkr和clkin端接入電阻(10k)和電容(理論為150pf本人接的220pf),可產生脈沖信號。vref為參考電壓端,vin+和vin為電壓輸入端。當電壓加在vin+和vin端時,在db0db7可輸出八位到單片機,本處參考電壓為5v,則當輸入電壓u時,輸出數據為temp,則u/temp=5/255.在自然狀態(tài)下,最多也只能測5v電壓,為了擴大量程,本人加了衰減網絡,見下圖:接到adc芯片上面的始終是vin和地之前的電壓,為了調精度,在上面加了滑動變阻器。此處r22選用的是470k歐的,首先選的10k,因為內阻過小,導致在5v以下的電壓測
4、量不準確,choice和gnd兩端為外加的電壓,這樣,有部分電壓會在r20或者r21上分壓,只在保證在r22兩端不超過5v,就可實現多量程電壓測量。2.3顯示模塊本處用1602液晶顯示,1602優(yōu)點是價格便宜,可顯示基本字符,對于做電壓表這樣的東西已足夠。電路如下:第三章:軟件設計3.1主程序 主程序包括初始化部分 調用a/d轉換子程序和調用顯示程序,如下圖所示:3.2 a/d轉換子模塊:返回0804地址加1 a/d轉換子程序用于對adc0804八路輸入模擬電壓進行a/d轉換,并將轉換的數值存入八個相應的存儲單元中,如下圖: 開始啟動一次轉換取數據(oe=1)a/d轉換結束?地址小于8第四章:
5、系統調試 基于單片機的數字電壓表在組裝好以后,便可進入系統的在線調試,起主要任務是排除樣機硬件故障并完善其硬件結構,試運行所設計的程序,排除程序錯誤,優(yōu)化程序結構,使系統達到預期的功能,進而固化軟件。4.1硬件調試單片機應用系統的硬件和軟件調試時交叉進行的,但通常是先排除樣機中明顯的硬件故障,尤其是電源故障,才能安全和仿真器相連,進行綜合調試。4.1.1 硬件電路故障(1)錯線 開路 短路;(2)元器件損壞(3)電源故障4.1.2 硬件調試方法 本設計調試中所用的調試方法是靜態(tài)測試: 在樣機加電之前,首先用萬用表等工具,根據硬件電器原理圖和裝配圖仔細檢查樣機線路的正確性,并核對元器件的型號 規(guī)
6、格和安裝是否符合要求。第二步是加電后檢查各插件上引腳的點位,仔細測量各電位是否正常。第三步是在不加電的情況下,除單片機以外,插上所有的元器件,最后用仿真適配器將樣機的單片機插座盒仿真器的仿真接口相連,為聯機調試做準備。4.2軟件調試4.2.1軟件電路故障(1)當以斷點或連續(xù)方式運行時,目標系統沒有按規(guī)定的功能進行操作或什么結果也沒有,這是由于程序轉移到意外之外或在某處死循環(huán)所造成的。(2)結果不正確4.2.1軟件調試方法軟件調試所使用的方法有:計算程序的調試方法,i/o處理程序的調試法,綜合調試法第五章:實驗數據處理5.1實驗數據0-5v量程為 0-50v量程次數標準值電壓示值滿度誤差次數標準
7、值電壓示值滿度誤差10.760.7250.70%11.341.50.52%21.111.0780.64%22.352.50.30%31.661.6270.66%34.424.70.56%41.991.9600.60%47.177.10.14%52.172.1560.28%510.610.11.00%62.462.4500.20%613.012.90.20%72.702.6860.28%714.614.40.40%82.852.8430.14%816.716.11.00%93.033.0190.22%918.217.61.20%103.153.156-0.12%1019.518.91.20%11
8、3.093.098-0.16%1121.721.21.00%123.763.764-0.08%1222.922.01.80%133.793.803-0.26%1323.923.01.80%144.454.470-0.40%1425.324.51.60%154.654.686-0.72%1525.824.91.80%1629.528.81.40%1730.429.51.80%1834.133.31.60%1936.535.61.80%2038.237.41.60%5.2實驗數據分析 0-5v量程精度為0.001v, 滿度誤差均1.00%,為一級電壓表 0-50v量程精度為0.1v,滿度誤差均2.
9、50%,為2.5級電壓表 第六章:結論 1.輸入電壓易發(fā)生干擾不穩(wěn)定,且驅動能力可能存在不足,需在被測信號的輸入端加上一部分驅動電路,比如將量程轉換電路改成放大能力的自動量程轉換電路,將幅值較小的信號經適當放大后再測量,可顯著提高精度; 2輸出量可用平均值算法來改善,使測量準確度更高; 3.若能將測量的電壓值實時保存,使用時將更方便;附錄一:作品圖附錄二:程序主程序:#include /頭文件#include /頭文件#include#include#include#include#include#include#include void main()while(1)write_com(0x0
10、1);lcd_init(); display_voltage(); 1、 宏定義和定義變量:#define uchar unsigned char /宏定義#define uint unsigned intuchar table= measurement: ;uchar range5=range020v: ;uchar range50=range02a: ;uchar range500=range0100k:;uchar warning=please choice! ;/*uchar error=error!; */ uint measure10; sbit key3=p27;sbit key
11、0=p22;sbit key1=p21;sbit key2=p20;sbit lcd_rs=p23; / 定義液晶的rs端口sbit lcd_rw=p24; / 定義液晶的rw端口sbit lcd_en=p25; sbit back=p26;sbit spk=p27; / 定義液晶的en端口sbit cs=p32; / 定義ad的cs端口sbit rd=p31; /定義ad的rd端口sbit wr=p30;/sbit dula=p37;sbit intr=p37; /定義ad的wr端口uint temp,i,a1,a2,a3,a4; /定義變量 uint date;2、 延時部分:void d
12、elay(uint z) uint x,y; for(x=z;x0;x-) for(y=110;y0;y-);void delay_lcd()/1602指令之間延時uint x=5;while(x-);3、 ad轉換和數據傳送: void ad_init() /初始化adc0804cs=0;wr=1;_nop_();wr=0;_nop_();wr=1; uint ad_switch() /ad轉換部分uint temp;p1=0xff;rd=1;_nop_();rd=0;_nop_();temp=p1;/將轉后的原始值返給單片機p1口return temp;uint ad_smooth()/軟
13、件濾波uint xx,i,temp;ad_init();for(i=0;i20;i+)measurei=ad_switch();delay(10); /每隔10us adc轉換并采集一次數據,將得 /到的數據放到數組中,采集十個數據for(xx=0;xx20;xx+) /將十個數據冒泡法排序for(i=xx;imeasurei)temp=measurei;measurei=measurexx;measurexx=temp; for(i=6;i16;i+)/去掉了三個最小值和兩個最大值, /取中間五個數的平均值xx+=measurei;xx=xx/10;return xx; /將濾過波后的值存入
14、單片機4、 1602子程序:void write_com(uchar com)/寫指令delay(5);lcd_en=0;lcd_rs=0;lcd_rw=0;_nop_();lcd_en=1;p0=com;lcd_en=0;lcd_rs=0;void write_date(uchar date)/寫數據delay(5);lcd_en=0;lcd_rs=1;lcd_rw=0;_nop_();lcd_en=1;p0=date;lcd_en=0;lcd_rs=0;void lcd_init()/初始化 back=0; delay(15); lcd_en=0; write_com(0x38); wri
15、te_com(0x38); write_com(0x38); write_com(0x06); write_com(0x0c); write_com(0x01); 5、 鍵盤掃描:uint keyscan()if(key0=0&key1=1&key2=1&key3=1)return 1;else if(key0=1&key1=0&key2=1&key3=1)return (2);else if(key0=1&key1=1&key2=0&key3=1)return (3);else if(key0=1&key1=1&key2=1&key3=0)return (4);else if(key0=1&
16、key1=1&key2=1&key3=1) return(5);else return (6);6、 數據整理及顯示:void display5v(uint temp)/量程為5v時的顯示狀態(tài)uint num0,num1,num2,num3;if(temp7) temp=0;else temp=temp-7;num0=temp/51;num1=temp%51*10/51;num2=temp%51*10%51*10/51;num3=temp%51*10%51*10%51*10/51;write_com(0x80+0x40+11); write_date(num0+0x30);delay_lcd(
17、);write_com(0x80+0x40+12); write_date(.);delay_lcd();write_com(0x80+0x40+13); write_date(num1+0x30);delay_lcd();write_com(0x80+0x40+14); write_date(num2+0x30);delay_lcd();write_com(0x80+0x40+15); write_date(num3+0x30);delay_lcd();void display50v(uint temp)/量程為50v的顯示狀態(tài)uint num0,num1,num2,num3;/if(tem
18、p7) temp=0;/else temp=temp-7;temp=(temp+temp*4/10)*11;num0=temp/510;num1=temp%510*10/510;num2=temp%510*10%510*10/510;num3=temp%510*10%510*10%51*10/510;write_com(0x80+0x40+11); write_date(num0+0x30);delay_lcd();write_com(0x80+0x40+12); write_date(num1+0x30);delay_lcd();write_com(0x80+0x40+13); write_
19、date(.);delay_lcd();write_com(0x80+0x40+14); write_date(num2+0x30);delay_lcd();write_com(0x80+0x40+15); write_date(num3+0x30);delay_lcd();void display_voltage()uint numx,temp,temp0,temp1;/float temp;numx=keyscan();temp0=numx;for(i=0;i16;i+)write_com(0x80+i);write_date(tablei);delay_lcd(); if(numx=1|numx=4)for(i=0;i11;i+)wri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論