版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 第1章 引言1</b></p><p> 第2章 總體設(shè)計(jì)方案2</p><p> 2.1 設(shè)計(jì)要求2</p><p> 2.2 設(shè)計(jì)思路2</p><p> 2.3 設(shè)計(jì)方案3&l
2、t;/p><p> 第3章 硬件電路設(shè)計(jì)4</p><p> 3.1 A/D轉(zhuǎn)換模塊4</p><p> 3.2 單片機(jī)系統(tǒng)9</p><p> 3.3 復(fù)位電路和時(shí)鐘電路12</p><p> 3.4 LED顯示系統(tǒng)設(shè)計(jì)14</p><p> 3.5 總體電路設(shè)計(jì)17&l
3、t;/p><p> 第4章 程序設(shè)計(jì)18</p><p> 4.1 程序設(shè)計(jì)總方案18</p><p> 4.2 系統(tǒng)子程序設(shè)計(jì)18</p><p> 第5章 仿真20</p><p> 5.1 軟件調(diào)試20</p><p> 5.2 顯示結(jié)果21</p>
4、<p> 第6章 使用說明22</p><p> 第7章 心得體會23</p><p><b> 參考文獻(xiàn)24</b></p><p> 附錄A 程序清單25</p><p> 附錄B 原理圖31</p><p><b> 第1章 引言&l
5、t;/b></p><p> 在電量的測量中,電壓、電流和頻率是最基本的三個(gè)被測量,其中電壓量的測量最為經(jīng)常。而且隨著電子技術(shù)的發(fā)展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、測量速度快等特而得到廣泛應(yīng)用。 </p&
6、gt;<p> 傳統(tǒng)的指針式刻度電壓表功能單一,進(jìn)度低,容易引起視差和視覺疲勞,因而不能滿足數(shù)字化時(shí)代的需要。采用單片機(jī)的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加以顯示,從而精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便,還可與PC實(shí)時(shí)通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎(chǔ)。以數(shù)字電壓表為核心,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表。目前,由各種單片機(jī)和A/D轉(zhuǎn)換器
7、構(gòu)成的數(shù)字電壓表作全面深入的了解是很有必要的。</p><p> 最近的幾十年來,隨著半導(dǎo)體技術(shù)、集成電路和微處理器技術(shù)的發(fā)展,數(shù)字電路和數(shù)字化測量技術(shù)也有了巨大的進(jìn)步,從而促使了數(shù)字電壓表的快速發(fā)展,并不斷出現(xiàn)新的類型。</p><p> 目前,數(shù)字電壓表的內(nèi)部核心部件是A/D轉(zhuǎn)換器,轉(zhuǎn)換的精度很大程度上影響著數(shù)字電壓表的準(zhǔn)確度,因而,以后數(shù)字電壓表的發(fā)展就著眼在高精度和低成本這兩個(gè)
8、方面。</p><p> 本文是以簡易數(shù)字直流電壓表的設(shè)計(jì)為研究內(nèi)容,本系統(tǒng)主要包括三大模塊:轉(zhuǎn)換模塊、數(shù)據(jù)處理模塊及顯示模塊。其中,A/D轉(zhuǎn)換采用ADC0808對輸入的模擬信號進(jìn)行轉(zhuǎn)換,控制核心AT89C51再對轉(zhuǎn)換的結(jié)果進(jìn)行運(yùn)算處理,最后驅(qū)動輸出裝置LED顯示數(shù)字電壓信號。</p><p> 第2章 設(shè)計(jì)總體方案</p><p><b> 2.1
9、設(shè)計(jì)要求 </b></p><p> ⑴以MCS-51系列單片機(jī)為核心器件,組成一個(gè)簡單的直流數(shù)字電壓表。</p><p> ⑵采用1路模擬量輸入,能夠測量0-5V之間的直流電壓值。</p><p> ⑶電壓顯示用4位一體的LED數(shù)碼管顯示,能夠顯示兩位小數(shù)。 </p><p> ⑷用鍵盤實(shí)現(xiàn)復(fù)位、顯示通道+、顯示通道-
10、、循環(huán)顯示、單通道顯示、停止等功能。</p><p><b> 2.2 設(shè)計(jì)思路</b></p><p> ?、鸥鶕?jù)設(shè)計(jì)要求,選擇AT89C51單片機(jī)為核心控制器件。</p><p> ⑵A/D轉(zhuǎn)換采用ADC0808實(shí)現(xiàn),與單片機(jī)的接口為P1口和P2口、P3口部分接口。</p><p> ⑶電壓顯示采用4位一體的L
11、ED數(shù)碼管。</p><p> ?、萀ED數(shù)碼的段碼輸入,由并行端口P0產(chǎn)生:位碼輸入,用并行端口P2低四位產(chǎn)生。</p><p><b> 2.3 設(shè)計(jì)方案</b></p><p> 硬件電路設(shè)計(jì)由6個(gè)部分組成; A/D轉(zhuǎn)換電路,AT89C51單片機(jī)系統(tǒng),LED顯示系統(tǒng)、時(shí)鐘電路、復(fù)位電路以及測量電壓輸入電路、按鍵控制電路。硬件電路設(shè)計(jì)框
12、圖如圖2-1所示。</p><p> 圖2-1 數(shù)字電壓表系統(tǒng)硬件設(shè)計(jì)框圖</p><p> 第3章 硬件電路設(shè)計(jì)</p><p> 3.1 A/D轉(zhuǎn)換模塊</p><p> 現(xiàn)實(shí)世界的物理量都是模擬量,能把模擬量轉(zhuǎn)化成數(shù)字量的器件稱為模/數(shù)轉(zhuǎn)換器(A/D轉(zhuǎn)換器),A/D轉(zhuǎn)換器是單片機(jī)數(shù)據(jù)采集系統(tǒng)的關(guān)鍵接口電路,按照各種A/D芯片的
13、轉(zhuǎn)化原理可分為逐次逼近型,雙重積分型等等。雙積分式A/D轉(zhuǎn)換器具有抗干擾能力強(qiáng)、轉(zhuǎn)換精度高、價(jià)格便宜等優(yōu)點(diǎn)。與雙積分相比,逐次逼近式A/D轉(zhuǎn)換的轉(zhuǎn)換速度更快,而且精度更高,比如ADC0809、ADC0808等,它們通常具有8路模擬選通開關(guān)及地址譯碼、鎖存電路等,它們可以與單片機(jī)系統(tǒng)連接,將數(shù)字量送到單片機(jī)進(jìn)行分析和顯示。一個(gè)n位的逐次逼近型A/D轉(zhuǎn)換器只需要比較n次,轉(zhuǎn)換時(shí)間只取決于位數(shù)和時(shí)鐘周期,逐次逼近型A/D轉(zhuǎn)換器轉(zhuǎn)換速度快,因而
14、在實(shí)際中廣泛使用。</p><p> 3.1.1 逐次逼近型A/D轉(zhuǎn)換器原理</p><p> 逐次逼近型A/D轉(zhuǎn)換器是由一個(gè)比較器、A/D轉(zhuǎn)換器、存儲器及控制電路組成。它利用內(nèi)部的寄存器從高位到低位一次開始逐位試探比較。</p><p><b> 轉(zhuǎn)換過程如下:</b></p><p> 開始時(shí),寄存器各位清零
15、,轉(zhuǎn)換時(shí),先將最高位置1,把數(shù)據(jù)送入A/D轉(zhuǎn)換器轉(zhuǎn)換,轉(zhuǎn)換結(jié)果與輸入的模擬量比較,如果轉(zhuǎn)換的模擬量比輸入的模擬量小,則1保留,如果轉(zhuǎn)換的模擬量比輸入的模擬量大,則1不保留,然后從第二位依次重復(fù)上述過程直至最低位,最后寄存器中的內(nèi)容就是輸入模擬量對應(yīng)的二進(jìn)制數(shù)字量。其原理框圖如圖3-1所示:</p><p> 圖3-1 逐次逼近式A/D轉(zhuǎn)換器原理圖</p><p> 3.1.2 ADC0
16、808主要特性</p><p> ADC0808是CMOS單片型逐次逼近式A/D轉(zhuǎn)換器,帶有使能控制端,與微機(jī)直接接口,片內(nèi)帶有鎖存功能的8路模擬多路開關(guān),可以對8路0-5V輸入模擬電壓信號分時(shí)進(jìn)行轉(zhuǎn)換,由于ADC0808設(shè)計(jì)時(shí)考慮到若干種模/數(shù)變換技術(shù)的長處,所以該芯片非常適應(yīng)于過程控制,微控制器輸入通道的接口電路,智能儀器和機(jī)床控制等領(lǐng)域。</p><p> ADC0808主要特性
17、:8路8位A/D轉(zhuǎn)換器,即分辨率8位;具有鎖存控制的8路模擬開關(guān);易與各種微控制器接口;可鎖存三態(tài)輸出,輸出與TTL兼容;轉(zhuǎn)換時(shí)間:128μs;轉(zhuǎn)換精度:0.2%;單個(gè)+5V電源供電;模擬輸入電壓范圍0- +5V,無需外部零點(diǎn)和滿度調(diào)整;低功耗,約15mW。</p><p> 3.1.3 ADC0808的外部引腳特征 </p><p> ADC0808芯片有28條引腳,采用雙列直插式
18、封裝,其引腳圖如圖3-2所示。</p><p> 圖3-2 ADC0808引腳圖</p><p> 下面說明各個(gè)引腳功能:</p><p> IN0-IN7(8條):8路模擬量輸入線,用于輸入和控制被轉(zhuǎn)換的模擬電壓。</p><p> 地址輸入控制(4條):</p><p> ALE:地址鎖存允許輸入線,高電
19、平有效,當(dāng)ALE為高電平時(shí),為地址輸入線,用于選擇IN0-IN7上那一條模擬電壓送給比較器進(jìn)行A/D轉(zhuǎn)換。</p><p> ADDA,ADDB,ADDC:3位地址輸入線,用于選擇8路模擬輸入中的一路,其對應(yīng)關(guān)系如表3-1所示:</p><p> 表3-1 ADC0808通道選擇表</p><p> START:START為“啟動脈沖”輸入法,該線上正脈沖由C
20、PU送來,寬度應(yīng)大于100ns,上升沿清零SAR,下降沿啟動ADC工作。</p><p> EOC: EOC為轉(zhuǎn)換結(jié)束輸出線,該線上高電平表示A/D轉(zhuǎn)換已結(jié)束,數(shù)字量已鎖入三態(tài)輸出鎖存器。</p><p> D1-D8:數(shù)字量輸出端,D1為高位。</p><p> OE:OE為輸出允許端,高電平能使D1-D8引腳上輸出轉(zhuǎn)換后的數(shù)字量。</p>&
21、lt;p> REF+、REF-:參考電壓輸入量,給電阻階梯網(wǎng)絡(luò)供給標(biāo)準(zhǔn)電壓。</p><p> Vcc、GND: Vcc為主電源輸入端,GND為接地端,一般REF+與Vcc連接在一起,REF-與GND連接在一起.</p><p> CLK:時(shí)鐘輸入端。</p><p> 3.1.4 ADC0808的內(nèi)部結(jié)構(gòu)及工作流程</p><p&
22、gt; ADC0808由8路模擬通道選擇開關(guān),地址鎖存與譯碼器,比較器,8位開關(guān)樹型A/D轉(zhuǎn)換器,逐次逼近型寄存器,定時(shí)和控制電路和三態(tài)輸出鎖存器等組成,其內(nèi)部結(jié)構(gòu)如圖3-3所示。</p><p> 圖3-3 ADC0808的內(nèi)部結(jié)構(gòu)</p><p><b> 其中:</b></p><p> ?。?)8路模擬通道選擇開關(guān)實(shí)現(xiàn)從8路輸入
23、模擬量中選擇一路送給后面的比較器進(jìn)行比較。</p><p> (2)地址鎖存與譯碼器用于當(dāng)ALE信號有效時(shí),鎖存從ADDA、ADDB、ADDC 3根地址線上送來的3位地址,譯碼后產(chǎn)生通道選擇信號,從8路模擬通道中選擇當(dāng)前模擬通道。</p><p> ?。?)比較器,8位開關(guān)樹型A/D轉(zhuǎn)換器,逐次逼近型寄存器,定時(shí)和控制電路組成8位A/D轉(zhuǎn)換器,當(dāng)START信號有效時(shí),就開始對當(dāng)前通道的模
24、擬信號進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換完成后,把轉(zhuǎn)換得到的數(shù)字量送到8位三態(tài)鎖存器,同時(shí)通過引腳送出轉(zhuǎn)換結(jié)束信號。</p><p> ?。?)三態(tài)輸出鎖存器保存當(dāng)前模擬通道轉(zhuǎn)換得到的數(shù)字量,當(dāng)OE信號有效時(shí),把轉(zhuǎn)換的結(jié)果送出。</p><p> ADC0808的工作流程為:</p><p> ?。?)輸入3位地址,并使ALE=1,將地址存入地址鎖存器中,經(jīng)地址譯碼器從8路模擬通道中
25、選通1路模擬量送給比較器。</p><p> ?。?)送START一高脈沖,START的上升沿使逐次寄存器復(fù)位,下降沿啟動A/D轉(zhuǎn)換,并使EOC信號為低電平。</p><p> ?。?)當(dāng)轉(zhuǎn)換結(jié)束時(shí),轉(zhuǎn)換的結(jié)果送入到輸出三態(tài)鎖存器中,并使EOC信號回到高電平,通知CPU已轉(zhuǎn)換結(jié)束。</p><p> (4)當(dāng)CPU執(zhí)行一讀數(shù)據(jù)指令時(shí),使OE為高電平,則從輸出端D0
26、-D7讀出數(shù)據(jù)。</p><p><b> 3.2 單片機(jī)系統(tǒng)</b></p><p> 3.2.1 AT89C51性能</p><p> AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含有4KB的可反復(fù)擦寫的只讀程序存儲器和128字節(jié)的隨機(jī)存儲器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)
27、標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p> AT89C51功能性能:與MCS-51成品指令系統(tǒng)完全兼容;4KB可編程閃速存儲器;壽命:1000次寫/擦循環(huán);數(shù)據(jù)保留時(shí)間:10年;全靜態(tài)工作:0-24MHz;三級程序存儲器鎖定;128*8B內(nèi)部R
28、AM;32個(gè)可編程I/O口線;2個(gè)16位定時(shí)/計(jì)數(shù)器;5個(gè)中斷源;可編程串行UART通道;片內(nèi)震蕩器和掉電模式。 </p><p> 3.2.2 AT89C51各引腳功能</p><p> AT89C51提供以下標(biāo)準(zhǔn)功能:4KB的Flash閃速存儲器,128B內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量兩級中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)震蕩器及時(shí)鐘電路,同時(shí),
29、AT89C51可降至0Hz靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存RAM中的內(nèi)容,但震蕩器停止工作并禁止其他所有工作直到下一個(gè)硬件復(fù)位。AT89C51采用PDIP封裝形式,引腳配置如圖3-4所示。</p><p> 圖3-4 AT89C51的引腳圖</p><p> AT89C51芯
30、片的各引腳功能為:</p><p> P0口:這組引腳共有8條,P0.0為最低位。這8個(gè)引腳有兩種不同的功能,分別適用于不同的情況,第一種情況是89C51不帶外存儲器,P0口可以為通用I/O口使用,P0.0-P0.7用于傳送CPU的輸入/輸出數(shù)據(jù),這時(shí)輸出數(shù)據(jù)可以得到鎖存,不需要外接專用鎖存器,輸入數(shù)據(jù)可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性;第二種情況是89C51帶片外存儲器,P0.0-P0.7在CPU訪問片外存
31、儲器時(shí)先傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀/寫數(shù)據(jù)。P0口為開漏輸出,在作為通用I/O使用時(shí),需要在外部用電阻上拉。</p><p> P1口:這8個(gè)引腳和P0口的8個(gè)引腳類似,P1.7為最高位,P1.0為最低位,當(dāng)P1口作為通用I/O口使用時(shí),P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸出數(shù)據(jù)。</p><p> P2口:這組引腳的
32、第一功能與上述兩組引腳的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但并不是像P0口那樣傳送存儲器的讀/寫數(shù)據(jù)。</p><p> P3口:這組引腳的第一功能和其余三個(gè)端口的第一功能相同,第二功能為控制功能,每個(gè)引腳并不完全相同,如下表3-2所示:</p><p> 表3-2 P3口各位的第
33、二功能</p><p> Vcc為+5V電源線,Vss接地。</p><p> ALE:地址鎖存允許線,配合P0口的第二功能使用,在訪問外部存儲器時(shí),89C51的CPU在P0.0-P0.7引腳線去傳送隨后而來的片外存儲器讀/寫數(shù)據(jù)。在不訪問片外存儲器時(shí),89C51自動在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時(shí)鐘源或定時(shí)脈沖使用。</p>&
34、lt;p> /EA:片外存儲器訪問選擇線,可以控制89C51使用片內(nèi)ROM或使用片外ROM,</p><p> 若/EA=1,則允許使用片內(nèi)ROM, 若/EA=0,則只使用片外ROM。</p><p> /PSEN:片外ROM的選通線,在訪問片外ROM時(shí),89C51自動在/PSEN線上產(chǎn)生一個(gè)負(fù)脈沖,作為片外ROM芯片的讀選通信號。</p><p>
35、RST:復(fù)位線,可以使89C51處于復(fù)位(即初始化)工作狀態(tài)。通常89C51復(fù)位有自動上電復(fù)位和人工按鍵復(fù)位兩種。</p><p> XTAL1和XTAL2:片內(nèi)震蕩電路輸入線,這兩個(gè)端子用來外接石英晶體和微調(diào)電容,即用來連接89C51片內(nèi)OSC(震蕩器)的定時(shí)反饋回路。</p><p> 3.3 復(fù)位電路和時(shí)鐘電路</p><p> 3.3.1 復(fù)位電路設(shè)計(jì)
36、</p><p> 單片機(jī)在啟動運(yùn)行時(shí)都需要復(fù)位,使CPU和系統(tǒng)中的其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。MCS-51單片機(jī)有一個(gè)復(fù)位引腳RST,采用施密特觸發(fā)輸入。當(dāng)震蕩器起振后,只要該引腳上出現(xiàn)2個(gè)機(jī)器周期以上的高電平即可確保時(shí)器件復(fù)位。復(fù)位完成后,如果RST端繼續(xù)保持高電平,MCS-51就一直處于復(fù)位狀態(tài),只要RST恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。單片機(jī)的復(fù)位方式有上電自動復(fù)位
37、和手動復(fù)位兩種,圖3-4是51系列單片機(jī)統(tǒng)常用的上電復(fù)位和手動復(fù)位組合電路,只要Vcc上升時(shí)間不超過1ms,它們都能很好的工作。</p><p> 圖3-4 復(fù)位電路</p><p> 3.3.2 時(shí)鐘電路設(shè)計(jì)</p><p> 單片機(jī)中CPU每執(zhí)行一條指令,都必須在統(tǒng)一的時(shí)鐘脈沖的控制下嚴(yán)格按時(shí)間節(jié)拍進(jìn)行,而這個(gè)時(shí)鐘脈沖是單片機(jī)控制中的時(shí)序電路發(fā)出的。CP
38、U執(zhí)行一條指令的各個(gè)微操作所對應(yīng)時(shí)間順序稱為單片機(jī)的時(shí)序。MCS-51單片機(jī)芯片內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成時(shí)鐘電路還需附加其他電路。</p><p> 本設(shè)計(jì)系統(tǒng)采用內(nèi)部時(shí)鐘方式,利用單片機(jī)內(nèi)部的高增益反相放大器,外部電路只需要一個(gè)晶振和2個(gè)電容即可,如圖3-5所示。</p><p> 圖3-5 振蕩電
39、路</p><p> 電路中的器件選擇可以通過計(jì)算和實(shí)驗(yàn)確定,也可以參考一些典型電路的參數(shù),電路中,電容器C1和C2對震蕩頻率有微調(diào)作用,通常的取值范圍是30±10pF,在這個(gè)系統(tǒng)中選擇了33pF;石英晶振選擇范圍最高可選24MHz,它決定了單片機(jī)電路產(chǎn)生的時(shí)鐘信號震蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時(shí)鐘信號的震蕩頻率為12MHz。</p><p> 3.4 LED顯
40、示系統(tǒng)設(shè)計(jì)</p><p> 3.4.1 LED基本結(jié)構(gòu)</p><p> LED七段數(shù)碼顯示器由8個(gè)發(fā)光二極管組成顯示字段,7個(gè)長條形的發(fā)光二極管排列組合可用來顯示各種數(shù)字。LED引腳排列如下圖3-6所示:</p><p> 圖3-6 LED引腳排列</p><p> 3.4.2 LED顯示器的選擇</p><p
41、> 在本設(shè)計(jì)中,選擇4位一體的數(shù)碼型LED顯示器,簡稱“4-LED”。本系統(tǒng)中前一位顯示電壓的整數(shù)位,后兩位顯示電壓的小數(shù)位。</p><p> 4-LED顯示器引腳如圖3-7所示,是一個(gè)共陽極接法的4位LED數(shù)碼顯示管,其中a,b,c,e,f,g為4位LED各段的公共輸出端,1、2、3、4分別是每一位的位數(shù)選端,dp是小數(shù)點(diǎn)引出端,4位一體LED數(shù)碼顯示管的內(nèi)部結(jié)構(gòu)是由4個(gè)單獨(dú)的LED組成,每個(gè)LED
42、的段輸出引腳在內(nèi)部都并聯(lián)后,引出到器件的外部。</p><p> 圖3-7 4位LED引腳</p><p> 3.4.3 LED譯碼方式</p><p> 譯碼方式是指由顯示字符轉(zhuǎn)換得到對應(yīng)的字段碼的方式,對于LED數(shù)碼管顯示器,通常的譯碼方式有硬件譯碼和軟件譯碼方式兩種。</p><p> 硬件譯碼是指利用專門的硬件電路來實(shí)現(xiàn)顯
43、示字符碼的轉(zhuǎn)換。</p><p> 軟件譯碼就是編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼,譯碼程序通常為查表程序。</p><p> 本設(shè)計(jì)系統(tǒng)中為了簡化硬件線路設(shè)計(jì),LED譯碼采用軟件編程來實(shí)現(xiàn)。由于本設(shè)計(jì)采用的是共陰極LED,其對應(yīng)的字符和字段碼如下表3-3所示。</p><p> 表3-3 共陰極字段碼表</p><p
44、> 3.4.4 LED顯示器與單片機(jī)接口設(shè)計(jì)</p><p> 由于單片機(jī)的并行口不能直接驅(qū)動LED顯示器,所以,在一般情況下,必須采用專用的驅(qū)動電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工作。如果驅(qū)動電路能力差,即負(fù)載能力不夠時(shí),顯示器亮度就低,而且驅(qū)動電路長期在超負(fù)荷下運(yùn)行容易損壞,因此,LED顯示器的驅(qū)動電路設(shè)計(jì)是一個(gè)非常重要的問題。</p><p> 為了簡化數(shù)字式
45、直流電壓表的電路設(shè)計(jì),在LED驅(qū)動電路的設(shè)計(jì)上,可以利用單片機(jī)P0口上外接的上拉電阻來實(shí)現(xiàn),即將LED的A-G段顯示引腳和DP小數(shù)點(diǎn)顯示引腳并聯(lián)到P0口與上拉電阻之間,這樣,就可以加大P0口作為輸出口德驅(qū)動能力,使得LED能按照正常的亮度顯示出數(shù)字,如圖3-8所示。</p><p> 圖3-8 LED與單片機(jī)接口間的設(shè)計(jì)</p><p> 3.5 總體電路設(shè)計(jì)</p>&
46、lt;p> 經(jīng)過以上的設(shè)計(jì)過程,可設(shè)計(jì)出基于單片機(jī)的簡易數(shù)字電壓表硬件電路原理圖如圖3-9所示。</p><p> 圖3-9 簡易數(shù)字電壓表電路圖</p><p> 此電路的工作原理是:+5V模擬電壓信號通過變阻器VR1分壓后由ADC08008的IN0通道進(jìn)入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低電平),經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道D
47、0-D7傳送給AT89C51芯片的P1口,AT89C51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位LED,同時(shí)它還通過其四位I/O口P2.0、P2.1、P2.2、P2.3產(chǎn)生位選信號控制數(shù)碼管的亮滅。此外,AT89C51還控制ADC0808的工作。其中,單片機(jī)AT89C51通過ALE端口,接到ADC0808的CLOCK,P2.5發(fā)正脈沖啟動A/D轉(zhuǎn)換,P2.6檢測A/D轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,P2.7置
48、高從P1口讀取轉(zhuǎn)換結(jié)果送給LED顯示出來。</p><p><b> 第4章 程序設(shè)計(jì)</b></p><p> 4.1 程序設(shè)計(jì)總方案</p><p> 根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,A/D轉(zhuǎn)換子程序和顯示子程序,這三個(gè)程序模塊構(gòu)成了整個(gè)系統(tǒng)軟件的主程序,如圖4-1所示。</p><p> 圖4
49、-1 數(shù)字電壓表主程序框圖</p><p> 4.2 系統(tǒng)子程序設(shè)計(jì)</p><p> 4.2.1 初始化程序</p><p> 所謂初始化,是對將要用到的MCS_51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定,初始化子程序的主要工作是給寄存器設(shè)置初始值,等待啟動信號。</p><p> 4.2.2 A/D轉(zhuǎn)換子程序</
50、p><p> A/D轉(zhuǎn)換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元,其轉(zhuǎn)換流程圖如圖4-2所示。</p><p> 圖4-2 A/D轉(zhuǎn)換流程圖</p><p> 4.2.3 顯示子程序</p><p> 顯示子程序采用動態(tài)掃描實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式時(shí),要使得LED顯示的比較均
51、勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,當(dāng)掃描頻率在70HZ左右時(shí),能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對LED進(jìn)行動態(tài)掃描一次,每一位LED的顯示時(shí)間為1ms。第5章 仿真</p><p><b> 5.1 軟件調(diào)試</b></p><p> 軟件調(diào)試的主要任務(wù)是排查錯(cuò)誤,錯(cuò)誤主要包括邏輯和功能錯(cuò)誤,這些錯(cuò)誤有些是顯性的,而有些是隱形的,可
52、以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對基于微控制器的設(shè)計(jì)連同所有的周圍電子器件一起仿真,用戶甚至可以實(shí)時(shí)采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設(shè)模型來對設(shè)計(jì)進(jìn)行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機(jī)系統(tǒng)原理圖電路繪制、PCB設(shè)計(jì),更為顯著點(diǎn)的特點(diǎn)是可以與Keil uvision4工具軟件結(jié)合進(jìn)行編程仿真調(diào)試。
53、</p><p> 本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,而程序方面,采用的是匯編語言,用Keil軟件將程序?qū)懭雴纹瑱C(jī)。</p><p><b> 顯示結(jié)果</b></p><p><b> 圖5-1復(fù)位</b></p><p> 圖5-2 循
54、環(huán)顯示 </p><p><b> 使用說明</b></p><p> 此數(shù)字電壓表,共設(shè)有復(fù)位、啟動、單路/循環(huán)、通道變換、通道+/-、暫停/繼續(xù)6個(gè)按鍵。仿真開始,按啟動鍵即可開始測量顯示,可通過變換單路/循環(huán)以及暫停繼續(xù)按鍵進(jìn)行測量。當(dāng)需要重啟時(shí),只需按下復(fù)位鍵便可重新開始測量。按鍵如圖6-1所示。</p><p&
55、gt;<b> 圖6-1 按鍵</b></p><p><b> 第7章 心得體會</b></p><p> 為期2個(gè)星期的課程設(shè)計(jì)已經(jīng)結(jié)束,在這幾個(gè)星期的學(xué)習(xí)、設(shè)計(jì)過程中我感觸頗深。使我對單片機(jī)的理論知識有了具體的認(rèn)識。通過這次設(shè)計(jì),我的理論知識掌握得更扎實(shí),動手能力明顯提高。同時(shí),通過網(wǎng)上搜索等多方面的查詢資料,比如我們用的AT89S
56、51芯片。通過本次課程設(shè)計(jì)我學(xué)到許多在書本上沒有的知識,也認(rèn)識到理論聯(lián)系實(shí)踐的重要。理論學(xué)得好,但如果只會紙上談兵,一點(diǎn)用都沒有。通過這次課程設(shè)計(jì),我掌握了常用元件的識別和測試,通過對電路的分析,結(jié)合實(shí)際實(shí)驗(yàn),并利用其它電路作為輔助,提出了一種制作數(shù)字電壓表的有效方法,解決了在制作數(shù)字電壓表時(shí)經(jīng)常出現(xiàn)的數(shù)字顯示不了,顯示數(shù)字模糊的問題。以及如何提高電路的性能等等。</p><p> 在實(shí)驗(yàn)過程中,我們遇到了不少
57、的問題。比如:通道選擇、復(fù)位、停止功能缺失等。在老師和同學(xué)的幫助下,把問題一一解決,那種心情別提有多高興,很有成就感。同時(shí),在設(shè)計(jì)中暴露出我們在理論學(xué)習(xí)中所存在的問題,有些理論知識還處于半只半解的狀態(tài),通過實(shí)驗(yàn)加深了我們對這些知識的理解。特別是在排查電路,程序問題時(shí),使我們熟練掌握了一些處理電路故障程序的方法。雖然兩周的課程設(shè)計(jì)很短,但是充分鍛煉了我們的團(tuán)隊(duì)合作能力以及對知識點(diǎn)的鞏固,也培養(yǎng)了我們獨(dú)立思考和設(shè)計(jì)能力,樹立了對知識點(diǎn)應(yīng)用的
58、信心最后用一句話來結(jié)束吧?!皩?shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)”。只有把所學(xué)的理論知識運(yùn)用到生活當(dāng)中,才能發(fā)揮它最好的作用。</p><p> 另外通過本次課程設(shè)計(jì)讓我對PROTUES和KEIL軟件的使用有了進(jìn)一步的了解,感覺收獲不小。</p><p><b> 參考文獻(xiàn)</b></p><p> 王迎旭.單片機(jī)原理與應(yīng)用.2版.北京:機(jī)械工業(yè)出版
59、社,2012</p><p> 趙曉安.MCS-51 單片機(jī)原理及應(yīng)用.天津:天津大學(xué)出版社,2001</p><p> 胡漢才.單片機(jī)原理及系統(tǒng)設(shè)計(jì).北京:清華大學(xué)出版社,2002</p><p> 張剛毅,彭喜元.單片機(jī)原理與應(yīng)用設(shè)計(jì).北京:電子工業(yè)出版社,2008</p><p> 吳金戌,沈慶陽,郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)
60、用.北京:清華大學(xué)出版社,2002附錄A 程序清單</p><p> ORG 0000H</p><p> SJMP START ;復(fù)位后跳轉(zhuǎn)</p><p> CLEARMEMIO: MOV R0,#10 ;分別給R0、R1、R2、R3賦初始值</p><p> MOV R1,#10
61、 ;#10代表字符碼“—”</p><p> MOV R2,#10</p><p> MOV R3,#10</p><p><b> RET</b></p><p> START: MOV DPTR,#TAB ;把字符碼初始地址賦給DPTR</p>&
62、lt;p> ACALL CLEARMEMIO ;轉(zhuǎn)移到初始化模塊</p><p> ACALL QIDONG0 ;轉(zhuǎn)移到啟動模塊</p><p> WAIT: MOV A,#0FFH ;P3是準(zhǔn)雙向口,讀數(shù)前先寫入1</p><p> DU-Q: MOV P3,A</p>
63、<p><b> MOV A,P3</b></p><p> ANL A,#07H</p><p> SETB P3.3 </p><p> JNB P3.3,LOOP1 ;判斷單路還是循環(huán)顯示</p><p> MOV R0,A <
64、/p><p> SWAP A ;A內(nèi)高四位第四位調(diào)換</p><p><b> MOV P3,A</b></p><p> CLR P2.5</p><p> SETB P2.5 ;啟動START</p><p> CLR P2.5
65、</p><p> JNB P2.6,$ ;等待A/D轉(zhuǎn)換完成</p><p> SETB P2.7 ;OE置1,允許輸出</p><p> MOV A,#0FFH </p><p><b> MOV P1,A</b></p><
66、;p><b> MOV A,P1</b></p><p> CLR P2.7</p><p> BCDZH: MOV B,#51 ;轉(zhuǎn)換成BCD碼</p><p><b> DIV AB</b></p><p> MOV R1,A
67、 ;百位數(shù)送R1</p><p><b> MOV A,B</b></p><p><b> MOV B,#2</b></p><p><b> MUL AB</b></p><p> MOV B,#10</p><p&g
68、t;<b> DIV AB</b></p><p> MOV R2,A ;十位數(shù)送R2 </p><p> MOV R3,B ;個(gè)位數(shù)送R3</p><p> LCALL DISP ;調(diào)用數(shù)據(jù)顯示模塊</p><p> SJMP WA
69、IT ;跳轉(zhuǎn)</p><p> LOOP1: MOV R0,#0 ;循環(huán)顯示模塊,先給R0置1</p><p> LOOP3: INC R0 ;通道加1</p><p><b> MOV A,R0</b></p><
70、;p> CJNE A,#08H,NEXT ;通道是7時(shí),重新置0</p><p> MOV A,#00H</p><p> NEXT: MOV R0,A</p><p><b> SWAP A</b></p><p><b> MOV P3,A</b>
71、;</p><p> CLR P2.5</p><p> SETB P2.5</p><p> CLR P2.5</p><p> JNB P2.6,$</p><p> SETB P2.7</p><p> MOV A,#0FFH</p><p
72、><b> MOV P1,A</b></p><p><b> MOV A,P1</b></p><p> CLR P2.7</p><p> MOV B,#51</p><p><b> DIV AB</b></p><p&g
73、t;<b> MOV R1,A</b></p><p><b> MOV A,B</b></p><p><b> MOV B,#2</b></p><p><b> MUL AB</b></p><p> MOV B,#10</
74、p><p><b> DIV AB</b></p><p><b> MOV R2,A</b></p><p><b> MOV R3,B</b></p><p> LCALL DISP</p><p> SETB P2.4</p&
75、gt;<p> ZANTING: JNB P2.4,DENGDAI ;P2.4為0,由循環(huán)進(jìn)入暫停模塊</p><p> SETB P3.3 </p><p> JNB P3.3,LOOP3</p><p> SJMP WAIT</p><p> DENGDAI: LCAL
76、L DISP</p><p> LCALL DELAY</p><p> SETB P3.4</p><p> JB P3.4,DENGDAI</p><p> ACALL ZANTING</p><p> DISP: MOV R4,#0FH ;數(shù)字顯示
77、模塊(含小數(shù)點(diǎn))</p><p> LOOP: MOV A,R3</p><p> MOVC A,@A+DPTR</p><p><b> CLR P2.3</b></p><p><b> MOV P0,A</b></p><p> LCAL
78、L DELAY</p><p> SETB P2.3</p><p><b> MOV A,R2</b></p><p> MOVC A,@A+DPTR</p><p> CLR P2.2</p><p><b> MOV P0,A</b></p&g
79、t;<p> LCALL DELAY</p><p> SETB P2.2</p><p> MOV A, R1</p><p> MOVC A,@A+DPTR</p><p> ADD A,#80H</p><p><b> CLR P2.1</b></p
80、><p><b> MOV P0,A</b></p><p> LCALL DELAY</p><p> SETB P2.1</p><p><b> MOV A,R0</b></p><p> MOVC A,@A+DPTR</p><p>
81、; CLR P2.0</p><p><b> MOV P0,A</b></p><p> LCALL DELAY</p><p> SETB P2.0</p><p> DJNZ R4,LOOP</p><p><b> RET</b></p&g
82、t;<p> DISP1: MOV R4,#0FH ;復(fù)位顯示模塊(無小數(shù)點(diǎn))</p><p> LOOP2: MOV A,R3</p><p> MOVC A,@A+DPTR</p><p> CLR P2.3</p><p><b> MOV
83、P0,A</b></p><p> LCALL DELAY</p><p> SETB P2.3</p><p><b> MOV A,R2</b></p><p> MOVC A,@A+DPTR</p><p> CLR P2.2</p><p&
84、gt;<b> MOV P0,A</b></p><p> LCALL DELAY</p><p> SETB P2.2</p><p> MOV A, R1</p><p> MOVC A,@A+DPTR</p><p><b> CLR P2.1</b>
85、;</p><p><b> MOV P0,A</b></p><p> LCALL DELAY</p><p> SETB P2.1</p><p><b> MOV A,R0</b></p><p> MOVC A,@A+DPTR</p>&l
86、t;p> CLR P2.0</p><p><b> MOV P0,A</b></p><p> LCALL DELAY</p><p> SETB P2.0</p><p> DJNZ R4,LOOP2</p><p><b> RET</b>&
87、lt;/p><p> QIDONG0: LCALL DISP1 ;調(diào)用復(fù)位顯示模塊</p><p> SETB p2.4 </p><p> JB P2.4,WAIT1 ;判斷啟動鍵是否按下?</p><p><b> RET</b></p>
88、<p> WAIT1: LCALL DISP1</p><p> ACALL DELAY ;延時(shí)</p><p> ACALL QIDONG0 ;跳轉(zhuǎn)啟動模塊</p><p> DELAY: MOV R6,#20 ;延時(shí)模塊</p><p> D1:
89、 MOV R7,#250</p><p> DJNZ R7,$</p><p> DJNZ R6,D1</p><p><b> RET</b></p><p> TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H</p&g
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--簡易數(shù)字電壓表
- 課程設(shè)計(jì)----單片機(jī)簡易數(shù)字電壓表
- 單片機(jī)課程設(shè)計(jì)--簡易數(shù)字電壓表的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--簡易數(shù)字電壓表的設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)--基于單片機(jī)的簡易數(shù)字電壓表的設(shè)計(jì)
- 數(shù)字電壓表課程設(shè)計(jì)--基于單片機(jī)的簡易數(shù)字電壓表的設(shè)計(jì)
- 簡易數(shù)字電壓表單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于單片機(jī)的簡易數(shù)字電壓表設(shè)計(jì)
- 簡易數(shù)字電壓表單片機(jī)課程設(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ù)字電壓表
- 簡易數(shù)字電壓表-單片機(jī)原理及應(yīng)用課程設(shè)計(jì)
- 簡易數(shù)字電壓表-單片機(jī)原理及應(yīng)用課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
評論
0/150
提交評論