單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù)字電壓表

上傳人:仙*** 文檔編號:79535867 上傳時(shí)間:2022-04-23 格式:DOC 頁數(shù):31 大小:1.20MB
收藏 版權(quán)申訴 舉報(bào) 下載
單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù)字電壓表_第1頁
第1頁 / 共31頁
單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù)字電壓表_第2頁
第2頁 / 共31頁
單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù)字電壓表_第3頁
第3頁 / 共31頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù)字電壓表》由會員分享,可在線閱讀,更多相關(guān)《單片機(jī)技術(shù)課程設(shè)計(jì)說明書 數(shù)字電壓表(31頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、 《單片機(jī)技術(shù)》課程設(shè)計(jì)說明書 數(shù)字電壓表 院、 部: 電子與信息工程學(xué)院 學(xué)生姓名: xxxxx 指導(dǎo)教師: xx 職稱: 講師 專 業(yè): 自動(dòng)化 班 級: 自本1001班 完成時(shí)間: 2012年12月25日 摘 要 本文介紹了一種基于單片機(jī)的簡易數(shù)字電壓表的設(shè)計(jì),該電路采用ADC0809 A/D轉(zhuǎn)換元件,實(shí)現(xiàn)數(shù)字電壓表的硬件電路與軟件設(shè)計(jì)。該系統(tǒng)的數(shù)字電壓表電路簡單, 可

2、以測量0~5V的電壓值,并在lED數(shù)碼管上顯示 該設(shè)計(jì)主要由三個(gè)模塊組成:A/D轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊及顯示模塊。A/D轉(zhuǎn)換主要由芯片ADC0809來完成,它負(fù)責(zé)把采集到的模擬量轉(zhuǎn)換為相應(yīng)的數(shù)字量在傳送到數(shù)據(jù)處理模塊。數(shù)據(jù)處理則由單片機(jī)AT89C51來完成,其負(fù)責(zé)把ADC0809傳送來的數(shù)字量經(jīng)過一定的數(shù)據(jù)處理,產(chǎn)生相應(yīng)的顯示碼送到顯示模塊進(jìn)行顯示;此外,它還控制著ADC0809芯片工作。 該系統(tǒng)的數(shù)字電壓表電路簡單,所用的元件較少,成本低,且測量精度和可靠性較高。此數(shù)字電壓表可以測量0-5V的1路模擬直流輸入電壓值,并通過一個(gè)四位一體的7段數(shù)碼管顯示出來。 關(guān)鍵字:單片機(jī);數(shù)字電壓

3、表;A/D轉(zhuǎn)換;AT89C51;ADC0809 ABSTRACT This paper introduces a kind of chip based on a digital voltage meter design, the circuit uses ADC0809 A\/D converter, digital voltage meter to achieve hardware circuit and software design. The system of the digital volta

4、ge meter circuit is simple, can be measured by 0~ 5V voltage value, and in the LED digital tube display This design mainly consists of three modules: A\/D module, data processing module and display module. Conversion of A\/D mainly by the chip ADC0809 to complete, it is responsible for the acquisit

5、ion of analog quantity is converted into corresponding digital quantity in transmitted to a data processing module. Data processing by the MCU to complete the AT89C51, its responsible for the ADC0809 transmission to a digital quantity after a certain amount of data processing, to produce a correspon

6、ding display code to the display module for display; in addition, it also controls the operation of the ADC0809 chip. The system of the digital voltage meter circuit is simple, with less elements, low cost, and high measuring precision and reliability. The digital voltage meter can measure 0-5V 1 a

7、nalog input DC voltage value, and through a four one of the 7 digital tube display. Key words: single-chip microcontroller; digital voltmeter; A/D converter; AT89C51; ADC0808 I 目 錄 1 設(shè)計(jì)總體方案 1 1.1 設(shè)計(jì)要求 1 1.2 設(shè)計(jì)思路 1 1.3 設(shè)計(jì)方案 1 2 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì) 2

