版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 1引言1</b></p><p> 2 PROTEUS軟件仿真2</p><p> 2.1 PROTEUS軟件簡介2</p><p> 2.1.1 PROTUES ISIS的啟動2</p><p
2、> 2.1.2 PROTUES ISIS的工作界面3</p><p> 2.2 Keil簡介3</p><p> 2.3 利用PROTUES ISIS仿真與調(diào)試4</p><p> 3 主要芯片簡介5</p><p> 3.1 AT89C51芯片5</p><p> 3.2 ADC0808
3、7</p><p> 3.3 74LS1618</p><p> 3.4 七段數(shù)碼管簡介9</p><p> 4 系統(tǒng)總體設(shè)計10</p><p> 4.1 工作原理10</p><p> 4.2 系統(tǒng)結(jié)構(gòu)框圖10</p><p> 4.3 系統(tǒng)硬件設(shè)計10</p&
4、gt;<p> 4.3.1 單片機(jī)的選擇10</p><p> 4.3.2 時鐘電路的設(shè)計11</p><p> 4.3.3復(fù)位電路11</p><p> 4.3.4 A/D轉(zhuǎn)化電路及測量電路的設(shè)計12</p><p> 4.3.5 顯示模塊設(shè)計12</p><p> 4.4系統(tǒng)程序
5、設(shè)計13</p><p> 4.4.1 初始化程序13</p><p> 4.4.2主程序13</p><p> 4.4.3 A/D轉(zhuǎn)換子程序的設(shè)計14</p><p> 4.4.4 循環(huán)顯示的程序15</p><p> 4.4.5 顯示程序16</p><p> 4.
6、4.6 中斷子程序、延時子程序和查表17</p><p> 5.1 總體設(shè)計仿真電路18</p><p> 5.2 仿真結(jié)果19</p><p><b> 6 總結(jié)21</b></p><p><b> 參考文獻(xiàn)22</b></p><p><b>
7、; 附錄23</b></p><p><b> 1引言</b></p><p> 數(shù)字電壓表的基本工作原理是利用A/D轉(zhuǎn)換電路將待測的模擬信號轉(zhuǎn)換成數(shù)字信號,通過相應(yīng)換算后將測試結(jié)果以數(shù)字形式顯示出來的一種電壓表。較之于一般的模擬電壓表,數(shù)字電壓表具有精度高、測量準(zhǔn)確、讀數(shù)直觀、使用方便等優(yōu)點(diǎn)。</p><p> 在測量儀
8、器中,電壓表是必須的,而且電壓表的好壞直接影響到測量精度。具有一個精度高、轉(zhuǎn)換速度快、性能穩(wěn)定的電壓表才能符合測量的要求。為此,我們設(shè)計了數(shù)字電壓表,此作品主要由A/D0808轉(zhuǎn)換器和單片機(jī)AT89C51構(gòu)成,A/D轉(zhuǎn)換器在單片機(jī)的控制下完成對模擬信號的采集和轉(zhuǎn)換功能,最后由數(shù)碼管顯示采集的電壓值。</p><p> 電壓表的數(shù)字化測量,關(guān)鍵在于如何把隨時連續(xù)變化的模擬量轉(zhuǎn)化成數(shù)字量,完成這種轉(zhuǎn)換的電路叫模數(shù)轉(zhuǎn)
9、換器(A/D)。數(shù)字電壓表的核心部件就是A/D轉(zhuǎn)換器,由于各種不同的A/D轉(zhuǎn)換原理構(gòu)成了各種不同類型的DVM。一般說來,A/D轉(zhuǎn)換的方式可分為兩類:雙積分型和逐次逼近型。</p><p> 雙積分型A/D轉(zhuǎn)換器是先用積分器將輸入的模擬電壓轉(zhuǎn)換成時間或頻率,再將其數(shù)字化。根據(jù)轉(zhuǎn)化的中間量不同,它又分為U-T(電壓-時間)式和U-F(電壓-頻率)式兩種。</p><p> 逐次逼近式A/D
10、轉(zhuǎn)換器分為比較式和斜坡電壓式,根據(jù)不同的工作原理,比較式又分為逐次比較式及零平衡式等。斜坡電壓式又分為線性斜坡式和階梯斜坡式兩種。</p><p> 在高精度數(shù)字電壓表中,常采用由積分式和比較式相結(jié)合起來的復(fù)合式A/D轉(zhuǎn)換器。本設(shè)計以AT89C51單片機(jī)為核心,以雙積分型A/D轉(zhuǎn)換器ADC0808、七段數(shù)碼管為主體,構(gòu)造了一款簡易的數(shù)字電壓表,能夠?qū)崿F(xiàn)自動和手動測量8路0.00~5.00V的直流電壓,最小分辨率
11、為0.02V。</p><p> 2 PROTEUS軟件仿真</p><p> 2.1 PROTEUS軟件簡介</p><p> PROTEUS ISIS是英國Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:1.實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。
12、具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。2.支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。3.提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置
13、斷點(diǎn)等調(diào)試功能,同時可以觀察各個變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境,如Keil C51 uVision2等軟件。4.具有強(qiáng)大的原理圖繪制功能??傊?,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。</p><p> 2.1.1 PROTUES ISIS的啟動</p><p> 雙擊桌面上的ISIS
14、 6 Professional圖標(biāo)或者單擊屏幕左下方的“開始”→“程序”→“Proteus 6 Professional” →“ISIS 6 Professional”,出現(xiàn)如圖2-1所示屏幕,表明進(jìn)入PROTEUS ISIS集成環(huán)境。</p><p> 圖2-1 PROTEUS ISIS啟動時的屏幕</p><p> 2.1.2 PROTUES ISIS的工作界面</p>
15、<p> PROTEUS ISIS的工作界面是一種標(biāo)準(zhǔn)的Windows界面,如圖2-2所示。包括:標(biāo)題欄、主菜單、標(biāo)準(zhǔn)工具欄、繪圖工具欄、狀態(tài)欄、對象選擇按鈕、預(yù)覽對象方位控制按鈕、仿真進(jìn)程控制按鈕、預(yù)覽窗口、對象選擇器窗口、圖形編輯窗口。</p><p> 圖2-2 PROTEUS ISIS的工作界面</p><p> 2.2 Keil簡介</p>&l
16、t;p><b> 1.系統(tǒng)概述 </b></p><p> Keil C51是美國Keil Software公司出品的51系列兼容單片機(jī)C語言軟件開發(fā)系統(tǒng),與匯編相比,C語言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用C來開發(fā),體會更加深刻。 </p><p> Keil C51軟件提供豐富的庫函數(shù)和功能強(qiáng)大的集成開
17、發(fā)調(diào)試工具,全Windows界面。另外重要的一點(diǎn),只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標(biāo)代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。在開發(fā)大型軟件時更能體現(xiàn)高級語言的優(yōu)勢。下面詳細(xì)介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。 </p><p> 2. Keil C51單片機(jī)軟件開發(fā)系統(tǒng)的整體結(jié)構(gòu) </p><p> C51工具包的整體結(jié)構(gòu),
18、如圖(1)所示,其中uVision與Ishell分別是C51 for Windows和for Dos的集成開發(fā)環(huán)境(IDE),可以完成編輯、編譯、連接、調(diào)試、仿真等整個開發(fā)流程。開發(fā)人員可用IDE本身或其它編輯器編輯C或匯編源文件。然后分別由C51及A51編譯器編譯生成目標(biāo)文件(.OBJ)。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。ABS文件由OH51轉(zhuǎn)換成標(biāo)準(zhǔn)的Hex文件,以
19、供調(diào)試器dScope51或tScope51使用進(jìn)行源代碼級調(diào)試,也可由仿真器使用直接對目標(biāo)板進(jìn)行調(diào)試,也可以直接寫入程序存貯器如EPROM中。 </p><p> 使用獨(dú)立的Keil仿真器時,注意事項 </p><p> (1)仿真器標(biāo)配11.0592MHz的晶振,但用戶可以在仿真器上的晶振插孔中換插其他頻率的晶振。 </p><p> (2)仿真器上的復(fù)位按
20、鈕只復(fù)位仿真芯片,不復(fù)位目標(biāo)系統(tǒng)。 </p><p> (3)仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴(kuò)展有外部ROM(其CPU的/EA引腳接至低電平)的目標(biāo)系統(tǒng)中使用。</p><p> 2.3 利用PROTUES ISIS仿真與調(diào)試</p>&l
21、t;p> 1.將所設(shè)計的硬件電路用PROTEUS畫出來,聯(lián)好各個引腳,圖如圖1-7。</p><p> 2.在Keil里面將編寫的程序編譯并調(diào)試好,沒有錯誤后生成一個*.hex的文件。</p><p> 3.在PROTEUS中將Keil中生成的*.hex的文件軟件下載到AT89C51芯片中,保存并運(yùn)行,看結(jié)果是否正確,有問題的話繼續(xù)調(diào)試軟硬件,直到結(jié)果與預(yù)期的基本一致。仿真結(jié)果
22、舉例如圖3-3、3-4所示。</p><p> 轉(zhuǎn)換的自動和手動模式轉(zhuǎn)換可以通過按鈕SB1和SB0來切換。當(dāng)啟動仿真時,電壓表開始工作,并默認(rèn)進(jìn)入自動切換通道狀態(tài),想要在當(dāng)前顯示的某一路手動停止通道切換,以使電壓表之后一直保持在該通道測量,只需按一下SB0。想要結(jié)束單一某一路的測量,只需按一下SB1就可以使電壓表恢復(fù)自動變換通道的測量和顯示方式。</p><p><b> 3
23、 主要芯片簡介</b></p><p> 3.1 AT89C51芯片</p><p><b> 主要功能:</b></p><p><b> 1.8位CPU;</b></p><p> 2.片內(nèi)振蕩器頻率范圍1.2-12MHZ;</p><p> 3.1
24、28字節(jié)片內(nèi)數(shù)據(jù)存儲器;</p><p> 4.4KB片內(nèi)程序存儲器</p><p> 5.程序存儲器尋址范圍64KB;</p><p> 6.片外數(shù)據(jù)存儲器尋址范圍64KB;</p><p> 7.21字節(jié)專用寄存器;</p><p> 8.4個8位并行I/O口:P0 P1 P2 P3;</p>
25、<p> 9.1個全雙工串行I/O口;</p><p> 10.2個16位定時器/計數(shù)器;</p><p> 11.中斷系統(tǒng)有5個中斷源,可編程為2個優(yōu)先級;</p><p> 12.111條指令;</p><p> 13.有很強(qiáng)的位尋址、位處理能力;</p><p> 14.片內(nèi)單總線結(jié)構(gòu);
26、</p><p> 15.單一+5V電源。</p><p> MCS-51系列單片機(jī)是雙列直插式封裝的40引腳芯片。</p><p> 圖3-1 AT89C51芯片引腳圖</p><p> P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入當(dāng)訪問外部程序
27、和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時,P0口也用來接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。</p><p> P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于
28、內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0和P1.2分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器2的觸發(fā)輸入(P1.1/T2EX)。 P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P2端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用
29、16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX @DPTR)時,P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVX @RI)訪問外部數(shù)據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。</p><p> P3口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫
30、“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89C51特殊功能(第二功能)使用,在flash編程和校驗時,P3口也接收一些控制信號。</p><p> RST: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2個機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計時完成后,RST腳輸出96個晶振周期的高電平。特殊寄存器AUXR(地址8
31、EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。</p><p> ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8位地址的輸出脈沖。在flash編程時,此引腳(PROG)也用作編程輸入脈沖。在一般情況下,ALE以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時器或時鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,
32、通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE僅在執(zhí)行MOVX或MOVC指令時有效。否則,ALE將被微弱拉高。這個ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。</p><p> :外部程序存儲器選通信號()是外部程序存儲器選通信號。當(dāng)AT89C51從外部程序存儲器執(zhí)行外部代碼時,在每個機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲器
33、時,將不被激活。</p><p> /VPP:訪問外部程序存儲器控制信號。為使能從0000H到FFFFH的外部程序存儲器讀取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在flash編程期間,也接收12伏VPP 電壓。</p><p> XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端。</p><p> XTAL2:振蕩器反相放大器的輸出端。
34、</p><p> 3.2 ADC0808</p><p> ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖如圖2-2所示。ADC0809由8路模擬開關(guān),地址鎖存與譯碼器、比較器、256樹形開關(guān)、逐次逼近式寄存器SAR、控制電路和三態(tài)輸出鎖存器等組成。</p><p> 圖3-2 ADC0809的內(nèi)部邏輯結(jié)構(gòu)圖</p><p> CLK:時鐘信號,
35、典型值為500~640KHZ</p><p> VREF+、VREF- :基準(zhǔn)電壓輸入,通常 VREF+接+5V、VREF- 接地</p><p> ALE:地址鎖存允許,其上升沿鎖存ADDC~ADDA的地址信號 </p><p> START:A/D轉(zhuǎn)換啟動信號,上升沿啟動A/D轉(zhuǎn)換。</p><p> EOC:轉(zhuǎn)換完成信號,啟動
36、轉(zhuǎn)換后,EOC輸出低電平,轉(zhuǎn)換完成后輸出高電平。該信號可用作向單片機(jī)提出中斷申請,或者作為查詢信號。</p><p> OE:數(shù)字量輸出允許信號,該引腳輸入高電平時,轉(zhuǎn)換后的數(shù)字量從D0~D7腳輸出。</p><p> IN0~I(xiàn)N7:模擬電壓輸入,八個引腳可分別接八路模擬信號。</p><p> ADDA、ADDB、ADDC:通道選擇信號,其輸入電平的組合選
37、擇模擬通道IN0~I(xiàn)N7之一 。 </p><p> 3.3 74LS161</p><p> 74LS161是常用的四位二進(jìn)制可預(yù)置的同步加法計數(shù)器,他可以靈活的運(yùn)用在各種數(shù)字電路,以及單片機(jī)系統(tǒng)種實(shí)現(xiàn)分頻器等很多重要的功能,:</p><p> 圖3-3 74ls161引腳圖</p><p> 管腳圖介紹:時鐘CP和四個數(shù)據(jù)輸
38、入端P0~P3清零/MR使能CEP,CET置數(shù)PE數(shù)據(jù)輸出端Q0~Q3以及進(jìn)位輸出TC. (TC=Q0·Q1·Q2·Q3·CET)</p><p> 表3-1 74LS161功能表</p><p> 從74LS161功能表功能表中可以知道,當(dāng)清零端CR=“0”,計數(shù)器輸出Q3、Q2、Q1、Q0立即為全“0”,這個時候為異步復(fù)位功能。當(dāng)C
39、R=“1”且LD=“0”時,在CP信號上升沿作用后,74LS161輸出端Q3、Q2、Q1、Q0的狀態(tài)分別與并行數(shù)據(jù)輸入端D3,D2,D1,D0的狀態(tài)一樣,為同步置數(shù)功能。而只有當(dāng)CR=LD=EP=ET=“1”、CP脈沖上升沿作用后,計數(shù)器加1。74LS161還有一個進(jìn)位輸出端CO,其邏輯關(guān)系是CO= Q0·Q1·Q2·Q3·CET。合理應(yīng)用計數(shù)器的清零功能和置數(shù)功能,一片74LS161可以組成16
40、進(jìn)制以下的任意進(jìn)制分頻器</p><p> 3.4 七段數(shù)碼管簡介</p><p> 7段LED數(shù)碼管,是在一定形狀的絕緣材料上,利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來顯示出0-9的數(shù)字。</p><p> LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的,因為不同類型的數(shù)碼管
41、,除了它們的硬件電路有差異外,編程方法也是不同的。右圖是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。</p><p> 將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以共陰式為例,如把陰極接地,在相應(yīng)段的陽極接上正電源,該段即會發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如將“b”和“c”段接上正電源,其它端接地或懸空,
42、那么“b”和“c”段發(fā)光,此時,數(shù)碼管顯示將顯示數(shù)字“1”。而將“a”、“b”、“d”、“e”和“g”段都接上正電源,其它引腳懸空,此時數(shù)碼管將顯示“2”。依此類推。</p><p><b> 4 系統(tǒng)總體設(shè)計</b></p><p><b> 4.1 工作原理</b></p><p> 系統(tǒng)采用12M晶振產(chǎn)生脈沖做
43、AT89C51的內(nèi)部時鐘信號,通過軟件設(shè)置單片機(jī)的內(nèi)部定時器T0產(chǎn)生中斷信號。利用中斷設(shè)置單片機(jī)的P2.4口取反產(chǎn)生脈沖做AT89C51的時鐘信號。通過鍵盤選擇八路通道中的一路,將該路電壓送入ADC0808相應(yīng)通道,單片機(jī)軟件設(shè)置ADC0808開始A/D轉(zhuǎn)換,轉(zhuǎn)換結(jié)束ADC0808的EOC端口產(chǎn)生高電平,同時將ADC0808的EO端口置為高電平,單片機(jī)將轉(zhuǎn)換后結(jié)果存到片內(nèi)RAM。系統(tǒng)調(diào)出顯示子程序,將保存結(jié)果轉(zhuǎn)化為0.00-5.00V分
44、別保存在片內(nèi)RAM;系統(tǒng)調(diào)出顯示子程序,將轉(zhuǎn)化后數(shù)據(jù)查表,輸出到LED顯示電路,將相應(yīng)電壓顯示出來,程序進(jìn)入下一個循環(huán)。</p><p> 4.2 系統(tǒng)結(jié)構(gòu)框圖</p><p> 根據(jù)項目要求,確定該系統(tǒng)的設(shè)計方案,圖4-1為該系統(tǒng)設(shè)計方案的結(jié)構(gòu)框圖。硬件電路由6部分組成:單片機(jī)、時鐘電路、復(fù)位電路、LED顯示電路、A/D轉(zhuǎn)換器和測量電壓輸入電路。</p><p&g
45、t; 圖4-1 系統(tǒng)結(jié)構(gòu)框圖</p><p> 4.3 系統(tǒng)硬件設(shè)計</p><p> 4.3.1 單片機(jī)的選擇</p><p> 設(shè)計這樣的應(yīng)用系統(tǒng),可以選擇帶有EPROM的單片機(jī),應(yīng)用程序直接存儲在片內(nèi),不用在外部擴(kuò)展程序存儲器,電路可以簡化。此電路選擇Atmel公司生產(chǎn)的AT89C51。AT89系列與MCS-51系列單片機(jī)相比有兩大優(yōu)勢:第一,片內(nèi)程
46、序存儲器采用閃速存儲器,使程序的寫入更加方便;第二,提供了更小尺寸的芯片,使整個電路體積更小。它以較小的體積、良好的性價比倍受青睞</p><p> 4.3.2 時鐘電路的設(shè)計</p><p> 單片機(jī)工作的時間基準(zhǔn)是由時鐘電路提供的,在單片機(jī)的XTAL1和XYAL2兩個管腳接一只晶振及兩只電容就構(gòu)成了單片機(jī)的時鐘電路,電路中電容器C1和C2對振蕩頻率有微調(diào)作用,通常取(30±
47、;10)pF石英晶體選擇6MHz或12MHz都可以。時鐘電路如圖4-2所示。</p><p> 圖4-2 系統(tǒng)時鐘電路 </p><p><b> 4.3.3復(fù)位電路</b></p><p> 單片機(jī)的RST管腳為主機(jī)提供了一個外部復(fù)位信號輸入口。復(fù)位信號是高電平有效,高電平有效的持續(xù)時間為2個機(jī)器周期以上。單片機(jī)的復(fù)位方式可由手動復(fù)位
48、方式完成。電阻、電容器的參考值R1=10KΩ、C1=10uF、Ch=0.01uF。復(fù)位電路如圖4-3所示。</p><p> 圖4-3 系統(tǒng)復(fù)位電路</p><p> 4.3.4 A/D轉(zhuǎn)化電路及測量電路的設(shè)計</p><p> A/D轉(zhuǎn)換器的功能是將模擬量轉(zhuǎn)換為與其大小成正比的數(shù)字量信號。能實(shí)現(xiàn)這種轉(zhuǎn)換的原理和方法很多,此設(shè)計采用ADC0808轉(zhuǎn)換器。ADC
49、0808是一種逐次逼近型的8位A/D轉(zhuǎn)換器件,片內(nèi)有8路模擬開關(guān),可輸入8個模擬量,單極性,量程為0~+5V。引腳功能如下:</p><p> IN0~I(xiàn)N7:8路模擬量輸入。</p><p> ADDA、ADDB、ADDC:模擬量輸入通道地址選擇,其8位編碼分別對應(yīng)IN0~I(xiàn)N7.</p><p> ALE:地址鎖存允許,上升沿將通道選擇信號存入地址鎖存器。
50、</p><p> START:ADC轉(zhuǎn)換啟動信號,正脈沖有效,引腳信號要求保持在200ns以上,其上升沿將內(nèi)部逐次逼近寄存器清零。</p><p> EOC:轉(zhuǎn)換解釋信號,可做為中斷請求信號或供CPU查詢。</p><p> CLK:時鐘輸入端,要求頻率范圍在10kHz~1.2MHz.</p><p> OE:允許輸出信號。<
51、/p><p> Vcc:芯片工作電壓。</p><p> VREF(+)、VREF(-):基準(zhǔn)參考電壓的正、負(fù)值。</p><p> OUT1~OUT8:8路數(shù)字量輸出端。</p><p> 基于上述,單片機(jī)的P2口高四位分別對應(yīng)ADC0808的CLK、ALE、EOC和OE端,用軟件設(shè)定給定的值。</p><p>
52、 IN0~I(xiàn)N7分別接上滑動變阻器,另一端全部接電位器,根據(jù)選擇的通道,電位器選擇測量相應(yīng)通道的電位。</p><p> 4.3.5 顯示模塊設(shè)計</p><p> 單片機(jī)應(yīng)用系統(tǒng)中,通常都需要進(jìn)行人機(jī)對話。這包括人對應(yīng)用系統(tǒng)的狀態(tài)干預(yù)與數(shù)據(jù)輸入,以及應(yīng)用系統(tǒng)向人們顯示運(yùn)行狀態(tài)與運(yùn)行結(jié)果。顯示器、鍵盤電路就是用來完成人機(jī)對話活動的人機(jī)通道。</p><p>
53、 在應(yīng)用系統(tǒng)中,設(shè)計要求不同,使用的LED顯示器的位數(shù)也不同,因此生產(chǎn)廠家就生產(chǎn)了多種位數(shù)、尺寸、型號不同的LED顯示器。在我們的設(shè)計中,選擇4位一體的共陰極時鐘型LED顯示器,采用動態(tài)顯示方式。</p><p><b> 4.4系統(tǒng)程序設(shè)計</b></p><p> 4.4.1 初始化程序</p><p> ORG 0000H<
54、/p><p> SJMPSTART</p><p> ORG 0003H</p><p> LJMP INT01</p><p> START:MOVDPTR,#TAB</p><p><b> 4.4.2主程序</b></p><p> 圖4-4
55、 主程序流程圖</p><p> 它包含通道的選擇及模擬量轉(zhuǎn)化為數(shù)字量的算法,把通道選擇的值和數(shù)字量整數(shù)部分,十分位,小數(shù)位分別放入寄存器,為下面的顯示子程序作準(zhǔn)備。</p><p> WAIT: MOV A,#0FFH</p><p> MOV P3,A</p><p> MOV A,P3</p><
56、;p> ANL A,#07H ;使P3口的低三位為1,從而選擇通道</p><p> JNB P3.3,LOOP1 ;判斷P3.3是否為0,若為0跳轉(zhuǎn),即有中斷</p><p> MOV R0,A ;把控制通道的值送給累加器R0</p><p><b> SWAP A </b></p>
57、;<p> MOV P3,A ;通道7有效</p><p> CLR P2.5 ;允許鎖存輸出</p><p> SETB P2.5 ;一位位輸出</p><p> CLR P2.5</p><p> JNB P2.6,$;為1時AD轉(zhuǎn)換結(jié)束</p>
58、;<p> SETB P2.7 ;數(shù)據(jù)輸出允許信號</p><p> MOV A,#0FFH </p><p> MOV P1,A</p><p> MOV A,P1</p><p> CLR P2.7</p><p> MOV B,#51;算出對
59、應(yīng)的電壓的整數(shù)倍</p><p> DIV AB ;算出電壓的值的小數(shù)部分并存儲</p><p><b> MOV R1,A</b></p><p> MOV A,B </p><p> MOV B,#2</p><p><b>
60、MUL AB</b></p><p> MOV B,#10</p><p><b> DIV AB</b></p><p><b> MOV R2,A</b></p><p><b> MOV R3,B</b></p><p&
61、gt; LCALLDISP</p><p> SJMP WAIT</p><p> 4.4.3 A/D轉(zhuǎn)換子程序的設(shè)計 </p><p> A/D轉(zhuǎn)換程序的功能是采集數(shù)據(jù),在整個系統(tǒng)設(shè)計中占有很高的地位。當(dāng)系統(tǒng)置好后,單片機(jī)掃描轉(zhuǎn)換結(jié)束管腳P2.6的輸入電平狀態(tài),當(dāng)輸入為高電平則轉(zhuǎn)換完成,將轉(zhuǎn)換的數(shù)值轉(zhuǎn)換并顯示輸出。若輸入為低電平,則繼續(xù)掃描。<
62、/p><p> 圖4-5 A/D轉(zhuǎn)換子程序流程圖</p><p> MOV A,#0FFH </p><p> MOV P3,A</p><p> MOV A,P3</p><p> ANL A,#07H</p><p> JNB P3.3,LOOP1<
63、;/p><p> MOV R0,A</p><p><b> SWAP A</b></p><p> MOV P3,A ;通道7有效 </p><p> CLR P2.5 ;允許鎖存輸出 </p><p> SETB P2.5 </p>
64、<p> CLR P2.5 ;一位位的輸出</p><p> JNB P2.6,$;為1時ad轉(zhuǎn)換結(jié)束</p><p> SETB P2.7 ;數(shù)據(jù)輸出允許信號</p><p> 4.4.4 循環(huán)顯示的程序</p><p> 即有中斷(P3.3=0)時,數(shù)碼管從0到7八個通道依次循環(huán)顯示。它是
65、由低電平觸發(fā)引起的的中斷。此段程序也包含了八路模擬直流電壓轉(zhuǎn)化為數(shù)字電壓的算法,并把通道選擇的值和數(shù)字量整數(shù)部分,十分位,小數(shù)位分別放入寄存器,為下面的顯示子程序作準(zhǔn)備。</p><p> LOOP1:INC R0</p><p><b> MOV A,R0</b></p><p> CJNE A,#08H,NEXT ;判斷
66、是否是八個通道顯示完,如果是則進(jìn)行下</p><p> MOVA,#00H ;一輪的循環(huán)</p><p> NEXT:MOV R0,A</p><p><b> SWAP A</b></p><p><b> MOV P3,A</b></p>
67、<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&
68、gt; MOV P1,A</p><p> MOV A,P1</p><p> CLR P2.7</p><p> MOV B,#51</p><p><b> DIV AB</b></p><p><b> MOV R1,A</b>
69、</p><p><b> MOV A,B</b></p><p> MOV B,#2</p><p><b> MUL AB</b></p><p> MOV B,#10</p><p><b> DIV AB</b></
70、p><p><b> MOV R2,A</b></p><p><b> MOV R3,B</b></p><p> LCALL DISP</p><p> JNB P3.3, LOOP1</p><p> SJMP WAIT</p><p
71、> 4.4.5 顯示程序</p><p> 它包含了位碼和段碼的設(shè)置,位碼控制哪個數(shù)碼管顯示;段碼控制顯示的數(shù)值</p><p> DISP: MOV R4,#0FH</p><p> LOOP:MOVA,R3</p><p> MOVCA,@A+DPTR</p><p><b&g
72、t; MOVP0,A</b></p><p> LCALLDELAY</p><p><b> SETBP2.3</b></p><p><b> MOVA,R2</b></p><p> MOVCA,@A+DPTR</p><p><b
73、> CLRP2.2</b></p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p><b> SETBP2.2</b></p><p><b> MOVA, R1</b></p>
74、<p> MOVCA,@A+DPTR</p><p> ADD A,#80H</p><p><b> CLR P2.1</b></p><p> MOV P0, A</p><p> LCALLDELAY</p><p><b> SETBP2.1
75、</b></p><p><b> MOVA,R0</b></p><p> MOVCA,@A+DPTR</p><p><b> CLRP2.0</b></p><p><b> MOVP0,A</b></p><p>
76、LCALLDELAY</p><p> SETBP2.0 </p><p> DJNZ R4,LOOP</p><p><b> RET</b></p><p> 4.4.6 中斷子程序、延時子程序和查表</p><p> INT01: INC R0</p>&
77、lt;p><b> RETI</b></p><p> DELAY: MOVR6,#20</p><p> D1:MOVR7,#250</p><p><b> DJNZR7,$</b></p><p> DJNZR6,D1</p><p>
78、;<b> RET</b></p><p> TAB: DB 3FH,06H,5BH,4FH,66H</p><p> DB 6DH,7DH,07H,7FH,6FH</p><p> 5 數(shù)字電壓表硬件電路及仿真</p><p> 5.1 總體設(shè)計仿真電路</p><p> 圖5
79、-1 總體電路設(shè)計仿真圖</p><p> 說明:圖下部分為八通道直流電壓輸入電路,它由滑動變阻器控制輸入電壓的大小,從而控制ADC0808各輸入端的電壓示數(shù),從而變化地顯示在數(shù)碼管上。74LS161為四位二進(jìn)制加法計數(shù)器,用來控制P3口的低三位,進(jìn)而控制ADC0809的A、B、C三個地址選擇端,從而控制不同的輸入通道。用軟件設(shè)計使ADC0808工作輸出的數(shù)字量通過p1口輸入單片機(jī),從單片機(jī)的p0口輸出到數(shù)碼管
80、中顯示出來。單片機(jī)P2口的低四位作為LED位碼的輸出控制信號。</p><p> 當(dāng)P1口輸出段碼信號的BCD碼后,輸出具有一定驅(qū)動能力的七段字形碼,由于4-LED的段碼輸入管腳是并聯(lián)在一起的,所以每一位LED的段碼輸入管腳都能獲得這個段碼信號。若要控制在每一時刻只有一位LED被點(diǎn)亮,必須靠位碼信號控制。P2口低四位輸出位碼信號后接到LED的位碼控制端,因此P2口的低四位的位碼信號在每一時刻只有一位是“1”,其
81、他位全為“0”,然后按時間順序改變輸出“1”的位置,控制在每一時刻只有一位LED被點(diǎn)亮,達(dá)到動態(tài)顯示的目的。</p><p><b> 5.2 仿真結(jié)果</b></p><p> 圖5-2 通道1仿真結(jié)果</p><p> 圖5-3 通道7仿真結(jié)果</p><p> 補(bǔ)充:當(dāng)調(diào)整滑動變阻器時,相應(yīng)的電阻值在數(shù)碼管
82、上也同時顯示。當(dāng)按下switch鍵時,會顯示從0---7通道的電壓值顯示,按下button鍵單路選擇顯示。</p><p><b> 6 總結(jié)</b></p><p> 做了一周的課程設(shè)計,我基本上圓滿的完成了課設(shè)的相關(guān)任務(wù),達(dá)到了課程設(shè)計的技術(shù)要求,相信這對以后也是有幫助的。通過課程設(shè)計這一實(shí)踐環(huán)節(jié),我對這個學(xué)期以來所學(xué)到知識有了更深層的理解,而且自己分析問題和
83、解決實(shí)際問題的能力也有一定的提高。</p><p> 同時在這個過程中我也發(fā)現(xiàn)了自己許多的不足,包括對所學(xué)的基礎(chǔ)知識理解不是很透徹,以至于電路設(shè)計了很長時間,最后還得連夜趕著寫論文。還有對理論知識的運(yùn)用不很靈活,常常在一個問題想半天,結(jié)果還是換一個角度好一點(diǎn)。</p><p> 本設(shè)計以AT89C51單片機(jī)為控制核心,通過集成摸數(shù)轉(zhuǎn)換芯片ADC0808將被測信號轉(zhuǎn)換成數(shù)字信號,經(jīng)單片機(jī)
84、內(nèi)部程序處理后,由七段數(shù)碼管顯示測量結(jié)果。仿真測試表明,系統(tǒng)性能良好,測量讀數(shù)穩(wěn)定易讀、更新速度合理,直流電壓測量范圍為0.00~5.00V,最小分辨率為0.02V,滿足任務(wù)書指標(biāo)要求。但是,該系統(tǒng)也存在一定程度的不足,例如:輸入電壓易發(fā)生干擾不穩(wěn)定,且驅(qū)動能力可能存在不足,需在被測信號的輸入端加上一部分驅(qū)動電路,比如將量程轉(zhuǎn)換電路改成帶放大能力的自動量程轉(zhuǎn)換電路,將幅值較小的信號經(jīng)適當(dāng)放大后再測量,可顯著提高精度。</p>
85、<p> 認(rèn)真的做完這次單片機(jī)課程設(shè)計后,我感覺自己有了很大的提高。但是由于時間的原因,這次課程設(shè)計沒能達(dá)到自己預(yù)想的那么好,所幸的是功夫不負(fù)有心人,所有功能指標(biāo)都已基本實(shí)現(xiàn)了。在接下來的時間里,我會繼續(xù)把它做好。最后我還總結(jié)出了一個結(jié)論,當(dāng)認(rèn)真的投入到一項工作中時,不但會收獲許多,而且還會感覺到很大的樂趣。</p><p><b> 參考文獻(xiàn)</b></p>
86、<p> [1] 張剛毅,彭喜元.單片機(jī)原理與應(yīng)用設(shè)計.北京:電子工業(yè)出版社,2008</p><p> [2] 吳金戌,沈慶陽,郭庭吉.8051單片機(jī)實(shí)踐與應(yīng)用.北京:清華大學(xué)出版社,2002</p><p> [3] 黃智偉.全國大學(xué)生電子設(shè)計競賽訓(xùn)練教程.北京:電子工業(yè)出版社,2004</p><p> [4] 汪德彪.MCS-51
87、單片機(jī)原理及接口技術(shù)(第一版).北京:電子工業(yè)出版社,2003</p><p> [5] 徐愛鈞.智能化測量控制儀表原理與設(shè)計(第二版).北京:北京航空航天大學(xué)出版社,2004</p><p><b> 附錄 </b></p><p> ORG 0000H</p><p> SJMPSTART</p&
88、gt;<p> ORG 0003H</p><p> LJMP INT01 ;中斷入口地址</p><p> START:MOVDPTR,#TAB ;表首地址送給DPTR</p><p> WAIT: MOV A,#0FFH </p><p> MOV P3,A</p
89、><p> MOV A,P3</p><p> ANL A,#07H ;選擇ADC0808通道</p><p> JNB P3.3,LOOP1 ;判斷是否有中斷</p><p> MOV R0,A ;把控制通道的值送給寄存器</p><p&
90、gt; SWAP A </p><p> MOV P3,A</p><p> CLR P2.5 ;啟動AD轉(zhuǎn)換</p><p> SETB P2.5</p><p> CLR P2.5</p><p> JNB P2.6,$</p><p&g
91、t; SETB P2.7 ;允許AD轉(zhuǎn)換輸出</p><p> MOV A,#0FFH ;P1口為準(zhǔn)雙向口,先輸入1</p><p> MOV P1,A </p><p> MOV A,P1</p><p> CLR P2.7</p><p>
92、; MOV B,#51;計算,以使其在數(shù)碼管顯示</p><p><b> DIV AB</b></p><p> MOV R1,A ;轉(zhuǎn)換出的整數(shù)部分</p><p> MOV A,B </p><p> MOV B,#2</p><p><b
93、> MUL AB</b></p><p> MOV B,#10 </p><p><b> DIV AB</b></p><p> MOV R2,A ;轉(zhuǎn)換出的十分位</p><p> MOV R3,B ;轉(zhuǎn)換出的百分位</p&
94、gt;<p> LCALLDISP</p><p> SJMP WAIT</p><p> LOOP1:INC R0 </p><p><b> MOV A,R0</b></p><p> CJNE A,#08H,NEXT ;控制循環(huán)次數(shù)</p>&
95、lt;p> MOVA,#00H</p><p> NEXT:MOV R0,A </p><p><b> SWAP A</b></p><p><b> MOV P3,A</b></p><p> CLR P2.5 </p><p>
96、 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> MOV P1,A</p><p> MOV A,P1
97、</p><p> CLR P2.7</p><p> MOV B,#51</p><p><b> DIV AB</b></p><p><b> MOV R1,A</b></p><p><b> MOV A,B</b&g
98、t;</p><p> MOV B,#2</p><p><b> MUL AB</b></p><p> MOV B,#10</p><p><b> DIV AB</b></p><p><b> MOV R2,A</b>&l
99、t;/p><p><b> MOV R3,B</b></p><p> LCALL DISP</p><p> JNB P3.3, LOOP1</p><p> SJMP WAIT</p><p> DISP: MOV R4,#0FH ;顯示程序</p&g
100、t;<p> LOOP:MOVA,R3</p><p> MOVCA,@A+DPTR</p><p><b> CLR P2.3</b></p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><
101、p> SETBP2.3 ;控制哪個數(shù)碼管顯示</p><p><b> MOVA,R2</b></p><p> MOVCA,@A+DPTR</p><p><b> CLRP2.2</b></p><p><b> MOVP0,A</b>
102、</p><p> LCALLDELAY</p><p><b> SETBP2.2</b></p><p><b> MOVA, R1</b></p><p> MOVCA,@A+DPTR</p><p> ADD A,#80H</p>&
103、lt;p><b> CLR P2.1</b></p><p> MOV P0, A</p><p> LCALLDELAY</p><p><b> SETBP2.1</b></p><p><b> MOVA,R0</b></p>&l
104、t;p> MOVCA,@A+DPTR</p><p><b> CLRP2.0</b></p><p><b> MOVP0,A</b></p><p> LCALLDELAY</p><p> SETBP2.0 </p><p> DJNZ
105、R4,LOOP</p><p><b> RET</b></p><p> INT01: INC R0 ;中斷子程序</p><p><b> RETI</b></p><p> DELAY: MOVR6,#20;延時子程序</p><p> D
106、1:MOVR7,#250</p><p><b> DJNZR7,$</b></p><p> DJNZR6,D1</p><p><b> RET</b></p><p> TAB: DB 3FH,06H,5BH,4FH,66H</p><p> D
溫馨提示
- 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ī)課程設(shè)計-數(shù)字電壓表
- 單片機(jī)(數(shù)字電壓表)課程設(shè)計
- 單片機(jī)課程設(shè)計----數(shù)字電壓表
- 單片機(jī)課程設(shè)計-數(shù)字電壓表
- 單片機(jī)課程設(shè)計--數(shù)字電壓表
- 單片機(jī)課程設(shè)計--數(shù)字電壓表
- 單片機(jī)課程設(shè)計---數(shù)字電壓表設(shè)計
- 單片機(jī)課程設(shè)計---數(shù)字電壓表設(shè)計
- 單片機(jī)課程設(shè)計---數(shù)字電壓表設(shè)計
- 單片機(jī)課程設(shè)計--簡易數(shù)字電壓表
- 單片機(jī)(數(shù)字電壓表)課程設(shè)計.rar
- 單片機(jī)課程設(shè)計數(shù)字電壓表
- 單片機(jī)數(shù)字電壓表課程設(shè)計.doc
- 單片機(jī)(數(shù)字電壓表)課程設(shè)計.rar
- 單片機(jī)(數(shù)字電壓表)課程設(shè)計.rar
- 單片機(jī)課程設(shè)計---數(shù)字電壓表 (2)
- 單片機(jī)課程設(shè)計報告——數(shù)字電壓表
- 課程設(shè)計----單片機(jī)簡易數(shù)字電壓表
評論
0/150
提交評論