DA轉(zhuǎn)換實(shí)驗(yàn)報(bào)告_第1頁
DA轉(zhuǎn)換實(shí)驗(yàn)報(bào)告_第2頁
DA轉(zhuǎn)換實(shí)驗(yàn)報(bào)告_第3頁
DA轉(zhuǎn)換實(shí)驗(yàn)報(bào)告_第4頁
DA轉(zhuǎn)換實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 D/A轉(zhuǎn)換實(shí)驗(yàn)報(bào)告 組員: 田亞峰 杜亞亞 摘要此次設(shè)計(jì)實(shí)驗(yàn)是以AT89C51、DAC0832、741為核心,并加以其他輔助電路來實(shí)驗(yàn)D/A轉(zhuǎn)換,其中主要是利用單片機(jī)來控制從數(shù)字量到模擬量的整個(gè)轉(zhuǎn)換。先是從鍵盤輸入數(shù)字量到單片機(jī),再從單片機(jī)輸出到DAC0832,經(jīng)D/A轉(zhuǎn)換后輸出與該數(shù)字量大小對(duì)應(yīng)的模擬電壓,并用LED數(shù)碼管顯示出來輸入的數(shù)字量值。目錄1.方案設(shè)計(jì)及論證11.1理論分析11.2單片機(jī)選擇11.3鍵盤設(shè)計(jì)21.4 D/A轉(zhuǎn)換選擇22.硬件設(shè)計(jì)22.1單片機(jī)模塊22.2 D/A轉(zhuǎn)換模塊33.軟件設(shè)計(jì)54.仿真驗(yàn)證及調(diào)試54.1調(diào)試方法54.2性能測(cè)試儀器64.3實(shí)驗(yàn)數(shù)據(jù)64.4誤

2、差分析65.設(shè)計(jì)總結(jié)及體會(huì)7附錄(一):實(shí)物圖9附錄(二)軟件程序91. 方案設(shè)計(jì)及論證1.1理論分析 根據(jù)本次設(shè)計(jì)任務(wù)的要求,由單片機(jī)模塊、D/A轉(zhuǎn)換模塊、反相比例加法運(yùn)算電路構(gòu)成。系統(tǒng)框圖如下:圖1 系統(tǒng)框圖1.2單片機(jī)選擇方案一:選用AT89C51方案二:選用AT89C52論證:1)AT89C52的程序空間為8K 比AT89C51的空間大2)AT89C52多了個(gè)T2定時(shí)器,所以比89C51多幾個(gè)寄存器 因此選用AT89C52.1.3鍵盤設(shè)計(jì)方案一:采用獨(dú)立式鍵盤方案二:采用矩陣式鍵盤論證:由于獨(dú)立式鍵盤占用較多的I/O線,因此選用4×4矩陣式鍵盤輸入,以保證10個(gè)數(shù)全部完整輸入

3、,節(jié)省I/O端口資源。1.4 D/A轉(zhuǎn)換選擇此次設(shè)計(jì)選用DAC0832,它是由一個(gè)八位輸入鎖存器、一個(gè)8位D/A鎖存器和一個(gè)8位D/A轉(zhuǎn)換器三個(gè)部分組成。D/A轉(zhuǎn)換器將輸入的數(shù)字量轉(zhuǎn)換為模擬量輸出,數(shù)字量是由若干數(shù)位構(gòu)成的,就是把每一位上的代碼按照權(quán)值轉(zhuǎn)換為對(duì)應(yīng)的模擬量,再把各位所對(duì)應(yīng)的模擬量相加,所得到各位模擬量的和便是數(shù)字量所對(duì)應(yīng)的模擬量。2.硬件設(shè)計(jì)2.1單片機(jī)模塊89C51單片機(jī)本身的電源電壓是5v,有兩種低功耗方式:待機(jī)方式和掉電方式。在掉電狀態(tài)下,其耗電電流為3mA,在掉電方式下提供約50mA的電流。80C51單片機(jī)是8位單片機(jī),速度較慢,且不能在線編程。在單片機(jī)的外部加一個(gè)振蕩電