8、 2.1 AT89C51單片機(jī) 2 2.2 ADC0809引腳功能 4 2.3 復(fù)位電路設(shè)計(jì) 5 2.4 時(shí)鐘電路設(shè)計(jì) 5 2.5 LED顯示系統(tǒng)設(shè)計(jì) 6 2.5.1 LED的基本結(jié)構(gòu) 6 2.5.2 LED顯示器的選擇 7 2.5.3 LED譯碼方式 7 2.5.4 LED顯示器與單片機(jī)接口設(shè)計(jì) 8 2.6 總體電路設(shè)計(jì) 9 3 程序設(shè)計(jì) 10 3.1 程序設(shè)計(jì)總方案 10 3.2 系統(tǒng)子程序設(shè)計(jì) 10 3.2.1

9、 初始化程序 10 3.2.2 A/D轉(zhuǎn)換子程序 10 3.2.3 顯示子程序 11 3.3 軟件程序清單 11 4 仿真 12 4.1 軟件調(diào)試 12 4.2 顯示結(jié)果及誤差分析 12 4.2.1 顯示結(jié)果 12 4.2.2 誤差分析 14 結(jié)束語 15 致謝 16 參考文獻(xiàn) 17 附錄A 程序清單 18 附錄B 實(shí)物圖 22 附錄C PCB圖 23 附錄D 電路原理圖 25 附錄E 原器件清單 26 I 1 設(shè)計(jì)總體方案

10、 1.1 設(shè)計(jì)要求 設(shè)計(jì)一個(gè)能夠測量直流電壓的數(shù)字電壓表。測量電壓范圍0~5V,測量精度小數(shù)點(diǎn)后兩位。該電壓表上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入測量準(zhǔn)備狀態(tài),按測量開始鍵則開始測量,并將測量值顯示在顯示器上,按測量結(jié)束鍵則自動(dòng)返回“P.”狀態(tài)。 1.2 設(shè)計(jì)思路 (一)根據(jù)設(shè)計(jì)要求,選擇AT89C51單片機(jī)為核心控制器件。 (二)A/D轉(zhuǎn)換采用ADC0809實(shí)現(xiàn),與單片機(jī)的接口為P0口和P2口中的高位引腳。 (三)電壓顯示采用4位一體的LED數(shù)碼管。 (四)LED數(shù)碼的段碼輸入,由并行端口P1產(chǎn)生:位碼輸入,用并行端口P3低四位產(chǎn)生。 1.3

11、設(shè)計(jì)方案 硬件電路設(shè)計(jì)由6個(gè)部分組成,A/D轉(zhuǎn)換電路、AT89C51單片機(jī)系統(tǒng)LED顯示系統(tǒng)、時(shí)鐘電路、復(fù)位電路以及測量電壓輸入電路。硬件電路設(shè)計(jì)框圖如圖1所示: 圖1 數(shù)字電壓表系統(tǒng)硬件設(shè)計(jì)框圖 2 設(shè)計(jì)課題硬件系統(tǒng)的設(shè)計(jì) 2.1 AT89C51單片機(jī) 本設(shè)計(jì)的核心就是運(yùn)用了單片機(jī)去實(shí)現(xiàn)軟件控制信號,達(dá)到了軟件和硬件的結(jié)合,下面就是介紹89C51單片機(jī),單片機(jī)的引腳圖如圖2所示:

12、 圖2 AT89C51的引腳圖 AT89C51芯片的各引腳功能為: 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訪問片外存儲器時(shí)先傳送片外存儲器的低8位地址,然后傳送CPU對片外存儲器的讀/寫數(shù)據(jù)。P0口為開漏輸出,在作為通用I/O使用時(shí)

13、,需要在外部用電阻上拉。 P1口:這8個(gè)引腳和P0口的8個(gè)引腳類似,P1.7為最高位,P1.0為最低位,當(dāng)P1口作為通用I/O口使用時(shí),P1.0-P1.7的功能和P0口的第一功能相同,也用于傳送用戶的輸入和輸出數(shù)據(jù)。 P2口:這組引腳的第一功能與上述兩組引腳的第一功能相同即它可以作為通用I/O口使用,它的第一功能和P0口引腳的第二功能相配合,用于輸出片外存儲器的高8位地址,共同選中片外存儲器單元,但并不是像P0口那樣傳送存儲器的讀/寫數(shù)據(jù)。 P3口:這組引腳的第一功能和其余三個(gè)端口的第一功能相同,第二功能為控制功能,每個(gè)引腳并不完全相同,如下表1所示: 表1 P3口各位的第二功能

