單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實習(xí)報告基于AT89S52單片機(jī)的數(shù)字電壓表設(shè)計_第1頁
單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實習(xí)報告基于AT89S52單片機(jī)的數(shù)字電壓表設(shè)計_第2頁
單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實習(xí)報告基于AT89S52單片機(jī)的數(shù)字電壓表設(shè)計_第3頁
單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實習(xí)報告基于AT89S52單片機(jī)的數(shù)字電壓表設(shè)計_第4頁
單片機(jī)系統(tǒng)開發(fā)與應(yīng)用實習(xí)報告基于AT89S52單片機(jī)的數(shù)字電壓表設(shè)計_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單單片片機(jī)機(jī)系系統(tǒng)統(tǒng)開開發(fā)發(fā)與與應(yīng)應(yīng)用用工工程程實實習(xí)習(xí)報報告告 選選題題名名稱稱: 基于 at89s52 的數(shù)字電壓表的設(shè)計 系系(院院): 計算機(jī)工程學(xué)院 專專 業(yè)業(yè): 嵌入式系統(tǒng)設(shè)計 班班 級級: 姓姓 名名: 學(xué)學(xué) 號號: 指指導(dǎo)導(dǎo)教教師師: 學(xué)學(xué)年年學(xué)學(xué)期期: 2009 2010 學(xué)年 第 2 學(xué)期 2010年 5 月 30 日 摘摘要要: 在測量儀器中,電壓表是必須的,而且電壓表的好壞直接影響到測量精度。具有一個精 度高、轉(zhuǎn)換速度快、性能穩(wěn)定的電壓表才能符合測量的要求。 而且數(shù)字電壓表是采用數(shù)字 化測量技術(shù),把連續(xù)的模擬電壓量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字化形式并加以顯示的儀器。 為此本

2、項目介紹了一種基于 at89s52 單片機(jī)的數(shù)字電壓表的設(shè)計 ,目的是在使用盡量少的 元器件的情況下,用單片機(jī) at89s52 和 adc0809 高精度 a/d 轉(zhuǎn)換芯片設(shè)計一個 4 位數(shù)碼管 顯示的數(shù)字電壓表,并 能夠測量 05v 之間的直流電壓值, 其測量最小分辨率為 0.02v。 本設(shè)計主要分為兩部分:硬件電路及軟件程序。而硬件電路又大體可分為a/d 轉(zhuǎn)換電路、 led 顯示電路,各部分電路的設(shè)計及原理將會在硬件電路設(shè)計部分詳細(xì)介紹;程序的設(shè)計使 用 c 語言編程,詳細(xì)的設(shè)計算法將會在程序設(shè)計部分詳細(xì)介紹。 關(guān)關(guān)鍵鍵詞詞:at89s52;adc0809;a/d 轉(zhuǎn)換;led 數(shù)碼管顯示

3、 目錄 1. 關(guān)于單片機(jī) at89s52 與 adc0809 芯片.1 1.1關(guān)于 at89s52.1 1.2關(guān)于 adc0809.2 2 硬件電路.3 2.1 程序原理圖.3 2.2 焊接順序:.4 2.3a/d 轉(zhuǎn)換電路.4 2.4 led 顯示電路.5 3 軟件程序的設(shè)計.6 3.1 主程序流程圖.6 3.2a/d 轉(zhuǎn)換模塊:.8 3.3 數(shù)碼管顯示模塊.10 4 實驗結(jié)果.11 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 1 1 1. . 關(guān)關(guān)于于單單片片機(jī)機(jī) a at t8 89 9s s5 52 2 與與 a ad dc c0 08 80 09 9 芯芯片片 1.1 關(guān)關(guān)于于 at89s