4、路,這個(gè)電路有晶振和兩個(gè)電容組成,晶振兩端分別接到兩個(gè)電容的一端,兩個(gè)電容的另一端都要接地。這兩個(gè)電容串聯(lián)的容量就是就等于負(fù)載電容,這兩個(gè)電容選用33PF的。在P0端口接一個(gè)上拉電阻,增加高電平驅(qū)動(dòng)能力。P0口輸出七段碼,P2.0、P2.1、P2.2、P2.3口輸出位選碼。圖2 單片機(jī)及外部電路2.2 D/A轉(zhuǎn)換模塊 本次設(shè)計(jì)的D/A轉(zhuǎn)換電路倒T電阻網(wǎng)絡(luò),當(dāng)數(shù)字量從單片機(jī)輸出到轉(zhuǎn)換器后,經(jīng)過基準(zhǔn)電壓VREF激勵(lì)內(nèi)部的倒T形電阻網(wǎng)絡(luò),其輸出是模擬電流,為了將電流轉(zhuǎn)換成電壓信號(hào),外接運(yùn)算放大器,反饋電阻為片內(nèi)電阻 。 圖3 功能框圖一級(jí)運(yùn)放得到單極性輸出電壓,二級(jí)運(yùn)放構(gòu)成反相比例加法運(yùn)算電路。 圖

5、4 T形電阻網(wǎng)絡(luò)D/A轉(zhuǎn)換器 由上式可見,輸出的模擬量 與輸入的數(shù)字量( ) 成正比,這就實(shí)現(xiàn)了從數(shù)字量到模擬量的轉(zhuǎn)換。 3.軟件設(shè)計(jì)開始系統(tǒng)軟件流程圖如下圖,其中主要包含這三部分,即鍵盤輸入、數(shù)碼管顯示、DA轉(zhuǎn)換、。系統(tǒng)初始化鍵盤輸入單片機(jī)數(shù)碼管顯示D/A轉(zhuǎn)換輸出 圖5 流程圖 鍵盤輸入:通過行、列確定一個(gè)數(shù)。 數(shù)碼管顯示:通過P0和P2端口分別進(jìn)行位選和段選。4.仿真驗(yàn)證及調(diào)試4.1調(diào)試方法步驟:1)鍵盤鍵入數(shù)字量;2) 鍵入不同值,按12鍵轉(zhuǎn)換以后讀出電壓表表上的數(shù)值。圖6 初始值圖7 中間顯示值4.2性能測(cè)試儀器直流電源 數(shù)字萬用表4.3實(shí)驗(yàn)數(shù)據(jù) 表1 數(shù)據(jù)表12345678910數(shù)碼

6、管顯示0.000.501.001.552.003.003.504.004.505.00 實(shí)測(cè)0.000.490.991.541.983.023.524.024.510.00電壓表顯示0.000.491.001.541.992.983.493.984.430.004.4誤差分析在實(shí)際測(cè)量測(cè)量時(shí)有誤差存在,誤差允許的范圍是-0.02V+0.02V。造成誤差的原因有以下幾點(diǎn):1)D/A轉(zhuǎn)換器中元器件參數(shù)誤差;2)基準(zhǔn)電壓不穩(wěn)定;3)運(yùn)算放大器的零點(diǎn)漂移。 5.設(shè)計(jì)總結(jié)及體會(huì) 在收到任務(wù)時(shí),根據(jù)要求從總體到部分來分析,最后到具體的器材使用,而且對(duì)每個(gè)組員合理分配任務(wù)。在設(shè)計(jì)時(shí),對(duì)每個(gè)模塊設(shè)計(jì)多方案,從

7、中擇優(yōu)選用。硬件部分要注意所加電壓不能過大,否則會(huì)燒毀集成塊。實(shí)際電路焊接時(shí),線路要盡量短、直,便于以后檢查。對(duì)于每一點(diǎn)要焊實(shí),不能出現(xiàn)虛焊、短路。軟件設(shè)計(jì)要模塊化,語言要盡量簡潔程序應(yīng)采用模塊化結(jié)構(gòu),程序代碼簡潔,編寫程序需要不斷的修改、整理、優(yōu)化,以使程序具有較少的代碼量,較高工作效率。這設(shè)計(jì)讓我們學(xué)到了很多知識(shí),了解和掌握許多芯片的作用和功能。通過小組成員的共同努力實(shí)驗(yàn)終于出來了,非常有成就感。也要感謝老師的悉心指導(dǎo)。附錄(一):實(shí)物圖圖1圖2附錄(二)軟件程序#include <reg51.h> #include <intrins.h> #define uint

8、 unsigned int #define uchar unsigned charsbit w_select1=P20;sbit w_select2=P21;sbit w_select3=P22;sbit w_select4=P23;sbit cs_1=P27;/unsigned long int a=0; uchar code table10 = 0xC0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90; /uchar code table10 = 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d,