14、 P3口各位 第二功能 P3.0 RXT(串行口輸入) P3.1 TXD(串行口輸出) P3.2 /INT0(外部中斷0輸入) P3.3 /INT1(外部中斷1輸入) P3.4 T0(定時(shí)器/計(jì)數(shù)器0的外部輸入) P3.5 T1(定時(shí)器/計(jì)數(shù)器1的外部輸入) P3.6 /WR(片外數(shù)據(jù)存儲器寫允許) P3.7 /RD(片外數(shù)據(jù)存儲器讀允許) Vcc為+5V電源線,Vss接地。 ALE:地址鎖存允許線,配合P0口的第二功能使用,在訪問外部存儲器時(shí),89C51的

15、CPU在P0.0-P0.7引腳線去傳送隨后而來的片外存儲器讀/寫數(shù)據(jù)。在不訪問片外存儲器時(shí),89C51自動(dòng)在ALE線上輸出頻率為1/6震蕩器頻率的脈沖序列。該脈沖序列可以作為外部時(shí)鐘源或定時(shí)脈沖使用。 /EA:片外存儲器訪問選擇線,可以控制89C51使用片內(nèi)ROM或使用片外ROM,若/EA=1,則允許使用片內(nèi)ROM, 若/EA=0,則只使用片外ROM。 /PSEN:片外ROM的選通線,在訪問片外ROM時(shí),89C51自動(dòng)在/PSEN線上產(chǎn)生一個(gè)負(fù)脈沖,作為片外ROM芯片的讀選通信號。 RST:復(fù)位線,可以使89C51處于復(fù)位(即初始化)工作狀態(tài)。通常89C51復(fù)位有自動(dòng)上電復(fù)位和人工按鍵復(fù)

16、位兩種。 XTAL1和XTAL2:片內(nèi)震蕩電路輸入線,這兩個(gè)端子用來外接石英晶體和微調(diào)電容,即用來連接89C51片內(nèi)OSC(震蕩器)的定時(shí)反饋回路。 2.2 ADC0809引腳功能 ADC0809的引腳如圖3所示,下面對引腳功能做簡要說明: 圖3 ADC0809引腳 IN0~IN7:8個(gè)模擬量的輸入端。 D0~D7:8位數(shù)字量輸出端。 START:啟動(dòng)A/D轉(zhuǎn)換,加正脈沖后A/D轉(zhuǎn)換開始。 EOC:轉(zhuǎn)換結(jié)束信號。轉(zhuǎn)換開始時(shí),EOC信號變低電平;轉(zhuǎn)換結(jié)束時(shí),EOC信號返回高電平。該信號可以作為CPU查詢A/D轉(zhuǎn)換

17、是否完成的信號,也可以作為向CPU發(fā)出中斷申請的信號。 OE:輸出允許信號,輸入高電平有效。OE端的電平由低變高時(shí),轉(zhuǎn)換結(jié)果被送到數(shù)據(jù)線上。此信號有效時(shí),CPU可以從ADC0809中讀取數(shù)據(jù),同時(shí)也可以作為ADC0809的片選信號。 CLK:實(shí)時(shí)時(shí)鐘,頻率范圍為10KHZ~1280KHZ,典型值為640KHZ。 ALE:通道地址鎖存允許信號,輸入高電平有效。在ALE=1時(shí),鎖存ADDA~ADDC,選中模擬量輸入。 ADDC~ADDC:通道地址選擇輸入,其排列順序從低到高依次為ADDA 、ADDB、 ADDC。該地址與8個(gè)模擬量輸入,通道的對應(yīng)關(guān)系如表1所示: VREF+、VREF-正

18、負(fù)參考電壓。一般情況下,VREF+接+5V,VREF-接地。此時(shí)的轉(zhuǎn)換關(guān)系如表2所示: VCC\GND:工作電源和接地 ADC0809的模擬通道選擇表2所示: 表2 地址與模擬量通道之間的對應(yīng)關(guān)系 ADDC ADDB ADDA 選中通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 2.3 復(fù)位電路設(shè)計(jì) 單片機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使CPU和系統(tǒng)中的其他部件都處于一個(gè)確定的初始狀

