




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
武漢理工大學(xué)《單片機(jī)原理與應(yīng)用》課程設(shè)計(jì)說明目錄摘要 I1. 設(shè)計(jì)原理 12. 系統(tǒng)硬件設(shè)計(jì) 12.1電阻分壓以及阻抗匹配模塊 12.2有效值檢波模塊 22.3 ADS1115電壓檢測模塊 32.4單片機(jī)控制及顯示模塊 32.5系統(tǒng)整體原理圖 43程序框圖 54資源分配表 55源程序 65.1主程序 65.2液晶顯示程序 75.3ADS1115啟動(dòng)程序 116性能分析 196.1實(shí)物測試圖 196.2測量數(shù)據(jù)分析 207總結(jié)與體會 21參考文獻(xiàn) 22摘要 有效值能直接反應(yīng)交流信號的能量大小,具有簡單的疊加性,計(jì)算起來方便,對于研究功率、噪聲、失真度、頻譜純度等有十分重要的作用。因此,有效值在實(shí)際應(yīng)用中使用十分廣泛。 本文主要介紹了對50HZ正弦交流信號有效值的測量方法的設(shè)計(jì)與實(shí)現(xiàn)。根據(jù)要求,測量電路由電阻分壓網(wǎng)絡(luò)、基于OPA277的阻抗匹配模塊、基于AD637的有效值檢測模塊以及基于ADS1115的電壓測量模塊組成,控制部分選用STC89C52單片機(jī),所測量的有效值通過LCD1602顯示。關(guān)鍵詞:有效值、AD637、STC89C52單片機(jī)武漢理工大學(xué)《單片機(jī)原理與應(yīng)用》課程設(shè)計(jì)說明設(shè)計(jì)原理圖1系統(tǒng)整體結(jié)構(gòu)圖 由圖1系統(tǒng)整體框圖可知,此測量有效值系統(tǒng)主要由分壓網(wǎng)絡(luò)、阻抗匹配、有效值檢波、電壓測量、單片機(jī)控制以及液晶顯示等模塊組成。 題目要求的輸入信號輸入范圍為0~15V,這遠(yuǎn)遠(yuǎn)大于一般有效值檢波以及AD轉(zhuǎn)換芯片的輸入電壓值,因此,在前級需要加一級電阻分壓網(wǎng)絡(luò),將輸入信號的幅值衰減一般,使其適合測量。本系統(tǒng)選用的有效值檢波模塊基于AD637芯片,AD637是一個(gè)高精度RMS-DC轉(zhuǎn)換芯片,但其輸入阻抗較小,在信號輸入前通過一級運(yùn)算放大器進(jìn)行阻抗匹配,提升電路整體的穩(wěn)定性,經(jīng)過AD637的轉(zhuǎn)換,輸出對應(yīng)交流信號的直流有效值,在單片機(jī)的控制下,ADS1115進(jìn)行電壓檢測,并將檢測的值返回給單片機(jī)通過LCD1602顯示。 此系統(tǒng)對控制芯片的要求并不高,選用52單片機(jī)足以實(shí)現(xiàn)所需求的功能。單片機(jī)首先對內(nèi)部定時(shí)器以及LCD1602進(jìn)行初始化后,進(jìn)入等待模式,當(dāng)達(dá)到所設(shè)定的時(shí)間時(shí),進(jìn)入中斷開啟ADS1115進(jìn)行電壓值的測量,并將測量值通過LCD1602顯示,之后退出中斷等待下一次中斷的來臨。系統(tǒng)硬件設(shè)計(jì)2.1電阻分壓以及阻抗匹配模塊 由于題目所要求的電壓范圍為0~15V,大于一般芯片的測量范圍,因此采用兩個(gè)10K的電阻進(jìn)行分壓,使輸入信號衰減一半,如圖2所示,衰減后的信號通過OPA277進(jìn)行阻抗匹配,以提升系統(tǒng)整體的穩(wěn)定性。圖2電阻分壓及阻抗匹配電路2.2有效值檢波模塊 為了實(shí)現(xiàn)對有效值的檢測,需先將交流信號轉(zhuǎn)化成直流有效值,如圖3所示,在此系統(tǒng)中,選用AD637完成此功能。AD637是一款完整的高精度、單芯片均方根直流轉(zhuǎn)換器,可計(jì)算任何復(fù)雜波形的真均方根值。它提供集成電路均方根直流轉(zhuǎn)換器前所未有的性能,精度、帶寬 圖3有效值檢波電路和動(dòng)態(tài)范圍與分立和模塊式設(shè)計(jì)相當(dāng)。AD637提供波峰因數(shù)補(bǔ)償方案,允許以最高為10的波峰因數(shù)測量信號,額外誤差小于1%。寬帶寬允許測量200mV均方根、頻率最高達(dá)600kHz的輸入信號以及1V均方根以上、頻率最高達(dá)8MHz的輸入信號。片內(nèi)緩沖放大器既可以用作輸入緩沖,也可以用于有源濾波器配置。該濾波器可以用來降低交流紋波量,從而提高精度。滿足題目對精度0.01V,誤差小于0.02V的要求。ADS1115電壓檢測模塊經(jīng)過前級AD637的轉(zhuǎn)換,輸入ADS1115的信號為直流有效值,ADS1115是具有16位分辨率的高精度模擬到數(shù)字轉(zhuǎn)換器(ADC),其數(shù)據(jù)傳輸通過一個(gè)兼容串行接口,四個(gè)從地址,由2.0V至5.5V單電源供電。
ADS1115可以執(zhí)行轉(zhuǎn)換速率高達(dá)每秒860個(gè)樣本(SPS)。板載PGA的ADS1115提供從電源的輸入范圍為±256mV的低,允許大型和小型的信號進(jìn)行高分辨率測量。如圖4所示,使用ADS1115測量電壓,足以滿足精度的要求。圖4ADS1115電壓檢測電路圖2.4單片機(jī)控制及顯示模塊 系統(tǒng)的控制部分由52單片機(jī)實(shí)現(xiàn),單片機(jī)具有體積小,操作方便,應(yīng)用靈活,運(yùn)行穩(wěn)定準(zhǔn)確等特點(diǎn),現(xiàn)以廣泛應(yīng)用于各領(lǐng)域。此系統(tǒng)對控制部分要求不高,在單片機(jī)最小系統(tǒng)的基礎(chǔ)上增加一些基本外設(shè)即可。如圖5所示,最小系統(tǒng)由單片STC89C52、復(fù)位電路、振蕩電路組成,振蕩電路為單片機(jī)工作提供時(shí)鐘源,但程序跑飛的時(shí)候,可通過控制電路使程序從頭開始執(zhí)行。圖中與單片機(jī)相連的是LCD1602液晶顯示屏,1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個(gè)5*7或者5*11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用。通過單片機(jī)控制LCD1602可顯示設(shè)定的英文字符和數(shù)字等信息。圖5單片機(jī)控制及顯示電路系統(tǒng)整體原理圖如圖6所示,是此系統(tǒng)的整體電路圖。圖6系統(tǒng)整體電路圖3程序框圖 如圖7所示,是此系統(tǒng)的程序流程框圖。圖7程序流程圖4資源分配表 為實(shí)現(xiàn)此系統(tǒng),單片機(jī)的資源分配如表1所示。表1單片機(jī)資源分配表資源用途P0.0控制ADS1115時(shí)鐘引腳P0.1控制ADS1115數(shù)據(jù)引腳P0.5控制LCD1602使能引腳P0.6控制LCD1602讀寫引腳P0.7控制LCD1602功能選擇引腳P2向LCD1602寫入數(shù)據(jù)定時(shí)器0設(shè)定一定時(shí)間,間歇性的開啟ADS1115進(jìn)行轉(zhuǎn)換5源程序5.1主程序#include"LCD1602.h"#include"ads1115.h"chari=0,flag;charshow_zifu[]={"Designbylq"};floatresultdata=0;voidset_time(){//定時(shí)1msEA=1;TMOD|=0X01;TH0=(65536-1000)/256;TL0=(65536-1000)%256; EA=1; ET0=1;TR0=1; TF0=0;}voidmain(){ lcd_init();set_time();for(i=0;i<12;i++){lcd_sendcmd(0x80+i);lcd_senddat(show_zifu[i]);}lcd_sendcmd(0xc0);lcd_senddat('V');lcd_sendcmd(0xc1);lcd_senddat(':');while(1){if(flag==1){resultdata=AD_last(0)*2;lcd_show_float(0xc2,resultdata);flag=0;}}}voidinter()interrupt1{staticuintj=0;j++;while(j==200){flag=1;j=0;} TH0=(65536-1000)/256; TL0=(65536-1000)%256; TR0=1; TF0=0;}5.2液晶顯示程序#ifndef __LCD1602_H__#define__LCD1602_H__#include<reg52.h>#defineuintunsignedint#defineucharunsignedchar/************各IO口聲明************/sbitLCD1602_EN=P0^5;sbitLCD1602_RW=P0^6;sbitLCD1602_RS=P0^7;#definelcd_DATAP2/****************各io口定義值的替換*****************/#defineLCD1602_EN_HLCD1602_EN=1#defineLCD1602_EN_LLCD1602_EN=0#defineLCD1602_RW_HLCD1602_RW=1#defineLCD1602_RW_LLCD1602_RW=0#defineLCD1602_RS_HLCD1602_RS=1#defineLCD1602_RS_LLCD1602_RS=0/***************子函數(shù)名****************/voiddelay(uints);voidlcd_input_byte(ucharbyte);voidlcd_sendcmd(ucharcmd);voidlcd_senddat(uchardat);voidlcd_init();voidlcd_show_float(ucharadd,floatnum);/*****************************/#endif#include"LCD1602.h"voiddelay(uints){uinti,j;for(i=0;i<s;i++) for(j=1;j<=110;j++);}voidlcd_input_byte(ucharbyte){LCD1602_RW_L;lcd_DATA=byte;LCD1602_EN_L;LCD1602_EN_H;delay(10);}voidlcd_sendcmd(ucharcmd){LCD1602_RS_L;lcd_input_byte(cmd);}voidlcd_senddat(uchardat){LCD1602_RS_H;lcd_input_byte(dat);}voidlcd_init(){lcd_sendcmd(0x38);/*設(shè)置2行數(shù)據(jù),5*7數(shù)據(jù)*/lcd_sendcmd(0x38);lcd_sendcmd(0x08);/*顯示關(guān)閉*/lcd_sendcmd(0x01);/*顯示清屏*/lcd_sendcmd(0x06);/*顯示光標(biāo)移動(dòng)設(shè)置*/lcd_sendcmd(0x0c);/*顯示開及光標(biāo)移動(dòng)*/delay(50);}voidlcd_show_float(ucharadd,floatnum){uchartemp[6]={"00.00V"},i;intshow_num;show_num=num*100;//保留兩位小數(shù)temp[0]=show_num/1000+'0';temp[1]=show_num/100%10+'0';temp[3]=show_num/10%10+'0';temp[4]=show_num%10+'0';for(i=0;i<6;i++){ lcd_sendcmd(add+i);lcd_senddat(temp[i]);}}5.3ADS1115啟動(dòng)程序/**********ADS1115驅(qū)動(dòng)程序頭文件*******/#include<reg52.h>//定義頭文件#defineucharunsignedchar#defineuintunsignedint#defineu8unsignedchar#defineu16unsignedint#defineulongunsignedlongvoiddelay_1115(uintms);voidAD_Start(void);voidAD_Stop(void);voidSend_byte(ucharbyte);uintRead_byte(void);voidAD_Config(ucharchannel);voidPoint(void);u16Read_result(void);floatAD_last(ucharchannel_ad);/**********ADS1115AD1驅(qū)動(dòng)程序*******/#include<reg52.h>//定義頭文件#include"ads1115.h"sbitAD1115_SCL=P0^0;sbitAD1115_SDA=P0^1;#defineSCL_HAD1115_SCL=1#defineSCL_LAD1115_SCL=0#defineSDA_HAD1115_SDA=1#defineSDA_LAD1115_SDA=0ucharInitdata[4];u16result=0;voiddelay_1115(uintms){ u16a; while(ms--) { a=120; while(a--); }}/**************************函數(shù)名稱:voidAD_Start(void)函數(shù)功能:ADS1115開始通信信號返回值:無**************************/voidAD_Start(void){ SDA_L; delay_1115(2); SCL_H; delay_1115(1); SDA_H; delay_1115(2); SDA_L; SCL_L; delay_1115(2);}/**************************函數(shù)名稱:voidAD_Stop(void)函數(shù)功能:ADS1115結(jié)束通信信號返回值:無**************************/voidAD_Stop(void){ SDA_L; SCL_H; SDA_H;}/**************************函數(shù)名稱:voidSend_byte(ucharbyte)函數(shù)功能:ADS1115單字節(jié)傳輸返回值:無**************************/voidSend_byte(ucharbyte){ uchari; for(i=0;i<8;i++) { if((byte<<i)&0x80)//從高位開始傳 SDA_H; elseSDA_L; SCL_H; delay_1115(1); SCL_L; } SDA_H; SCL_H; delay_1115(1); SCL_L;//delay_ms(1);}/**************************函數(shù)名稱:voidRead_byte(void)函數(shù)功能:ADS1115readabyte返回值:temp**************************/uintRead_byte(void){ uchartemp=0,flag; uchari; for(i=0;i<8;i++) { temp=temp<<1; SCL_L; delay_1115(1); SCL_H; delay_1115(1);flag=P0; if(flag&0x02)//數(shù)據(jù)位為1 temp|=0x01;delay_1115(1); } SCL_L; //ACK結(jié)束時(shí)序 delay_1115(1); SDA_L; SCL_H; delay_1115(1); SCL_L; SDA_H; returntemp;}/**************************函數(shù)名稱:voidAD_Config(ucharchannel)函數(shù)功能:ADS1115channelchoose返回值:無**************************/voidAD_Config(ucharchannel){ucharchannel_code=0; uchari;switch(channel) {case0:channel_code=0xc2;break; //通道0配置寄存器的高8位 case1:channel_code=0xd2;break; //通道1case2:channel_code=0xe2;break;//通道2case3:channel_code=0xf2;break;//通道3 default:break; } Initdata[0]=0x90;//addressandwritecommand地址為0x90 Initdata[1]=0x01;//pointstoConfigregister Initdata[2]=channel_code;//congfigthehighbyte,choosethechannel Initdata[3]=0xe3;//speed:860sps, SCL_H; AD_Start(); for(i=0;i<4;i++) { Send_byte(Initdata[i]); delay_1115(1); } AD_Stop();}/**************************函數(shù)名稱:voidPoint(void)函數(shù)功能:ADS1115writetopointerregister返回值:無**************************/voidPoint(void) //配置pointerregister{ SCL_H; AD_Start(); Send_byte(0x90); delay_1115(1); Send_byte(0x00); delay_1115(1); AD_Stop(); delay_1115(1);}/**************************函數(shù)名稱:ucharRead_result(void)函數(shù)功能:readADS1115'sconversationresult返回值:result**************************/u16Read_result(void){ ucharresult_L=0,result_H=0; SCL_H; AD_Start(); delay_1115(1); Send_byte(0x91); delay_1115(1); delay_1115(1); result_H=Read_byte(); delay_1115(1); result_L=Read_byte(); delay_1115(1); AD_Stop(); result=result_H*256+result_L;//即高位結(jié)果向左移8位與低8位構(gòu)成一個(gè)字 returnresult;}/**************************函數(shù)名稱:ucharAD_last(void)函數(shù)功能:getthelastresult返回值:last**************************/floatAD_last(ucharchannel_ad){ floatlast2=0; u16last1=0; AD_Config(channel_ad);//選擇通道 delay_1115(5); Point(); delay_1115(5); last1=Read_result();//正值最大為0x7fff,選取FS為4.096 last2=4.096*(last1/32768.0); returnlast2;}6性能分析6.1實(shí)物測試圖圖8系統(tǒng)實(shí)物圖圖9輸入1Vpp信號測量圖 圖10輸入5Vpp信號測量圖圖11輸入10Vpp信號測量圖 圖12輸入15Vpp信號測量圖 圖8為整套系統(tǒng)實(shí)物圖,主要由電源模塊、峰值有效值轉(zhuǎn)換模塊、A/D電壓檢測模塊以及單片機(jī)控制模塊組成。圖9至圖12為實(shí)測的數(shù)據(jù),分別對應(yīng)峰峰值為1V、5V、10V、15V時(shí),本系統(tǒng)所檢測的有效值通過LCD1602顯示。6.2測量數(shù)據(jù)分析表2實(shí)際測量數(shù)據(jù)與理論值分析表輸入(Vpp)1234567理論值(V)0.350.701.061.411.772.122.47檢測值(V)0.340.691.051.411.752.102.46誤差(V)0.010.010.0100.020.020.01輸入(Vpp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 第15課《我們不亂扔》教學(xué)設(shè)計(jì)-2024-2025學(xué)年一年級道德與法治上冊統(tǒng)編版
- 展覽館裝修合同
- 2025年度建筑企業(yè)農(nóng)民工勞動(dòng)合同創(chuàng)新模式試點(diǎn)方案
- 2025年度五星級酒店與VIP客人個(gè)性化服務(wù)協(xié)議
- 2025年度房產(chǎn)贈與與可持續(xù)發(fā)展合同
- 2025年度冷鏈物流貨運(yùn)損壞賠償協(xié)議書
- 二零二五年度人工智能教育平臺合作協(xié)議中的支付及費(fèi)用分?jǐn)偧?xì)則
- 2025年度帶寵物友好房屋出租協(xié)議電子版
- 2025年度廣告代理合同解除通知期限與費(fèi)用結(jié)算規(guī)范
- 2025年度報(bào)廢車買賣及報(bào)廢車輛拆解與環(huán)保設(shè)施投資合同
- 《英國飲食文化》課件
- 《SolidWorks建模實(shí)例教程》第4章 綜合應(yīng)用實(shí)例
- JCT2110-2012 室內(nèi)空氣離子濃度測試方法
- 視頻號運(yùn)營規(guī)則
- 文印服務(wù)投標(biāo)方案(技術(shù)方案)
- 初三語文總復(fù)習(xí)全程計(jì)劃表
- 九年級初中語文閱讀理解專題訓(xùn)練及答案
- 經(jīng)濟(jì)地理學(xué)智慧樹知到課后章節(jié)答案2023年下江西師范大學(xué)
- 班規(guī)班約高一班規(guī)班約及考核細(xì)則
- 《幼兒文學(xué)》 課件全套 第1-8章 幼兒文學(xué)概述- 圖畫書
- 代用茶批生產(chǎn)記錄
評論
0/150
提交評論