《單片機系統(tǒng)設(shè)計》實驗報告

上傳人:d****1 文檔編號:51588782 上傳時間:2022-01-27 格式:DOCX 頁數(shù):17 大?。?45.60KB
收藏 版權(quán)申訴 舉報 下載
《單片機系統(tǒng)設(shè)計》實驗報告_第1頁
第1頁 / 共17頁
《單片機系統(tǒng)設(shè)計》實驗報告_第2頁
第2頁 / 共17頁
《單片機系統(tǒng)設(shè)計》實驗報告_第3頁
第3頁 / 共17頁

本資源只提供3頁預(yù)覽,全部文檔請下載后查看!喜歡就下載吧,查找使用更方便

20 積分

下載資源

資源描述:

《《單片機系統(tǒng)設(shè)計》實驗報告》由會員分享,可在線閱讀,更多相關(guān)《《單片機系統(tǒng)設(shè)計》實驗報告(17頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、短學(xué)期實驗報告 (單片機系統(tǒng)設(shè)計) 題 目 : 專 業(yè): 指導(dǎo)教師 : 學(xué)生姓名 : 學(xué) 號 : 完成時間 : 成 績 : 基于單片機的交流電壓表設(shè)計 目錄 1 系統(tǒng)的設(shè)計要求 ???????????????????? ? 2 2 系統(tǒng)的硬件要求 ???????????????????? ? 2 2.1 真有效值轉(zhuǎn)換電路的分析 ??????????????? ? 2 2.2 放大電路的設(shè)計 ??????????????????? ?3 2.3 A/D 轉(zhuǎn)換電路的設(shè)計 ????????????????? ? 3 2.4 單片機電路的分析??????????????

2、? ???? ?4 2.5 顯示電路??????????????????? ???? ?4 3 軟件設(shè)計 ?????????????????????????? 5 3.1 軟件的總流程圖 ?????????????????? ?? ?5 3.2 初始化定義與定時器初始化流程 圖????????????? 5 3.3 A/D 轉(zhuǎn)換流程圖 ????????????????????? 6 3.4 數(shù)據(jù)處理流程圖 ????????????????????? 6 3.5 數(shù)據(jù)顯示流程圖 ????????????????????? 7 4 調(diào)試 ????????????????????????

3、??? 7 4.1 調(diào)試準(zhǔn)備 ???????????????????????? 7 4.2 關(guān)鍵點調(diào)試 ??????????????????????? 7 4.3 測試結(jié)果 ???????????????????????? 8 4.4 誤差分析 ???????????????????????? 8 5 結(jié)束語 ??????????????????????????? 8 5.1 總結(jié) ?????????????????????????? 9 5.2 展望 ?????????????????????????? 9 附錄 1 總原理圖 ??????????????????????? 10

4、附錄 2 程序 ????????????????????????? 10 附錄 3 實物圖 ???????????????????????? 14 基于單片機的交流電壓表設(shè)計 學(xué)院 專業(yè) 姓名 指導(dǎo)老師: 1 設(shè)計要求 1)運用單片機實現(xiàn)真有效值的檢測和顯示。 2)數(shù)據(jù)采集使用中斷方式,顯示內(nèi)容為有效值與峰值交替進行。 2 硬件設(shè)計 本系統(tǒng)是完成一個真有效值的測量和顯示,利用 AD737 將交流電轉(zhuǎn)換成交流電壓 的有效值,用 ADC0804實現(xiàn)模數(shù)轉(zhuǎn)換,再通過單片機用數(shù)碼管來顯示。系統(tǒng)原理框圖 如圖 2-1所示。系統(tǒng)框圖由真有效值轉(zhuǎn)換電路、 放大電路、A/D 轉(zhuǎn)換電路、

5、單片機電路、 數(shù)碼管顯示電路五部分。 交流 轉(zhuǎn)換 放大 A/D 單片機 顯示 信號 電路 電路 轉(zhuǎn)換 電路 電路 圖 2-1 原理框圖 2.1 真有效值轉(zhuǎn)換電路 真有效值轉(zhuǎn)換電路主要是利用 AD737芯片來實現(xiàn)真有效值直流變換的, 即將輸入 的交流信號轉(zhuǎn)換成直流信號的有效值,其原理圖 如圖 2-2 所示。 圖 2-2 真有效值轉(zhuǎn)換電路 由于 AD737最大輸入電壓為 200mV, 所以需要接兩個二極管來限制輸入電壓, 起到限 幅的作用。如圖中 D1、D2,由IN4148構(gòu)成,電容 C6是耦合電容,電阻 R1是限流電阻。 2.2