19、態(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ù)位方式有上電自動(dòng)復(fù)位和手動(dòng)復(fù)位兩種,圖4是51系列單片機(jī)統(tǒng)常用的上電復(fù)位和手動(dòng)復(fù)位組合電路,只要VCC上升時(shí)間不超過1ms,它們都能很好的工作。 圖4 復(fù)位電路 2.4 時(shí)鐘電路設(shè)

20、計(jì) 單片機(jī)中CPU每執(zhí)行一條指令,都必須在統(tǒng)一的時(shí)鐘脈沖的控制下嚴(yán)格按時(shí)間節(jié)拍進(jìn)行,而這個(gè)時(shí)鐘脈沖是單片機(jī)控制中的時(shí)序電路發(fā)出的。CPU執(zhí)行一條指令的各個(gè)微操作所對應(yīng)時(shí)間順序稱為單片機(jī)的時(shí)序。MCS-51單片機(jī)芯片內(nèi)部有一個(gè)高增益反相放大器,用于構(gòu)成震蕩器,XTAL1為該放大器的輸入端,XTAL2為該放大器輸出端,但形成時(shí)鐘電路還需附加其他電路。 本設(shè)計(jì)系統(tǒng)采用內(nèi)部時(shí)鐘方式,利用單片機(jī)內(nèi)部的高增益反相放大器,外部電路簡,只需要一個(gè)晶振和 2個(gè)電容即可,如圖5所示: 圖5 時(shí)鐘電路

