版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 單片機(jī)原理及接口技術(shù) 課程設(shè)計(jì)(論文)</p><p> 題目: 數(shù)字電壓表設(shè)計(jì) </p><p> 課程設(shè)計(jì)(論文)任務(wù)及評語</p><p> 院(系):電氣工程學(xué)院 教研室: </p><p> 注:成績:平時20% 論
2、文質(zhì)量60% 答辯20% 以百分制計(jì)算</p><p><b> 摘 要</b></p><p> 本文介紹了一種基于單片機(jī)的簡易數(shù)字電壓表的設(shè)計(jì)。該設(shè)計(jì)主要由三個模塊組成:A/D轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。A/D轉(zhuǎn)換主要由芯片ADC0808來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由芯片AT89C51來完成,其負(fù)
3、責(zé)把ADC0808傳送來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;此外,它還控制著ADC0808芯片工作。</p><p> 該系統(tǒng)的數(shù)字電壓表電路簡單,所用的元件較少,成本低,且測量精度和可靠性較高。此數(shù)字電壓表可以測量0-5V的1路模擬直流輸入電壓值,并通過一個四位一體的7段數(shù)碼管顯示出來。 </p><p&
4、gt; 關(guān)鍵詞:單片機(jī);數(shù)字電壓表;A/D轉(zhuǎn)換;AT89C51;ADC0808</p><p><b> 目 錄</b></p><p><b> 第1章 緒論1</b></p><p> 1.1數(shù)字電壓表設(shè)計(jì)概況1</p><p> 1.2 本文研究內(nèi)容2</p>&
5、lt;p> 第2章 CPU最小系統(tǒng)設(shè)計(jì)3</p><p> 2.1 數(shù)字電壓表設(shè)計(jì)總體設(shè)計(jì)方案3</p><p> 2.2 CPU的選擇3</p><p> 2.3 數(shù)據(jù)存儲器擴(kuò)展6</p><p> 2.4 復(fù)位電路設(shè)計(jì)7</p><p> 2.5 時鐘電路設(shè)計(jì)7</p>
6、<p> 2.6 CPU最小系統(tǒng)圖8</p><p> 第3章數(shù)字電壓表設(shè)計(jì)輸入輸出接口電路設(shè)計(jì)10</p><p> 3.1 數(shù)字電壓表設(shè)計(jì)檢測接口電路設(shè)計(jì)10</p><p> 3.1.1 A/D轉(zhuǎn)換器選擇10</p><p> 3.1.2 LED顯示器的選擇11</p><p>
7、3.1.3 LED譯碼方式12</p><p> 3.1.4 LED顯示器與單片機(jī)接口設(shè)計(jì)12</p><p> 3.2 人機(jī)對話接口電路設(shè)計(jì)13</p><p> 第4章數(shù)字電壓表設(shè)計(jì)軟件設(shè)計(jì)15</p><p> 4.1 軟件實(shí)現(xiàn)功能綜述15</p><p> 4.2 流程圖設(shè)計(jì)15</
8、p><p> 4.2.1 初始化程序15</p><p> 4.2.2 顯示子程序16</p><p> 第5章 系統(tǒng)設(shè)計(jì)與分析19</p><p> 5.1 硬件仿真圖19</p><p> 5.2 軟件調(diào)試結(jié)果19</p><p> 5.2.1 顯示結(jié)果19</p&
9、gt;<p> 5.2.2 誤差分析21</p><p> 第6章 課程設(shè)計(jì)總結(jié)22</p><p><b> 參考文獻(xiàn)23</b></p><p><b> 緒論</b></p><p><b> 數(shù)字電壓表設(shè)計(jì)概況</b></p>
10、<p> 在電量的測量中,電壓、電流和頻率是最基本的三個被測量,其中電壓量的測量最為經(jīng)常。而且隨著電子技術(shù)的發(fā)展,更是經(jīng)常需要測量高精度的電壓,所以數(shù)字電壓表就成為一種必不可少的測量儀器。數(shù)字電壓表簡稱DVM,它是采用數(shù)字化測量技術(shù),把連續(xù)的模擬量轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式并加以顯示的儀表。由于數(shù)字式儀器具有讀數(shù)準(zhǔn)確方便、精度高、誤差小、測量速度快等特而得到廣泛應(yīng)用[1]。 </p><p>
11、傳統(tǒng)的指針式刻度電壓表功能單一,進(jìn)度低,容易引起視差和視覺疲勞,因而不能滿足數(shù)字化時代的需要。采用單片機(jī)的數(shù)字電壓表,將連續(xù)的模擬量如直流電壓轉(zhuǎn)換成不連續(xù)的離散的數(shù)字形式并加以顯示,從而精度高、抗干擾能力強(qiáng),可擴(kuò)展性強(qiáng)、集成方便,還可與PC實(shí)時通信。數(shù)字電壓表是諸多數(shù)字化儀表的核心與基礎(chǔ)[2]。以數(shù)字電壓表為核心,可以擴(kuò)展成各種通用數(shù)字儀表、專用數(shù)字儀表及各種非電量的數(shù)字化儀表。目前,由各種單片機(jī)和A/D轉(zhuǎn)換器構(gòu)成的數(shù)字電壓表作全面深入
12、的了解是很有必要的。</p><p> 最近的幾十年來,隨著半導(dǎo)體技術(shù)、集成電路(IC)和微處理器技術(shù)的發(fā)展,數(shù)字電路和數(shù)字化測量技術(shù)也有了巨大的進(jìn)步,從而促使了數(shù)字電壓表的快速發(fā)展,并不斷出現(xiàn)新的類型[4]。數(shù)字電壓表從1952年問世以來,經(jīng)歷了不斷改進(jìn)的過程,從最早采用繼電器、電子管和形式發(fā)展到了現(xiàn)在的全固態(tài)化、集成化(IC化),另一方面,精度也從0.01%-0.005%。</p><p
13、> 目前,數(shù)字電壓表的內(nèi)部核心部件是A/D轉(zhuǎn)換器,轉(zhuǎn)換的精度很大程度上影響著數(shù)字電壓表的準(zhǔn)確度,因而,以后數(shù)字電壓表的發(fā)展就著眼在高精度和低成本這兩個方面[3]。</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ū)動輸出
14、裝置LED顯示數(shù)字電壓信號[11]。</p><p><b> 本文研究內(nèi)容</b></p><p><b> 設(shè)計(jì)要求</b></p><p> ?、乓訫CS-51系列單片機(jī)為核心器件,組成一個簡單的直流數(shù)字電壓表。</p><p> ?、撇捎?路模擬量輸入,能夠測量0-5V之間的直流電壓值。
15、</p><p> ?、请妷猴@示用4位一體的LED數(shù)碼管顯示,至少能夠顯示兩位小數(shù)。 </p><p> ?、缺M量使用較少的元器件。</p><p><b> 設(shè)計(jì)思路</b></p><p> ?、鸥鶕?jù)設(shè)計(jì)要求,選擇AT89C51單片機(jī)為核心控制器件。</p><p> ?、艫/D轉(zhuǎn)換采用AD
16、C0808實(shí)現(xiàn),與單片機(jī)的接口為P1口和P2口的高四位引腳。</p><p> ?、请妷猴@示采用4位一體的LED數(shù)碼管。</p><p> ?、萀ED數(shù)碼的段碼輸入,由并行端口P0產(chǎn)生:位碼輸入,用并行端口P2低四位產(chǎn)生。</p><p><b> CPU最小系統(tǒng)設(shè)計(jì)</b></p><p> 數(shù)字電壓表設(shè)計(jì)總體設(shè)計(jì)
17、方案</p><p> 硬件電路設(shè)計(jì)由6個部分組成; A/D轉(zhuǎn)換電路,AT89C51單片機(jī)系統(tǒng),LED顯示系統(tǒng)、時鐘電路、復(fù)位電路以及測量電壓輸入電路。硬件電路設(shè)計(jì)框圖如圖1所示。 </p><p><b> CPU的選擇</b></p><p> AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機(jī),片內(nèi)含有4KB的
18、可反復(fù)擦寫的只讀程序存儲器和128字節(jié)的隨機(jī)存儲器。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容,由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,它為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。</p><p> AT89C51功能性能:與MCS-51成品指令系統(tǒng)完全兼容;4KB可編程閃速存儲器;壽命:
19、1000次寫/擦循環(huán);數(shù)據(jù)保留時間:10年;全靜態(tài)工作:0-24MHz;三級程序存儲器鎖定;128*8B內(nèi)部RAM;32個可編程I/O口線;2個16位定時/計(jì)數(shù)器;5個中斷源;可編程串行UART通道;片內(nèi)震蕩器和掉電模式[6]。</p><p> AT89C51提供以下標(biāo)準(zhǔn)功能:4KB的Flash閃速存儲器,128B內(nèi)部RAM,32個I/O口線,兩個16位定時/計(jì)數(shù)器,一個5向量兩級中斷結(jié)構(gòu),一個全雙工串行通信
20、口,片內(nèi)震蕩器及時鐘電路,同時,AT89C51可降至0Hz靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作,掉電方式保存RAM中的內(nèi)容,但震蕩器停止工作并禁止其他所有工作直到下一個硬件復(fù)位。AT89C51采用PDIP封裝形式,引腳配置如圖2.1所示[7]。</p><p><b> 圖2.1</b></
21、p><p> AT89C51芯片的各引腳功能為:</p><p> P0口:這組引腳共有8條,P0.0為最低位。這8個引腳有兩種不同的功能,分別適用于不同的情況,第一種情況是89C51不帶外存儲器,P0口可以為通用I/O口使用,P0.0-P0.7用于傳送CPU的輸入/輸出數(shù)據(jù),這時輸出數(shù)據(jù)可以得到鎖存,不需要外接專用鎖存器,輸入數(shù)據(jù)可以得到緩沖,增加了數(shù)據(jù)輸入的可靠性;第二種情況是89C5
22、1帶片外存儲器,P0.0-P0.7在CPU訪問片外存儲器時先傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀/寫數(shù)據(jù)。P0口為開漏輸出,在作為通用I/O使用時,需要在外部用電阻上拉。</p><p> P1口:這8個引腳和P0口的8個引腳類似,P1.7為最高位,P1.0為最低位,當(dāng)P1口作為通用I/O口使用時,P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸出數(shù)據(jù)。</p
23、><p> P2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但并不是像P0口那樣傳送存儲器的讀/寫數(shù)據(jù)。</p><p> P3口:這組引腳的第一功能和其余三個端口的第一功能相同,第二功能為控制功能,每個引腳并不完全相同,如下表2所示:</p>
24、<p> 表2 P3口各位的第二功能</p><p> Vcc為+5V電源線,Vss接地。</p><p> ALE:地址鎖存允許線,配合P0口的第二功能使用,在訪問外部存儲器時,89C51的CPU在P0.0-P0.7引腳線去傳送隨后而來的片外存儲器讀/寫數(shù)據(jù)。在不訪問片外存儲器時,89C51自動在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時鐘
25、源或定時脈沖使用。</p><p> /EA:片外存儲器訪問選擇線,可以控制89C51使用片內(nèi)ROM或使用片外ROM,</p><p> 若/EA=1,則允許使用片內(nèi)ROM, 若/EA=0,則只使用片外ROM。</p><p> /PSEN:片外ROM的選通線,在訪問片外ROM時,89C51自動在/PSEN線上產(chǎn)生一個負(fù)脈沖,作為片外ROM芯片的讀選通信號。&
26、lt;/p><p> RST:復(fù)位線,可以使89C51處于復(fù)位(即初始化)工作狀態(tài)。通常89C51復(fù)位有自動上電復(fù)位和人工按鍵復(fù)位兩種。</p><p> XTAL1和XTAL2:片內(nèi)震蕩電路輸入線,這兩個端子用來外接石英晶體和微調(diào)電容,即用來連接89C51片內(nèi)OSC(震蕩器)的定時反饋回路。</p><p><b> 數(shù)據(jù)存儲器擴(kuò)展</b>
27、</p><p> RAM是用來存放各種數(shù)據(jù)的,MCS-51系列8位單片機(jī)內(nèi)部有128BRAM存儲器,CPU對內(nèi)部RAM具有豐富的操作指令。但是,當(dāng)單片機(jī)用于實(shí)時數(shù)據(jù)采集或處理大批量數(shù)據(jù)時,僅靠片內(nèi)提供的RAM是遠(yuǎn)遠(yuǎn)不夠的。此時,我們可以利用單片機(jī)的擴(kuò)展功能,擴(kuò)展外部數(shù)據(jù)存儲器。常用的外部數(shù)據(jù)存儲器有靜態(tài)RAM(Static Random Access Memory)和動態(tài)RAM(Dynamic Random
28、Access Memory)兩種。前者讀/寫速度高,一般都是8位寬度,易于擴(kuò)展,且大多數(shù)與相同容量的EPROM引腳兼容,有利于印刷板電路設(shè)計(jì),使用方便;缺點(diǎn)是集成度低,成本高,功耗大。后者集成度高,成本低,功耗相對較低;缺點(diǎn)是需要增加一個刷新電路,附加另外的成本。當(dāng)用8282作為地址鎖存器時,它的STB可直接與單片機(jī)的鎖存控制信號端ALE相連,在ALE下降沿進(jìn)行地址鎖存。AT89C51單片機(jī)和靜態(tài)數(shù)據(jù)存儲器RAM 6116的接口電路圖如
29、下圖2.2所示:</p><p><b> 圖2.2 擴(kuò)展電路</b></p><p><b> 復(fù)位電路設(shè)計(jì)</b></p><p> 單片機(jī)在啟動運(yùn)行時都需要復(fù)位,使CPU和系統(tǒng)中的其他部件都處于一個確定的初始狀態(tài),并從這個狀態(tài)開始工作。MCS-51單片機(jī)有一個復(fù)位引腳RST,采用施密特觸發(fā)輸入。當(dāng)震蕩器起振后,
30、只要該引腳上出現(xiàn)2個機(jī)器周期以上的高電平即可確保時器件復(fù)位[1]。復(fù)位完成后,如果RST端繼續(xù)保持高電平,MCS-51就一直處于復(fù)位狀態(tài),只要RST恢復(fù)低電平后,單片機(jī)才能進(jìn)入其他工作狀態(tài)。單片機(jī)的復(fù)位方式有上電自動復(fù)位和手動復(fù)位兩種,圖2.3是51系列單片機(jī)統(tǒng)常用的上電復(fù)位和手動復(fù)位組合電路,只要Vcc上升時間不超過1ms,它們都能很好的工作[1]。</p><p> 圖2.3 復(fù)位電路</p>
31、<p><b> 時鐘電路設(shè)計(jì)</b></p><p> 單片機(jī)中CPU每執(zhí)行一條指令,都必須在統(tǒng)一的時鐘脈沖的控制下嚴(yán)格按時間節(jié)拍進(jìn)行,而這個時鐘脈沖是單片機(jī)控制中的時序電路發(fā)出的。CPU執(zhí)行一條指令的各個微操作所對應(yīng)時間順序稱為單片機(jī)的時序。MCS-51單片機(jī)芯片內(nèi)部有一個高增益反相放大器,用于構(gòu)成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成
32、時鐘電路還需附加其他電路[1]。</p><p> 本設(shè)計(jì)系統(tǒng)采用內(nèi)部時鐘方式,利用單片機(jī)內(nèi)部的高增益反相放大器,外部電路簡,只需要一個晶振和 2個電容即可,如圖2.4所示。</p><p> 圖2.4 時鐘電路</p><p> 電路中的器件選擇可以通過計(jì)算和實(shí)驗(yàn)確定,也可以參考一些典型電路的參數(shù),電路中,電容器C1和C2對震蕩頻率有微調(diào)作用,通常的取值范
33、圍是30±10pF,在這個系統(tǒng)中選擇了33pF;石英晶振選擇范圍最高可選24MHz,它決定了單片機(jī)電路產(chǎn)生的時鐘信號震蕩頻率,在本系統(tǒng)中選擇的是12MHz,因而時鐘信號的震蕩頻率為12MHz。</p><p><b> CPU最小系統(tǒng)圖</b></p><p> 經(jīng)過以上的設(shè)計(jì)過程,可設(shè)計(jì)出基于單片機(jī)的簡易數(shù)字直流電壓表硬件電路原理圖如圖2.5所示。此電
34、路的工作原理是:+5V模擬電壓信號通過變阻器VR1分壓后由ADC08008的IN0通道進(jìn)入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低電平),經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道D0-D7傳送給AT89C51芯片的P1口,AT89C51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位LED,同時它還通過其四位I/O口P2.0、P2.1、P2.2、P2.3產(chǎn)生位選信號控制數(shù)碼管的亮滅
35、。此外,AT89C51還控制ADC0808的工作。其中,單片機(jī)AT89C51通過定時器中斷從P2.4輸出方波,接到ADC0808的CLOCK,P2.6發(fā)正脈沖啟動A/D轉(zhuǎn)換,P2.5檢測A/D轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,P2.7置高從P1口讀取轉(zhuǎn)換結(jié)果送給LED顯示出來[3]。</p><p> 簡易數(shù)字直流電壓表的硬件電路已經(jīng)設(shè)計(jì)完成,就可以選取相應(yīng)的芯片和元器件,利用Proteus軟件繪制出硬件的原理,并仔細(xì)
36、地檢查修改,直至形成完善的硬件原理圖。但要真正實(shí)現(xiàn)電路對電壓的測量和顯示的功能,還需要有相應(yīng)的軟件配合,才能達(dá)到設(shè)計(jì)要求。</p><p> 圖2.5 簡易數(shù)字電壓表電路圖</p><p> 數(shù)字電壓表設(shè)計(jì)輸入輸出接口電路設(shè)計(jì)</p><p> 數(shù)字電壓表設(shè)計(jì)檢測接口電路設(shè)計(jì)</p><p><b> A/D轉(zhuǎn)換器選擇<
37、;/b></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芯片的轉(zhuǎn)化原理可分為逐次逼近型,雙重積分型等等。雙積分式A/D轉(zhuǎn)換器具有抗干擾能力強(qiáng)、轉(zhuǎn)換精度高、價(jià)格便宜等優(yōu)點(diǎn)。與雙積分相比,逐次逼近式A/D轉(zhuǎn)換的轉(zhuǎn)換速度更快,而且精度更高,比如ADC0809、ADC0808等,它們通常具有
38、8路模擬選通開關(guān)及地址譯碼、鎖存電路等,它們可以與單片機(jī)系統(tǒng)連接,將數(shù)字量送到單片機(jī)進(jìn)行分析和顯示。一個n位的逐次逼近型A/D轉(zhuǎn)換器只需要比較n次,轉(zhuǎn)換時間只取決于位數(shù)和時鐘周期,逐次逼近型A/D轉(zhuǎn)換器轉(zhuǎn)換速度快,因而在實(shí)際中廣泛使用[1]。逐次逼近型A/D轉(zhuǎn)換器是由一個比較器、A/D轉(zhuǎn)換器、存儲器及控制電路組成。它利用內(nèi)部的寄存器從高位到低位一次開始逐位試探比較。</p><p><b> 轉(zhuǎn)換過程
39、如下:</b></p><p> 開始時,寄存器各位清零,轉(zhuǎn)換時,先將最高位置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ù)字量[5]。其原理框圖如圖3.1所示:</p><p><
40、b> 圖3.1</b></p><p> LED是發(fā)光二極管顯示器的縮寫。LED由于結(jié)構(gòu)簡單、價(jià)格便宜、與單片機(jī)接口方便等優(yōu)點(diǎn)而得到廣泛應(yīng)用。LED顯示器是由若干個發(fā)光二極管組成顯示字段的顯示器件[6]。在單片機(jī)中使用最多的是七段數(shù)碼顯示器。LED七段數(shù)碼顯示器由8個發(fā)光二極管組成顯示字段,其中7個長條形的發(fā)光二極管排列成“日”字形,另一個圓點(diǎn)形的發(fā)光二極管在顯示器的右下角作為顯示小數(shù)點(diǎn)用,
41、其通過不同的組合可用來顯示各種數(shù)字。LED引腳排列如下圖3.2所示:</p><p> 圖3.2 LED引腳排列</p><p><b> LED顯示器的選擇</b></p><p> 在應(yīng)用系統(tǒng)中,設(shè)計(jì)要求不同,使用的LED顯示器的位數(shù)也不同,因此就生產(chǎn)了位數(shù),尺寸,型號不同的LED顯示器供選擇,在本設(shè)計(jì)中,選擇4位一體的數(shù)碼型LED顯
42、示器,簡稱“4-LED”。本系統(tǒng)中前一位顯示電壓的整數(shù)位,即個位,后兩位顯示電壓的小數(shù)位。</p><p> 4-LED顯示器引腳如圖3.3所示,是一個共陰極接法的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個單獨(dú)的LED組成,每個LED的段輸出引腳在內(nèi)部都并聯(lián)后,引出到器件的外部
43、。</p><p> 圖3.3 4位LED引腳</p><p> 對于這種結(jié)構(gòu)的LED顯示器,它的體積和結(jié)構(gòu)都符合設(shè)計(jì)要求,由于4位LED陰極的各段已經(jīng)在內(nèi)部連接在一起,所以必須使用動態(tài)掃描方式(將所有數(shù)碼管的段選線并聯(lián)在一起,用一個I/O接口控制)顯示。</p><p><b> LED譯碼方式</b></p><
44、;p> 譯碼方式是指由顯示字符轉(zhuǎn)換得到對應(yīng)的字段碼的方式,對于LED數(shù)碼管顯示器,通常的譯碼方式有硬件譯碼和軟件譯碼方式兩種。</p><p> 硬件譯碼是指利用專門的硬件電路來實(shí)現(xiàn)顯示字符碼的轉(zhuǎn)換。</p><p> 軟件譯碼就是編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼,譯碼程序通常為查表程序[3]。</p><p> 本設(shè)計(jì)系統(tǒng)中為
45、了簡化硬件線路設(shè)計(jì),LED譯碼采用軟件編程來實(shí)現(xiàn)。由于本設(shè)計(jì)采用的是共陰極LED,其對應(yīng)的字符和字段碼如下表3.1所示。</p><p> 表3.1 共陰極字段碼表</p><p> LED顯示器與單片機(jī)接口設(shè)計(jì)</p><p> 由于單片機(jī)的并行口不能直接驅(qū)動LED顯示器,所以,在一般情況下,必須采用專用的驅(qū)動電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工
46、作[7]。如果驅(qū)動電路能力差,即負(fù)載能力不夠時,顯示器亮度就低,而且驅(qū)動電路長期在超負(fù)荷下運(yùn)行容易損壞,因此,LED顯示器的驅(qū)動電路設(shè)計(jì)是一個非常重要的問題。</p><p> 為了簡化數(shù)字式直流電壓表的電路設(shè)計(jì),在LED驅(qū)動電路的設(shè)計(jì)上,可以利用單片機(jī)P0口上外接的上拉電阻來實(shí)現(xiàn),即將LED的A-G段顯示引腳和DP小數(shù)點(diǎn)顯示引腳并聯(lián)到P0口與上拉電阻之間,這樣,就可以加大P0口作為輸出口德驅(qū)動能力,使得LED
47、能按照正常的亮度顯示出數(shù)字,如圖3.4所示。</p><p> 圖3.4 LED與單片機(jī)接口間的設(shè)計(jì)</p><p> 人機(jī)對話接口電路設(shè)計(jì)</p><p> 經(jīng)過以上的設(shè)計(jì)過程,可設(shè)計(jì)出基于單片機(jī)的簡易數(shù)字直流電壓表硬件電路原理圖如圖3.5所示。此電路的工作原理是:+5V模擬電壓信號通過變阻器VR1分壓后由ADC08008的IN0通道進(jìn)入(由于使用的IN0通
48、道,所以ADDA,ADDB,ADDC均接低電平),經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量經(jīng)過其輸出通道D0-D7傳送給AT89C51芯片的P1口,AT89C51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位LED,同時它還通過其四位I/O口P2.0、P2.1、P2.2、P2.3產(chǎn)生位選信號控制數(shù)碼管的亮滅。此外,AT89C51還控制ADC0808的工作。其中,單片機(jī)AT89C51通過定時器中斷從P2.4輸出方波,
49、接到ADC0808的CLOCK,P2.6發(fā)正脈沖啟動A/D轉(zhuǎn)換,P2.5檢測A/D轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,P2.7置高從P1口讀取轉(zhuǎn)換結(jié)果送給LED顯示出來[3]。</p><p> 簡易數(shù)字直流電壓表的硬件電路已經(jīng)設(shè)計(jì)完成,就可以選取相應(yīng)的芯片和元器件,利用Proteus軟件繪制出硬件的原理,并仔細(xì)地檢查修改,直至形成完善的硬件原理圖。但要真正實(shí)現(xiàn)電路對電壓的測量和顯示的功能,還需要有相應(yīng)的軟件配合,才能達(dá)
50、到設(shè)計(jì)要求。</p><p> 圖3.5 簡易數(shù)字電壓表電路圖</p><p> 數(shù)字電壓表設(shè)計(jì)軟件設(shè)計(jì)</p><p><b> 軟件實(shí)現(xiàn)功能綜述</b></p><p> 根據(jù)模塊的劃分原則,將該程序劃分初始化模塊,A/D轉(zhuǎn)換子程序和顯示子程序,這三個程序模塊構(gòu)成了整個系統(tǒng)軟件的主程序,如圖4.1所示。<
51、;/p><p> 圖4.1 數(shù)字式直流電壓表主程序框圖</p><p><b> 流程圖設(shè)計(jì)</b></p><p><b> 初始化程序</b></p><p> 所謂初始化,是對將要用到的MCS_51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定,初始化子程序的主要工作是設(shè)置定時器的工作模
52、式,初值預(yù)置,開中斷和打開定時器等[9]。</p><p><b> A/D轉(zhuǎn)換子程序</b></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><b>
53、 顯示子程序</b></p><p> 顯示子程序采用動態(tài)掃描實(shí)現(xiàn)四位數(shù)碼管的數(shù)值顯示,在采用動態(tài)掃描顯示方式時,要使得LED顯示的比較均勻,又有足夠的亮度,需要設(shè)置適當(dāng)?shù)膾呙桀l率,當(dāng)掃描頻率在70HZ左右時,能夠產(chǎn)生比較好的顯示效果,一般可以采用間隔10ms對LED進(jìn)行動態(tài)掃描一次,每一位LED的顯示時間為1ms[10]。</p><p> 在本設(shè)計(jì)中,為了簡化硬件設(shè)計(jì),
54、主要采用軟件定時的方式,即用定時器0溢出中斷功能實(shí)現(xiàn)11μs定時,通過軟件延時程序來實(shí)現(xiàn)5ms的延時。</p><p> LED_0 EQU 30H</p><p> LED_1 EQU 31H</p><p> LED_2 EQU 32H </p><p> ADC EQU 35H </p>
55、<p> CLOCK BIT P2.4 </p><p> ST BIT P2.5</p><p> EOC BIT P2.6</p><p> OE BIT P2.7</p><p> ORG 00H </p><p> SJMP START </p><
56、;p><b> ORG 0BH</b></p><p> LJMP INT_T0 </p><p> START: MOV LED_0, #00H</p><p> MOV P2, #0FFH</p><p> MOV LED_1, #00H</p><p> MOV
57、LED_2, #00H</p><p> MOV DPTR, #TABLE </p><p> MOV TMOD, #02H </p><p> MOV TH0, #245H </p><p> MOV TL0, #00H</p><p> MOV IE, #82H</p>
58、<p> SETB TR0 </p><p> WAIT: CLR ST</p><p><b> SETB STH</b></p><p> CLR ST </p><p> JNB EOC, $ </p><p> SETB OE
59、 </p><p> MOV ADC, P1 </p><p> CLR OE </p><p> MOV A, ADC </p><p> MOV B, #51</p><p> DIV AB </p><p> MOV LED_2, A
60、 </p><p><b> MOV A, B</b></p><p><b> MOV B, #5</b></p><p> DIV AB </p><p> MOV LED_1, A</p><p> MOV LED_0, B </
61、p><p> LCALL DISP </p><p><b> SJMP WAIT</b></p><p> INT_T0: CPL, CLOCK </p><p><b> RETI</b></p><p> DISP: MOV A, LED_0
62、 </p><p> MOVC A, @A+DPTR</p><p><b> CLR P2.3</b></p><p><b> MOV P0, A</b></p><p> LCALL DELAY </p><p> SETB P2.3
63、 </p><p> MOV A, LED_1 </p><p> MOVC A,@A+DPTR </p><p><b> CLR P2.2 </b></p><p> MOV P0, A </p><p> LCALL DELAY</p>
64、<p><b> SETB P2.2</b></p><p> MOV A, LED_2</p><p> MOVC A, @A+DPTRL</p><p><b> CLR P2.1</b></p><p> ORL A, #80H </p>&l
65、t;p><b> MOV P0, A</b></p><p> LCALL DELAY</p><p><b> SETB P2.1</b></p><p><b> RET</b></p><p> DELAY: MOV R6, #10 </
66、p><p> D1: MOV R7, #250 </p><p> DJNZ R7, $ </p><p> DJNZ R6, D1</p><p><b> RET</b></p><p> TABLE: DB 3FH, 06H, 5BH, 4FH, 66H
67、 </p><p> DB 6DH, 7DH, 07H, 7FH, 6FH</p><p><b> END</b></p><p><b> 系統(tǒng)設(shè)計(jì)與分析</b></p><p><b> 硬件仿真圖</b></p><p> 軟件
68、調(diào)試的主要任務(wù)是排查錯誤,錯誤主要包括邏輯和功能錯誤,這些錯誤有些是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對基于微控制器的設(shè)計(jì)連同所有的周圍電子器件一起仿真,用戶甚至可以實(shí)時采用諸如LED/LCD、鍵盤、RS232終端等動態(tài)外設(shè)模型來對設(shè)計(jì)進(jìn)行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機(jī)系統(tǒng)原理圖電路繪制
69、、PCB設(shè)計(jì),更為顯著點(diǎn)的特點(diǎn)是可以與u Visions3 IDE工具軟件結(jié)合進(jìn)行編程仿真調(diào)試[8]。</p><p> 本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的是Proteus軟件,而程序方面,采用的是匯編語言,用Keil軟件將程序?qū)懭雴纹瑱C(jī)。</p><p><b> 軟件調(diào)試結(jié)果</b></p><p><
70、;b> 顯示結(jié)果</b></p><p> 當(dāng)IN0口輸入電壓值為0V時,顯示結(jié)果如圖5.1所示,測量誤差為0V。</p><p> 圖5.1 輸入電壓為0V時,LED的顯示結(jié)果</p><p> 2.當(dāng)IN0輸入電壓值為1.50V時,顯示結(jié)果如圖5.2所示。測量誤差為0.01V。</p><p> 圖5.2 輸入
71、電壓為1.50V時,LED的顯示結(jié)果</p><p> 3. 當(dāng)IN0口輸入電壓值為3.50V時,顯示結(jié)果如圖5.3。測量誤差為0.01V。</p><p> 圖5.3輸入電壓為3.50V時,LED的顯示結(jié)果</p><p><b> 誤差分析</b></p><p> 通過以上仿真測量結(jié)果可得到簡易數(shù)字電壓表與
72、“標(biāo)準(zhǔn)”數(shù)字電壓表對比測試表,如下表4所示:</p><p> 表5.1簡易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對比測試表</p><p> 由于單片機(jī)AT89C51為8位處理器,當(dāng)輸入電壓為5.00V時,ADC0808輸出數(shù)據(jù)值為255(FFH),因此單片機(jī)最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看到,測試電壓一般以0.01
73、V的幅度變化。</p><p> 從上表可以看出,簡易數(shù)字電壓表測得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.01V,這可以通過校正ADC0808的基準(zhǔn)電壓來解決。因?yàn)樵撾妷罕碓O(shè)計(jì)時直接用5V的供電電源作為電壓,所以電壓可能有偏差。當(dāng)要測量大于5V的電壓時,可在輸入口使用分壓電阻,而程序中只要將計(jì)算程序的除數(shù)進(jìn)行調(diào)整就可以了。</p><p><b> 課程設(shè)計(jì)總結(jié)</b>
74、;</p><p> 經(jīng)過一段時間的努力,畢業(yè)論文-基于單片機(jī)的簡易數(shù)字電壓表基本完成。但設(shè)計(jì)中的不足之處仍然存在。這次設(shè)計(jì)是我第一次設(shè)計(jì)電路,并用Proteus實(shí)現(xiàn)了仿真。在這過程中,我對電路設(shè)計(jì),單片機(jī)的使用等都有了新的認(rèn)識。通過這次設(shè)計(jì)學(xué)會了Proteus和Keil軟件的使用方法,掌握了從系統(tǒng)的需要、方案的設(shè)計(jì)、功能模塊的劃分、原理圖的設(shè)計(jì)和電路圖的仿真的設(shè)計(jì)流程,積累了不少經(jīng)驗(yàn)。</p>
75、<p> 基于單片機(jī)的數(shù)字電壓表使用性強(qiáng)、結(jié)構(gòu)簡單、成本低、外接元件少。在實(shí)際應(yīng)用工作應(yīng)能好,測量電壓準(zhǔn)確,精度高。系統(tǒng)功能、指標(biāo)達(dá)到了課題的預(yù)期要求、系統(tǒng)在硬件設(shè)計(jì)上充分考慮了可擴(kuò)展性,經(jīng)過一定的改造,可以增加功能。本文設(shè)計(jì)主要實(shí)現(xiàn)了簡易數(shù)字電壓表測量一路電壓的功能,詳細(xì)說明了從原理圖的設(shè)計(jì)、電路圖的仿真再到軟件的調(diào)試。</p><p> 通過本次設(shè)計(jì),我對單片機(jī)這門課有了進(jìn)一步的了解。無論是在硬
76、件連接方面還是在軟件編程方面。本次設(shè)計(jì)采用了AT89C51單片機(jī)芯片,與以往的單片機(jī)相比增加了許多新的功能,使其功能更為完善,應(yīng)用領(lǐng)域也更為廣泛。設(shè)計(jì)中還用到了模/數(shù)轉(zhuǎn)換芯片ADC0808,以前在學(xué)單片機(jī)課程時只是對其理論知識有了初步的理解。通過這次設(shè)計(jì),對它的工作原理有了更深的理解。在調(diào)試過程中遇到很多問題,硬件上的理論知識學(xué)得不夠扎實(shí),對電路的仿真方面也不夠熟練。</p><p> 總之這次電路的設(shè)計(jì)和仿真
77、,基本上達(dá)到了設(shè)計(jì)的功能要求。在以后的實(shí)踐中,我將繼續(xù)努力學(xué)習(xí)電路設(shè)計(jì)方面的理論知識,并理論聯(lián)系實(shí)際,爭取在電路設(shè)計(jì)方面能有所提升。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 梅麗鳳等編著 單片機(jī)原理及接口技術(shù) 清華大學(xué)出版社2009.7</p><p> [2] 趙晶 主編 Prote199高級應(yīng)用
78、人民郵電出版社,2000 </p><p> [3] 于海生 編著 微型計(jì)算機(jī)控制技術(shù) 清華大學(xué)出版社2003.4</p><p> [4] 胡健.單片機(jī)原理及接口技術(shù).北京:機(jī)械工業(yè)出版社,2004年10月</p><p> [5] 王毓銀.數(shù)字電路邏輯設(shè)計(jì).高等教育出版社,2005年12月</p><p> [6] 李廣弟
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)--數(shù)字電壓表設(shè)計(jì)
- 單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)(數(shù)字電壓表設(shè)計(jì))
- 單片機(jī)原理及接口技術(shù)課程設(shè)計(jì)--數(shù)字電壓表設(shè)計(jì)
- 單片機(jī)原理及接口技術(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è)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---數(shù)字電壓表設(shè)計(jì)
- 簡易數(shù)字電壓表-單片機(jī)原理及應(yīng)用課程設(shè)計(jì)
- 簡易數(shù)字電壓表-單片機(jī)原理及應(yīng)用課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--簡易數(shù)字電壓表
- 單片機(jī)(數(shù)字電壓表)課程設(shè)計(jì).rar
- 單片機(jī)課程設(shè)計(jì)數(shù)字電壓表
評論
0/150
提交評論