版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)</p><p> 專(zhuān) 業(yè): XXXXXXXXXXXXXXXXXXXXX</p><p> 班 級(jí): XXXXXXXXXXXXX </p><p> 姓 名: XXXXXXXXXXXX </p><p> 學(xué) 號(hào):
2、 XXXXXXXXXXX </p><p> 指導(dǎo)教師: XXXXXXXXXXXX </p><p> XXXXXXXXXXXXXXXXXXXXX</p><p> 2013 年 3 月 14 日</p><p> 基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)</p><p>&
3、lt;b> 摘 要</b></p><p> 本文介紹了一種基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)。該設(shè)計(jì)主要由三個(gè)模塊組成:A/D轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。A/D轉(zhuǎn)換主要由芯片ADC0808來(lái)完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片AT89C51來(lái)完成,其負(fù)責(zé)把ADC0808傳送來(lái)的數(shù)字量經(jīng)過(guò)一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行
4、顯示;此外,它還控制著ADC0808芯片工作。</p><p> 該系統(tǒng)的數(shù)字電壓表電路簡(jiǎn)單,所用的元件較少,成本低,且測(cè)量精度和可靠性較高。此數(shù)字電壓表可以測(cè)量0-5V的1路模擬直流輸入電壓值,并通過(guò)一個(gè)四位一體的7段數(shù)碼管顯示出來(lái)。</p><p> 關(guān)鍵詞:單片機(jī);數(shù)字電壓表;A/D轉(zhuǎn)換</p><p> Design of Simple Digital
5、 Voltmeter Based on Single-chip Microcontroller </p><p><b> Abstract </b></p><p> This paper which introduces a kind of simple digital voltmeter is based on single-chip microcontr
6、oller 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 the ADC0808, it converts the collected analog data into the digi
7、tal data and transmits the outcome to the manifestation controlling mould piece. Data processing is mainly completed by the AT89C51 chip, it processes the data produced by the ADC0808</p><p> The voltmeter
8、features in simple electrical circuit, lower use of elements, low cost, moreover, its measuring precision and reliability. The voltmeter is capable of measuring voltage inputs from 1 route ranging from 0 to 5 volt, and d
9、isplaying the measurements though a digital code tube of 7 pieces of LED.</p><p> Keywords :Single-chip microcontroller,Digital voltmeter,A/D converter</p><p> 1、引言
10、 </p><p> 數(shù)字電壓表,簡(jiǎn)稱(chēng)DVM,它是采用數(shù)字化測(cè)量技術(shù),把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。與此同時(shí),由DVM擴(kuò)展而成的各種通用及專(zhuān)用數(shù)字儀器儀表,也把電量及非電量測(cè)量技術(shù)提到了一個(gè)更高的水平。本設(shè)計(jì)主要用A/D 轉(zhuǎn)換器以及由它們構(gòu)成的基于單片機(jī)的數(shù)字電壓表的工作原理。目
11、前,由各種單片A/D 轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表,已被廣泛用于電子及電工測(cè)量、工業(yè)自動(dòng)化儀表、自動(dòng)測(cè)試系統(tǒng)等智能化測(cè)量領(lǐng)域,示出強(qiáng)大的生命力理。</p><p> 本設(shè)計(jì)采用AT89C51單片機(jī)的一種電壓測(cè)量電路,該電路采用ADC0808。本文介紹一種基于A/D轉(zhuǎn)換電路,測(cè)量范圍直流 0-5V的4路輸入電壓值,并在四位LED數(shù)碼管上顯示或單路選擇顯示。測(cè)量最小分辨率為0.019V,測(cè)量誤差約為正負(fù)0.02V。<
12、;/p><p> 本設(shè)計(jì)以AT89C51系列單片機(jī)為核心器件,組成一個(gè)簡(jiǎn)單的直流數(shù)字電壓。ADC0808采用1路模擬量輸入,能夠測(cè)量0-5V之間的直流電壓值。電壓顯示屏采用4位一體的LED數(shù)碼管顯示,能夠顯示三位小數(shù)。設(shè)計(jì)盡量使用較少的元器件。 </p><p><b> 2、設(shè)計(jì)方案及原理</b></p><p><b> 2.
13、1、設(shè)計(jì)方案</b></p><p> 硬件電路設(shè)計(jì)由4個(gè)部分組成:A/D轉(zhuǎn)換電路、AT89C51單片機(jī)系統(tǒng)、LED顯示系統(tǒng)以及測(cè)量電壓輸入電路。硬件電路設(shè)計(jì)框圖如圖1所示。</p><p> 圖1 數(shù)字電壓表系統(tǒng)硬件設(shè)計(jì)框圖</p><p> 2.2、數(shù)字電壓表設(shè)計(jì)原理</p><p> 利用A/D轉(zhuǎn)換電路將待測(cè)的模擬
14、信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),通過(guò)相應(yīng)換算后將測(cè)試結(jié)果以數(shù)字形式顯示出來(lái)。在高精度數(shù)字電壓表中,常采用由積分式和比較式相結(jié)合起來(lái)的復(fù)合式A/D轉(zhuǎn)換器。本設(shè)計(jì)以AT89C51單片機(jī)為核心,以逐次比較型A/D轉(zhuǎn)換器ADC0808、LED四位數(shù)碼管為主體。</p><p><b> 3、硬件設(shè)計(jì)</b></p><p> 3.1、AT89C51的功能介紹</p>&
15、lt;p> AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的低電壓、高性能CMOS8位微處理器,俗稱(chēng)單片機(jī)。AT89C51是一種帶2K字節(jié)閃存可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,A
16、T89C2051是它的一種精簡(jiǎn)版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。外形及引腳排如圖2所示。 </p><p> 圖2 AT89C51芯片模型</p><p> 3.1.1、AT89C51芯片的各引腳功能</p><p> P0口:這組引腳共有8條,P0.0為最低位。這8個(gè)引腳有兩種不同的功能,分別適用于不同的情況,第
17、一種情況是AT89C51不帶外存儲(chǔ)器,P0口可以為通用I/O口使用,P0.0-P0.7用于傳送CPU的輸入/輸出數(shù)據(jù),這時(shí)輸出數(shù)據(jù)可以得到鎖存,不需要外接專(zhuān)用鎖存器,輸入數(shù)據(jù)可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性。</p><p> P1口:這8個(gè)引腳和P0口的8個(gè)引腳類(lèi)似,P1.7為最高位,P1.0為最低位,當(dāng)P1口作為通用I/O口使用時(shí),P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸
18、出數(shù)據(jù)。</p><p> P2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲(chǔ)器的高8位地址,共同選中片外存儲(chǔ)器單元,但并不是像P0口那樣傳送存儲(chǔ)器的讀/寫(xiě)數(shù)據(jù)。</p><p> P3口:這組引腳的第一功能和其余三個(gè)端口的第一功能相同,第二功能為控制功能,每個(gè)引腳并不完全相同,</p&g
19、t;<p> Vcc為+5V電源線,Vss接地。</p><p> ALE:地址鎖存允許線,配合P0口的第二功能使用,在訪問(wèn)外部存儲(chǔ)器時(shí),AT89C51的CPU在P0.0-P0.7引腳線去傳送隨后而來(lái)的片外存儲(chǔ)器讀/寫(xiě)數(shù)據(jù)。在不訪問(wèn)片外存儲(chǔ)器時(shí),AT89C51自動(dòng)在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時(shí)鐘源或定時(shí)脈沖使用。</p><p>
20、; /EA:片外存儲(chǔ)器訪問(wèn)選擇線,可以控制AT89C51使用片內(nèi)ROM或使用片外ROM,若/EA=1,則允許使用片內(nèi)ROM, 若/EA=0,則只使用片外ROM。</p><p> /PSEN:片外ROM的選通線,在訪問(wèn)片外ROM時(shí),AT89C51自動(dòng)在/PSEN線上產(chǎn)生一個(gè)負(fù)脈沖,作為片外ROM芯片的讀選通信號(hào)。</p><p> RST:復(fù)位線,可以使AT89C51處于復(fù)位(即初始
21、化)工作狀態(tài)。通常AT89C51復(fù)位有自動(dòng)上電復(fù)位和人工按鍵復(fù)位兩種。</p><p> XTAL1和XTAL2:片內(nèi)震蕩電路輸入線,這兩個(gè)端子用來(lái)外接石英晶體和微調(diào)電容,即用來(lái)連接AT89C51片內(nèi)OSC(震蕩器)的定時(shí)反饋回路。</p><p> Vcc為+5V電源線,Vss接地。</p><p> 3.2、ADC0808的引腳及功能介紹</p>
22、;<p> ADC0808是一種典型的A/D轉(zhuǎn)換器。ADC 0808和ADC 0809除精度略有差別外(前者精度為8位、后者精度為7位),其余各方面完全相同。它們都是CMOS器件,不僅包括一個(gè)8位的逐次逼近型的ADC部分,而且還提供一個(gè)8通道的模擬多路開(kāi)關(guān)和通道尋址邏輯,因而又把它作為簡(jiǎn)單的“數(shù)據(jù)采集系統(tǒng)”。利用它可直接輸入8個(gè)單端的模擬信號(hào)分時(shí)進(jìn)行A/D轉(zhuǎn)換,在多點(diǎn)巡回檢測(cè)和過(guò)程控制、運(yùn)動(dòng)控制中應(yīng)用十分廣泛。它是由8位
23、A/D轉(zhuǎn)換器,一個(gè)8路模擬量開(kāi)關(guān),8位模擬量地址鎖存譯碼器和一個(gè)三態(tài)數(shù)據(jù)輸出鎖存器組成;+5V單電源供電,轉(zhuǎn)化時(shí)間在100us左右;內(nèi)部沒(méi)有時(shí)鐘電路,故需外部提供時(shí)鐘信號(hào)。芯片模型如圖3所示。</p><p> 圖3 ADC0808芯片模型</p><p> 3.2.1、引腳簡(jiǎn)介 </p><p> (1)IN0~IN7:8路模擬量輸入端。</p>
24、;<p> (2)D0~D7:8位數(shù)字量輸出端口。</p><p> (3)START:A/D轉(zhuǎn)換啟動(dòng)信號(hào)輸入端。</p><p> (4)ALE:地址鎖存允許信號(hào),高電平有效。</p><p> (5)EOC:輸出允許控制信號(hào),高電平有效。</p><p> (6)OE:輸出允許控制信號(hào),高電平有效。</p&g
25、t;<p> (7)CLK:時(shí)鐘信號(hào)輸入端。</p><p> (8)A、B、C:轉(zhuǎn)換通道地址,控制8路模擬通道的切換。A、B、C分別與地址線或數(shù)據(jù)線相連,三位編碼對(duì)應(yīng)8個(gè)通道地址端口,A、B、C=000~111分別對(duì)應(yīng)IN0~IN7通道的地址端口。</p><p> 3.2.2、ADC0808的轉(zhuǎn)換原理</p><p> ADC0808采用逐
26、次比較的方法完成A/D轉(zhuǎn)換,由單一的+5V電源供電。片內(nèi)帶有鎖存功能的8路選1的模擬開(kāi)關(guān),由A、B、C的編碼來(lái)決定所選的通道。ADC0808完成一次轉(zhuǎn)換需100μs左右,它具有輸出TTL三態(tài)鎖存緩沖器,可直接連接到AT89C51的數(shù)據(jù)總線上。通過(guò)適當(dāng)?shù)耐饨与娐?,ADC0808可對(duì)0~5V的模擬信號(hào)進(jìn)行轉(zhuǎn)換。</p><p> 3.3、LED顯示器的選擇</p><p> 在應(yīng)用系統(tǒng)中,
27、設(shè)計(jì)要求不同,使用的LED顯示器的位數(shù)也不同,因此就生產(chǎn)了位數(shù),尺寸,型號(hào)不同的LED顯示器供選擇,在本設(shè)計(jì)中,選擇4位一體的數(shù)碼型LED顯示器。本系統(tǒng)中前一位顯示電壓的整數(shù)位,即個(gè)位,后兩位顯示電壓的小數(shù)位。</p><p> 4-LED顯示器引腳如圖4所示,是一個(gè)共陰極接法的4位LED數(shù)碼顯示管,其中a,b,c,e,f,g為4位LED各段的公共輸出端,1、2、3、4分別是每一位的位數(shù)選端,dp是小數(shù)點(diǎn)引出端
28、,4位一體LED數(shù)碼顯示管的內(nèi)部結(jié)構(gòu)是由4個(gè)單獨(dú)的LED組成,每個(gè)LED的段輸出引腳在內(nèi)部都并聯(lián)后,引出到器件的外部。</p><p> 對(duì)于這種結(jié)構(gòu)的LED顯示器,它的體積和結(jié)構(gòu)都符合設(shè)計(jì)要求,由于4位LED陰極的各段已經(jīng)在內(nèi)部連接在一起,所以必須使用動(dòng)態(tài)掃描方式顯示。</p><p> 圖4 4位LED引腳</p><p> 3.4、LED顯示器與單片機(jī)
29、接口設(shè)計(jì)</p><p> 由于單片機(jī)的并行口不能直接驅(qū)動(dòng)LED顯示器,所以,在一般情況下,必須采用專(zhuān)用的驅(qū)動(dòng)電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工作。如果驅(qū)動(dòng)電路能力差,即負(fù)載能力不夠時(shí),顯示器亮度就低,而且驅(qū)動(dòng)電路長(zhǎng)期在超負(fù)荷下運(yùn)行容易損壞,因此,LED顯示器的驅(qū)動(dòng)電路設(shè)計(jì)是一個(gè)非常重要的問(wèn)題。</p><p> 為了簡(jiǎn)化數(shù)字式直流電壓表的電路設(shè)計(jì),在LED驅(qū)動(dòng)電路的設(shè)計(jì)
30、上,可以利用單片機(jī)P0口上外接的上拉電阻來(lái)實(shí)現(xiàn),即將LED的A-G段顯示引腳和DP小數(shù)點(diǎn)顯示引腳并聯(lián)到P0口與上拉電阻之間,這樣,就可以加大P0口作為輸出口的驅(qū)動(dòng)能力,使得LED能按照正常的亮度顯示出數(shù)字。</p><p> 軟件設(shè)計(jì) </p><p> 主程序的內(nèi)容包括:起始地址、中斷服務(wù)程序的起始地址、有關(guān)內(nèi)存單元及相關(guān)部件的初始化和一些子程序的調(diào)用等。
31、根據(jù)設(shè)計(jì)要求,設(shè)計(jì)出如圖5所示的主程序流程圖。</p><p> A/D轉(zhuǎn)換子程序設(shè)計(jì):模數(shù)轉(zhuǎn)換采用逐次比較的方法完成A/D轉(zhuǎn)換,由單一的+5V電源供電。片內(nèi)帶有鎖存功能的8路選1的模擬開(kāi)關(guān),由A、B、C的編碼來(lái)決定所選的通道。A/D轉(zhuǎn)換程序的功能是采集數(shù)據(jù),當(dāng)系統(tǒng)置好后,當(dāng)輸入為高電平則轉(zhuǎn)換完成,將轉(zhuǎn)換的數(shù)值顯示輸出。若輸入為低電平,則繼續(xù)掃描。程序流程圖如圖6所示。</p><p>
32、 圖5 主程序流程圖</p><p> 圖6 A/D轉(zhuǎn)換流程圖</p><p> 4.1、顯示子程序
33、 </p><p> 顯示子程序采用動(dòng)態(tài)掃描實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動(dòng)態(tài)掃描顯示方式時(shí),要使得LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,當(dāng)掃描頻率在70HZ左右時(shí),能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對(duì)LED進(jìn)行動(dòng)態(tài)掃描一次,每一位LED的顯示時(shí)間為1ms。</p><p> 在本設(shè)計(jì)中,為了簡(jiǎn)化硬件設(shè)計(jì),使結(jié)
34、構(gòu)圖簡(jiǎn)單、明確,主要采用軟件定時(shí)的方式,即用定時(shí)器0溢出中斷功能實(shí)現(xiàn)11μs定時(shí),通過(guò)軟件延時(shí)程序來(lái)實(shí)現(xiàn)5ms的延時(shí)。</p><p> 4.2、總體電路設(shè)計(jì)</p><p> 經(jīng)過(guò)以上的設(shè)計(jì)過(guò)程,可設(shè)計(jì)出基于單片機(jī)的簡(jiǎn)易數(shù)字直流電壓表硬件電路原理圖如圖7所示。</p><p> 圖7 硬件電路總圖</p><p> 5、系統(tǒng)仿真及
35、其調(diào)試</p><p><b> 5.1、顯示結(jié)果</b></p><p> (1)當(dāng)IN0口輸入電壓值為1.50V時(shí),顯示結(jié)果如圖8所示,測(cè)量誤差為0.009V。</p><p> 圖8 1.5V顯示結(jié)果 圖9 5.0V顯示結(jié)果</p><p> (2)當(dāng)IN0口
36、輸入電壓值為5.00V時(shí),顯示結(jié)果如圖9。測(cè)量誤差為0.002V。</p><p><b> 5.2、誤差分析</b></p><p> 由于單片機(jī)AT89C51為8位處理器,當(dāng)輸入電壓為5.00V時(shí),ADC0808輸出數(shù)據(jù)值為255,因此單片機(jī)最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看到,測(cè)試電壓
37、一般以0.01V的幅度變化。</p><p> 從仿真可以看出,簡(jiǎn)易數(shù)字電壓表測(cè)得的值基本上與標(biāo)準(zhǔn)電壓值偏離0-0.01V,這可以通過(guò)校正ADC0808的基準(zhǔn)電壓來(lái)解決。因?yàn)樵撾妷罕碓O(shè)計(jì)時(shí)直接用5V的供電電源作為電壓,所以電壓可能有偏差。若要測(cè)量大于5V的電壓時(shí),可在輸入口使用分壓電阻,而程序中只要將計(jì)算程序的除數(shù)進(jìn)行調(diào)整就可以進(jìn)行其他電壓值得測(cè)量了。</p><p><b>
38、 6、總結(jié)</b></p><p> 經(jīng)過(guò)一段時(shí)間的努力,課程設(shè)計(jì)基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表基本完成。但設(shè)計(jì)中還是有許多的不做之處。這次是我第一次設(shè)計(jì)電路,并用Proteus實(shí)現(xiàn)了仿真。在這過(guò)程中,我對(duì)電路設(shè)計(jì),單片機(jī)的原理和使用等都有了新的認(rèn)識(shí)。通過(guò)這次設(shè)計(jì),我學(xué)會(huì)了Proteus和Keil軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設(shè)計(jì)、原理圖的設(shè)計(jì)和電路圖的仿真的設(shè)計(jì)流程,積累了不少經(jīng)驗(yàn)。&
39、lt;/p><p> 通過(guò)本次設(shè)計(jì),我對(duì)單片機(jī)這門(mén)課有了進(jìn)一步的了解。無(wú)論是在硬件連接方面還是在軟件編程方面。本次設(shè)計(jì)采用了AT89C51單片機(jī)芯片,與以往的單片機(jī)相比增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。設(shè)計(jì)中還用到了模/數(shù)轉(zhuǎn)換芯片ADC0808,以前在學(xué)單片機(jī)課程時(shí)只是對(duì)其理論知識(shí)有了初步的理解。通過(guò)這次設(shè)計(jì),對(duì)它的工作原理有了更深的理解。在調(diào)試過(guò)程中遇到很多問(wèn)題,硬件上的理論知識(shí)學(xué)得不夠扎
40、實(shí),對(duì)電路的仿真方面也不夠熟練。在以后的實(shí)踐中,我將繼續(xù)努力學(xué)習(xí)電路設(shè)計(jì)方面的理論知識(shí),并理論聯(lián)系實(shí)際,爭(zhēng)取在電路設(shè)計(jì)方面能有所提升。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]王思明,張金敏.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:科學(xué)出版社,2012.</p><p> [2]李華,王思明.單片機(jī)原理及應(yīng)用[M
41、].蘭州:蘭州大學(xué)出版社,2001</p><p> [3]唐穎,任條娟.單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)[M].北京:北京大學(xué)出版社,2008 </p><p> [4]謝維成,楊加國(guó).單片機(jī)原理與應(yīng)用及C51程序設(shè)計(jì)實(shí)例[M].北京:電子工業(yè)出版社,2006
42、 </p><p> [5]宋鳳娟,孫軍,李國(guó)忠.基于89C51單片機(jī)的數(shù)字電壓表設(shè)計(jì)[J].上海:工業(yè)控制計(jì)算機(jī),2007</p><p><b> 附錄</b></p><p><b> 源程序代碼</b></p><p> #inc
43、lude<reg51.h></p><p> #define uchar unsigned char#define uint unsigned int</p><p> #define AD_data P3 </p><p> //AD0808 數(shù)據(jù)輸出端#define LED_port P0 //數(shù)碼管段#define LE
44、D_pos P1 //數(shù)碼管位</p><p> sbit START=P2^5;sbit O E=P2^6;sbit EOC=P2^7; sbit ALE=P2^2;</p><p> uint DCtemp=0; //電壓臨時(shí)數(shù)據(jù)</p><p> uchar code LED_seg[10]={0xc0,0xf9,0xa4,0xb0,
45、0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code pos[4]={0x01,0x02,0x04,0x08};function: input: output:explain: 延時(shí)函數(shù),void Delay(uchar t) //延時(shí)函數(shù) { uchar i,j,k; for(i=0;i<t;i++) for(j=0;j<20;j++) for
46、(k=0;k<20;k++) ;}function: input: output: //采集到的數(shù)值explain: //AD0808控制,實(shí)現(xiàn)模數(shù)轉(zhuǎn)換uchar AD_get(){ uchar DCdata; START=0; ALE=1; </p><p> //因?yàn)槟M輸入只采用一路,地址段直 </p><p> 接接地,使用I
47、N0作為輸入端 START=1; START=0; ALE=0; while(EOC==0) ; OE=1; DCdata=AD_data; OE=0; Delay(10); return DCdata;}function: input: output:explain: </p><p> //將ADC0808讀取數(shù)值轉(zhuǎn)化為電壓值(擴(kuò)大了100倍)void
48、AD_shift(uchar DCdata){ uchar i; float DC=0; for(i=0;i<8;i++) { if(DCdata&1<<i) { DC+=(1<<i)*19.6; } } DCtemp=(int)DC; }function: shift input: output:explain: </p>&
49、lt;p> //將電壓值的每一位放到數(shù)組中void value_shift(uchar value[]){ value[0]=DCtemp/1000; value[1]=DCtemp/100%10; value[2]=DCtemp/10%10; value[3]=DCtemp%10;}function: display input: output:explain: //數(shù)碼管顯示void Displa
50、y(uchar value[]){ uchar i; for(i=0;i<4;i++) { LED_pos=pos[i]; //位控制 if(i==0) LED_port=LED_seg[value[i]]+0x80; //段碼 </p><p> input: output:explain: void main() els
51、e LED_port=LED_seg[value[i]]; Delay(1</p><p> } }function:</p><p> { uchar value[4]; </p><p> while(1) { AD_shift(AD_get()); value_shift(value); Display(value)
52、; }</p><p><b> }</b></p><p> input: output:explain: void main(){ uchar value[4]; </p><p> while(1) { AD_shift(AD_get()); value_shift(value); Displa
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字電壓表課程設(shè)計(jì)--基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)易數(shù)字電壓表
- 課程設(shè)計(jì)----單片機(jī)簡(jiǎn)易數(shù)字電壓表
- 數(shù)字電壓表課程設(shè)計(jì)--簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)易數(shù)字電壓表的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的簡(jiǎn)易數(shù)字電壓表設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-數(shù)字電壓表
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電壓表
- 單片機(jī)課程設(shè)計(jì)-數(shù)字電壓表
- 單片機(jī)(數(shù)字電壓表)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----數(shù)字電壓表
- 單片機(jī)課程設(shè)計(jì)-數(shù)字電壓表
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電壓表
- 單片機(jī)課程設(shè)計(jì)--數(shù)字電壓表
- 基于單片機(jī)的數(shù)字電壓表課程設(shè)計(jì)
- 基于單片機(jī)的數(shù)字電壓表課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-多通路簡(jiǎn)易數(shù)字電壓表
評(píng)論
0/150
提交評(píng)論