21、 電路中的器件選擇可以通過計(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。 2.5 LED顯示系統(tǒng)設(shè)計(jì) 2.5.1 LED的基本結(jié)構(gòu) LED是發(fā)光二極管顯示器的縮寫。LED由于結(jié)構(gòu)簡單、價(jià)格便宜、與單片機(jī)接口方便等優(yōu)點(diǎn)而得到廣泛應(yīng)用。LED顯示器是由若干個(gè)發(fā)光二極管組成顯示字段的顯示器件。在單片機(jī)中使用最多的是七段數(shù)碼顯示器。LED七段數(shù)

22、碼顯示器由8個(gè)發(fā)光二極管組成顯示字段,其中7個(gè)長條形的發(fā)光二極管排列成“日”字形,另一個(gè)圓點(diǎn)形的發(fā)光二極管在顯示器的右下角作為顯示小數(shù)點(diǎn)用,其通過不同的組合可用來顯示各種數(shù)字。LED引腳排列如下圖6所示: 圖6 LED引腳排列 2.5.2 LED顯示器的選擇 在應(yīng)用系統(tǒng)中,設(shè)計(jì)要求不同,使用的LED顯示器的位數(shù)也不同,因此就生產(chǎn)了位數(shù),尺寸,型號不同的LED顯示器供選擇,在本設(shè)計(jì)中,選擇4位一體的數(shù)碼型LED顯示器,簡稱“4-LED”。本系統(tǒng)中前一位顯示電壓的整數(shù)位,即個(gè)位,后兩位顯示電壓的小數(shù)位。 4-LED顯示器引腳如圖

23、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的段輸出引腳在內(nèi)部都并聯(lián)后,引出到器件的外部。 圖7 4位LED引腳 對于這種結(jié)構(gòu)的LED顯示器,它的體積和結(jié)構(gòu)都符合設(shè)計(jì)要求,由于4位LED陰極的各段已經(jīng)在內(nèi)部連接在一起,所以必須使用動(dòng)態(tài)掃描方式(將所有數(shù)碼管的段選線并聯(lián)在一起,用一個(gè)I/O接口控制)

24、顯示。 2.5.3 LED譯碼方式 譯碼方式是指由顯示字符轉(zhuǎn)換得到對應(yīng)的字段碼的方式,對于LED數(shù)碼管顯示器,通常的譯碼方式有硬件譯碼和軟件譯碼方式兩種。 硬件譯碼是指利用專門的硬件電路來實(shí)現(xiàn)顯示字符碼的轉(zhuǎn)換。 軟件譯碼就是編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼,譯碼程序通常為查表程序。 本設(shè)計(jì)系統(tǒng)中為了簡化硬件線路設(shè)計(jì),LED譯碼采用軟件編程來實(shí)現(xiàn)。由于本設(shè)計(jì)采用的是共陰極LED,其對應(yīng)的字符和字段碼如下表3所示: 表3 共陰極字段碼表 顯示字符 共陰極字段碼 0 3FH 1 06H 2 5BH

25、 3 4FH 4 66H 5 6DH 6 7DH 7 07H 8 7FH 9 6FH 2.5.4 LED顯示器與單片機(jī)接口設(shè)計(jì) 由于單片機(jī)的并行口不能直接驅(qū)動(dòng)LED顯示器,在一般情況下,必須采用專用的驅(qū)動(dòng)電路芯片,使之產(chǎn)生足夠大的電流,顯示器才能正常工作。如果驅(qū)動(dòng)電路能力差,即負(fù)載能力不夠時(shí),顯示器亮度就低,而且驅(qū)動(dòng)電路長期在超負(fù)荷下運(yùn)行容易損壞,LED顯示器的驅(qū)動(dòng)電路設(shè)計(jì)是一個(gè)非常重要的問題。 為了簡化數(shù)字式直流電壓表的電路設(shè)計(jì),在LED驅(qū)動(dòng)電路的設(shè)計(jì)上,可以利用單片機(jī)P0口上外接的上拉電阻來

26、實(shí)現(xiàn),即將LED的A-G段顯示引腳和DP小數(shù)點(diǎn)顯示引腳并聯(lián)到P1口與上拉電阻之間,這樣,就可以加大P1口作為輸出口德驅(qū)動(dòng)能力,使得LED能按照正常的亮度顯示出數(shù)字,如圖8所示: 圖8 LED與單片機(jī)接口間的設(shè)計(jì) 2.6 總體電路設(shè)計(jì) 經(jīng)過以上的設(shè)計(jì)過程,可設(shè)計(jì)出基于單片機(jī)的簡易數(shù)字直流電壓表硬件電路原理圖如圖9所示: 圖9 簡易數(shù)字電壓表電路圖 此電路的工作原理是:+5V模擬電壓信號通過變阻器VR1分壓后ADC0809的IN0通道進(jìn)入(由于使用的IN0通道,所以ADDA,ADDB,ADDC均接低電平),經(jīng)過模/數(shù)轉(zhuǎn)換后,產(chǎn)生相應(yīng)的數(shù)字量

27、經(jīng)過其輸出通道D0-D7傳送給AT89C51芯片的P0口,AT89C51負(fù)責(zé)把接收到的數(shù)字量經(jīng)過數(shù)據(jù)處理,產(chǎn)生正確的7段數(shù)碼管的顯示段碼傳送給四位LED,同時(shí)它還通過其四位I/O口P3.0、P3.1、P3.2產(chǎn)生位選信號控制數(shù)碼管的亮滅。此外,AT89C51還控制ADC0809的工作。其中,單片機(jī)AT89C51通過定時(shí)器的中斷從P2.4口輸出方波,接到ADC0809的CLOCK,P2.6發(fā)正脈沖啟動(dòng)A/D轉(zhuǎn)換,P2.5檢測A/D轉(zhuǎn)換是否完成,轉(zhuǎn)換完成后,P2.7置高從P0口讀取轉(zhuǎn)換結(jié)果送給LED顯示出來。 3 程序設(shè)計(jì) 3.1 程序設(shè)計(jì)總方案 根據(jù)

28、模塊的劃分原則,將該程序劃分初始化模塊,A/D轉(zhuǎn)換子程序和顯示子程序,這三個(gè)程序模塊構(gòu)成了整個(gè)系統(tǒng)軟件的主程序,如圖10所示: 圖10 數(shù)字式直流電壓表主程序框圖 3.2 系統(tǒng)子程序設(shè)計(jì) 3.2.1 初始化程序 所謂初始化,是對將要用到的MCS_51系列單片機(jī)內(nèi)部部件或擴(kuò)展芯片進(jìn)行初始工作狀態(tài)設(shè)定,初始化子程序的主要工作是設(shè)置定時(shí)器的工作模式,初值預(yù)置,開中斷和打開定時(shí)器等。 3.2.2 A/D轉(zhuǎn)換子程序 A/D轉(zhuǎn)換子程序用來控制對輸入的模塊電壓信號的采集測量,并將對應(yīng)的數(shù)值存入相應(yīng)的內(nèi)存單元,其轉(zhuǎn)換流程圖如圖11所示: 圖

29、11 A/D轉(zhuǎn)換流程圖 3.2.3 顯示子程序 顯示子程序采用動(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對LED進(jìn)行動(dòng)態(tài)掃描一次,每一位LED的顯示時(shí)間為1ms。 在本設(shè)計(jì)中,為了簡化硬件設(shè)計(jì),主要采用軟件定時(shí)的方式,即用定時(shí)器0溢出中斷功能實(shí)現(xiàn)11μs定時(shí),通過軟件延時(shí)程序來實(shí)現(xiàn)5ms的延時(shí)。 3.3 軟件程序清單 程序清單見附錄A 4 仿真 4.1 軟件調(diào)試 軟件調(diào)試

30、的主要任務(wù)是排查錯(cuò)誤,錯(cuò)誤主要包括邏輯和功能錯(cuò)誤,這些錯(cuò)誤有些是顯性的,而有些是隱形的,可以通過仿真開發(fā)系統(tǒng)發(fā)現(xiàn)逐步改正。Proteus軟件可以對基于微控制器的設(shè)計(jì)連同所有的周圍電子器件一起仿真,用戶甚至可以實(shí)時(shí)采用諸如LED/LCD、鍵盤、RS232終端等動(dòng)態(tài)外設(shè)模型來對設(shè)計(jì)進(jìn)行交互仿真。Proteus支持的微處理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成單片機(jī)系統(tǒng)原理圖電路繪制、PCB設(shè)計(jì),更為顯著點(diǎn)的特點(diǎn)是可以與u Visions3 IDE工具軟件結(jié)合進(jìn)行編程仿真調(diào)試。 本系統(tǒng)的調(diào)試主要以軟件為主,其中,系統(tǒng)電路圖的繪制和仿真我采用的

31、是Proteus軟件,而程序方面,采用的是匯編語言,用Keil軟件將程序?qū)懭雴纹瑱C(jī)。 4.2 顯示結(jié)果及誤差分析 4.2.1 顯示結(jié)果 (1)當(dāng)IN0口輸入電壓值為0V時(shí),顯示結(jié)果如圖12所示,測量誤差為0V。 圖12 輸入電壓為0V時(shí),LED的顯示結(jié)果 (2)當(dāng)IN0輸入電壓值為1.64V時(shí),顯示結(jié)果如圖13所示。測量誤差為0.0V。 圖13 輸入電壓為1.64 V的顯示結(jié)果 (3) 當(dāng)IN0口輸入電壓值為3.74時(shí),顯示結(jié)果如圖14所示。測量誤差為0.0V。 圖14 輸入電壓為3.74時(shí),LED的顯示結(jié)果 4.2.2 誤差分析

32、 通過以上仿真測量結(jié)果可得到簡易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對比測試表,如下表3所示: 表3 簡易數(shù)字電壓表與“標(biāo)準(zhǔn)”數(shù)字電壓表對比測試表 標(biāo)準(zhǔn)電壓值/V 簡易電壓表測量值/V 絕對誤差 /V 0.00 0.00 0.00 0.50 0.51 0.01 1.00 1.00 0.00 1.64 1.64 0.00 2.00 2.00 0.00 2.50 2.50 0.00 3.00 3.00 0.00 3.74 3.74 0.00 4.00 4.00 0.00 4.99 5.00 0.01 由于單片機(jī)AT89C

33、51為8位處理器,當(dāng)輸入電壓為5.00V時(shí),ADC0809輸出數(shù)據(jù)值為255(FFH),因此單片機(jī)最高的數(shù)值分辨率為0.0196V(5/255)。這就決定了電壓表的最高分辨率只能到0.0196V,從上表可看到,測試電壓一般以0.01V的幅度變化。 從上表可以看出,簡易數(shù)字電壓表測得的值基本上比標(biāo)準(zhǔn)電壓值偏大0-0.01V,這可以通過校正ADC0809的基準(zhǔn)電壓來解決。因?yàn)樵撾妷罕碓O(shè)計(jì)時(shí)直接用5V的供電電源作為電壓,所以電壓可能有偏差。當(dāng)要測量大于5V的電壓時(shí),可在輸入口使用分壓電阻,而程序中只要將計(jì)算程序的除數(shù)進(jìn)行調(diào)整就可以了。 結(jié)束語 將本設(shè)計(jì)的程序