6、放大電路設(shè)計 放大電路主要是利用運放 uA741來進行放大,電路原理圖如圖 2-3 所示 圖 2-3 放大電路原理圖 由于 AD737 可接受的信號有效值為 0~200mV 。而 ADC0804 、單片機的電源電 壓都需要 0~5V ,因此需要一個放大電路, 將 AD737 輸出的 200mV 的電壓提升至 5V, 所以放大電路的放大倍數(shù)最低需要 25 倍。該放大電路采用集成芯片 uA741 ,連接成 一個同相比例運放,輸入電阻采用 3.3K ,反饋電阻用 100K 的滑動變阻器,當(dāng)滑動變 阻器處于最大值時,放大倍數(shù)處于最大,為 AVf=(1+R3/R2 ) ≈31.3 。放大倍數(shù)

7、可以根 據(jù)滑動變阻器的滑動而改變。 2.3 A/D 轉(zhuǎn)換電路 A/D 轉(zhuǎn)換電路采用 ADC0804實現(xiàn),其原理圖如圖 2-4 所示 圖 2-4 A/D 轉(zhuǎn)換電路原理圖 此電路考慮到做單片機系統(tǒng)時,需數(shù)據(jù)采集,而數(shù)據(jù)采集能通過 I/O 口擴展接口 電路得到,但 51單片機大多不帶 A/D轉(zhuǎn)換器,所以模擬量的采集必須靠 A/D 實現(xiàn)。所 謂 A/D轉(zhuǎn)換就是將輸入的模擬信號轉(zhuǎn)換成數(shù)字信號輸出。 改該電路采用 ADC0804

8、 芯片, 其最快轉(zhuǎn)換時間為 100us,時鐘頻率 f=1/(C5*R9) ,可對 0~5V 之間的電壓進行轉(zhuǎn)換; 輸入基準(zhǔn)電壓為實際基準(zhǔn)電壓的 1/2;若輸入基準(zhǔn)電壓為 2.56V ,其輸入模擬電壓為 (DATA/256)*2 ,DATA 為轉(zhuǎn)換數(shù)字量。轉(zhuǎn)換結(jié)束信號輸出到單片機外中斷 1,如圖 2-4 所示。 /RD為外部讀取轉(zhuǎn)換結(jié)果的控制輸出信號。 /RD為 HI 時, DB0~DB7為高阻抗; /RD為LO時,數(shù)據(jù)才輸出。 /WR用來啟動轉(zhuǎn)換控制輸入,相當(dāng)于 ADC轉(zhuǎn)換開始( /CS=0 時),當(dāng)/WR由 HI 變?yōu)?LO時,轉(zhuǎn)換器被清除;當(dāng) /WR為 HI 時開始轉(zhuǎn)換。 CLKI N,C

9、LK R: 接振蕩電路,振蕩頻率為 1/(1.1RC) ,如圖中 R9、C6,ADC0804的最大輸入電壓為 5V, 輸出轉(zhuǎn)換值為 0~255,R5、R11 組成分壓電路,為 VREF提供基準(zhǔn)電壓。根據(jù) ADC0804原 理圖,將輸入模擬值轉(zhuǎn)換成數(shù)字值后由 P0口輸出。 2.4 單片機電路 單片機電路主要是單片機的最小系統(tǒng),其原理圖如圖 2-5 所示 圖 2-5 單片機電路原理圖 該部分電路主要由 89S51、晶振和復(fù)位電路組成其原理圖如 2-6所示。采用 12M的晶 振,機器周期為 0.1

10、us;上電復(fù)位;信號輸入到外中斷 0,在中斷中啟動 AD 轉(zhuǎn)換; AD轉(zhuǎn) 換結(jié)束標(biāo)志作為外中斷 1的中斷源,在中斷 1中讀取數(shù)據(jù)并保存; P1口為數(shù)碼管提供斷碼; P0.0~P0.7分別為 AD的啟動信號、 AD的讀取信號和數(shù)碼管的掃描信號。 2.5 顯示電路 顯示電路采用數(shù)碼管來顯示 如圖 2-6 所示。 圖2-6 顯示電路原理圖 該部分電路采用 3位數(shù)碼管來交替顯示所測電壓的有效值和峰值, 同時數(shù)碼管采用 動態(tài)顯示,每 1ms刷新一位, 用3個8550的PNP型三極管來片選。 圖中smg0~smg7與單片 機P0口相連接,三極管的集電極分別與共陽數(shù)碼管

