基于51單片機的數字電流表設計_第1頁
基于51單片機的數字電流表設計_第2頁
基于51單片機的數字電流表設計_第3頁
基于51單片機的數字電流表設計_第4頁
基于51單片機的數字電流表設計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、 湖 南 科 技 大 學單 片 機 課 程 設 計 題 目 基于單片機的數字電流表設計姓 名 學 院 專 業 學 號 指導教師 成 績 二一一年 五 月 二十六日 單片機課程設計任務書一、設計題目:基于單片機的數字電流表設計二、設計要求:1、 數字電流表在平常工作環境中能良好工作2、 能測01000mA電流,至少能達1%的精度3、 要求掌握I/V信號轉換,A/D轉換器的使用和數據采集系統的設計4、 電流表能數字顯示,且由單片機處理采集數據并驅動LED顯示摘 要本設計是通過采樣電阻及信號放大電路將待測的電流信號I轉換成01V電壓信號, 由A/D轉換器采集電壓信號,并將電壓轉換的數字信號傳輸給單片

2、機,由單片機完成對采樣信號的處理、分析,最后輸出信號驅動LED顯示器,顯示被測的電壓值。目 錄一、功能要求 1二、原理及方案論證.2三、系統硬件電路的設計3四、系統程序的設計4五、調試及設計結果.5參考文獻 .6 一、功能要求1、數字電流表在平常工作環境中能良好工作2、能測01000mA電流,至少能達1%的精度3、要求掌握I/V信號轉換,A/D轉換器的使用和數據采集系統的設計4、電流表能數字顯示,且由單片機處理采集數據并驅動LED顯示二、原理及方案論證1、數字電流表工作原理1.1采樣電阻網絡原理如下圖所示,輸入被測電流通過量程轉換開關S1S4,流經采樣電阻R1R4,由歐姆定律可知:U=I*R,

3、因而轉換輸出電壓為0V0.1V的電壓,輸出電壓可再經后續放大電路放大處理。 1.2高共模抑制比放大電路如下圖,由雙運放組成的同相輸入高共模抑制比放大電路,其閉環輸出可表示為:為使共模輸入為0,可令R1/R2=R4/R3,此時電路的差動閉環增益為Kd=1+R1/R2, U0=Kd(U1-U2); 下圖即Kd=11,U0=11(U1-U2); 1.3通用A/D轉換器ADC0832 是美國國家半導體公司生產的一種 8 位分辨率、雙通道 A/D 轉換芯片。由于它體積小,兼容性強,性價比高而深受單片機愛好者及企業歡迎,其目前已經有很高的普及率。ADC0832 具有以下特點: 8 位分辨率; 雙通道 A/

4、D轉換; 輸入輸出電平與 TTL/CMOS 相兼容; 5V 電源供電時輸入電壓在 05V 之間; 工作頻率為 250KHZ,轉換時間為 32S; 一般功耗僅為 15mW; 8P、14PDIP(雙列直插)、PICC 多種封裝; 商用級芯片溫寬為0°C to +70°C,工業級芯片溫寬為- 40°C to +85°C;芯片接口說明 CS_ 片選使能,低電平芯片使能。 CH0 模擬輸入通道 0,或作為 IN+/-使用。 CH1 模擬輸入通道 1,或作為 IN+/-使用。 GND 芯片參考 0 電位(地)。 DI 數據信號輸入,選擇通道控制。 DO 數據信號輸出

5、,轉換數據輸出。 CLK 芯片時鐘輸入。 Vcc/REF 電源輸入及參考電壓輸入(復用)。 1.4 AT89C52單片機 AT89C52 是美國ATMEL 公司生產的低電壓,高性能CMOS 8 位單片機,片內含8k bytes 的可反復擦寫的只讀程序存 儲器(PEROM)和256 bytes 的隨機存取數據存儲器(RAM ),器件采用ATMEL 公司的高密度、非易失性存儲技術生產, 與標準MCS-51 指令系統及8052 產品引腳兼容,片內置通用8 位 央處理器(CPU)和Flash 存儲單元,功能強大AT89C52 單片機適合于許多較為復雜控制應用場合。 主要性能參數 ·與MCS-

6、51 產品指令和引腳完全兼容 ·8k 字節可 擦寫Flash 閃速存儲器 ·1000 次擦寫周期 ·全靜態操作:0Hz24MHz ·三級加密程序存儲器 ·256 ×8 字節內部RAM ·32 個可編程I O 口線 ·3 個16 位定時計數器 ·8 個 斷源 ·可編程串行UART 通道 ·低功耗空閑和掉電模式 功能特性概述 AT89C52 提供以下標準功能:8k 字節Flash 閃速存儲器,256 字節內部RAM,32 個I O 口線,3 個16位定時計數器,一個6 向量兩級 斷結構,一

