版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 本科生畢業(yè)論文(設計) 題目: 基于單片機的數(shù)字電流表的設計 學 院 電子信息工程學院 學科門類 工 學 專 業(yè) 電子信息工程 學 號 指導教師 2015 年 05 月 30 日 摘摘 要要 隨著時代的進步,電子科學技術的日益更新,傳統(tǒng)電工電子測量儀器模擬測量儀表即使可以直觀地從刻度盤讀出表針偏轉(zhuǎn)了多少格或占了滿刻度的百分之幾等,也滿足不了對測量數(shù)據(jù)的精確要求,那么就需要更高、更準精度的儀器來替代。同時傳統(tǒng)的模擬測量儀表在計算時需要對讀數(shù)加以換算和說明,而且不同的觀察者會帶來不同的人為“視差” ,即使同一個觀察者處于不同的位置也可能會得到不同的結果和偏差。然而,數(shù)字電流表就能夠克服這些問題,
2、它的測量結果直接以數(shù)字的形式在顯示屏上顯示出來。數(shù)字電流表不僅具有讀數(shù)準確,設計簡單,隨身攜帶的優(yōu)點,而且操作方法簡單,人們使用起來也非常方便,這些優(yōu)點使數(shù)字電流表在近年來的電工電子的測量中應用更加廣泛。 本文基于 at89c51 單片機,論述數(shù)字電流表的工作原理及設計過程。利用 protel 軟件設計、keil c 軟件和 proteus 仿真軟件,根據(jù)所給數(shù)字電流表的技術指標和要求,確定電流表所需的元器件和最佳設計方案,這種方法簡單易行,最終得到比較理想,符合設計要求的數(shù)字電流表。 關鍵詞:關鍵詞:c51 單片機;a/d 轉(zhuǎn)換器;數(shù)字電流表 abstract with the progre
3、ss of time, increasingly updating electronic science and technology, traditional electric and electronic measuring instruments - analogue measurement instruments, even intuitively read from the dial hands deflected the number of cells or accounted for a few percent of full scale, also can not meet t
4、he exact requirements of the measured data, then you need higher precision and more accurate instrument instead. while traditional analog measuring instruments need to be converted in the calculation and description of the readings, and different observers will bring a different man, parallax, even
5、if the same observer in different locations may get different results and error . however, the digital meter will be able to overcome these problems, its measurement results in digital form directly on the screen out. digital ammeter reading is not only accurate, simple design, the advantages of por
6、table, and simple method of operation, it is also very easy to use, these advantages make digital ammeter in electric and electronic measuring more widely in recent years. based on at89c51 microcontroller, digital ammeter discussed the working principle and design process. use protel software design
7、, keil c software and proteus simulation software, depending on the digital ammeter technical indicators and requirements, determine the required components and ammeter best design, this method is simple, and ultimately get the ideal, in line with digital ammeter design requirements. key words: c51
8、microcontroller digital ammeter; a / d converter; digital ammeter 目目 錄錄 摘摘 要要 . i abstract . ii 目目 錄錄 . iii 1 1引言引言 . 1 1.1 研究背景及意義 . 1 1.2 國內(nèi)外研究現(xiàn)狀 . 2 1.3 本文主要內(nèi)容安排 . 2 2 2數(shù)字電流表的理論數(shù)字電流表的理論 . 2 2.1 數(shù)字電流表的工作原理 . 2 2.2 a/d 轉(zhuǎn)換器 . 3 2.3 at89c51 單片機 . 5 2.4 液晶顯示器 . 8 3 3數(shù)字電流表的設計數(shù)字電流表的設計 . 9 3.1 方案論證 . 9 3
9、.2 任務指標 . 10 3.3 整體電路圖 . 10 4 4軟件設計軟件設計 .11 4.1 軟件設計的主程序流程圖 .11 4.2 編程語言介紹 .11 4.3 protel99se 軟件的介紹 . 12 5 5系統(tǒng)調(diào)試及實物制作系統(tǒng)調(diào)試及實物制作 . 13 5.1 硬件系統(tǒng)的調(diào)試 . 13 5.2 系統(tǒng)軟件的調(diào)試 . 13 5.3 整體系統(tǒng)的調(diào)試 . 14 5.4 實際硬件制作結果 . 14 6 6總結與展望總結與展望 . 14 參考文獻參考文獻 . 16 致致 謝謝 . 17 附附 錄錄 . 18 1 1引言引言 1.1 1.1 研究背景及意義研究背景及意義 數(shù)字電流表(digital
10、 ammeter)簡稱 amp,它的測量原理是通過數(shù)字化測量技術,把輸入的連續(xù)模擬量(直流輸入電流)轉(zhuǎn)換成不連續(xù)、離散的數(shù)字形式,然后通過液晶顯示屏來顯示的儀表。過去傳統(tǒng)的指針式電流表不僅功能單一,而且精確度低,無法滿足現(xiàn)今數(shù)字化時代的需求,然而基于單片機的數(shù)字電流表,不僅具有精確度高、抗干擾能力強,可擴展性強、集成方便的特點,還可以與 pc 進行當前實時通信等信息的傳輸?,F(xiàn)今,基于各種型號單片機、a/d 轉(zhuǎn)換器等設計成的數(shù)字電流表,已經(jīng)在電子電工測量、工業(yè)自動化儀表、自動檢測系統(tǒng)等許多智能化測量領域起到了舉足輕重的地位,得到了越來越多使用者的青睞,體現(xiàn)出數(shù)字電流表強大的生命力。與此同時,各種
11、基于 amp 擴展而成的通用及專用數(shù)字化儀表儀器,也把電量和非電量測量的技術水平提高到更高的位置。 在進行課題設計之前,我們要學會如何在互聯(lián)網(wǎng)和圖書館查找所需的資料,同時復習過去所學的課程知識并加深理解記憶,不僅為畢業(yè)設計打好良好基礎,同時也為以后的工作做充分的準備。通過對畢業(yè)設計題目的分析,了解數(shù)字電流表的組成特性和工作原理;學會如何使用數(shù)字電流表測量數(shù)據(jù)、調(diào)試、校準的方法;學會如何進行分流電路的連接設進和計算;學習了解過載電路保護的工作原理和功用。最終,通過本課程設計,我們掌握電子設計的基本步驟和方法,培養(yǎng)自己分析問題、解決問題和處理問題的能力。 數(shù)字電流表和傳統(tǒng)的指針式電流表相比,具有如
12、下優(yōu)點: 1.可以直觀準確的讀取數(shù)字; 2.能夠顯示小數(shù)點后面的位數(shù); 3.測量時數(shù)字分辨率高,準確度高; 4.可以測量的量程范圍較大; 5.能夠擴展; 6.工作效率高; 7.輸入阻抗高; 8.電路集成度高,功率消耗少; 9. 抗干擾能力較強。 綜上可知,數(shù)字型電流表代替?zhèn)鹘y(tǒng)指針電流表不僅是時代發(fā)展的必然趨勢,也是現(xiàn)今市場的迫切需求。而此次課題的選擇和設計正是基于 at89c51 單片機來進行設計的。 1.2 1.2 國內(nèi)外研究現(xiàn)狀國內(nèi)外研究現(xiàn)狀 數(shù)字電流表自問世以來,已經(jīng)經(jīng)過多年的發(fā)展和改進,大體上可以概括為五代產(chǎn)品。第一代產(chǎn)品是電子管數(shù)字電流表,問世于 20 世紀 50 年代,第二代產(chǎn)品是
13、晶體管數(shù)字電流表,問世于 20 世紀 60 年代,第三代產(chǎn)品是中、小規(guī)模集成電路的數(shù)字電流表,研制于 20世紀 70 年代。第四代、第五代產(chǎn)品是近些年來由國內(nèi)外相繼研制推出的由大規(guī)模集成電路(lsi)或者超大規(guī)模集成電路(vlsi)組成的數(shù)字電流表、智能數(shù)字電流表。這些數(shù)字電流表的問世不僅在電子測量的進程中開創(chuàng)了先河,更憑借著準確度高、可靠性強、分辨力高、性價比高等優(yōu)良特性而備受人們的喜愛。 1.3 1.3 本文主要內(nèi)容安排本文主要內(nèi)容安排 前期通過查閱大量的雜志、期刊、論文等相關重要的資料、文獻之后,對基于單片機的數(shù)字電流表的設計思路進行大體的把握,具體的行文章節(jié)安排如下。 第一章:引言中介
14、紹數(shù)字電流表的研究背景和意義,發(fā)展現(xiàn)狀和取得的研究成果。 第二章:詳細的介紹數(shù)字電流表的基本理論知識。 第三章:詳細的介紹數(shù)字電流表的設計方案和數(shù)字電流表的任務指標以及整體電路圖的設計。 第四章:介紹 protel99se 軟件的使用和編程語言的學習。 第五章:對數(shù)字電流表進行硬件、軟件和整體系統(tǒng)的調(diào)試。 第六章:對論文進行總結和展望。 2 2數(shù)字電流表的理論數(shù)字電流表的理論 2.1 2.1 數(shù)字電流表的工作原理數(shù)字電流表的工作原理 數(shù)字電流表是一個可以將輸入的連續(xù)模擬電流量經(jīng)過 a/d 轉(zhuǎn)換器轉(zhuǎn)變?yōu)椴贿B續(xù)、 離散的數(shù)字形式,并通過液晶顯示屏顯示出電流讀數(shù)的儀表,和指針式電流表相比,數(shù)字式電流
15、表有著測量數(shù)據(jù)準確明了, 顯示的讀數(shù)位數(shù)精度高等特點, 類似于常用的數(shù)字式萬用表,其使用性能相當廣泛實用。 首先我們通過單片機和外部擴展電路做成一個理想的電壓1,硬件電路設計由 7 個部分組成:主控模塊 at89c51 單片機系統(tǒng),a/d 轉(zhuǎn)換電路,顯示系統(tǒng),驅(qū)動電路,復位電路,晶振電路以及測量電壓輸入電路。硬件電路設計框圖如圖 2-1 所示: 圖 2-1 系統(tǒng)硬件設計框圖 人們常說的電流表指的是靈敏電流計,由于其量程太小,不能直接測量電流,只能通過它檢測有無電流和電流的流向,所以需將一個理想電壓表改裝成一個多量程或者量程較大的數(shù)字電流表。本次課題設計是基于一個內(nèi)阻為無窮大數(shù)字電壓表的基礎上,
16、并聯(lián)上一個分流電阻來構成的數(shù)字電流表,其工作原理如圖 2-2 所示,電路圖用 g 表示。當待測電流流過電阻,電流表的量程就由 g 的滿量程電壓和電阻的阻值來決定,記 u 為 g 的滿量程電壓,根據(jù)歐姆定律 u=ri,當 u 和 r 已知,則電流表的滿量程電流就是 i 的數(shù)值。 圖 2-2 數(shù)字電流表的基本工作原理 2.2 2.2 a/d 轉(zhuǎn)換器轉(zhuǎn)換器 數(shù)模轉(zhuǎn)換器,又稱 d/a 轉(zhuǎn)換器,簡稱 dac,它的主要功能是把數(shù)字量轉(zhuǎn)變成模擬量。d/a 轉(zhuǎn)換器的組成基本上包括 4 個部分,即權電阻網(wǎng)絡、運算放大器、基準電源和模擬開關。模數(shù)轉(zhuǎn)換器中一般都要用到數(shù)模轉(zhuǎn)換器,模數(shù)轉(zhuǎn)換器即 a/d 轉(zhuǎn)換器,簡稱
17、adc,它的主要功能是把連續(xù)的模擬信號轉(zhuǎn)變?yōu)殡x散的數(shù)字信號2。通過對轉(zhuǎn)換器的了解與本設計的要求,同時考慮到具體轉(zhuǎn)換器的具有性能指標等特點,我們選擇 pcf8591 作為本設計的a/d 轉(zhuǎn)換器。 pcf8591 轉(zhuǎn)換器是一個具有單片集成、能夠進行獨立供電、功耗低、8-bit cmos 數(shù)據(jù)獲取的器件。 pcf8591 有著 4 個模擬輸入、 1 個模擬輸出和 1 個串行 i2c 總線接口。 pcf8591復位電路 主控模塊at89c51 晶振電路 a/d 轉(zhuǎn)換器 驅(qū)動電路 電壓信號 顯示模塊 的地址引腳有 3 個,分別為 a0、a1 和 a2,可用來進行硬件地址的編程,可以在不添加額外硬件的情況
18、下, 在同一個 i2c 總線上接入 8 個 pcf8591 器件。 在 pcf8591 器件上輸入地址、輸出地址、控制信號和數(shù)據(jù)信號通常都是通過雙線雙向的 i2c 總線以串行的方式進行傳輸信息的3。 pcf8591 具有多路模擬量輸入、 內(nèi)置跟蹤保持、 8-bit 模數(shù)和數(shù)模轉(zhuǎn)換等功能, 而且 i2c總線的最大速率決定了 pcf8591 的最大轉(zhuǎn)化速率。 特征如下: 1獨立的供電系統(tǒng) 2pcf8591 的電壓操作范圍是 2.5v-6v 3待機消耗電流低 4通過 i2c 總線串行輸入/輸出 5pcf8591 通過 3 個硬件地址引腳尋址 6pcf8591 的采樣率由 i2c 總線速率決定 74
19、個模擬輸入可以編程為單端型或差分輸入 8自動增量頻道選擇 9pcf8591 模擬電壓的范圍從 vss 到 vdd 10pcf8591 內(nèi)置跟蹤保持電路 118-bit 逐次逼近 a/d 轉(zhuǎn)換器 12實現(xiàn) dac 增益可以通過 1 路模擬輸出來實現(xiàn) 原理圖如圖 2-3 所示: sclsdaa0a1a2extvref agnd oscain0ain1ain2ain3aoutadca數(shù)據(jù)積存器dac數(shù)據(jù)積存器狀態(tài)寄存器邏輯控制上電復位i2c總線接口振蕩器逐次比較寄存器邏輯dac采樣/保持采樣/保持模擬多路開關比較器驅(qū)動器vddvss 圖 2-3 pcf8591 原理圖 pcf8591 引腳信息4如圖
20、 2-4 所示: 圖 2-4 pcf8591 引腳 ain0ain3:模擬信號的輸入端。 a0a2:引腳地址端。 vdd、vss:電源端(2.5v6v) 。 sda、scl:i2c 總線的數(shù)據(jù)線、時鐘線。 osc:外部時鐘的輸入端,內(nèi)部時鐘的輸出端。 ext:內(nèi)部、外部時鐘的選擇線,ext 接地時使用內(nèi)部時鐘。 agnd:模擬信號地。 aout:a/d 轉(zhuǎn)換輸出端。 vref:基準電源端。 2.3 2.3 at89c51 單片機單片機 單片機(microcontrollers)是一種集成電路芯片,通過超大規(guī)模集成電路技術把具有數(shù)據(jù)處理能力的中央處理器 cpu、隨機存儲器 ram、只讀存儲器 r
21、om、多種 i/o 口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d 轉(zhuǎn)換器等電路)集成到一塊硅片上構成的一個小而完善的微型計算機系統(tǒng),在工業(yè)控制領域得到廣泛應用5。 at89c51 是一種可以編程、可以擦除的只讀存儲器(fperomfalsh programmable and erasable read only memory)的低電壓微型處理器,atmel 生產(chǎn)的 at89c51 是一種將多功能 8 位 cpu 和閃爍存儲器組合在單個芯片中的高效微控制器。采用其 at89c51 單片機制作的很多嵌入式控制系統(tǒng)不僅靈活性高而且設計方案價廉,從而
22、深受人們青睞。 p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78rst9p3.0(rxd)10p3.1(txd)11p3.2(int0)12p3.3(int1)13p3.4(t0)14p3.5(t1)15p3.6(wr)16p3.7(rd)17xtal218xtal119gnd20p2.0(a8)21p2.1(a9)22p2.2(a10)23p2.3(a11)24p2.4(a12)25p2.5(a13)26p2.6(a14)27p2.7(a15)28psen29ale/prog30ea/vpp31p0.7(ad7)32p0.6(ad6)33p0.5(ad5)34
23、p0.4(ad4)35p0.3(ad3)36p0.2(ad2)37p0.1(ad1)38p0.0(ad0)39vcc40 圖 2-5 at89c51 單片機 at89c51 單片機各引腳結構如圖 2-5 所示6。 引腳功能介紹: 1vcc接電源引腳。 2gnd接地引腳。 3p0 口:8 位,漏極開路的準雙向 i/o 口,具有內(nèi)部上拉電阻,該引腳可驅(qū)動 8 個 ls型 ttl 負載。當 p0 口的管腳第一次寫入“1”時,被定義為高阻輸入。p0 口能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在 flash 編程時,p0 口作為原碼輸入口,當 flash 進行校驗時,p0 輸出原碼
24、,此時 p0 口外部必須被拉高。 4p1 口:8 位,具有內(nèi)部上拉電阻的準雙向 i/o 口,p1 口緩沖器允許接收輸出 4 個ls 型 ttl 負載。p1 口管腳寫入“1”后,被內(nèi)部上拉為高,可用作輸入,p1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在 flash 進行編程和校驗時,p1 口作為第八位地址接收。 5p2 口:8 位,具有內(nèi)部上拉電阻的準雙向 i/o 口,p2 口緩沖器允許接收輸出 4 個ls 型 ttl 負載,當 p2 口被寫“1”后,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2 口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。當 p
25、2口用于外部程序存儲器或 16 位地址外部數(shù)據(jù)存儲器進行存取時, p2 口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2 口輸出其特殊功能寄存器的內(nèi)容。 p2 口在 flash 編程和校驗時接收高八位地址信號和控制信號。 6p3 口:8 位,具有內(nèi)部上拉電阻的準雙向 i/o 口,可接收輸出 4 個 ls 型 ttl 負載。當 p3 口寫入“1”后,它被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3 口將輸出電流(ill) ,這是由于上拉的緣故。 p3 口也可作為 at89c52 的一些特殊功能口,如下所示7: p3.0/
26、rxd:8 位準雙向并行口,串行數(shù)據(jù)輸入口 p3.1/txd:8 位準雙向并行口,串行數(shù)據(jù)輸出口 p3.2/int0:8 位準雙向并行口,外部中斷 0 申請信號輸入端 p3.3/int1:8 位準雙向并行口,外部中斷 1 申請信號輸入端 p3.4t0:8 位準雙向并行口,定時器/計數(shù)器 0 外部脈沖的輸入端 p3.5t1:8 位準雙向并行口,定時器/計數(shù)器 1 外部脈沖的輸入 p3.6/wr:8 位準雙向并行口,外部數(shù)據(jù)存儲器(ram)寫選通 p3.7/rd:8 位準雙向并行口,外部數(shù)據(jù)存儲器(ram)讀選通 p3 口同時也為閃爍編程和編程校驗接收一些控制信號。 7rst復位輸入口。當振蕩器處
27、于復位器件時,要保持 rst 腳的兩個機器周期的高電平時間。 8ale/prog當訪問外部存儲器時, 地址鎖存允許輸出電平用于鎖存地址的低位字節(jié)。在 flash 進行編程期間,其引腳能夠用于輸入編程脈沖。在平時,ale 端口以恒定不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6,所以它可用作外部輸出的脈沖或用于定時目的。 但要注意的是: 當作為外部數(shù)據(jù)存儲器時, 將跳過一個 ale 脈沖。如果想要禁止 ale 的輸出可以在 sfr8eh 地址上置 0。這時,ale 只有在執(zhí)行 movx,movc 指令時才起作用。另外,該引腳略微被拉高。微處理器在外部執(zhí)行狀態(tài)如果 ale被禁止,則置位
28、無效。 9psen外部程序存儲器的選通信號。當處于外部程序存儲器取指期間,每個機器周期兩次psen有效。但處于訪問外部數(shù)據(jù)存儲器時,這兩次有效的psen信號將不會出現(xiàn)。 10ea/vpp當ea保持低電平時,則在此期間外部程序存儲器(0000h-ffffh) ,不管是否有內(nèi)部程序存儲器。注意加密方式 1 時,ea 將內(nèi)部鎖定為 reset;當 ea 端保持高電平時,此間內(nèi)部程序存儲器。在 flash 進行編程的時候,此引腳也可以用于施加12v 編程電源(vpp) 。 2.4 2.4 液晶顯示器液晶顯示器 lcd (liquid crystal display) 是液晶顯示器名稱的縮寫, 我們在日
29、常生活中隨處可見。液晶顯示器不僅具有顯示圖像質(zhì)量高,而且采用數(shù)字式接口、體積小、質(zhì)量輕、功耗低等優(yōu)點,所以在生活中得到廣泛應用。 lcd1602 是專門用來顯示數(shù)字、字母、符號等點陣式字符型液晶顯示模塊,常見的幾種規(guī)格主要有 16*1,16*2,20*2 和 40*2 等,常見的有字符型、點陣型和筆段型。模塊內(nèi)部元器件的主要構成有 lcd 顯示屏、控制器、列驅(qū)動器和偏壓產(chǎn)生電路8。本課題設計以長沙太陽人電子有限公司生產(chǎn)制造的1602液晶顯示器為例來簡單介紹其用法。 常見的1602字符型液晶顯示器引腳如圖 2-6 所示: 圖 2-6 lcd1602 引腳 lcd1602 引腳采用的是標準 16
30、腳接口,其各引腳的功能如下9: 引腳 1:gnd 為接地電源。 引腳 2:vcc 接 5v 正極電源。 引腳 3:vo 為調(diào)整液晶顯示器的對比度端口,當正電源接在其端口時,對比度處于最弱狀態(tài); 當?shù)仉娫唇釉谄涠丝跁r, 對比度處于最高狀態(tài) (當對比度過高時就會產(chǎn)生 “鬼影” ,在使用時,可以通過一個 10k 的電位器來調(diào)整對比度) 。 引腳 4:rs 是選擇寄存器,當其處于高電平 1 時,選擇數(shù)據(jù)寄存器;當其處于低電平0 時,選擇指令寄存器。 引腳 5:rw 是讀寫信號線,當其是高電平 1 時,進行讀操作;當其處于低電平時,進行寫操作。 引腳 6:e(或 en)端是使能(enable)端口,當其
31、處于高電平 1 時,讀取信息;負跳變時執(zhí)行此指令。 引腳 714:db0db7 是 8 位的雙向數(shù)據(jù)端。 引腳 1516:空腳或背燈電源端。15 引腳是背光正極端口,16 引腳是背光負極10端口。 3 3數(shù)字電流表的設計數(shù)字電流表的設計 3.1 3.1 方案論證方案論證 (一)設計方案 該數(shù)字電流表的設計主要由電壓信號采樣電路、a/d(pcf8591)轉(zhuǎn)換電路以及 lcd 顯示電路構成,其中采樣電路部分包括采樣電阻和差分放大電路,以及芯片電路三個模塊。 數(shù)字電流表的設計方案如圖 3-1 所示。 圖 3-1 數(shù)字電流表設計方案 (二)硬件電路描述 首先通過對論文題目的分析,根據(jù)題目要求考慮所用到
32、的單片機,鑒于合理選取及實例的具體分解, 同時考慮到本課題的單片機需求, 選取 at89c51 單片機作為本課題設計的單片機。at89c51 不僅可以按照常規(guī)編程方法進行,而且還可以實現(xiàn)在線編程。它能夠?qū)⑼ㄓ玫奈⑻幚砥骱?flash 存儲器結合在一起,同時 flash 存儲器具有可反復擦寫功能,有效地降低開發(fā)成本。 at89c51 是一種功耗低、 性能高的 cmos8 位微控制器, 具有 4k 系統(tǒng)可編程 flash 存儲器,由 atmel 公司高密度非易失性存儲器技術制造。片上的 flash 允許程序存儲器在系統(tǒng)可編程,也適用于常規(guī)的編程器。在單芯片上,at89c51 擁有靈巧的 8 位 c
33、pu 和可在系統(tǒng)編程 flash,眾多的嵌入式控制應用系統(tǒng)都采用其作為核心部件,并且得到廣泛應用。 再次,在進行電流測量時,電流輸入的是模擬量,而單片機只能處理數(shù)字信號,所以需要通過 a/d 轉(zhuǎn)換芯片進行轉(zhuǎn)換,通過篩選和分析,本課題采用 pcf8591 作為 a/d 轉(zhuǎn)換芯片。 a/d 轉(zhuǎn)換器的概念:即模數(shù)轉(zhuǎn)換(analog to digital conversion) ,當輸入端輸入模擬量(比如電壓信號) 時, 會相應輸出一個與模擬量相對應的數(shù)字量 (通常以二進制形式表示) 。電壓信號 采樣電路 a/d 轉(zhuǎn)換器 at89c51 處理數(shù)字信號 lcd 液晶顯示 例如在參考電壓 vref 為 5
34、v,8 位的模數(shù)轉(zhuǎn)換器情況下,當輸入的電壓為 0v 時,輸出的數(shù)字量為 0000 0000,當輸入的電壓為 5v 時,輸出的數(shù)字量為 1111 1111。當輸入的電壓在 0v 到 5v 之間變化時,輸出的數(shù)字量會在 0000 0000 到 1111 1111 之間變化。這樣每次輸入的電壓值都會對應輸出一個數(shù)字量,從而實現(xiàn)了模數(shù)轉(zhuǎn)換功能。 最后,電路顯示屏部分采用的是 lcd1602 液晶顯示。 3.2 3.2 任務指標任務指標 本課題設計要求以單片機為基礎制作出數(shù)字電流表。 通過該設計了解 a/d 轉(zhuǎn)換器的原理、51 系列單片機的使用和 lcd 液晶顯示器的使用方法、顯示過程。 功能要求為:
35、(1)三位直流數(shù)字電流表; (2)量程范圍為 0-100ma; (3)通過 lcd顯示屏顯示待測電流的數(shù)值; (4)8 通道進行電流值采集。 本設計系統(tǒng)主要通過硬件設計、軟件編程的手段來實現(xiàn)相應的要求功能。第一,根據(jù)題目設計的要求制作出能相應功能的電路圖。第二,根據(jù)電路圖編寫程序控制單片機(可以使用 c 語言或者 vb 語言,本課題采用的是 c 語言) ,使單片機能夠控制 a/d 轉(zhuǎn)換器進行模數(shù)轉(zhuǎn)換,并通過 lcd 顯示屏直接顯示出來相對應的電流值。 3.3 3.3 整體電路圖整體電路圖 整體電路圖設計如圖 3-2 所示。 圖 3-2 數(shù)字電流表整體電路圖 4 4軟件設計軟件設計 4.1 4.
36、1 軟件設計的主程序流程圖軟件設計的主程序流程圖 主程序設計流程圖如圖 4-1 所示: 圖 4-1 主程序設計流程圖 4.2 4.2 編程語言介紹編程語言介紹 c 語言是一門通用計算機程序設計語言,美國貝爾實驗室的 dennis m. ritchie 在 1972年推出的,它的工作單元是由高級語言的基本語句與低級語言的實用性結合而成的,它不僅具有高級語言的特點,還具有匯編語言的特點。1978 年后,c 語言先后被移植到大、中、小及微型機上,它不僅可以作為工作系統(tǒng)設計語言,編寫系統(tǒng)的應用程序,還可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它有著廣泛的應用范圍,超強的數(shù)據(jù)處理能力,不
37、僅在軟件開發(fā)上,而且各類科研工作上都需要用到 c 語言,可以用來編寫系統(tǒng)軟件,三維、二維圖形和動畫,具體應用體現(xiàn)在單片機以及嵌入式系統(tǒng)開發(fā)。 單片機 c 語言的優(yōu)點11: 1.語言簡潔緊湊、使用靈活方便。c 語言總共只有 32 個關鍵字,9 種控制語句,程序 開始 調(diào)用 lcd 初始化子程序 a/d 轉(zhuǎn)換值清零 設置 lcd ddram 地址,調(diào)用寫入指令數(shù)據(jù)到 lcd 調(diào)用子程序 lcd 上顯示 書寫形式自由,區(qū)分大小寫。 2.豐富的運算符。c 語言有著廣泛的運算符范圍,總共有 34 種運算符。在 c 語言中,賦值符號、括號、強制類型轉(zhuǎn)換等都會當作運算符處理,這樣使得 c 語言的運算類型極其
38、豐富,表達式類型也呈現(xiàn)多樣化。 3.豐富的數(shù)據(jù)類型。c 語言的數(shù)據(jù)類型有整型、實型、字符型、數(shù)組類型、指針類型、結構體類型、共用體類型等。能夠?qū)崿F(xiàn)各種復雜的數(shù)據(jù)結構的運算,同時引入指針概念,使其具有更高的程序效率。 4.靈活使用的表達方式。c 語言具有多種運算符和表達式值的方法,可通過多種途徑對問題的表達,其程序設計更主動、靈活。 5.可以直接訪問物理地址,對硬件進行操作。 6.生成的目標代碼質(zhì)量高,程序執(zhí)行效率高。 7.具有很好的移植性能。 8.很強的表達力。c 語言的數(shù)據(jù)結構和運算符非常豐富,包含整型、數(shù)組類型、指針類型和聯(lián)合類型等,可以實現(xiàn)各種數(shù)據(jù)結構的運算。 4.3 4.3 prote
39、l99se 軟件的介紹軟件的介紹 protel99se 是澳大利亞 protel technology 公司研制開發(fā)的,是一個全 32 位的電路板設計軟件,在電子行業(yè)的 cad 軟件中,是一款常用的電子電路設計軟件,也是電子設計者的首選軟件。早期的 protel 主要作為印制板自動布線工具使用,對運行的環(huán)境要求很低,但它的功能也較少,只有電路原理圖繪制與印制板設計功能,其印制板自動布線的布通率也低,而現(xiàn)今的 protel 安裝于 windows9x/2000/nt 操作系統(tǒng)下,采用設計庫管理模式,可以進行聯(lián)網(wǎng)設計,具有很強的數(shù)據(jù)交換能力和開放性及 3d 模擬功能,可以用于設計原理圖、設計印制電
40、路板、設計可編程邏輯器件和電路仿真等,可以設計 32 個信號層,16 個電源-地層和 16 個機加工層,同時還兼容一些其它設計軟件的文件格式,如 orcad,pspice, excel 等, 其多層印制線路板的自動布線可實現(xiàn)高密度 pcb 的 100%布通率12。用戶如果需要進行軟件升級或獲取更詳細的資料, 可以到公司網(wǎng)址:查詢。 protel99se 中主要功能模塊如下: (1)advanced schematic 99se(原理圖設計系統(tǒng)) 該模塊包括電路圖編輯器、電路圖元器件編輯器和各種文本編輯器,主要用于電路原理圖的設計、原理圖元件的設計和生成各種原理圖報表等。 (2)advanced
41、 pcb 99se(印刷電路板設計系統(tǒng)) 該模塊提供了一個功能強大,可以交互友好的 pcb 設計環(huán)境,主要用來進行 pcb 設計、元器件封裝設計、報表的生成及 pcb 輸出。 (3)advanced route 99se(自動布線系統(tǒng)) 該模塊是一個集成無網(wǎng)格自動進行布線的系統(tǒng),有著高效的布線效率。 (4)advanced integrity 99se(pcb 信號完整性分析) 該模塊能夠進行精確的板級物理信號分析,可以檢查串擾、過沖、下沖、延時和阻抗等問題,并自動給出相應的具體解決方案。 (5)advanced sim 99se(電路仿真系統(tǒng)) 該模塊是一個基于最新的 spice3.5 標準
42、仿真器,給用戶的設計前端提供了完整、直觀的問題解決方案。 (6)advanced pld 99se(可編程邏輯器件設計系統(tǒng)) 該模塊是一個集成性 pld 開發(fā)環(huán)境, 可通過原理圖或者 cupl 硬件描述語言來作為設計前端,能夠提供工業(yè)標準的 jedec 輸出。 5 5系統(tǒng)調(diào)試及實物制作系統(tǒng)調(diào)試及實物制作 5.1 5.1 硬件系統(tǒng)的調(diào)試硬件系統(tǒng)的調(diào)試 (一)元器件焊接 在進行焊接前先要對整個電路板進行詳細的檢查。首先用萬用表對印制的電路板進行檢查, 主要是檢測電路板是否存在斷路等情況, 然后對照著電路原理圖與 pcb 圖將相應的元器件進行焊接。 (二)電路測試 電路板焊接完成后,在進行通電測試之
43、前先對元器件的引腳主要進行兩個方面的檢查:第一檢查引腳是否出現(xiàn)虛焊或者其他信號線是否存在短路情況;第二是針對引腳功能的檢查。 5.2 5.2 系統(tǒng)軟件的調(diào)試系統(tǒng)軟件的調(diào)試 在硬件調(diào)試進行一切正常之后,接下來我們需要做的就是軟件調(diào)試。具體調(diào)試步驟如下: 1.調(diào)試存儲模塊。確保存儲模塊能夠進行讀寫信息。 2.調(diào)試單片機和數(shù)模轉(zhuǎn)換模塊。 3.調(diào)試顯示模塊。 5.3 5.3 整體系統(tǒng)的調(diào)試整體系統(tǒng)的調(diào)試 在進行完硬件和軟件部分的調(diào)試和檢測之后,最后我們需要將程序捎入單片機中。提供 3v 的電壓源,使整個模塊均處于正常的工作狀態(tài),對電流表分別進行最大值和最小值的檢測。在已知大致估計的電流數(shù)值的情況下,如
44、果數(shù)字電流表顯示屏測試的數(shù)值沒有較大的偏差,則整體調(diào)試成功。 5.4 5.4 實際硬件制作結果實際硬件制作結果 根據(jù)電路圖自己制作出實物,其測試結果:能正常測量 0100ma 電流,達到畢業(yè)設計的大部分設計要求。實物測試結果如圖 5-1 所示: 圖 5-1 實際制作效果圖 6 6總結與展望總結與展望 至此為止,本課題設計論文的整體內(nèi)容已經(jīng)基本完成,本章主要講述對前面內(nèi)容的撰寫以及實物制作的總結,并在此基礎上,提出對以后的工作建議和設想。隨著電子科學技術的快速發(fā)展,未來的數(shù)字電流表需要向更精準,更智能方向發(fā)展。數(shù)字電流表由于其讀數(shù)準確,精度高,測量量程大,效率快等優(yōu)點,在日常生活中得到較為廣泛的
45、應用。 本設計是以單片機 at89c51 芯片為核心的數(shù)字電流表,介紹了 51 單片機和 a/d 轉(zhuǎn)換器的結構,從而更深層次地分析數(shù)字電流表的設計原理、軟件仿真及其檢測調(diào)試等一系列的內(nèi)容。先從數(shù)字電流表理論入手結合數(shù)字電壓表的設計原理,利用取電阻上的電流來達到測試相應電流的目的。同時給出了使用 protel 軟件來設計原理圖的步驟以及實物制作的流程。 當今社會是信息化的時代,而數(shù)字電流的測量又在其中占據(jù)著一個非常重要的地位,電流表作為測量儀器中非常關鍵的器件,有著非常廣闊的應用前景。研究出精度高、性能優(yōu)的電流表有重大的實際價值和更深遠的意義。參考文獻參考文獻 1胡紅博. 基于單片機控制的新型交
46、流電壓表系統(tǒng)c. 貴州:遵義師范學院,2008. 2康華光. 模擬電子技術基礎(第五版)m. 北京:高等教育出版社,2006. 3康華光. 數(shù)字電子技術基礎(第五版)m. 北京:高等教育出版社,2006. 4萬文略. 單片機原理及應用技術m. 重慶:重慶大學出版社,2004. 5張毅剛. 單片機原理及接口技術m. 北京:人民郵電出版社,2011. 6王彥朋. 大學生電子設計與應用m. 北京:中國電力出版社,2007. 7張毅剛,彭喜元,董繼成. 單片機原理及應用m. 北京:高等教育出版社,2003. 8先鋒工作室. 單片機程序設計實例m. 北京:清華大學出版社,2003. 9萬福君,淵松峰.
47、單片微機原理系統(tǒng)設計與應用m. 合肥:中國科學技術大學出版社, 2001. 10戴佳,陳斌. 51 單片機應用系統(tǒng)開發(fā)典型實例m. 北京:中國電力出版社,2005. 11紀綱. c 程序設計實用教程g. 北京:中國鐵道出版社,2009. 12關健. 電子 cad 技術s. 北京:電子工業(yè)出版社出版社,2006. 致致 謝謝 光陰似箭,歲月如梭。經(jīng)過幾個月的時間終于把畢業(yè)論文撰寫完成,在寫作畢業(yè)論文的過程中遇到了許多問題,讓我也發(fā)現(xiàn)了自己的很多不足之處,未能深刻理解以前學習的理論知識, 比如未能熟練掌握 protel 軟件的使用、 對單片機 c 語言匯編程序掌握得不嫻熟,但都在老師和同學的大力幫
48、助下順利解決。經(jīng)過本次設計過程,我不僅把以前所學的知識重新溫故一遍,而且也學到了許多課外理論知識,更重要是把所學的知識學以致用,提高了動手能力,最終完成了本次設計。在此特別感謝我的指導老師-王*老師,她對我無私的指導和幫助。在論文撰寫過程中王老師給我提供了很多有使用價值的建議和指導,王老師嚴謹?shù)膽B(tài)度,一絲不茍的作風讓我深受感動。如果沒有王老師的大力幫助我不可能獨自完成整個畢業(yè)論文的設計。在此向王老師深深的感謝和敬意。 同時感謝這篇論文所涉及的各位學者和研究者。本文借鑒了數(shù)位學者的研究成果,如果沒有這些學者的學術研究成果啟發(fā)和幫助,我也很難獨立完成本篇論文的撰寫。感謝我的同學和朋友,在我寫撰論文
49、過程中給予我了很多資料支持和寶貴的意見,還在論文的撰寫提供意見和排版的難題過程中提供幫助。在此我一一表示衷心的感謝! 由于我的水平有限,所寫的論文中肯定會有不足之處,望請各位老師批評和指正! 附附 錄錄 /顯示函數(shù) #includemain_header.h #includelcd1602.h #includekey.h /*/ /* */ /* 延時函數(shù) */ /* */ /*/ void delayms(uint a) uchar i; while(a-) for(i=0;i120;i+); /*/ /* */ /* lcd 初始化設定 */ /* */ /*/ void lcd_init
50、() lcd_rs = 0; lcd_rw = 0; lcd_en = 0; lcd_wcmd(0 x01); lcd_wcmd(0 x38); lcd_wcmd(0 x0c); lcd_wcmd(0 x06); lcd_wcmd(0 xd0); /*/ /* */ /* 清屏函數(shù) */ /* */ /*/ void lcd_clear() lcd_wcmd(0 x01); delayms(1); /*/ /* */ /*寫指令數(shù)據(jù)到 lcd */ /*rs=l,rw=l,e=高脈沖,d0-d7=指令碼。 */ /* */ /*/ void lcd_wcmd(uchar cmd) lcd_rs
51、 = 0; lcd_rw = 0; lcd_en = 0; p0 = cmd; delayms(1); lcd_en = 1; delayms(1); lcd_en = 0; /*/ /* */ /*寫顯示數(shù)據(jù)到 lcd */ /*rs=h,rw=l,e=高脈沖,d0-d7=數(shù)據(jù)。 */ /* */ /*/ void lcd_wdat(uchar dat) lcd_rs = 1; lcd_rw = 0; lcd_en = 0; p0 = dat; delayms(1); lcd_en = 1; delayms(1); lcd_en = 0; /*/ /* */ /* 設定顯示位置 */ /*
52、*/ /*/ void lcd_set_xy(uchar hang,uchar lie) uchar a; if(hang = 1) a = 0 x80; if(hang = 2) a = 0 xc0; a = a + lie - 1; lcd_wcmd(a); delayms(1); /*/ /* */ /* 寫字符串函數(shù) */ /* */ /*/ void lcd_string(uchar *p) while(1) if(*p = 0) break; lcd_wdat(*p); p+; delayms(1); /顯示頭文件 #ifndef _lcd1602_ #define _lcd160
53、2_ #include #include #define uchar unsigned char #define uint unsigned int sbit lcd_rs = p10; sbit lcd_rw = p11; sbit lcd_en = p12; extern void delayms(uint a); extern void lcd_init(); /lcd1602 初始化函數(shù) extern void lcd_wcmd(uchar cmd); /lcd1602 寫命令函數(shù) extern void lcd_wdat(uchar dat); /lcd1602 寫數(shù)據(jù)函數(shù) exte
54、rn void lcd_set_xy(uchar hang,uchar lie); /lcd1602 設置顯示位置函數(shù) extern void lcd_string(uchar *p); /lcd1602 寫字符串函數(shù) extern void lcd_clear(); /lcd1602 清屏函數(shù) #endif /主函數(shù) #includemain_header.h #includelcd1602.h #includekey.h #includepcf8951.h /*初始化函數(shù)*/ void init() /初始化函數(shù) tmod = 0x11; /定時器 0 和定時器 1 設置工作方式 1 th
55、0 =55536/256; /定時器 0 初值 tl0 =55536%256; /定時器 0 初值 ea = 1; /打開總中斷 et0 = 1; /定時器 0 打開 tr0 = 1; /定時器 0 打開 / wdt_contr = 0x31; /看門狗定時器在 12m 晶振時 131ms 復位 /*主函數(shù)*/ void main(void) uchar display3; init(); lcd_init (); lcd_clear(); delayms(10); lcd_set_xy(1,1); lcd_string(i:000ma); / lcd_set_xy(1,8); / lcd_s
56、tring(vout:1.00); / lcd_set_xy(2,1); / lcd_string(v:0.00); / ad_da(4); / da_num = (uchar)da_num*0.941; / display0 = da_num/100+0 x30; / display1 = da_num%100/10+0 x30; / display2 = da_num%10+0 x30; / lcd_set_xy(1,13); / lcd_wdat(display0); / lcd_set_xy(1,15); / lcd_wdat(display1); / lcd_wdat(display
57、2); while(1) uint k; for(k=10000;k0;k-) / key(key_num); ad_da(0); d0 = (uchar)d0*0.393; display0 = d0/100+0 x30; display1 = d0%100/10+0 x30; display2 = d0%10+0 x30; lcd_set_xy(1,3); lcd_wdat(display0); lcd_wdat(display1); lcd_wdat(display2); / ad_da(1); / d1 = (uchar)d1*4; / display0 = d1/100+0 x30;
58、 / display1 = d1%100/10+0 x30; / display2 = d1%10+0 x30; / lcd_set_xy(2,3); / lcd_wdat(display0); / lcd_set_xy(2,5); / lcd_wdat(display1); / lcd_wdat(display2); ad_da(2); / d2 = (uchar)d2/0.92; / display0 = d2/100+0 x30; / display1 = d2%100/10+0 x30; / display2 = d2%10+0 x30; / lcd_set_xy(2,7); / lc
59、d_wdat(display0); / lcd_wdat(display1); / lcd_set_xy(2,10); / lcd_wdat(display2); / / ad_da(3); / d3 = (uchar)d3/0.92; / display0 = d3/100+0 x30; / display1 = d3%100/10+0 x30; / display2 = d3%10+0 x30; / lcd_set_xy(2,12); / lcd_wdat(display0); / lcd_wdat(display1); / lcd_set_xy(2,15); / lcd_wdat(dis
60、play2); /主函數(shù)頭文件 #ifndef _main_header_ #define _main_header_ #include #include #define uchar unsigned char #define uint unsigned int /sfr wdt_contr = 0xe1; /看門狗定時器控制寄存器地址定義 #endif /數(shù)模轉(zhuǎn)換函數(shù) #includelcd1602.h #includepcf8951.h #includekey.h uchar ad_channel; uchar da_num = 100; uint d5; /* dac 變換, 轉(zhuǎn)化函數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- JJF 2164-2024在線振動管液體密度計校準規(guī)范
- GB/T 44636-2024能源互聯(lián)網(wǎng)系統(tǒng)架構和要求
- 吉林省松原市前郭縣南部學區(qū)2024~2025學年度七年級上期中測試.名校調(diào)研 生物(含答案)
- 2024年度云南省高校教師資格證之高等教育法規(guī)通關試題庫(有答案)
- 低空經(jīng)濟產(chǎn)業(yè)園技術風險分析
- 贛南師范大學《馬克思主義發(fā)展史》2022-2023學年第一學期期末試卷
- 贛南師范大學《地理信息系統(tǒng)原理》2022-2023學年第一學期期末試卷
- 阜陽師范大學《學校體育學》2022-2023學年第一學期期末試卷
- 阜陽師范大學《數(shù)學分析二》2021-2022學年第一學期期末試卷
- 福建師范大學《小學數(shù)學課程與教學研究》2022-2023學年第一學期期末試卷
- 2024年房產(chǎn)贈與合同范本(31篇)
- 2024年中國移動校園招聘高頻難、易錯點500題模擬試題附帶答案詳解
- 物理透鏡 課件 2024-2025學年蘇科版八年級上冊物理
- 人教版2024七年級上冊英語各單元單詞短語句型匯編
- 【智慧醫(yī)療】醫(yī)療健康產(chǎn)業(yè)園概念策劃方案(XQ)
- 智能分揀與配送中心建設方案
- 2024中國移動公司招聘高頻500題難、易錯點模擬試題附帶答案詳解
- 2024-2030年中國凈水器和過濾器行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 2024年計算機二級MS Office考試題庫500題(含答案)
- 22G101三維彩色立體圖集
- 從創(chuàng)意到創(chuàng)業(yè)智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學
評論
0/150
提交評論