4、52 at89s52 是一種低功耗、高性能 cmos8 位微控制器,具有 8k 在系統(tǒng)可編程 flash 存儲器。片上 flash 允許程序存儲器在系統(tǒng)可編程,亦適于 常規(guī)編程器。 在單芯片上,擁有靈巧的 8 位 cpu 和在系統(tǒng) 可編程 flash,使得 at89s52 為眾 多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 at89s52 具有以下標(biāo)準(zhǔn) 功能: 8k 字節(jié) flash,256 字節(jié) ram,32 位 i/o 口線,看門狗定時器,2 個數(shù)據(jù)指 針,三個 16 位定時器/計數(shù)器,一個 6 向量 2 級中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振 及時鐘電路。另外,at89s52 可降至

5、 0hz 靜態(tài)邏輯操作,支持 2 種軟件可選擇節(jié)電模 式??臻e模式下,cpu 停止工作,允許 ram、定時器/計數(shù)器、串口、中斷繼續(xù)工作。 掉電保護(hù)方式下,ram 內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一 個中斷或硬件復(fù)位為止。 圖 1-1 at89s52 線路引腳圖 (由于 at89s52 的引腳較多,介紹起來比較繁瑣,在此略過 ) 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 2 1.2 關(guān)關(guān)于于 adc0809 a/d 轉(zhuǎn)換器是模擬量輸入通道中的一個環(huán)節(jié),單片機(jī)通過a/d 轉(zhuǎn)換器把輸入模擬量變 成數(shù)字量再處理。 adc0809 是采樣分辨率為 8 位的、以逐次逼近原理進(jìn)行模 數(shù)轉(zhuǎn)換

6、的器件。其內(nèi)部 有一個 8 通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8 路模擬輸入信 號中的一個進(jìn)行 a/d 轉(zhuǎn)換。 圖 1-2 adc0809 引腳圖 引腳功能如下: adc0809 芯片有 28 條引腳,采用雙列直插式封裝,如圖1323 所示。下面說明各引腳 功能。 in0in7:8 路模擬量輸入端。 2-12-8:8 位數(shù)字量輸出端。 adda、addb、addc:3 位地址輸入線,用于選通 8 路模擬輸入中的一路 ale:地址鎖存允許信號,輸入,高電平有效。 start: ad 轉(zhuǎn)換啟動脈沖輸入端,輸入一個正脈沖(至少100ns 寬)使其啟動 (脈沖上升沿使 0809 復(fù)

7、位,下降沿啟動 a/d 轉(zhuǎn)換)。 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 3 eoc: ad 轉(zhuǎn)換結(jié)束信號,輸出,當(dāng) ad 轉(zhuǎn)換結(jié)束時,此端輸出一個高電平(轉(zhuǎn)換 期間一直為低電平)。 oe:數(shù)據(jù)輸出允許信號,輸入,高電平有效。當(dāng)ad 轉(zhuǎn)換結(jié)束時,此端輸入一個高 電平,才能打開輸出三態(tài)門,輸出數(shù)字量。 clk:時鐘脈沖輸入端。要求時鐘頻率不高于640khz。 ref(+)、ref(-):基準(zhǔn)電壓。 vcc:電源,單一 5v。 gnd:地。 2 2 硬硬件件電電路路 2.1 程程序序原原理理圖圖 圖 2-1 關(guān)于 at89s52 的數(shù)字電壓表原理圖 原理圖說明:原理圖主要由 at89s52 芯片,a

8、dc0809 芯片,led 數(shù)碼管組成。at89s52 芯片的 rst 與復(fù)位電路相連, xtal1 與 xtal2 連接著晶振電路。 p0 口與 adc0809 直接相連 接受來自 adc0809 傳輸而來的數(shù)據(jù), p2 口作為 4 位動態(tài)數(shù)碼顯示管的位顯示控制, p1 口 則是動態(tài)數(shù)碼顯示管的段顯示控制并連接著 74ls07 作為驅(qū)動,p3 則是提供給 adc0809 芯 片的 clk 信號并控制其開始。相對的 adc0809 芯片的 in0 接了滑動電阻器以為實驗產(chǎn)生不 等的電壓。add ac 接地,并確?;鶞?zhǔn)電壓。 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 4 2.2 焊焊接接順順序序:

