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