11、9腳相連接,基極分別與單片機的 P2.1~P2.3相連接。 3 軟件設(shè)計 3.1 總軟件流程 總軟件流程圖如圖 3-1 所示: 圖 3-1 總軟件流程圖 3.2 初始化程序 初始化程序主要是定義主程序中要用的變量和定時器的初始化。 變量定義如下: unchar dat; //AD 采樣數(shù)據(jù)變量 unchar tab[3]; //顯示數(shù)據(jù)各個位存儲數(shù)組 定時器初始化流程圖如圖 3-2 所示: 圖 3-2 定時器初始化流程圖 3.3 AD 采樣程序 AD 采樣主要是根據(jù) ADC0804 的時序進行對外部數(shù)據(jù)的采用讀取。其中包括 AD 初始化時序和 AD 數(shù)據(jù)讀取

12、程序。 AD 時序圖 3-3 所示: 圖 3-3 AD 時序圖 根據(jù) 3-3 圖所示時序,寫出 AD 程序流程圖,如圖 3-4 所示 圖 3-4 AD 程序流程圖 3.4 數(shù)據(jù)處理程序 AD 對 AD 采樣的數(shù)據(jù)必須進行處理才能正常地顯示。首先的要把十六進制數(shù)的 值轉(zhuǎn)換成十進制數(shù),然后進行值處理,求出有效值,峰值,接著分別求出數(shù)據(jù)中的各 個位上的數(shù)字,以便顯示。其程序流程圖如圖 3-7 所示。 圖 3-7 數(shù)據(jù)處理程序流程圖 3.5 數(shù)據(jù)顯示程序 數(shù)據(jù)顯示主要是用數(shù)碼管動態(tài)掃描的方法。其程序流程圖如土 3-8 所示 圖 3-8 數(shù)據(jù)顯示程序流程圖

13、 4 調(diào)試 4.1 調(diào)試準(zhǔn)備 調(diào)試所用到的儀器有萬用表、直流穩(wěn)壓電源、示波器、信號發(fā)生器。運用萬用表 來測量電阻、電壓,直流穩(wěn)壓電源接正負(fù) Vs和地,信號發(fā)生器產(chǎn)生信號,示波器顯示 輸出波形和峰值。 4.2 關(guān)鍵點調(diào)試 (1)、放大電路調(diào)試前要先進行調(diào)零,即將運放的 2個輸入端(同相輸入端和反向輸 入端)對地短路,用萬用表測輸出電壓,調(diào)節(jié)滑動變阻器 R1,使輸出電壓為 0,如果不 進行調(diào)零,則會導(dǎo)致輸出電壓有偏差。 ( 2)、注意輸入 A/D的基準(zhǔn)電壓為 1/2vef, 同時最合適的基準(zhǔn)電壓為 2.56V, 以便計算時 方便。 4.2.1 放大波形 (1)、理論波形

14、 2)、實際波形 4.2.2 顯示電路 4.3 測試結(jié)果 4.4 誤差分析 ( 1)放大電路的放大倍數(shù)會因輸入電阻, 反饋電阻與理論值有偏差而存在一定的誤 差,放大倍數(shù)過大會波形互失真; ( 2)當(dāng)ADC0804的基準(zhǔn)電壓為 2.56V時,其最小分辨率為 20mv,因此測量值會有± 20mv 的偏差; (3)輸入信號存在干擾和波動; (4)偏置電壓引起的誤差。 5 結(jié)束語 5.1 總結(jié) 通過本次短學(xué)期的實驗,使我對很多芯片有了一定的了解和鞏固,對它們的功能 有了一定的熟悉和掌握。如 AD737,該芯片可以用來將交流電轉(zhuǎn)換成真有效值的直流 電,如 ADC

15、0804芯片可實現(xiàn)數(shù)模轉(zhuǎn)換,同時對真有效值的轉(zhuǎn)換、放大等電路的設(shè)計有 了進一步的理解和掌握。 在電路設(shè)計中必須注意電路中各元件值的選擇會影響電路最終的結(jié)果。當(dāng)在設(shè)計 放大電路時,輸入電阻、反饋電阻的不同就會使放大倍數(shù)有所不同,根據(jù)題目要求和 芯片的資料,必須保證最低放大倍數(shù) 25,因此如放大倍數(shù)太小則不能滿足要求,而太 大則會導(dǎo)致輸出波形的失真。因此,要合理選擇各元件的值。在電路調(diào)試時,應(yīng)該分 模塊進行調(diào)試,及時發(fā)現(xiàn)問題解決問題, 等所有模塊都調(diào)試成功再進行總體的調(diào)試。 最 后要根據(jù)自己所測的結(jié)果,進行分析,尤其對測試出的結(jié)果與理論結(jié)果進行比較,是 否有誤差,并分析形成誤差的原因,如何減少誤

