版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、任務要求14路模擬量輸入,輸入電壓范圍05V,分辨率8位,轉換時間100us,具有顯示(數碼管)測量結果(用10進制顯示直流電壓值或交流電壓峰值)的功能;21路模擬量輸出,用來分別重現4路被采信號的波形(供示波器觀測)摘 要本數據采集系統(tǒng)是基于單片機AT89C51來完成的,4路的模擬電壓通過通用的8位A/D轉換器ADC0809轉換成數字信號后,由單片機進行數據處理,并將處理后的數據送LED顯示器顯示。再經過常用的8位D/A轉換器DAC0832將數字數據轉換成模擬量,供示波器觀測。一、系統(tǒng)的方案選擇和論證根據題目基本要求,可將其劃為如下幾個部分:l 4路模擬信號A/D轉換l 單片機數據處理l L
2、ED顯示測量結果l D/A轉換模擬量輸出系統(tǒng)框圖如圖1所示:圖 1 單片機數據采集系統(tǒng)框圖1、4路模擬信號A/D轉換由于被測電壓范圍為05V,分辨率為8位,轉換時間為100us,所以A/D轉換部分,本系統(tǒng)選擇常用的8路8位逐次逼近式A/D轉換器ADC0809。ADC0809芯片有28條引腳,采用雙列直插式封裝。下面說明各引腳功能。 IN0IN7:8路模擬量輸入端。2-12-8:8位數字量輸出端。ADDA、ADDB、ADDC:3位地址輸入線,用于選通8路模擬輸入中的一路。ALE:地址鎖存允許信號,輸入,高電平有效。 START: AD轉換啟動信號,輸入,高電平有效。 EOC: AD轉換結束信號,
3、輸出,當AD轉換結束時,此端輸出一個高電平(轉換期間一直為低電平)。 OE:數據輸出允許信號,輸入,高電平有效。當AD轉換結束時,此端輸入一個高電平,才能打開輸出三態(tài)門,輸出數字量。CLK:時鐘脈沖輸入端。要求時鐘頻率不高于640KHZ。 REF(+)、REF(-):基準電壓。 Vcc:電源,單一5V。 GND:地。 ADC0809的工作過程是:首先輸入3位地址,并使ALE=1,將地址存入地址鎖存器中。此地址經譯碼選通8路模擬輸入之一到比較器。START上升沿將逐次逼近寄存器復位。下降沿啟動 AD轉換,之后EOC輸出信號變低,指示轉換正在進行。直到AD轉換完成,EOC變?yōu)楦唠娖?,指示AD轉換結
4、束,結果數據已存入鎖存器,這個信號可用作中斷申請。當OE輸入高電平 時,輸出三態(tài)門打開,轉換結果的數字量輸出到數據總線上。2、單片機數據處理選擇美國ATMEL公司的CMOS8位單片機AT89C51,其工作電壓為2.76V,具有低電壓低功耗性能和高性價比,兼容標準MCS-51指令系統(tǒng),4Kbytes的PEROM和128bytes的RAM,片內置通用的8位中央處理器(CPU)和Flash存儲單元。AT89C51是一種帶有4 KB閃爍可編程可擦除只讀存儲器的低電壓,高性能CMOS 8位微處理器,可為很多嵌入式控制系統(tǒng)提供靈活且價廉的方案。所以,本設計采用ATMEL公司的AT89C51作為程序的主控芯
5、片。 AT89C51數據總線是由P0口提供的,P0口本身能以多種方式提供數據總線和地址總線。當ALE輸出信號為高電平時,P0將輸出的數據鎖入總線驅動器中作為地址的低8位,然后和P2送出來的高8位地址一起組成一個完整的16位地址,以尋址到外部的64KB的地址空間。AT89C51的地址總線比較簡單(只有3個:RD、WR、PSEN),其中RD是用來讀取外部數據內存的控制線,WR是用來寫數據到外部數據內存的控制線,PSEN是用來存取外部程序內存的讀取控制線。3、LED顯示測量結果 這里選擇的是廣州周立功單片機發(fā)展有限公司自行設計的數碼管顯示驅動及鍵盤掃描管理芯片ZLG7289B,它可直接驅動 8 位共
6、陰式數碼管(或 64 只獨立 LED) ,同時還可以掃描管理多達64 只按鍵。ZLG7289B 內部含有顯示譯碼器,可直接接受 BCD 碼或 16 進制碼,并同時具有 2 種譯碼方式。此外,還具有多種控制指令,如消隱閃爍左移右移段尋址等。ZLG7289B采用 SPI 串行總線與微控制器接口,僅占用少數幾根 I/O口線。利用片選信號,多片 ZLG7289B 還可以并接在一起使用,能夠方便地實現多于 8 位的顯示或多于 64只按鍵的應用。4、D/A轉換模擬量輸出 在本設計中D/A轉換的作用是使得采集處理過的數據通過D/A轉換電路后送示波器進行觀察。這里選擇了DAC0832這一D/A轉換器。它是一個
7、8位D/A轉換芯片,唯一電源供電,從+5V+15V均可正常工作,其引腳功能說明如下:DI0DI7:數據輸入線,TLL電平。 ILE:數據鎖存允許控制信號輸入線,高電平有效。 CS:片選信號輸入線,低電平有效。 WR1:為輸入寄存器的寫選通信號。 XFER:數據傳送控制信號輸入線,低電平有效。 WR2:為DAC寄存器寫選通輸入線。 Iout1:電流輸出線。當輸入全為1時Iout1最大。 Iout2:電流輸出線。其值與Iout1之和為一常數。 RFb:反饋信號輸入線,芯片內部有反饋電阻. Vcc:電源輸入線 (+5v+15v) Vref:基準電壓輸入線 (-10v+10v) AGND:模擬地,摸擬
8、信號和基準電源的參考地. DGND:數字地,兩種地線在基準電源處共地比較好二、系統(tǒng)的硬件設計本系統(tǒng)硬件電路包括以下幾個部分:l AT89C51外圍電路(如時鐘電路、復位電路等)l AT89C51和ADC0809接口電路l AT89C51和DAC0832接口電路l LED顯示電路1、 AT89C51外圍電路(如時鐘電路、復位電路等)AT89C2051中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAl1和XTAL2分別是該放大器的輸入端和輸出端,這個放大器與作為反饋元件的片外石英晶體一起構成自己振蕩器,外接石英晶體和電容C1、C2接在放大器的反饋回路中構成并聯(lián)振蕩電路。對外接電容沒有太嚴格
9、的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器的穩(wěn)定性等,這里選用12MHz的石英晶體,電容選用33pF,如圖2所示。復位電路的基本功能是:系統(tǒng)上電時提供復位信號,直至系統(tǒng)電源穩(wěn)定后,撤銷復位信號。為可靠起見,電源穩(wěn)定后還要經一定的延時才撤銷復位信號,以防電源開關或電源插頭分-合過程中引起的抖動而影響復位。本設計的時鐘電路如圖3所示。 圖 2 時鐘電路 圖 3 復位電路2、 AT89C51和ADC0809接口電路AT89C51和ADC0809接口電路如圖4所示,START和ALE互連可使ADC0809在接收模擬量路數地址時候啟動工作。START的啟動信號由89C51的和P2.7經或門
10、U7A產生。平時,START因P2.7高電平而被封鎖。ALE的正脈沖使得ADDA、ADDB和ADDC上的地址鎖存,選中IN0-IN3路模擬電壓送入比較器,這里ADDA、ADDB和ADDC分別和P0.0,P0.1,P0.2連接。EOC線經過反相器和AT89C51的INT1線相連,這里采用中斷方式來和ADC0809傳送A/D轉換后的數字量。為了給OE線分配一個地址,把AT89C51的和P2.7經或門U7B和OE相連。平時,因P2.7為高電平,從而使得OE處于低電平封鎖狀態(tài)。在響應中斷時候,單片機執(zhí)行中斷服務程序使得OE變?yōu)楦唠娖剑瑥亩蜷_三態(tài)輸出鎖存器,讓CPU提取A/D轉換后的數字量。ADC08
11、09的時鐘CLK由兩個D觸發(fā)器把AT89C51的ALE信號4分頻后來得到,如圖5所示,如果使用單片機時鐘電路選擇12MHz的晶振,那么ALE信號的頻率為2MHz(12/6),經兩個串聯(lián)D觸發(fā)器四分頻之后,CLK端的頻率為500KHz,能夠滿足ADC0809要求。圖 4 AT89C51和ADC0809接口電路圖 5 時鐘分頻電路3、 AT89C51和DAC0832接口電路圖 6 AT89C51和DAC0832接口電路AT89C51和DAC0832接口時,可以有三種方式:直通方式、單緩沖方式和雙緩沖方式。本系統(tǒng)選擇單緩沖方式,電路如圖6所示。ILE直接接到VCC,允許數字量輸入,和由譯碼器的輸出端
12、F7控制,從而控制DAC0832的8位輸入寄存器。AT89C51的和DAC0832的連接,直接接地,這樣 和之間的延遲可以滿足不小于500ns。參考電壓直接選擇VCC。Rbf作為運算放大器反饋線,接到uA741輸出端,Iout1和Iout2接到其輸入端。4、LED顯示電路LED顯示電路如圖7所示。圖中,VCC和GND之間接入100uF的電容,使得電源更加穩(wěn)定,通過拉低引腳的方法復位ZLG7289B,四個數碼管是共陰式的,至是限流電阻,至是下拉電阻。KC0/DIG0 KC3/DIG3來作為位選信號來選擇LED數碼管的顯示。在這里使用鍵盤功能,真正實現人機交互,四個按鍵開關分別控制四路模擬信號的輸
13、入。晶振這里選擇和單片機同樣的晶振,即12MHz。數碼管0顯示選擇通道,數碼管1、2、3顯示電壓峰值。ZLG7289B的CS、CLK和DIO引腳分別接在單片機P1.0、P1.1和P1.2引腳,ZLG7289B的INT接單片機的P3.3,也即中斷1,實現模擬信號輸入通道的選擇。圖 7 LED顯示電路部分(1)圖 8 LED顯示電路部分(2)三、系統(tǒng)的軟件實現本系統(tǒng)軟件包括系統(tǒng)初始化、數據采集與處理,AD轉換、DA轉換和數據顯示幾個部分。其中主程序流程圖如圖8所示,AD轉換程序流程圖如圖9所示,DA轉換程序如圖10所示。實驗源程序見附錄2.圖 9主程序流程圖圖 10 A/D轉換流程圖圖 11 鍵盤
14、控制程序流程圖四、電路和程序調試 對電路的調試氛圍對硬件的調試和對軟件的調試。所以在調試的時候,先檢查硬件電路各接線是否正確,有誤短路現象,如果有那就要及時改正。軟件的調試,首先要在Keil C51上面編譯運行通過,由于有中斷的緣故,所以中斷部分要結合硬件電路進行調試,在這里可以借用實驗用Monitor-51仿真器來進行調試,而不是一次次把程序寫進單片機進行調試,那樣不僅麻煩,而且還有可能寫壞單片機。在軟件硬件結合起來調試的過程中,要分模塊進行調試,比如本實驗中,有鍵盤中斷、LED顯示、AD轉換和DA轉換四個大的模塊,根據程序流程圖,應該依次對上面四個模塊分別進行調試檢查。調試過程中,要熟悉使
15、用示波器、萬用表等工具,硬件部分,上電以后,要用示波器測試晶振是否正常工作,單片機和其他芯片個引腳電位是否正常。軟件部分,可以通過Keil C51來觀察各特殊寄存器和某些變量的值來驗證程序和電路的準確性,也可以設置斷點來查看程序的運行路線,比如要查看中斷是否執(zhí)行,就可以在中斷服務程序里面設置斷點。下面結合本人在調試中遇到的部分問題加以說明。1、LED不顯示原因:畫原理圖時候由于粗心所致,漏畫一結點,如圖12所示。從而導致SG/KRi(i=07)全部為低電平(示波器測得),而ZLG7289驅動的是共陰式數碼管,所以數碼管不顯示。解決方法:按照圖13接通VCC. 圖 12 漏結點 圖 13原圖(節(jié)
16、點VCC)2、測試P0口達不到高電平原因:經過查詢P0口內部結構,發(fā)現P0口是接在兩個三極管VT1和VT2之間的,而P1P3口的上部是接一個電阻的。P0口的上面VT1是在進擴展存儲器或擴展總線時由指令控制的、平時都是截止的。一般象P00=0P00=1這些語句時控制的都是下面那個三極管的。 P0口接負載P00,VT2導通,P0點電位為0,當P01,VT2截止,而VT1始終是截止的,這樣P0點就等于懸空了,P0是高阻抗輸入,容易受外界電路干擾 。3、分頻信號沒有出現原因:這里是采用D觸發(fā)器實現四分頻電路,結果測試分頻器輸出引腳根本沒有出現分頻信號,但是單片機ALE輸入信號是正常
17、的,問題就出現在D觸發(fā)器這塊,原因如圖14所示。由于看到D觸發(fā)器示意圖PR和CLR端有個圓圈,所以就誤認為那是接低電平的,所以就不假思索的和地連接起來了,這種毛病得徹底改正啊。于是我重新查看了一下D觸發(fā)器資料,發(fā)現其真值表如下:圖 14 D觸發(fā)器真值表很明顯,只有PR和CLR同時為高電平時,D觸發(fā)器才能正常工作,所以以后在使用某一芯片之前,一定要認真查看其技術資料才行。解決方法:D觸發(fā)器PR和CLR接VCC,如圖15所示。 圖 15 D觸發(fā)器PR和CLR接地 圖 16 D觸發(fā)器PR和CLR接VCC4、EOC始終是高電平原因:EOC始終是高電平,那就說明ADC0809根本就沒有啟動,而ADC08
18、09是在START和ALE接收模擬量路數地址時候啟動工作的。那么問題就出現在這里,原來是地址寫錯了,經過改正,啟動正常,轉換結果也正常了。五、實驗結果及結論1、AD轉換及LED顯示結果及結論實驗中,通道0,通道1和通道2分別接地、VCC和信號發(fā)生器出來的信號,通道0和通道1結果如下:按鍵通道實際值LED顯示值000V(地)0.030115V(VCC)5.001注:LED顯示值最后一位表示選擇通道。下面表格是通道2結果,該表格適用于頻率的范圍為5HZ2KHZ,這里選取了100Hz。頻率(Hz)100100100100100100100100幅值(V)2.53.03.23.54.04.24.55.
19、0LED2.5023.0323.2123.4723.9624.2924.5324.982注:LED顯示值最后一位表示選擇通道。2、DA轉換及示波器顯示結果如圖17所示,下面一路是輸入信號,上面一路是DA轉換輸出信號,有圖可見,輸出波形基本重現了原始輸入波形,通過將兩者重合,可以發(fā)現,相位也比較吻合。圖 17 DA轉換結果結論:本系統(tǒng)符合任務要求,能夠很好的實現AD轉換、DA轉換以及鍵盤控制和LED顯示。六、實驗心得體會從對實驗題目的認真分析,到實驗方案的設計和論證,從源程序的編寫到面包板電路的搭建,還有就是最后實驗電路的調試,這一系列過程走下來,可謂是艱辛啊。由于本科期間做的電路實驗大部分都是
20、驗證性實驗,所以就少了設計、制作和調試電路中的所有能遇到的問題,而作為研究生,這些問題在以后的學習研究中必定會經常遇到,正是因為這次訓練,才真正提高了自己的發(fā)現問題、分析問題和解決問題的能力,這勢必給我以后的學習研究帶來極大的幫助。 經過這次實驗,我發(fā)現,電子技術方面的實驗或者研究,必須自始至終的細心細心在細心,調試之前一定要一遍一遍又一遍的檢查電路,確保電路連線準確無誤之后再接電源,否則就可能某些芯片就會被迅速燒壞,從而造成很多麻煩。在調試的時候,要分模塊調試,就拿本實驗來說,先調試7289按鍵中斷是否起效,數碼管顯示是否準確,再調AD是否啟動,轉換是否準確,最后再調DA部分。在這幾部分電路
21、模塊調試的時候,要學會用示波器或者萬用表測各個芯片的各個引腳電平是否正常,時鐘電路是否正常,引腳之間會不會有短路現象出現等等,軟件部分的調試,要學會單步調試和斷點調試,弄清楚程序是否按正常步驟運行,觀察各個寄存器和變量的值是否正確,中斷是否成功等。還有就是關于電路的設計和調試,切忌眼高手低,一定要多動手,遇到問題要沉著冷靜。七、感謝 首先感謝楊栓科老師從始至終的指導和最后調試階段補開實驗室給我,其次感謝師兄師姐們在我調試階段的指導和幫助,還要感謝實驗室徐崢宇和趙同學,在期末考試即將來臨的時候,他們還耐心的幫我解決調試中的各種問題。八、參考資料1 胡漢才. 單片機原理及其接口技術. 清華大學出版
22、社,2004.22 孫肖子等. 電子設計指南. 高等教育出版社,2006.13 張齊,杜群貴. 單片機應用系統(tǒng)設計技術基于C語言編程. 電子工業(yè)出版社,2004.84 王建校、楊建國、寧改娣、危建國. 51系列單片機及C51程序設計. 科學出版社,2002.45 全國大學生電子設計競賽組委會. 第五屆全國大學生電子設計競賽獲獎作品選編. 北京理工大學出版社,2003.附錄1:元件清單器件名稱個數器件名稱個數AT89C511LED4ADC08091270歐姆電阻8DAC0832110k歐姆電阻2ZLG7289B.11k歐姆電阻1DM74LS74AN2100K歐姆電阻8SN74LS138N1按鍵開
23、關512MHz晶振233pF電容2DM74LS14N110pF電容374LS022100nF電容1UA741ID1100uF電解電容1導線若干10uF電解電容1備注:調試過程中,本人對部分細節(jié)電路進行了更改,額外增加74LS373芯片,而取消使用原來的74LS138,當然也增加了一些電阻。7289電路部分,由于沒有100uF電解電容和100nF電容,所以分別用220uF電解電容和220nF電容代替,實驗結果證明對電路無大的影響,由于面包板面積有限,而布線相對較多,尤其是7289部分,所以沒有用到反相器DM74LS14N,而是使用或非門實現將ADC08509EOC信號的反相。由于7289具有按鍵
24、防抖功能,按鍵開關則是使用線頭快速接觸來實現。由于仿真器上有111.0592M晶振,所以12MHz晶振只用了一個,那就是7289時鐘電路。附錄2:實驗程序#define _SHUJU_C_#include "reg52.h"#include "zlg7289.h"#include "stdio.h"#include "absacc.h"/#define IN0 XBYTE0X7FF8 /通道0#define IN1 XBYTE0X7FF9 /通道1#define IN2 XBYTE0X7FFA /通道2#defin
25、e IN3 XBYTE0X7FFB /通道3#define dac0832Addr 0XBFFF /DAC0832地址#define uchar unsigned char#define uint unsigned int/ uint ADCFlag; /ADC處理標志 uchar DigitalDataTemp; /轉換結果uint KeyValue; /按鍵鍵值uint Key; /按鍵鍵值uchar MaxResult; /峰值uchar xdata *nCurrentAddr; /當前ADC通道的地址uchar LEDDisplayData; /LED顯示的峰值數據uint displ
26、ay100; /顯示最高位 uint display10; /顯示中間位uint display1; /顯示最低位uint i;/sbit ad_busy=P13;static uchar xdata result512; /存貯AD轉換結果void Delay(uint i);main() IT0=0;IT1=0;EX0=1; /外部中斷0開啟EX1=1; /開啟外部中斷1PX1=1;EA=1; /開啟總中斷ZLG7289_Init(20); /ZLG7289初始化 KeyValue=0xFF; /設置按鍵初值,0xFF表示沒有按下 Key=0; /按鍵中斷標志位,0:無鍵按下,1:有鍵按下 ADCFlag=0; /AD轉換結束標志,1:轉換結束,0:轉換沒結束 display100=0; display10=0; display1=0; / while(Key=0) /等待鍵盤中斷,啟動ADC0809 while(1)MaxResult=0; for(i=0;i<512;i+)*nCur
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人房產買賣合同附件清單范本3篇
- 二零二五年度美容院消防安全管理與應急預案合同4篇
- 2025年度個人教育資助貸款延期合同4篇
- 二零二五年度新型門店合伙人收益分配管理合同4篇
- 2025年度汽車租賃保險及理賠服務合同范本3篇
- 2024年中職學校教師個人工作計劃
- 花崗巖貼面施工方案
- 軸承密封套課程設計
- 二零二五版企業(yè)間資金拆借利息管理協(xié)議4篇
- 課程設計有什么專題
- 【人教版】九年級化學上冊期末試卷及答案【【人教版】】
- 四年級數學上冊期末試卷及答案【可打印】
- 人教版四年級數學下冊課時作業(yè)本(含答案)
- 中小學人工智能教育方案
- 高三完形填空專項訓練單選(部分答案)
- 護理查房高鉀血癥
- 項目監(jiān)理策劃方案匯報
- 《職業(yè)培訓師的培訓》課件
- 建筑企業(yè)新年開工儀式方案
- 營銷組織方案
- 初中英語閱讀理解專項練習26篇(含答案)
評論
0/150
提交評論