9、a)把“單片機(jī)系統(tǒng)”區(qū)域中的 p1.0p1.7 與“動態(tài)數(shù)碼顯示”區(qū)域中的 abcdefgh 端 口用 8 芯排線連接。 b)把“單片機(jī)系統(tǒng)”區(qū)域中的 p2.0p2.7 與“動態(tài)數(shù)碼顯示”區(qū)域中的 s1s2s3s4s5s6s7s8 端口用 8 芯排線連接。 c)把“單片機(jī)系統(tǒng)”區(qū)域中的 p3.0 與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 st 端子用導(dǎo)線相連 接。 d 把“單片機(jī)系統(tǒng)”區(qū)域中的 p3.1 與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 oe 端子用導(dǎo)線相連 接。 e)把“單片機(jī)系統(tǒng)”區(qū)域中的 p3.2 與“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 eoc 端子用導(dǎo)線相 連接。 f)把“單片機(jī)系統(tǒng)”區(qū)域中的 p3.3 與“模數(shù)轉(zhuǎn)換

10、模塊”區(qū)域中的 clk 端子用導(dǎo)線相 連接。 g)把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 a2a1a0 端子用導(dǎo)線連接到 “電源模塊”區(qū)域中的 gnd 端子上。 h)把“模數(shù)轉(zhuǎn)換模塊”區(qū)域中的 in0 端子用導(dǎo)線連接到 “三路可調(diào)電壓模塊 ”區(qū)域中 的 vr1 端子上。 i)把“單片機(jī)系統(tǒng)”區(qū)域中的 p0.0p0.7 用 8 芯排線連接到“模數(shù)轉(zhuǎn)換模塊”區(qū)域 中的 d0d1d2d3d4d5d6d7 端 2.3a/d 轉(zhuǎn)轉(zhuǎn)換換電電路路 a/d 轉(zhuǎn)換器是模擬量輸入通道中的一個環(huán)節(jié),單片機(jī)通過a/d 轉(zhuǎn)換器把輸入模擬量變 成數(shù)字量再處理。 具體電路圖如下: 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 5 圖 2-2

11、實現(xiàn) a/d 轉(zhuǎn)換電路圖 adc0809 實現(xiàn) a/d 轉(zhuǎn)換的原理如下: 其工作原理如下: 首先輸入 3 位地址,并使 ale=1,將地址存入地址鎖存器中。此地 址經(jīng)譯碼選通 8 路模擬輸入之一到比較器。 start 上升沿將逐次逼近寄存器復(fù)位。下降沿 啟動 ad 轉(zhuǎn)換,之后 eoc 輸出信號變低,指示轉(zhuǎn)換正在進(jìn)行。直到ad 轉(zhuǎn)換完成, eoc 變?yōu)楦唠娖?,指?ad 轉(zhuǎn)換結(jié)束,結(jié)果數(shù)據(jù)已存入鎖存器,這個信號可用作中斷申請。 當(dāng) oe 輸入高電平 時,輸出三態(tài)門打開,轉(zhuǎn)換結(jié)果的數(shù)字量輸出到數(shù)據(jù)總線上。 2.4 led 顯顯示示電電路路 設(shè)計中采用的是 4 段 led 數(shù)碼管來顯示電壓值。 le

12、d 具有耗電低、亮度高、視角大、 線路簡單、耐震及壽命長等優(yōu)點,它由 4 個發(fā)光二極管組成,其中 3 個按8字型排列, 另一個發(fā)光二極管為圓點形狀,位于右下角,常用于顯示小數(shù)點。把4 個發(fā)光二極管連在 一起,公共端接高電平,叫共陽極接法,相反,公共端接低電平的叫共陰極接法,我們采用 共陰極接法。當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一段筆畫或點就發(fā)亮,從而形成不同的發(fā)光字符。 其 8 段分別命名為 dp g f e d c b a。例如,要顯示“0”,則 dp g f e d c b a 分別 為:00111111b;若要顯示多個數(shù)字,只要讓若干個數(shù)碼管的位碼循環(huán)為高電平就可以了。 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工