7、個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C52 可降至0Hz 的靜態邏輯操作,并支持兩種軟件可選的節電工作模式??臻e方式停止CPU 的工作,但允許RAM,定時計數器,串行通信口及中斷系統繼續工作。掉電方式保存RAM 中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。2、方案論證 本設計采用精密采樣電阻(9歐、0.9歐、0.09歐、0.01歐),電阻精度可達0.1%可忽略;八位A/D精度為5/256(V);因而除去放大電路增益誤差及線性誤差,電流表精度約為(5/256)/11,約為1.7mA;對于1000mA的總量程精度可達0.1%,因而方案可達設計要求。三、系

8、統硬件電路的設計 系統仿真接線簡圖本設計中用到AT89C52單片機、八位ADC AD0832、發光二極管、六位八段顯示數碼管LED,通用運放 UA741 、PNP管及必要的電阻、電容元件等。系統原理方框圖電路仿真簡圖如上圖。系統方框圖四、系統程序設計程序流程圖如下: 系統程序流程圖C語言程序如下:#include<reg52.h>/包含相應的頭文件#include<intrins.h>#include<math.h>#define uchar unsigned char#define uint unsigned intuchar axs6,azs6,ac10

9、,dc6;void ITOAZ(int num,uchar *p); void ITOAX(int num,uchar *p);float U,U1;sbit CS=P34;/定義數模轉換器硬件對應引腳sbit CLK=P35;sbit DO=P36;sbit DI=P37;/*讀寫AD0832函數*/*/unsigned char ReadADC(unsigned char channel) unsigned char j; unsigned char Temp=0; DI=1; _nop_(); _nop_(); CS=0;/拉低CS端 _nop_(); _nop_(); CLK=1;/拉

10、高CLK端 _nop_(); _nop_(); CLK=0;/拉低CLK端,形成下降沿1 _nop_(); _nop_(); CLK=1;/拉高CLK端 DI=(channel>>1)&0x1; _nop_(); _nop_(); CLK=0;/拉低CLK端,形成下降沿2 _nop_(); _nop_(); CLK=1;/拉高CLK端 DI=channel&0x1; _nop_(); _nop_(); CLK=0;/拉低CLK端,形成下降沿3 DI=1;/控制命令結束 _nop_(); _nop_(); for(j=0;j<8;j+) /處理讀入8位數據 CL

11、K=0;_nop_(); Temp=(Temp<<1)|DO; _nop_(); CLK=1; CS=1; CLK=0; DI=1;return(Temp); /返回轉換值/*/*/*顯示轉換函數*/*/延時函數void delay(uint n)uint a;uchar i;for(a=n;a>0;a-)for(i=0;i<2;i+); /將浮點數轉成函數void ITOC(float f,uchar *c)float zs,xs;int bxs,bzs,i,k=0;xs=modf(f,&zs); /分離整數部分與小數部分函數 if(P3=0XFE) bxs=

12、(int)(xs*100)+0.5); else bxs=(int)(xs*100)+0.5); /小數點后兩位有效數字ITOAX(bxs,axs); /把小數部分轉換成字符串存入axs數組bzs=(int)zs; /把整數部分轉成整型ITOAZ(bzs,azs); /把整數部分轉換成字符串存入azs數組 for (i=0;axsi!='s'i+) /把最終結果存入c數組ci=axsi; ci='.'for(k=0,i=i+1;azsk!='s'k+,i+) ci=azsk; if(U<0) ci='-' else ci=0

13、xff;ci+1='s'/將整型數轉換成對應的void ITOAZ(int num,uchar *p) uchar w,i=0; dow=num%10; /將整型數各位分離,并轉換成對應的字符存入a中pi=w; num=num/10;i+;while(num); pi='s'/將小數數部分轉換成對應的void ITOAX(int num,uchar *p) uchar w,i=0; dow=num%10; /將整型數各位分離,并轉換成對應的字符存入a中pi=w; num=num/10;i+; while(num); while(i<2) pi=0;i+;

14、pi='s' w=pi;/顯示譯碼函數void decode(uchar *n,uchar *dn) uchar i;for(i=0; ni!='s'i+) switch( ni) case 0: dni=0x3F;break; case 1: dni=0x06;break; case 2: dni=0x5B;break; case 9: dni=0x6F;break; case 3: dni=0x4F;break; case 4: dni=0x66;break; case 5: dni=0x6D;break; case 6: dni=0x7D;break; c

15、ase 7: dni=0x07;break; case 8: dni=0x7F;break; case 46: dni=0x80;break; case'-':dni=0x40;break; default:dni=0x00;break; dni='s'/*/*/*主換函數*/*/void main(void)uchar i,j,P2_;float A;while(1)U=ReadADC(0)/256.0;switch(P1)case 0xfe:A=U*10*1.025;break; case 0xfd:A=U*100/1.09;break; case 0xfb: A=U*1000;break; default: A=0.0;break;A=10*A;ITOC(A,ac);decode(ac,dc); P2=0XFf; P2_=0Xfe;for(j=0;dcj!='s'j+) P2=0XFf; P0=dcj; P2=P2_; delay(150); P2_=_crol_(P2_,1); /*P2_<<=1;*/ /*/*/ 五、 調試及設計結果1、 PROTUSE系統仿真結果

溫馨提示

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

評論

0/150

提交評論