16、差。 5.2 展望 雖然該電路已經(jīng)基本能實現(xiàn)對真有效值的測量和顯示,但測量結(jié)果還存在著較大 的誤差,電路設(shè)計還有待于進一步的完善,各部分電路的穩(wěn)定性也有待于進一步的提 高,希望通過更進一步的研究和學(xué)習(xí),實現(xiàn)用更少的元件,設(shè)計出更加合理、更高效 的電路。 附錄: 1 總原理圖

17、 2 程序清單 主程序模塊 #include #include #include"adc0804.h" #include"smgdis.h" #define unchar unsigned char #define unint unsigned int unchar count=0; 10 unchar ID=0; // 任務(wù) ID,時間片分配 ID #define a 0.5 static unchar y; static time_

18、init() { TMOD=0x01;/* 定時器 T0方式 1(16位計數(shù)器) */ /* 公式為: x=65536-fosc/12*t 65536-50000=15536 其中x為定時初值, fosc 為晶振頻率, t 為定時時間 */ TH0=15536/256; /* 定時器高位 */ TL0=15536%256; /*定時器低位 , 定時時間為 50ms , 20次為1s */ ET0=1;/* 允許定時器 T0中斷 */ TR0=1;/* 開定時器 T0*/ EA=1;/* 開總中斷 */ } void main() { unchar dat; uncha

19、r tab[3]; time_init(); while(1) { dat=get_adc_value(); value_done(dat,tab,ID); led_display(tab[0],tab[1],tab[2]); } } void timer0() interrupt 1 { TR0=0; TH0=15536/256; TL0=15536%256; /* 重裝初值 */ count++; /* 計數(shù),累加中斷次數(shù) */ if(count==20) /* 判斷是否到 10次,即 0.5s*/ { count=0; ID++; /* 轉(zhuǎn)換下一個顯示 *

20、/ if(ID==3) ID=0; 11 TR0=1; } A/D 轉(zhuǎn)換模塊:(頭文件) #ifndef __ADC0804_H__ #define __ADC0804_H__ #ifndef unchar #define unchar unsigned char #endif #ifndef unint #define unint unsigned int #endif #define adc_databus P1 //the databus of ADC sbit cs_adc=P2^0; sbit wr=P3^6; sbit rd=P3^7; //to cho

21、ose the chip ADC0804 //wr# signal //rd# signal void value_done(unint tvdata,unchar led[],unchar ID) unint temp; //temp=(unint)(tvdata*1.0/255*500); temp=(unint)(tvdata*2); switch(ID) { case 0: //有效值 break; case 1: //峰值 temp*=sqrt(2); break; default: //其他情況 break; } led[0]=(temp/100)%10;

22、//最高位 led[1]=(temp/10)%10; led[2]=temp%10; //最低位 if(led[0]>10||led[0]<0) led[0]=11; if(led[1]>10||led[1]<0) led[0]=11; if(led[2]>10||led[2]<0) led[0]=11; 12 unchar get_adc_value(void) { unchar k; unint tvdata; // adc0804 start // cs_adc=0; k=k; //nop wr=0; k=k; wr=1; k=k; cs_adc=1; k=k;k=k;k

23、=k; // read value of adc0804 // adc_databus=0xff; cs_adc=0; k=k; rd=0; k=k; tvdata=adc_databus; rd=1; k=k; cs_adc=1; k=k; return tvdata; } #endif 顯示模塊(頭文件) #ifndef __SMGDIS_H__ #define __SMGDIS_H__ #ifndef unchar #define unchar unsigned char #endif #ifndef unint #define unint unsigned int

24、 #endif /* 全局變量定義 */ #define DataBus P0 //數(shù)據(jù)口定義 sbit c0=P2^1; //數(shù)碼管 0 控制腳 sbit c1=P2^2; //數(shù)碼管 1 控制腳 sbit c2=P2^3; //數(shù)碼管 2 控制腳 void delay(void) { unchar i; unchar t=1; while(t--) 13 for(i=0;i<125;i++); } void led_display(unchar a,unchar b,unchar c) { /*共陽數(shù)碼管數(shù)字碼 0~9+全暗碼 */ Unchar code tab0[

25、12]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0x86}; DataBus=(tab0[a]&0x7f);/* 送顯示碼,由 a 控制 */ c0=0; /* 選通數(shù)碼管 0*/ delay(); DataBus=0xff; c0=1; DataBus=tab0[b];/* 送顯示碼,由 b 控制*/ c1=0; /* 選通數(shù)碼管 1*/ delay(); DataBus=0xff; c1=1; DataBus=tab0[c];/* 送顯示碼,由 c 控制*/ c2=0; /* 選通數(shù)碼管 2*/ delay(); DataBus=0xff; c2=1; } #endif 3 實物圖 14

展開閱讀全文
溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!