13、程實習(xí) 計報告 6 圖 2-3 led 數(shù)碼管顯示電路圖 根據(jù)設(shè)計要求,顯示電路需要至少 4 位 led 數(shù)碼管來顯示電壓值,我們再多加一位用 來顯示電壓單位“v”,則有 7 位 led 循環(huán)顯示。利用單片機(jī)的 i/o 口驅(qū)動 led 數(shù)碼管的 亮滅,設(shè)計中由 p0 口驅(qū)動 led 的段碼顯示,即顯示字符,由 p2 口選擇 led 位碼,即選擇 點亮哪位 led 來顯示。 3 軟軟件件程程序序的的設(shè)設(shè)計計 3.1 主主程程序序流流程程圖圖 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 7 圖 3-1 主程序流程圖 程序初始化: #include unsigned char code dispbitco

14、de=0 xfe,0 xfd,0 xfb,0 xf7, 0 xef,0 xdf,0 xbf,0 x7f; unsigned char code dispcode=0 x3f,0 x06,0 x5b,0 x4f,0 x66, 0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x00; unsigned char dispbuf8=10,10,10,10,0,0,0,0; unsigned char dispcount; unsigned char getdata; unsigned int temp; unsigned char i; sbit st=p30; sbit oe=p3

15、1; sbit eoc=p32; sbit clk=p33; void main(void) st=0; oe=0; et0=1;/允許定時器 0 et1=1;/允許定時器 1 ea=1;/中斷允許總控制位,中斷總允許 tmod=0 x12; th0=216; tl0=216; th1=(65536-4000)/256; /定時時間計算公式: tl1=(65536-4000)%256;/一共 4 個 8 位定時器 tr1=1;/啟動定時器 1 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 8 tr0=1;/啟動寄存器 0 程序的初始化工作有以下功能:生成數(shù)碼管等代碼表;表示部分引腳聯(lián)通;設(shè)置部分變 量

16、的初值;定義定時器 0,1;設(shè)置定時器方式選擇寄存器 并確定寄存器 0 使用工作方式 1,寄存器 1 使用工作方式 2,具體設(shè)定了寄存器 1,并啟用 0,1 寄存器。 3.2a/d 轉(zhuǎn)轉(zhuǎn)換換模模塊塊: 圖 3-2 a/d 轉(zhuǎn)換測量子程序流程圖 st=1; st=0; /產(chǎn)生下跳沿 開始 a/d 轉(zhuǎn)換 while(1) if(eoc=1)/eoc 轉(zhuǎn)換結(jié)束信號,eoc=1 時轉(zhuǎn)換結(jié)束 oe=1;/輸出允許信號 oe=1 時輸出轉(zhuǎn)化得到的數(shù)據(jù) getdata=p0;/將轉(zhuǎn)化所得數(shù)據(jù)傳輸?shù)?p0 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 9 oe=0;/oe=0 時輸出數(shù)據(jù)線呈高阻態(tài) temp=getd

17、ata*235; temp=temp/128;/將模擬量轉(zhuǎn)換為數(shù)碼量 i=5; dispbuf0=10; dispbuf1=10; dispbuf2=10; dispbuf3=10; dispbuf4=10; dispbuf5=0; dispbuf6=0; dispbuf7=0;/寄存要輸出的數(shù)據(jù) while(temp/10) dispbufi=temp%10; temp=temp/10; i+; dispbufi=temp; /從寄存中提取數(shù)據(jù) st=1; st=0; /產(chǎn)生下跳沿 a/d 轉(zhuǎn)換程序由開始設(shè)定的 st 的變化開始(產(chǎn)生下跳沿 使 adc0809 的 start 開始運轉(zhuǎn)) 然