34、下載到單片機(jī)中,通過測試,基本上完成了任務(wù)書的要求,并且搶答的精確度也比較高,有一使用價(jià)值和商業(yè)利用價(jià)值。本次設(shè)計(jì)的電壓表小巧玲瓏,攜帶方便,具有一定的使用價(jià)值。 致 謝 通過這次比較完整的設(shè)計(jì),使我們擺脫了單純的理論知識學(xué)習(xí)狀態(tài),達(dá)到了理論與實(shí)踐的結(jié)合鍛煉了我的綜合運(yùn)用所學(xué)的專業(yè)基礎(chǔ)知識,解決實(shí)際設(shè)計(jì)問題的能力,同時(shí),也提高了我們查閱文獻(xiàn)資料、設(shè)計(jì)手冊、設(shè)計(jì)規(guī)范以及電腦制圖等專業(yè)能力水平,而且通過整體的掌握對布局的取舍以及對細(xì)節(jié)的斟酌處理,都使我們能力得到

35、了鍛煉、經(jīng)驗(yàn)得到了豐富,抗壓能力以及耐力在不同程度上得到了提高,這是我們都想看到的也是我們進(jìn)行設(shè)計(jì)的目的所在。雖然這次設(shè)計(jì)內(nèi)容繁多、過程繁瑣但我們收獲很多,在這次設(shè)計(jì)過程中我們不僅對A/D轉(zhuǎn)換芯片ADC0809有了進(jìn)一步熟悉,隨著設(shè)計(jì)的不斷深入對它的工作原理、啟動(dòng)設(shè)置、轉(zhuǎn)換結(jié)束判斷及輸出等都基本掌握,在和老師的溝通交流的過程中我們對設(shè)計(jì)有了新的認(rèn)識,并且對實(shí)物的連接與布局有了新的看法,對我們的專業(yè)有了進(jìn)一步的認(rèn)識。感謝凌云老師對本次課程設(shè)計(jì)的精心指導(dǎo),感謝眾多同學(xué)對我們的關(guān)心與幫助。讓我對學(xué)習(xí)單片機(jī)的有了很大的幫助。 參考文獻(xiàn) [1]馬忠梅,籍順心,張凱,馬巖.單片機(jī)的

