版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 江陰職業(yè)技術(shù)學(xué)院</b></p><p><b> 項目設(shè)計報告</b></p><p> 項目:數(shù)字電壓表設(shè)計與制作</p><p><b> 摘 要</b></p><p> 本文介紹了一種基于單片機(jī)的簡易數(shù)字電壓表的設(shè)計。該設(shè)計主要由
2、三個模塊組成:A/D轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。A/D轉(zhuǎn)換主要由芯片ADC0832來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片AT89C51來完成,其負(fù)責(zé)把ADC0832傳送來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;此外,它還控制著ADC0832芯片工作。</p><p> 該系統(tǒng)的數(shù)字電壓表電路簡單,所用的元件較少,成本低,且測量精度和
3、可靠性較高。此數(shù)字電壓表可以測量0-5V的1路模擬直流輸入電壓值,并通過一個四位一體的7段數(shù)碼管顯示出來。</p><p> 關(guān)鍵詞 單片機(jī);數(shù)字電壓表;A/D轉(zhuǎn)換;AT89C51;ADC0832.</p><p><b> Abstract</b></p><p> This paper which introduces a kind
4、 of simple digital voltmeter is based on single-chip microcontroller design. The circuit of the voltage meter is mainly consisted of three mould pieces: A/D converting mould piece, A/D converting is mainly completed by t
5、he ADC0832, it converts the collected analog data into the digital data and transmits the outcome to the manifestation controlling mould piece. Data processing is mainly completed by the AT89C51 chip, it processes the da
6、ta produced by the ADC0832</p><p> The voltmeter features in simple electrical circuit, lower use of elements, low cost, moreover, its measuring precision and reliability. The voltmeter is capable of measur
7、ing voltage inputs from 1 route ranging from 0 to 5 volt, and displaying the measurements though a digital code tube of 7 pieces of LED.</p><p> Keywords Single-chip microcontroller; Digital voltmeter; A/D
8、 converter; AT89C51; ADC0832</p><p><b> 目 錄</b></p><p><b> 摘 要I</b></p><p> AbstractI</p><p><b> 目 錄II</b></p><p
9、><b> 第一章 緒論1</b></p><p> 1.1 課題的應(yīng)用場合1</p><p> 1.2 系統(tǒng)的功能和性能指標(biāo)1</p><p> 第二章 總體方案2</p><p> 2.1 方案設(shè)計與選擇2</p><p> 2.2 系統(tǒng)的總體結(jié)構(gòu)3</p&
10、gt;<p> 第三章 硬件電路設(shè)計5</p><p> 3.1 硬件電路框圖5</p><p> 3.2 主要器件選擇與應(yīng)用5</p><p> 3.3 單片機(jī)小系統(tǒng)設(shè)計5</p><p> 3.4 鍵盤與顯示電路設(shè)計6</p><p> 第四章 軟件設(shè)計9</p>
11、<p> 4.1 軟件組成框圖9</p><p> 4.2 軟件流程圖設(shè)計9</p><p> 4.3 主要程序設(shè)計10</p><p> 第五章 系統(tǒng)調(diào)試13</p><p> 5.1 調(diào)試的方法與工具13</p><p> 5.2 Proteus仿真調(diào)試及效果13</p&g
12、t;<p> 5.3 軟硬件聯(lián)合調(diào)試14</p><p> 5.4 系統(tǒng)運(yùn)行14</p><p> 5.5 調(diào)試心得15</p><p> 第六章 展望與拓展17</p><p><b> 致 謝17</b></p><p><b> 參考資料17
13、</b></p><p><b> 附錄18</b></p><p> 附錄Ⅰ 系統(tǒng)電原理圖18</p><p> 附錄Ⅱ 系統(tǒng)仿真效果圖19</p><p> 附錄Ⅲ 樣機(jī)實(shí)物圖19</p><p> 附錄Ⅳ 軟件流程圖20</p><p>
14、; 附錄Ⅴ源程序清單21</p><p><b> 第一章 緒論 </b></p><p> 1.1 課題的應(yīng)用場合</p><p> 在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經(jīng)常。而且隨著電子技術(shù)的發(fā)展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。數(shù)字電壓表簡稱DVM,
15、它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、測量速度快等特而得到廣泛應(yīng)用。</p><p> 傳統(tǒng)的指針式刻度電壓表功能單一,進(jìn)度低,容易引起視差和視覺疲勞,因而不能滿足數(shù)字化時代的需要。采用單片機(jī)的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加以顯示,從而精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便,還
16、可與PC實(shí)時通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎(chǔ)[2]。以數(shù)字電壓表為核心,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表。目前,由各種單片機(jī)和A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表作全面深入的了解是很有必要的。</p><p> 本文是以簡易數(shù)字直流電壓表的設(shè)計為研究內(nèi)容,本系統(tǒng)主要包括三大模塊:轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示模塊。其中,A/D轉(zhuǎn)換采用ADC0832對輸入的模擬信號進(jìn)行轉(zhuǎn)換,控制
17、核心AT89C51再對轉(zhuǎn)換的結(jié)果進(jìn)行運(yùn)算處理,最后驅(qū)動輸出裝置LED顯示數(shù)字電壓信號。</p><p> 1.2 系統(tǒng)的功能和性能指標(biāo)</p><p> 數(shù)字電壓表由A/D轉(zhuǎn)換、數(shù)據(jù)處理及顯示控制等組成,測量0~5.0V范圍內(nèi)的輸入電壓值,由四位一體的7段數(shù)碼管顯示,最大分辨率0.1V,誤差±0.05V。以AT89C51和ADC0832為核心內(nèi)件。ADC0832實(shí)現(xiàn)模數(shù)轉(zhuǎn)換。
18、單片機(jī)AT89C51是整個系統(tǒng)的核心,實(shí)現(xiàn)輸入端的分路選擇(量程轉(zhuǎn)換),模數(shù)轉(zhuǎn)換后數(shù)據(jù)的處理及在數(shù)碼管上數(shù)據(jù)的顯示,提供ADC0832芯片的工作頻率等功能。</p><p><b> 第二章 總體方案</b></p><p> 2.1 方案設(shè)計與選擇</p><p> AT89C51具有如下特點(diǎn):40個引腳,8k Bytes Flash片
19、內(nèi)程序存儲器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器</p><p> AT89C51可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的 Flash存儲器可有效地降低開發(fā)成本。</p
20、><p> AT89S5與AT89C51相比,前者的性能比后者高,所以本設(shè)計采用AT89C51芯片。</p><p><b> 數(shù)模轉(zhuǎn)換芯片選擇:</b></p><p> ADC0809是采樣分辨率為8位的、以逐次逼近原理進(jìn)行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進(jìn)行A
21、/D轉(zhuǎn)換,轉(zhuǎn)換時間為100μs。</p><p> ADC0832 為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級,可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。芯片轉(zhuǎn)換時間僅為32μS,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗,以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。</p><p> 由于ADC0832芯片的轉(zhuǎn)換時間短,并且性能比較高,
22、所以采用ADC0832作為數(shù)模轉(zhuǎn)換芯片.</p><p> 2.2 系統(tǒng)的總體結(jié)構(gòu)</p><p> 數(shù)字電壓表系統(tǒng)硬件設(shè)計框圖</p><p> 第三章 硬件電路設(shè)計</p><p> 3.1 硬件電路框圖</p><p> 硬件電路設(shè)計由6個部分組成; A/D轉(zhuǎn)換電路,AT89C51單片機(jī)系統(tǒng),LED顯示
23、系統(tǒng)、時鐘電路、鍵盤以及測量電壓輸入電路。</p><p> 數(shù)字電壓表系統(tǒng)硬件設(shè)計框圖</p><p> 3.2 主要器件選擇與應(yīng)用</p><p><b> 數(shù)模轉(zhuǎn)換芯片:</b></p><p> ADC0832是采樣分辨率為8位的、以逐次逼近原理進(jìn)行?!獢?shù)轉(zhuǎn)換的器件。其內(nèi)部有一個8通道多路開關(guān),它可以根據(jù)
24、地址碼鎖存譯碼后的信號,只選通8路模擬輸入信號中的一個進(jìn)行A/D轉(zhuǎn)換,轉(zhuǎn)換時間為100μs。</p><p> ADC0832 為8位分辨率A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級,可以適應(yīng)一般的模擬量轉(zhuǎn)換要求。其內(nèi)部電源輸入與參考電壓的復(fù)用,使得芯片的模擬電壓輸入在0~5V之間。芯片轉(zhuǎn)換時間僅為32μS,據(jù)有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗,以減少數(shù)據(jù)誤差,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng)。</p><p&g
25、t; 由于ADC0832芯片的轉(zhuǎn)換時間短,并且性能比較高,所以采用ADC0832作為數(shù)模轉(zhuǎn)換芯片。 </p><p> 3.3 單片機(jī)小系統(tǒng)設(shè)計</p><p><b> 晶振電路:</b></p><p> 單片機(jī)內(nèi)部每個部件要想?yún)f(xié)調(diào)一致地工作,必須在統(tǒng)一口令——時鐘信號的控制下工作。單片機(jī)工作所需要的時鐘信號有兩種產(chǎn)生方式,即內(nèi)部時
26、鐘方式和外部時鐘方式。單片機(jī)內(nèi)部有一個構(gòu)成振蕩器的增益反相放大器,引腳XTAL1和XTAL2分別是此放大器的輸入端和輸入端,這個放大器與作為反饋元件的片外晶振一起構(gòu)成自激振蕩器。在該圖中,電容C1和C2取22PF,晶體的振蕩頻率取12MHz,晶體振蕩頻率高,則系統(tǒng)的時鐘頻率也高,單片機(jī)運(yùn)行速度也就快。</p><p> 3.4 鍵盤與顯示電路設(shè)計</p><p> 應(yīng)用系統(tǒng)中,設(shè)計要求
27、不同,使用的LED顯示器的位數(shù)也不同,因此就生產(chǎn)了位數(shù),尺寸,型號不同的LED顯示器供選擇,在本設(shè)計中,選擇4位一體的數(shù)碼型LED顯示器,簡稱“4-LED”。本系統(tǒng)中前一位顯示電壓的整數(shù)位,即個位,后兩位顯示電壓的小數(shù)位。</p><p> 4-LED顯示器引腳如圖所示,是一個共陰極接法的4位LED數(shù)碼顯示管,其中a,b,c,e,f,g為4位LED各段的公共輸出端,1、2、3、4分別是每一位的位數(shù)選端,dp是小
28、數(shù)點(diǎn)引出端,4位一體LED數(shù)碼顯示管的內(nèi)部結(jié)構(gòu)是由4個單獨(dú)的LED組成,每個LED的段輸出引腳在內(nèi)部都并聯(lián)后,引出到器件的外部。</p><p><b> 4位LED引腳</b></p><p> 對于這種結(jié)構(gòu)的LED顯示器,它的體積和結(jié)構(gòu)都符合設(shè)計要求,由于4位LED陰極的各段已經(jīng)在內(nèi)部連接在一起,所以必須使用動態(tài)掃描方式(將所有數(shù)碼管的段選線并聯(lián)在一起,用一個
29、I/O接口控制)顯示。</p><p><b> 第四章 軟件設(shè)計</b></p><p> 4.1 軟件組成框圖</p><p> 4.2 軟件流程圖設(shè)計</p><p> 4.3 主要程序設(shè)計</p><p> #include<reg52.h></p>&
30、lt;p> #include<intrins.h></p><p> typedef unsigned int uint;</p><p> typedef unsigned char uchar;</p><p> /*****************端口定義**************/</p><p> sb
31、it CS=P3^4; </p><p> sbit CLK=P3^5; //定義時鐘信號</p><p> sbit DI=P3^6;</p><p> sbit DO=P3^6;</p><p> uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7
32、f,0x6f};// 共陰段碼表</p><p> void delay(uint xms) // 延時函數(shù)</p><p><b> {</b></p><p><b> uint i,j;</b></p><p> for(i=xms;i>0;i--)</p>&l
33、t;p> for(j=110;j>0;j--);</p><p><b> }</b></p><p> void display(uchar add,uchar dat)</p><p><b> {</b></p><p> uchar aa=0x80;</p>
34、<p> P0=table[dat];//送段碼</p><p> if(add==1) P0|=0x80;</p><p> P2=~(aa>>add);//送位碼</p><p><b> delay(1);</b></p><p><b> P2=0xff
35、;</b></p><p><b> }</b></p><p> uchar AD0832(bit channel)</p><p><b> {</b></p><p> uchar AdcByte0,AdcByte1,i;</p><p> CLK
36、=0; _nop_();_nop_(); </p><p> DI=1; _nop_();_nop_();</p><p> CS=0; _nop_();_nop_();</p><p> CLK=1; _nop_();_nop_();</p><p> CLK=0; _nop_();_nop_();</p
37、><p> DI=1; _nop_();_nop_();</p><p> CLK=1;_nop_();_nop_();</p><p> CLK=0; _nop_();_nop_();</p><p> DI=channel; _nop_();_nop_();</p><p> CLK=1; _nop
38、_();_nop_();</p><p><b> CLK=0;</b></p><p><b> DI=1;</b></p><p> for(i=0;i<8;i++)</p><p><b> { </b></p><p> Ad
39、cByte0<<=1;</p><p><b> CLK=1;</b></p><p> _nop_();_nop_();</p><p><b> CLK=0;</b></p><p><b> _nop_();</b></p><p&
40、gt; AdcByte0|=DO;</p><p><b> }</b></p><p><b> if(DO)</b></p><p> AdcByte1|=0x80;</p><p> for(i=0;i<7;i++)</p><p><b>
41、 {</b></p><p> AdcByte1>>=1;</p><p><b> CLK=1;</b></p><p> _nop_();_nop_();</p><p><b> CLK=0;</b></p><p><b>
42、 _nop_();</b></p><p> if(DO) AdcByte1|=0x80;</p><p><b> }</b></p><p><b> CS=1;</b></p><p> return(AdcByte0==AdcByte1?AdcByte0:0);</
43、p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> uint date;</p><p> uchar AdcByte,bit0,bit1,bit2,bit3,i;</p>&
44、lt;p><b> while(1)</b></p><p><b> {</b></p><p> AdcByte=AD0832(0);</p><p> date=(AdcByte/255.0)*5*100;</p><p> bit0=date%10;</p>&
45、lt;p> bit1=date%100/10;</p><p> bit2=date%1000/100;</p><p> bit3=date/1000;</p><p> for(i=0;i<100;i++)</p><p><b> {</b></p><p> dis
46、play(3,bit0);</p><p> display(2,bit1);</p><p> display(1,bit2);</p><p> display(0,bit3);</p><p><b> }</b></p><p><b> }</b><
47、/p><p><b> }</b></p><p><b> 第五章 系統(tǒng)調(diào)試</b></p><p> 5.1 調(diào)試的方法與工具</p><p> 用keil軟件編寫程序,編好程序后再進(jìn)行編譯,編譯完成后檢查程序有無錯誤,然后修改程序直到?jīng)]有錯為止,然后再與硬件聯(lián)調(diào),直到仿真出結(jié)果。</
48、p><p> 5.2 Proteus仿真調(diào)試及效果</p><p> 5.3 軟硬件聯(lián)合調(diào)試</p><p> 在系統(tǒng)上電開始測量前,要用萬用表的電壓檔對被測電壓進(jìn)行估測,然后以此選擇適當(dāng)?shù)牧砍?,防止過大電壓燒壞A/D轉(zhuǎn)換器。首先用萬用表按照原理圖逐步檢查印刷板中各器件的電源及各引腳的連接是否正確,有否斷路、短路或者虛焊,尤其是給電路供電的電源部分要重點(diǎn)檢查,是否
49、穩(wěn)定,且穩(wěn)定即可說明電源電路的設(shè)計基本達(dá)到要求。如果電壓沒有達(dá)到要求,要及時排查給予解決,以免燒壞芯片和其他元器件。 </p><p> 軟件調(diào)試時先進(jìn)行單元測試,分別對各個代碼模塊進(jìn)行測試,看其是否實(shí)現(xiàn)了規(guī)定功能,再把已經(jīng)測試過的模塊組合起來進(jìn)行測試,一旦不能正確運(yùn)行,要找出程序中的錯誤,確定大致的出錯位置,研究有關(guān)部分的錯誤程序,找出錯誤原因,修改設(shè)計和代碼,以排除錯誤。 </p&
50、gt;<p> 在程序編寫完成后,就可以利用仿真器進(jìn)行初步調(diào)試,觀察在計算機(jī)里能否通過編譯與運(yùn)行并達(dá)到設(shè)計的基本要求。在基本符合的情況下,利用仿真器與工作正常的硬件連接進(jìn)行仿真調(diào)試;或用編程器把程序燒寫到芯片中,直接觀察能否正常運(yùn)行。如果達(dá)不到設(shè)計要求或者不能正常運(yùn)行,可以直接在程序中進(jìn)行修改。 </p><p> 系統(tǒng)調(diào)試中遇到的問題及解決的方法: </p>
51、<p> 1)在應(yīng)用濾波電容的過程中,一開始是把電容串聯(lián)在電路中,導(dǎo)致電路無法導(dǎo)通,而后我們短路電容,解決了問題。 </p><p> 2)電源指示燈上,一開始發(fā)現(xiàn)接上電源,指示燈不亮,經(jīng)過儀器測量發(fā)現(xiàn)正負(fù)極接反,后重新焊接,問題解決。 </p><p> 3)由于源程序的多處錯誤,使得仿真無法通過,后經(jīng)過單步調(diào)試,把存在的錯誤一一排除,通過了軟件仿真。
52、 </p><p> 4)在燒錄芯片的過程中,由于選擇燒錄文件的錯誤及芯片自身問題(因多次燒錄,無法再次燒錄)使得燒錄失敗,后經(jīng)過老師指導(dǎo)并更換了AT89C51芯片,解決了問題。</p><p><b> 5.4 系統(tǒng)運(yùn)行</b></p><p> 調(diào)試好之后,把程序固化到單片機(jī)芯片中,單機(jī)運(yùn)行,數(shù)碼管顯示被測電壓,調(diào)節(jié)電位器,
53、仿真電壓表與之變化,數(shù)碼管顯示數(shù)值與電壓表數(shù)值相同,可以看出系統(tǒng)運(yùn)行正常。</p><p><b> 5.5 調(diào)試心得</b></p><p> 從開始設(shè)計數(shù)字電壓表到完成這個項目的設(shè)計,我從中學(xué)到了許多關(guān)于調(diào)試方面的經(jīng)驗,這些經(jīng)驗都是從困難中累積起來的,每當(dāng)調(diào)試遇到無法繼續(xù)下去時,總感覺渺茫時,我總是告訴自己不能放棄,一定要堅持下來,慢慢理清思緒,找出出錯的地
54、方,不斷調(diào)試,每當(dāng)自己克服一重重困難,才發(fā)現(xiàn)自己進(jìn)步了許多。</p><p><b> 第六章 展望與拓展</b></p><p> 通過本次設(shè)計,我對單片機(jī)這門課程有了更進(jìn)一步的了解。無論是在其硬件連接方面還是在軟件編程方面,都取得了新的收獲。本次實(shí)驗采用了AT89S51單片機(jī)芯片,與以往我們所熟悉的C51芯片有許多不同之處,通過本次設(shè)計及查閱相關(guān)資料,我對其之
55、間的區(qū)別有了一定的認(rèn)識,在本設(shè)計報告的硬件介紹部分也對其作了詳細(xì)的論述。S51在C51的基礎(chǔ)上增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。</p><p> 單片機(jī)的應(yīng)用如今已經(jīng)在工業(yè)、電子等方方面面展現(xiàn)出它的優(yōu)越性,利用單片機(jī)設(shè)計電路已經(jīng)成一樂一種趨勢,他與外圍的簡單電路加上優(yōu)化程序就可以構(gòu)建成任意的產(chǎn)品,使得本設(shè)計得以實(shí)現(xiàn)。隨著單片機(jī)的發(fā)展,他必將在未來顯示出更大的活力。</p>
56、<p><b> 致 謝</b></p><p> 由于是初次嘗試設(shè)計電路,由于知識及經(jīng)驗的匱乏,難免遇到很多困難,如果沒有老師的督促指導(dǎo)以及同學(xué)們的支持,很難順利的完成此次設(shè)計。從開始做這個項目到完成,都離不開老師、同學(xué)、朋友給以的幫助,在這里請接受我的謝意!</p><p><b> 參考資料</b></p>
57、<p> [1]胡健.單片機(jī)原理及接口技術(shù).北京:機(jī)械工業(yè)出版社,2004年10月</p><p> [2]王毓銀.數(shù)字電路邏輯設(shè)計.高等教育出版社,2005年12月</p><p> [3]于殿泓、王新年.單片機(jī)原理與程序設(shè)計實(shí)驗教程.西安電子科技大學(xué)出版社,2007年5月</p><p> [4]謝維成、楊加國.單片機(jī)原理與應(yīng)用及C51程序設(shè)
58、計實(shí)例.電子工業(yè)出版社,2006年3月</p><p> [5]李廣弟.單片機(jī)基礎(chǔ).北京航空航天大學(xué)出版社,2007年5月</p><p> [6]姜志海,黃玉清等著.單片機(jī)原理及應(yīng)用[M] .北京:電子工業(yè)出版社.2005年7月 </p><p> [7]魏立峰.單片機(jī)原理及應(yīng)用技術(shù).北京大學(xué)出版社,2005年</p><p> [
59、8]周潤景.Protues在MCS-51&ARM7系統(tǒng)中的應(yīng)用百例.第一版.北京:電子工業(yè)出版社,2006年</p><p> [9]邊春遠(yuǎn)等著.MCS-51單片機(jī)應(yīng)用開發(fā)實(shí)用子程序[M] .北京:人民郵電出版社.2005年9月.</p><p><b> 附錄</b></p><p> 附錄Ⅰ 系統(tǒng)電原理圖</p>
60、<p> 附錄Ⅱ 系統(tǒng)仿真效果圖</p><p><b> 附錄Ⅲ 樣機(jī)實(shí)物圖</b></p><p><b> 附錄Ⅳ 軟件流程圖</b></p><p> 數(shù)字式直流電壓表主程序框圖</p><p><b> A/D轉(zhuǎn)換流程圖</b></p>
61、;<p><b> 附錄Ⅴ源程序清單</b></p><p> #include<reg52.h></p><p> #include<intrins.h></p><p> typedef unsigned int uint;</p><p> typedef unsig
62、ned char uchar;</p><p> sbit CS=P3^4;</p><p> sbit CLK=P3^5;</p><p> sbit DI=P3^6;</p><p> sbit DO=P3^6;</p><p> uchar code table[]={</p><p
63、> 0x3f,0x06,0x5b,0x4f,</p><p> 0x66,0x6d,0x7d,0x07,</p><p> 0x7f,0x6f};</p><p> void delay(uint xms)</p><p><b> {</b></p><p><b>
64、 uint i,j;</b></p><p> for(i=xms;i>0;i--)</p><p> for(j=110;j>0;j--);</p><p><b> }</b></p><p> void display(uchar add,uchar dat)</p>
65、<p><b> {</b></p><p> uchar aa=0x80;</p><p> P0=table[dat];</p><p> if(add==1) P0|=0x80;</p><p> P2=~(aa>>add);</p><p><b&
66、gt; delay(1);</b></p><p><b> P2=0xff;</b></p><p><b> }</b></p><p> uchar AD0832(bit channel)</p><p><b> {</b></p>
67、<p> uchar AdcByte0,AdcByte1,i;</p><p> CLK=0; _nop_();_nop_();</p><p> DI=1; _nop_();_nop_();</p><p> CS=0; _nop_();_nop_();</p><p> CLK=1; _nop_();_n
68、op_();</p><p> CLK=0; _nop_();_nop_();</p><p> DI=1; _nop_();_nop_();</p><p> CLK=1;_nop_();_nop_();</p><p> CLK=0; _nop_();_nop_();</p><p> DI=
69、channel; _nop_();_nop_();</p><p> CLK=1; _nop_();_nop_();</p><p><b> CLK=0;</b></p><p><b> DI=1;</b></p><p> for(i=0;i<8;i++)</p>
70、<p><b> { </b></p><p> AdcByte0<<=1;</p><p><b> CLK=1;</b></p><p> _nop_();_nop_();</p><p><b> CLK=0;</b></p&g
71、t;<p><b> _nop_();</b></p><p> AdcByte0|=DO;</p><p><b> }</b></p><p><b> if(DO)</b></p><p> AdcByte1|=0x80;</p>&
72、lt;p> for(i=0;i<7;i++)</p><p><b> {</b></p><p> AdcByte1>>=1;</p><p><b> CLK=1;</b></p><p> _nop_();_nop_();</p><p&g
73、t;<b> CLK=0;</b></p><p><b> _nop_();</b></p><p> if(DO) AdcByte1|=0x80;</p><p><b> }</b></p><p><b> CS=1;</b></p
74、><p> return(AdcByte0==AdcByte1?AdcByte0:0);</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p> uint date;</p>
75、<p> uchar AdcByte,bit0,bit1,bit2,bit3,i;</p><p><b> while(1)</b></p><p><b> {</b></p><p> AdcByte=AD0832(0);</p><p> date=(AdcByte/25
76、5.0)*5*100;</p><p> bit0=date%10;</p><p> bit1=date%100/10;</p><p> bit2=date%1000/100;</p><p> bit3=date/1000;</p><p> for(i=0;i<100;i++)</p>
77、;<p><b> {</b></p><p> display(3,bit0);</p><p> display(2,bit1);</p><p> display(1,bit2);</p><p> display(0,bit3);</p><p><b>
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電壓表的制作與設(shè)計-實(shí)習(xí)報告
- 簡易數(shù)字電壓表的設(shè)計與制作
- eda數(shù)字電壓表設(shè)計報告
- 數(shù)字電壓表設(shè)計
- 數(shù)字電壓表課程設(shè)計--簡易數(shù)字電壓表的設(shè)計
- 簡易數(shù)字電壓表的設(shè)計與制作3.doc
- 課程設(shè)計報告--數(shù)字電壓表
- 簡易數(shù)字電壓表的設(shè)計與制作2.doc
- 簡易數(shù)字電壓表的設(shè)計與制作1.doc
- 數(shù)字電壓表課程設(shè)計報告
- pcf數(shù)字電壓表設(shè)計
- 數(shù)字電壓表
- 簡易數(shù)字電壓表的設(shè)計【開題報告】
- 數(shù)字電壓表畢業(yè)設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表課程設(shè)計
- 數(shù)字電壓表畢業(yè)設(shè)計
- 數(shù)字電壓表課程設(shè)計
- ats直流數(shù)字電壓表設(shè)計
- 數(shù)字電壓表課程設(shè)計
評論
0/150
提交評論