18、后當(dāng)轉(zhuǎn)換結(jié)束( eoc=1)時,開始傳輸數(shù)據(jù)到 p0(oe=1 輸出允許信號置 1)至傳輸結(jié)束 時 oe 置 0,將獲得的電壓量轉(zhuǎn)換成所對應(yīng)的 16 進(jìn)制數(shù)據(jù)并寄存 ,再通過取模的方式把各 位數(shù)字逐個提取, 最后結(jié)束。 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 10 3.3 數(shù)數(shù)碼碼管管顯顯示示模模塊塊 void t0(void) interrupt 1 using 0 clk=clk; /時鐘信號取反 void t1(void) interrupt 3 using 0 /外部中斷 0 th1=(65536-4000)/256; tl1=(65536-4000)%256; /定時器初始化,定時 4

19、 微秒循環(huán) p1=dispcodedispbufdispcount; p2=dispbitcodedispcount; /經(jīng)查代碼表得出數(shù)據(jù) if(dispcount=3) p1=p1 | 0 x80; /在 led 上顯示出數(shù)字 dispcount+; if(dispcount=4) dispcount=0; led 數(shù)碼管的現(xiàn)實首先由外部寄存器 0 中斷使時鐘信號取反,在有外部寄存器 1 中斷 使定時器初始化,通過之前 adc0809 輸出的 16 位數(shù)據(jù)經(jīng)查詢代碼表得到相應(yīng)的 bcd 碼, 最后顯示即可。 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 11 4 4 實實驗驗結(jié)結(jié)果果 經(jīng)過 pro

20、tel 的制作與實物的焊接 和燒制程序后 我所得的結(jié)果還是不盡如人意: 由于 部分元器件的缺失,雖然電源燈和 led 數(shù)碼管能夠使用,但很不穩(wěn)定 。經(jīng)過萬用表的測試 也不能解決,導(dǎo)致最后實驗沒有達(dá)到預(yù)期效果。 單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實習(xí) 計報告 12 總結(jié) 單片機(jī)是一門理論和技術(shù)發(fā)展十分迅速、應(yīng)用非常廣泛的前沿性學(xué)科, 它的理論性 和實踐性都很強(qiáng)。通過這次漫長的程序設(shè)計中,首先我們通過用 rrotel 軟件繪制電路圖 設(shè)計 pcb 板,再經(jīng)過自己動手焊制電路板并實現(xiàn)實驗結(jié)果的過程 ,加深了對課堂抽象概念 的理解,鞏固了課堂上所學(xué)的理論知識 ,并很好地理解與掌握 單片機(jī) at89s52 和 a

21、/d 轉(zhuǎn)換芯 片 adc0809 的基本原理、使用方法。而對于這次課程設(shè)計的題目 “數(shù)字電壓表的設(shè)計 ”, 在收集資料以及編程過程中,不光讓我鞏固所學(xué)的知識 ,加強(qiáng)理論和實際結(jié)合的能力,細(xì) 致的了解了單片機(jī)的工作原理 ,還培養(yǎng)了我們的綜合設(shè)計能力與實際工作能力。真可謂獲益 匪淺啊。雖然最后離我的實驗結(jié)果還有少許偏差讓我有點不甘心,但這次獨立制作芯片的 過程還是讓我感觸良多的。 而且在這次課程設(shè)計的撰寫過程中,我得到了許多人的幫助。 本論文從立題到論文撰寫整個過程都是在 和悉心指導(dǎo)下完成的。老師們在傳授我知識 的同時,更注重培養(yǎng)我解決問題的思路和 法及創(chuàng)新能力,為我今后學(xué)習(xí)和工作打下了堅實 的基礎(chǔ)并開闊了我的視野,淵博的知識、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、忘我的工作精神以及對新知識不 懈追求的精神,令我們

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論