版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 《單片機課程設(shè)計》</b></p><p> 課題:ADC0809模數(shù)轉(zhuǎn)換與顯示</p><p> 專業(yè): 電氣工程及其自動化 </p><p><b> 目錄</b></p><p> 研究的目的和意義...........................
2、.......................3</p><p> 方案論證..................................................................3</p><p> 系統(tǒng)硬件設(shè)計..........................................................5</p>&l
3、t;p> 系統(tǒng)軟件設(shè)計..........................................................6</p><p> 軟硬件聯(lián)調(diào)問題......................................................8</p><p> 總結(jié)結(jié)論..................................
4、................................10</p><p> 附錄..........................................................................11</p><p><b> 一、研究目的和意義</b></p><p> 1. 掌握ADC080
5、9與單片機的接口及其編程方法。</p><p> 2. 了解A/D變換芯片ADC0809工作原理。</p><p> 3. 通過實驗了解單片機如何進行數(shù)據(jù)采集。</p><p><b> 二、方案論證</b></p><p><b> 1.實驗原理</b></p><p&
6、gt; A/D轉(zhuǎn)換器大致有三類:一是雙積分A/D轉(zhuǎn)換器,特點是精度高,抗干擾性好,價格便宜,但轉(zhuǎn)換速度慢;二是逐次逼近A/D轉(zhuǎn)換器特點是精度、速度、價格均適中;三是并行A/D轉(zhuǎn)換器,速度快,價格昂貴。</p><p> 本實驗用的ADC0809屬第二類,是八位A/D轉(zhuǎn)換器。每采集一次一般需100μS,A/D轉(zhuǎn)換結(jié)束后會自動產(chǎn)生EOC信號。</p><p> 1)ADC0809引腳含義
7、</p><p> IN0~IN7:8路模擬通道輸入,由ADDA,ADDB,ADDC三條線選擇。</p><p> ADDA、ADDB、ADDC:模擬通道選擇線,比如000時選擇0通道,111時選擇7通道。</p><p> D7~D0:數(shù)據(jù)線,三態(tài)輸出,由OE(輸出允許信號)控制輸出與否。</p><p> OE:輸出允許,該引線上
8、的高電平,打開三態(tài)緩沖器,將轉(zhuǎn)換結(jié)果放到D0~D7上。</p><p> ALE:地址允許鎖存,其上升沿將ADDA,ADDB,ADDC三條引線的信號鎖存,經(jīng)譯碼選擇對應(yīng)的模擬通道。ADDA,ADDB,ADDC可接單片機的地址線,也可接數(shù)據(jù)線。ADDA接低位線,ADDC接高位線。</p><p> START:轉(zhuǎn)換啟動信號,在模擬通道選通之后,由START上的正脈沖啟動A/D轉(zhuǎn)換過程。轉(zhuǎn)
9、換時間至少100us。</p><p> EOC(end of conversion):轉(zhuǎn)換結(jié)束信號,在START信號之后,A/D開始轉(zhuǎn)換。EOC輸出低電平,表示轉(zhuǎn)換在進行中,當(dāng)轉(zhuǎn)換結(jié)束,數(shù)據(jù)已鎖存在輸出鎖存器之后,EOC變?yōu)楦唠娖?。EOC可視作被查詢的狀態(tài)信號,亦可用來申請中斷。</p><p> REF+、REF-:基準(zhǔn)電壓輸入。</p><p> CLO
10、CK:時鐘輸入、時鐘頻率上限為1280KHz。</p><p> 2)ADC0809在實驗系統(tǒng)中的電路</p><p> 產(chǎn)生AD 變換器的控制信號:ADC0809 是CMOS 的8 位A/D 轉(zhuǎn)換器,片內(nèi)有8 路模擬開關(guān),可控制8 個模擬量中的一個進入轉(zhuǎn)換器中。ADC0809 的分辨率為8 位,轉(zhuǎn)換時間約100us,含鎖存控制的8 路多路開關(guān),輸出有三態(tài)緩沖器控制,單5V 電源
11、供電。主要控制信號說明:START 是轉(zhuǎn)換啟動信號,高電平有效;ALE 是3 位通道選擇地址(ADDC、ADDB、ADDA)信號的鎖存信號。當(dāng)模擬量送至某一輸入端(如IN1 或IN2 等),由3 位地址信號選擇,而地址信號由ALE 鎖存;EOC是轉(zhuǎn)換情況狀態(tài)信號,當(dāng)啟動轉(zhuǎn)換約100us 后,EOC 產(chǎn)生一個負(fù)脈沖,以示轉(zhuǎn)換結(jié)束;在EOC 的上升沿后,若使輸出使能信號OE 為高電平,則控制打開三態(tài)緩沖器,把轉(zhuǎn)換好的8 位數(shù)據(jù)結(jié)
12、果輸出至數(shù)據(jù)總線。至此ADC0809 的一次轉(zhuǎn)換結(jié)束了。對于ADC0809 芯片的其他介紹請參閱其數(shù)據(jù)手冊。芯片ADC0809的控制時序圖(圖14)。在實驗儀器中CS 與WR 相與后接在了ALE 和START 端,CS 與RD 相與后接在了OE 端,通過對時序和電路的綜合考慮,建議使用</p><p> 由圖15 可知,當(dāng)CS 和WR 同時為高電平時,ADC0809 開始轉(zhuǎn)換,當(dāng)轉(zhuǎn)換完成后,在INT
13、腳輸出高電平,等待讀數(shù)據(jù);當(dāng)CS 和RD 同時為高電平時,通過數(shù)據(jù)總線D[7..0]從ADC0809 讀出數(shù)據(jù)。從圖我們可以將整個控制氣分成4 個步驟狀態(tài):S0、S1、S2、S3,各狀態(tài)的動作方式如下:狀態(tài)S0:CS=1、WR=1、RD=0(由控制器發(fā)出信號要求ADC0809 開始進行模/數(shù)信號的轉(zhuǎn)換)。狀態(tài)S1:CS=0、WR=0、RD=0 (ADC0809 進行轉(zhuǎn)換動作,轉(zhuǎn)換完畢后INT將低電位升至高電位)。狀態(tài)S2
14、: CS=1、WR=0、RD=1(由控制器發(fā)出信號以讀取ADC0809 的轉(zhuǎn)換資料)。狀態(tài)S3: CS=0、WR=0、RD=0(由控制器讀取數(shù)據(jù)總線上的數(shù)字轉(zhuǎn)換資料)。由上述的四個狀態(tài)可以歸納出整個控制器的動作功能有:負(fù)責(zé)在每個步驟送出所需的CS、WR、RD 控制信號。在狀態(tài)S1 時,監(jiān)控INT 信號是否由低變高,如此以便了解轉(zhuǎn)換動作結(jié)束與否。在狀態(tài)S3,讀取轉(zhuǎn)換的數(shù)字資料。2.編碼轉(zhuǎn)換電路:計算轉(zhuǎn)換后的數(shù)字電壓信號與BCD
15、 碼的對應(yīng)關(guān)系:對8</p><p><b> 三、系統(tǒng)硬件設(shè)計</b></p><p> 該電路由51單片機、ADC0809電路及七段數(shù)碼顯示電路三部分組成,由于電路比較簡單,在總線上沒有其他器件,所以直接選通ADC0809,可以使用查詢方式,也可以使用中斷方式,EOC接P1.1。ADC0809轉(zhuǎn)換器的轉(zhuǎn)換結(jié)果顯示在七段數(shù)碼顯示電路上。</p>&
16、lt;p> 在keil編程環(huán)境下編寫程序,完成實驗功能。本實驗參考程序完成的實驗功能是調(diào)節(jié)可調(diào)電阻,改變ADC0809的0通道模擬輸入電壓,能夠在主板數(shù)碼管上顯示轉(zhuǎn)換電壓值。</p><p> 在KEIL環(huán)境下編程,編譯生成HEX文件,將HEX文件下載到實驗系統(tǒng)中。調(diào)節(jié)電位器觀察數(shù)碼管上顯示的數(shù)據(jù);用萬用表測量ADC0809的IN0的電壓值對比顯示和測量值。</p><p>
17、1.把“單片機系統(tǒng)”區(qū)域中的P0.0-P0.7與“動態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端口用8芯排線連接。 </p><p> 2.把“單片機系統(tǒng)”區(qū)域中的P2.1-P2.3與“驅(qū)動模塊”區(qū)域中的A0A1A2端口相連,“驅(qū)動模塊”區(qū)域中的B0B1B2與S2S3S4端口連接。 </p><p> 3.把“單片機系統(tǒng)”區(qū)域中的P1.2與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的ST端子用導(dǎo)線相連接。 &l
18、t;/p><p> 4.把“單片機系統(tǒng)”區(qū)域中的P1.0與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的OE端子用導(dǎo)線相連接。 </p><p> 5.把“單片機系統(tǒng)”區(qū)域中的P1.1與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的EOC端子用導(dǎo)線相連接。 </p><p> 6.把“單片機系統(tǒng)”區(qū)域中的P1.3與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的CLK端子用導(dǎo)線相連接。 </p><p>
19、 7.把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的A2A1A0端子用導(dǎo)線連接到“單片機系統(tǒng)”區(qū)域中的P1.4,P1.5,P1.6上。 </p><p> 8.把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的IN3端子用導(dǎo)線連接到“可調(diào)電壓模塊”區(qū)域中的VR1端子上。 </p><p> 啟動 9.把“單片機系統(tǒng)”區(qū)域中的P3.0-P3.7用8芯排線連接到“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的D0D1D2D3D4D5D6D7端子上。 &
20、lt;/p><p> 硬件連線圖如圖所示:</p><p><b> 四、系統(tǒng)軟件設(shè)計</b></p><p> 程序全速運行時,A/D轉(zhuǎn)換結(jié)果的讀取,必須在EOC信號有效之后。程序若采用查詢方式。則要等P1.1為高電平后才可以讀取。若采用中斷查詢方式,主程序啟動A/D轉(zhuǎn)換之后,就去處理其他事務(wù),又中斷服務(wù)程序自動讀取A/D轉(zhuǎn)換的結(jié)果。并送入
21、顯示緩沖器,中斷返回前,必須再啟動一次A/D轉(zhuǎn)換。</p><p> 編寫好程序后,使用單片機仿真調(diào)試軟件將編譯程序在PC上進行測試。</p><p><b> 實驗流程圖如下:</b></p><p><b> 程序如下:</b></p><p> #include <reg52.h
22、></p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> uchar code LEDData[]=</p><p><b> {</b></p><p> 0x3f,0x0
23、6,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f</p><p><b> };</b></p><p> sbit OE = P1^0;</p><p> sbit EOC = P1^1;</p><p> sbit ST = P1^2;</p><p&
24、gt; sbit CLK = P1^3;</p><p> void DelayMS(uint ms)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> while(ms--)</p><p><b&g
25、t; {</b></p><p> for(i=0;i<120;i++);</p><p><b> }</b></p><p><b> }</b></p><p> void Display_Result(uchar d)</p><p>&l
26、t;b> {</b></p><p> P2 = 0xf7;</p><p> P0 = LEDData[d%10];</p><p> DelayMS(5);</p><p> P2 = 0xfb;</p><p> P0 = LEDData[d%100/10];</p>
27、<p> DelayMS(5);</p><p> P2 = 0xfd;</p><p> P0 = LEDData[d/100];</p><p> DelayMS(5);</p><p><b> }</b></p><p> void main()</p>
28、<p><b> {</b></p><p> TMOD = 0x02;</p><p> TH0 = 0x14;</p><p> TL0 = 0x00;</p><p> IE = 0x82;</p><p><b> TR0 = 1;</b&
29、gt;</p><p> P1 = 0x3f;</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> ST = 0;</b></p><p><b> ST = 1;&
30、lt;/b></p><p><b> ST = 0;</b></p><p> while(EOC == 0);</p><p><b> OE = 1;</b></p><p> Display_Result(P3);</p><p><b>
31、OE = 0;</b></p><p><b> }</b></p><p><b> }</b></p><p> void Timer0_INT() interrupt 1</p><p><b> {</b></p><p>
32、 CLK = !CLK;</p><p><b> }</b></p><p><b> 五、聯(lián)調(diào)配置的問題</b></p><p><b> 一.實驗元件</b></p><p> 1)AT89C52 單片機 ,封裝形式DIP40</p><p&g
33、t; 2)300Ω電阻1個,封裝形式AXIAL0.4</p><p> 3)1KΩ電阻1個,封裝形式AXIAL0.4</p><p> 4)10KΩ電阻1個,封裝形式AXIAL0.4</p><p> 5)10uF電解電容1個,封裝形式RB.2/.4</p><p> 6) 22uF電容2個,封裝形式RAD0.1</p>
34、<p> 12M晶振一個,封裝形式XTAL1</p><p> 2K電位計一個,封裝形式vr1</p><p> 74LS245驅(qū)動器1個,封裝形式DIP20</p><p> ADC0809轉(zhuǎn)換器1個,封裝形式DIP28</p><p> 七位共陰極數(shù)碼管1個,封裝形式 shimaguan(自畫pcb元件庫元件封裝)
35、</p><p> 排阻1個,封裝形式SIP9</p><p><b> 二.實驗現(xiàn)象</b></p><p> 調(diào)節(jié)電位計阻值,數(shù)碼管數(shù)值相應(yīng)變化</p><p> 實驗中,數(shù)碼管無法正常顯示,可以加一個驅(qū)動電路,或檢查數(shù)碼管是是共陽極還是共陰極的,共陽極要加低電平,共陰極要加高電平。</p>&
36、lt;p> 實驗中數(shù)碼管顯示不停閃爍,可以通過代碼的修改來解決這個問題。</p><p><b> 六、總結(jié)</b></p><p> 課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程.隨著科學(xué)技術(shù)發(fā)展的日新日異,單片機已經(jīng)成為當(dāng)今計算機應(yīng)用中空前活躍的領(lǐng)域, 在生活中可以
37、說得是無處不在。因此作為二十一世紀(jì)的大學(xué)來說掌握單片機的開發(fā)技術(shù)是十分重要的。</p><p> 回顧起此次單片機課程設(shè)計,我仍感慨頗多,的確,從選題到定稿,從理論到實踐,在接近兩星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的的東西,同時不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的
38、理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務(wù),從而提高自己的實際動手能力和獨立思考的能力。在設(shè)計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設(shè)計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學(xué)過的知識理解得不夠深刻,掌握得不夠牢固,比如說不懂一些元器件的使用方法,對單片機C語言掌握得不好……通過這次課程設(shè)計之后,一定把以前所學(xué)過的知識重新溫故。</p><p&g
39、t; 通過這次的課程設(shè)計作品的制作讓我對單片機的理論有了更加深入的了解,同時在具體的制作過程中我們發(fā)現(xiàn)現(xiàn)在書本上的知識與實際的應(yīng)用存在著不小的差距,書本上的知識很多都是理想化后的結(jié)論,忽略了很多實際的因素,或者涉及的不全面,可在實際的應(yīng)用時這些是不能被忽略的,我們不得不考慮這方的問題,這讓我們無法根據(jù)書上的理論就輕易得到預(yù)想中的結(jié)果,有時結(jié)果甚至很差別很大。通過這次實踐使我更深刻的體會到了理論聯(lián)系實際的重要性,我們在今后的學(xué)習(xí)工作中會
40、更加的注重實際。</p><p><b> 附錄</b></p><p><b> 原理圖</b></p><p><b> 2、PCB圖</b></p><p><b> 3、程序清單</b></p><p> #inc
41、lude <reg52.h></p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> uchar code LEDData[]=</p><p><b> {</b></p><
42、;p> 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f</p><p><b> };</b></p><p> sbit OE = P1^0;</p><p> sbit EOC = P1^1;</p><p> sbit ST = P1^2;&l
43、t;/p><p> sbit CLK = P1^3;</p><p> void DelayMS(uint ms)</p><p><b> {</b></p><p><b> uchar i;</b></p><p> while(ms--)</p>
44、<p><b> {</b></p><p> for(i=0;i<120;i++);</p><p><b> }</b></p><p><b> }</b></p><p> void Display_Result(uchar d)</p&
45、gt;<p><b> {</b></p><p> P2 = 0xf7;</p><p> P0 = LEDData[d%10];</p><p> DelayMS(5);</p><p> P2 = 0xfb;</p><p> P0 = LEDData[d%100/
46、10];</p><p> DelayMS(5);</p><p> P2 = 0xfd;</p><p> P0 = LEDData[d/100];</p><p> DelayMS(5);</p><p><b> }</b></p><p> void m
47、ain()</p><p><b> {</b></p><p> TMOD = 0x02;</p><p> TH0 = 0x14;</p><p> TL0 = 0x00;</p><p> IE = 0x82;</p><p><b>
48、TR0 = 1;</b></p><p> P1 = 0x3f;</p><p><b> while(1)</b></p><p><b> {</b></p><p><b> ST = 0;</b></p><p><
49、;b> ST = 1;</b></p><p><b> ST = 0;</b></p><p> while(EOC == 0);</p><p><b> OE = 1;</b></p><p> Display_Result(P3);</p><
50、p><b> OE = 0;</b></p><p><b> }</b></p><p><b> }</b></p><p> void Timer0_INT() interrupt 1</p><p><b> {</b></p
51、><p> CLK = !CLK;</p><p><b> }</b></p><p><b> 參考文獻</b></p><p> 單片機C語言程序設(shè)計實訓(xùn)100例</p><p> 樓然苗、李光飛 單片機課程設(shè)計指導(dǎo) 北京航空航天大學(xué)出版社</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計---基于adc0809的數(shù)字電壓表設(shè)計
- 畢業(yè)設(shè)計--基于adc0809液晶顯示的數(shù)字電壓表設(shè)計
- 數(shù)字式電壓表課程設(shè)計報告
- 模數(shù)轉(zhuǎn)換器adc0809應(yīng)用原理
- 微機原理課程設(shè)計報告書--adc0809應(yīng)用——數(shù)字錄音
- 基于單片機的數(shù)字式電壓表課程設(shè)計報告
- 數(shù)字電壓表課程設(shè)計--簡易數(shù)字電壓表的設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表設(shè)計-課程設(shè)計
- 課程設(shè)計---數(shù)字電壓表設(shè)計
- 數(shù)字電壓表設(shè)計課程設(shè)計
- 數(shù)字電壓表設(shè)計-課程設(shè)計
評論
0/150
提交評論