36、C語言應(yīng)用程序設(shè)計(jì)[M].北京: 北京航空航天大學(xué)出版社,2006 Ma Zhongmei,J, Zhang Kai, MaYan. MCU C language program design [M] .beijing: Beijing aerospace university press, 2006 [2]李廣弟,朱月秀,冷祖祁.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版 社,2007 Li Guangdi, ZhuYuexiu, Leng Zuqi. Microcontroller [M] .beijing: Beijing universit

37、y of aeronautics and press, 2007 [3]李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航空航天大學(xué)出版社, 2004.9 Li Guangfei. This course design example guide [M] .beijing: Beijing university of aeronautics and press, 2004.9 [4]邢增平.Protel 99 SE設(shè)計(jì)專家指導(dǎo)[M].北京:中國鐵道出版社,2004 Xing Zengping. Protel 99 SE design expert guidanc

38、e [M] .beijing: China railway publishing house, 2004 附錄A 程序清單 ORG 0000H //程序開始地址 LJMP START //跳轉(zhuǎn)到開始程序 ORG 000BH //定時(shí)計(jì)數(shù)器0中斷向量 LJMP NT

39、 //跳到子程序 START: MOV A, #00H //初始化 SETB P3.7 //EOC值1 CLR P3.0 //位選信號 CLR P3.1 CLR P3.2 MOV P2, A //P2口置0 MOV A, #0FFH

40、 //P0,P1口置1 MOV P0, A MOV P1, A MAIN: MOV SP, #60H //開辟堆棧 MOV IE, #82H //選擇中斷方式 MOV TMOD, #02H //選擇工作方式 MOV P1, #0CH

41、 //亮P SETB P3.0 LOOP103: SETB P2.7 //判斷是否開始 MOV A, P2 JB ACC.7, LOOP103 //判斷轉(zhuǎn)換是否結(jié)束 MOV TH0, #0FFH //賦初值 MOV TL0, #0FFH SETB TR0