9、0x07, 0x7f, 0x6f; /* * 名稱 : Delay_1ms() * 功能 : 延時(shí)子程序,延時(shí)時(shí)間為 1ms * x * 輸入 : x (延時(shí)一毫秒的個(gè)數(shù)) * 輸出 : 無 */ void Delay_1ms(uint x) uint i; uchar j; for(i = 0; i < x; i+) for(j = 0; j <= 148; j+); /* * 名稱: Keyscan() * 功能: P1外接4×4按鍵, 按照掃描法讀出鍵值* 輸出: 按鍵值015/如無鍵按下, 返回16*/ uchar Keyscan(void) uchar i, j

10、, temp, Buffer4 = 0xef, 0xdf, 0xbf, 0x7f; for(j = 0; j < 4; j+) /循環(huán)四次P1 = Bufferj; /在P1高四位分別輸出一個(gè)低電平temp = 0x01; /計(jì)劃先判斷P1.0位for(i = 0; i < 4; i+) /循環(huán)四次if(!(P1 & temp) /從P1低四位,截取1位return (i + j * 4); /返回取得的按鍵值 temp <<= 1; /判斷的位,左移一位 return 16; /呵呵,實(shí)質(zhì)性的語句不過8行,就是這么簡練! void Display1(long

11、a)/顯示輸入鍵值對(duì)應(yīng)的十進(jìn)制數(shù) w_select1=0; w_select2=0; w_select3=0; w_select4=0;cs_1=1;P0 = tablea/1000&0x7f; w_select4=1;Delay_1ms(10);w_select4=0;P0 = table(a/100)%10; w_select3=1;Delay_1ms(10);w_select3=0;P0 = table(a/10)%10; w_select2=1;Delay_1ms(10);w_select2=0;P0 = tablea%10;w_select1=1;Delay_1ms(10);

12、/* * 名稱: Display(uchar k) * 功能: 將參數(shù)分成十位、個(gè)位分別顯示* 輸入: k (鍵盤數(shù)值) * 輸出: P0口輸出七段碼,P2口輸出位選碼*/ void Display2(uchar h)P2 = 0; /?P0 = tableh / 10; P2 = 0x02; Delay_1ms(5); /?5ms?P2 = 0; /?P0 = tableh % 10; P2 = 0x01; Delay_1ms(5); /?5ms? /* * 名稱 : Main() * 功能 : 主函數(shù) */ void Main(void) uchar Key_Value = 16, Key

13、_Temp1, Key_Temp2; /兩次讀出的鍵值 long Temp6,Temp7,Temp8,Temp9,Temp4=0,Temp5;int k,j=0, i=0,count;uchar A4;cs_1=1;P3=0x00;Temp4=P3;P0=0xff;while(1) /-以下讀入按鍵、消抖、等待按鍵釋放 P1 = 0xff; Key_Temp1 = Keyscan(); /先讀入按鍵if(Key_Temp1 != 16) /如果有鍵按下 Delay_1ms(5); /延時(shí)一下/Display(Key_Value); /可用顯示代替延時(shí)Key_Temp2 = Keyscan();

14、 /再讀一次按鍵if (Key_Temp1 = Key_Temp2) /必須是兩次相等Key_Value = Key_Temp1; /才保存下來,這就是消除抖動(dòng)while(Keyscan()<16)Display2(Key_Value);if(Key_Value<10)&&(i<5)/對(duì)按鍵次數(shù)進(jìn)行計(jì)數(shù)Ai=Key_Value;i+;11count=i;if(i=4)i=0;switch(count) /把連續(xù)按鍵值轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制數(shù)case 1:Temp5=A0;Display1(Temp5); Delay_1ms(5); break; case 2:Te

15、mp5=A0*10+A1;Display1(Temp5);Delay_1ms(5); break; case 3 :Temp5=A0*100+A1*10+A2;Display1(Temp5);Delay_1ms(5); break; case 4:Temp5=A0*1000+A1*100+A2*10+A3; Display1(Temp5);Delay_1ms(5);if(Temp5>=5001) Temp5=0;break; if(Key_Value=13)/鍵值步進(jìn)加20 if(j=1)Temp6=Temp7;elseTemp6=Temp5;Temp6=Temp6+20; Temp7=Temp6;Display1(Temp7);Delay_1ms(5); k=j=1;if(Key_Value=14)/鍵值步進(jìn)減20 switch(j) case 0:Temp8=Temp5;break; case 1:Temp8=Temp7;break; case 2:Temp8=Temp9;break;Temp8=Temp8-20; Temp9=Temp8;Display1(Temp9);Delay_1ms(5);k=j=2;if(Key_Value=12) /DA轉(zhuǎn)換控制鍵 s

溫馨提示

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

評(píng)論

0/150

提交評(píng)論