42、 //開啟計(jì)數(shù)器 MAIN2: LCALL ADZH //長調(diào)用AD轉(zhuǎn)換 LCALL SMZH //長調(diào)用數(shù)模轉(zhuǎn)換 LCALL SMXS //長調(diào)用數(shù)模顯示 LJMP MAIN2 //跳至MAIN2 ADZH: MOV A, #00H //AD轉(zhuǎn)換 MOV P

43、2, A MOV R0, #70H AJMP ADCY WAIT: JB P3.7, DATASAVE //判斷采樣是否結(jié)束 AJMP WAIT //跳回等待 ADCY: SETB P2.3 //AD采樣單元 SETB P2.4 //上升沿,清除數(shù)據(jù) NOP

44、 //延遲 NOP //延遲 CLR P2.3 //產(chǎn)生下降沿 開始工作 CLR P2.4 NOP //延遲 NOP AJMP WAIT //跳回單元 DATASAVE: SETB P2.5

45、 //數(shù)據(jù)傳輸單元 MOV P0 , #0FFH //掃面前置1 MOV A, P0 //掃描P0口狀態(tài) MOV @R0, A //將值送至R0 RET //返回主程序 SMZH: MOV A, @R0 //數(shù)值轉(zhuǎn)換子程序 MOV B, #51

46、 //對輸入數(shù)據(jù)進(jìn)行處理 DIV AB //掃描的數(shù)除以51 MOV 78H, A //商存放到78H這個(gè)單元 MOV A, B //余數(shù)存放到A CLR F0 //清楚用戶自定義標(biāo)識 SUBB A, #1AH MOV F0, C //C

47、位放到F0中 MOV A, #10 //乘以10余數(shù)變整數(shù) MUL AB MOV B, #51 //對十分位數(shù)進(jìn)行處理 DIV AB JB F0, LOOP1 //判斷是否借位 ADD A, #5 LOOP1: MOV 79H, A //百分位顯示 MOV A,

48、 B //對百分位進(jìn)行顯示 CLR F0 //清除F0 SUBB A, #1AH //A減去25 MOV F0, C //標(biāo)志位存放到F0 MOV A, #10 MUL AB MOV B, #51 DIV AB JB F0, LOOP2

49、 ADD A, #5 LOOP2: MOV 7AH, A RET SMXS: MOV R0, #78H //數(shù)碼顯示 LCALL PLAY //長調(diào)用PLAY子程序 SETB P3.0 //位選 CLR P1.7 //小數(shù)點(diǎn) MOV R7, #0FFH

50、 //延時(shí)顯示 LOOP: DJNZ R7, LOOP //延時(shí)等待 CLR P3.0 INC R0 //顯示十分位 LCALL PLAY SETB P3.1 MOV R7, #0FFH //計(jì)數(shù)初值 LOOP3: DJNZ R7, LOOP3 //延時(shí)顯示 CLR P3.1

51、 //給低電平 INC R0 //顯示百分位 LCALL PLAY //調(diào)用顯示子程序 SETB P3.2 //給高電平 MOV R7, #0FFH LOOP4: DJNZ R7, LOOP4 //延時(shí)等待 CLR P3.2 //給低電平 RET

52、 //返回 PLAY: MOV A, @R0 //查表法數(shù)碼管顯示 MOV DPTR, #TABLE //表格放入DPTR MOVC A, @A+DPTR //查表 MOV P1, A //顯示的數(shù)從P1口輸出 RET //返回主程序 NT: CPL P2.6

53、 //脈沖信號取反 RETI //返回 TABLE: DB 0C0H,0F9H,0A4H,0B0H //段碼表 DB 99H,92H,82H,0F8H DB 80H,90H,0CH END 25 附錄B 實(shí)物圖 附錄C PCB圖 圖C1 PCB底層圖 圖C2 PCB頂層圖 圖C3 PCB元器件分布圖 附錄D 電路原理圖 附錄E 原器件清單 元器件清單 規(guī)格 數(shù)量 AT89C51 1 ADC0809 1 電阻 10k 1 電阻 480k 8 瓷片電容 103u 2 電位器 10k 1 四腳開關(guān) 2 底座 40腳 1 數(shù)碼管 1 USB線接口 1 晶振 12MHz 1 底座 28腳 1 雙面板 1 極性電容 1uF 1

展開閱讀全文
溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