數(shù)字電容測量儀設(shè)計
《數(shù)字電容測量儀設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《數(shù)字電容測量儀設(shè)計(27頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 基于51單片機(jī)的 數(shù)顯電容測量儀 指導(dǎo)老師: 王立巍 設(shè) 計 者: 吳玉德 班 級: 09 物 31 學(xué) 號: 09223014 江蘇師范大學(xué) 物理與電子工程學(xué)院 2012年11月
2、 摘要 當(dāng)前現(xiàn)代化電子市場正朝著快速及便利同時大容量的方向發(fā)展,現(xiàn)代電子產(chǎn)品幾乎能運(yùn)用到社會的各個領(lǐng)域當(dāng)中,有力的推動了社會現(xiàn)代化的發(fā)展。同時,電子產(chǎn)品也被要求以更快速度的升級和更快速的處理。 本設(shè)計以STC89C52單片機(jī)和555振蕩器作為主要元件,來實(shí)現(xiàn)對電容容量的基本測量。本設(shè)計基于555振蕩器構(gòu)成多諧振蕩器來產(chǎn)生輸入脈沖信號,然后再通過STC89C52單片機(jī)對方波脈沖進(jìn)行中斷計數(shù)而測量電容的。在多諧振蕩器輸出端加入一個74HC08使輸出波型毛刺減少,從而使單片機(jī)測量結(jié)果變精確。555振蕩器所產(chǎn)生的信號會根據(jù)所
3、選的電阻的阻值不同,從而調(diào)節(jié)電容的參數(shù)值,這樣就可以確定被測電容的容值范圍,最后通過LCD1602顯示器顯示被測電容容值。在軟件設(shè)計中,該設(shè)計使用C語言來編寫程序。該儀器具有方便快捷,簡單實(shí)用,價格低廉等特點(diǎn)。 關(guān)鍵詞:電容測量;555振蕩器;STC89C52;LCD1602 Abstract The current modern electronic market is headed in fast and convenient large capacity and the direction of development, modern electronic products
4、to use to almost all areas of society of powerful promoted the development of modern society. At the same time, the electronic products also are required to faster speed upgrade and more fast process. This design to STC89C52 single-chip microcomputer and 555 oscillator as the main components, to re
5、alize the basic capacity of capacitance measurement. This design based on the 555 oscillator to generate more than a harmonic oscillator input pulse signal, and then through the STC89C52 microcontroller each other to interrupt pulse count and measurement of capacitance. In order to join the output o
6、scillator a 74 HC08 to make the output waveform burr reduced, so that the single chip microcomputer variable precision measurement results. 555 oscillator generated signal will be selected according to the resistance of the resistance is different, which regulates capacitance parameter value, which
7、can determine the capacity of the capacitance value range, the last through the LCD1602 display shows measured capacitance let value. In software design, this design using C language to write the program. The instrument has convenient and quick, simple, practical, and low prices, etc. Keywords: c
8、apacitance measurements;555 oscillator;STC89C52;LCD1602 III 目錄 摘要 I Abstract II 目錄 1 緒論 1 1.1 引言 1 2 STC89C52單片機(jī)的基本功能及應(yīng)用 3 2.1 STC89C52芯片介紹 3 2.2 STC89C52應(yīng)用說明 5 2.3 單片機(jī)工作的最小化配置 6 3 數(shù)字電容測量儀系統(tǒng)工作原理 7 3.1 整體方案設(shè)計 7 3.2 系統(tǒng)按鍵電路 8 3.3 系統(tǒng)復(fù)位電路 8 3.4
9、 555芯片電路 9 3.5 系統(tǒng)顯示電路 11 3.6 整流方波電路 12 4 程序設(shè)計 13 5 總結(jié) 15 參考文獻(xiàn) 16 附錄 17 附錄1 元件清單 17 附錄2 系統(tǒng)原理圖 18 附錄3 程序清單 18 I 江蘇師范大學(xué)物理與電子工程學(xué)院 數(shù)顯電容測量儀課程設(shè)計 1 緒論 1.1 引言 目前,隨著電子工業(yè)的發(fā)展,電子元器件急劇增加,電子元器件的適用范圍也逐漸廣泛起來,在應(yīng)用中我們常常要測定電容的大小。 在電子產(chǎn)品的生產(chǎn)和維修中,電容測量這一環(huán)節(jié)至關(guān)重要,一個好的電子產(chǎn)品應(yīng)具備一定規(guī)格年限的使用壽命。因此在生產(chǎn)這一環(huán)
10、節(jié)中,對其產(chǎn)品的檢測至關(guān)重要,而檢測電子產(chǎn)品是否符合出產(chǎn)要求的關(guān)鍵在于檢測其內(nèi)部核心的電路,電路的好壞決定了電子產(chǎn)品的好與壞,而電容在基本的電子產(chǎn)品的集成電路部分有著其不可替代的作用。同樣,在維修人員在對電子產(chǎn)品的維修中,電路的檢測是最基本的,有時需要檢測電路中各個部件是否工作正常,電容器是否工作正常。因此,設(shè)計可靠,安全,便捷的電容測試儀具有極大的現(xiàn)實(shí)必要性。當(dāng)前現(xiàn)代化電子市場正朝著方便快捷容量大的方向發(fā)展,現(xiàn)代電子產(chǎn)品幾乎能運(yùn)用到社會的各個領(lǐng)域當(dāng)中,有力的推動了社會現(xiàn)代化的發(fā)。同時,電子產(chǎn)品也面臨著更快速度的節(jié)奏升級和更快速的處理功效。 當(dāng)今電子測試領(lǐng)域,電容測量技術(shù)已經(jīng)應(yīng)用的非常廣泛了
11、,數(shù)字電容測量技術(shù)的發(fā)展主要取決于電容傳感器的發(fā)展。由最初的用交流不平衡電橋就能測量基本的電容傳感器到現(xiàn)在主要使用容柵式電容傳感器,陶瓷電容壓力傳感器等。電容測量技術(shù)也從單一化向多元化發(fā)展。雖然國內(nèi)電容傳感器方面的廠家越來越多,但是每當(dāng)提起國內(nèi)電容測量儀器,用戶就會有很多看法。如:諸如精度不高,外觀不好,可靠性差等。 近年來我國在電子測量儀器的精準(zhǔn)度方面投入了很多人力物力,狀況有了很大改觀。中國本土的儀器制造與生產(chǎn)已經(jīng)取得了很大的進(jìn)步,特別是在電子測量這個領(lǐng)域,與國外的差距正在逐日減少,并對國外電子設(shè)備巨頭產(chǎn)生了一定的影響。隨著現(xiàn)代化技術(shù)的提高與政府的重視,中國的的測量儀器每年都以30%的速
12、度增長,同時也催生除了大批創(chuàng)新型企業(yè)和產(chǎn)品。其實(shí)影響國內(nèi)測量技術(shù)的根本原因是: (1)測試在整個產(chǎn)品流程中的地位偏低,人們一般認(rèn)為產(chǎn)品的開發(fā)過程中最重要的是研發(fā),而測試的話只屬于邊沿技術(shù)。其實(shí)這一點(diǎn)是非常錯誤的,因為在大部分的研究機(jī)構(gòu)部門配置上對其重視都不夠。造成這種錯誤觀念的原因是因為整個社會對電子測量的重視度不夠,從而造成電子測試方面人才的缺失同時相關(guān)的基礎(chǔ)科學(xué)研究也變得比較薄弱,這就成為了中國電子測量發(fā)展的一個瓶頸。同時,研發(fā)團(tuán)隊自己對電子測試的重視度和對儀器本身的研究程度也遠(yuǎn)遠(yuǎn)不夠。 (2)面向應(yīng)用和現(xiàn)代市場營銷模式還沒有真正建立起來,國內(nèi)儀器設(shè)備生產(chǎn)商只是一味的研發(fā)生產(chǎn),但是卻
13、沒有建立起一條連貫的全面的現(xiàn)代營銷體系跟科技研發(fā)模式。傳統(tǒng)的營銷模式雖然在以前的八九十年代發(fā)展出很大的效益,但卻無法滿足現(xiàn)代化市場的需求。因此,為了拉近國內(nèi)電子測量儀器與國外巨頭廠家之間的差距,國內(nèi)電子測量儀器廠家應(yīng)當(dāng)加快自己企業(yè)的換代更新。 (3)缺乏標(biāo)準(zhǔn)件的材料配套體系。歷史上的中國電子測量設(shè)備配套行業(yè)的企業(yè)都是一些私人的中小型企業(yè),并沒有很大的資金投入到生產(chǎn)標(biāo)準(zhǔn)化跟技術(shù)研發(fā)上,這導(dǎo)致了電子測量行業(yè)配套行業(yè)的研發(fā)水品普遍較低。雖然隨著社會現(xiàn)代化發(fā)展,這方面已經(jīng)有了很大的提高,但是這還是遠(yuǎn)遠(yuǎn)不夠的。我們應(yīng)當(dāng)提高對電子測量技術(shù)的研發(fā)力度,一味的提高精準(zhǔn)度但卻沒有配套材料精準(zhǔn)度的支持是很難實(shí)現(xiàn)
14、的。以上這些因素都制約了本土電子測量儀器的發(fā)展革新。 電容測量是一項很基礎(chǔ)的研究工作,在日常的電路研究及實(shí)驗中,電容作為一個使用非常頻繁的電子元件,實(shí)際電路對電容的研究越來越精確。如果電容測量達(dá)不到一個很準(zhǔn)確的水品,會直接的影響到各項科技的提升和進(jìn)步,因此研究電容測量技術(shù)具有非常重要的意義。傳統(tǒng)電容測量儀精度不高,測量不夠便利,因此我選擇一個數(shù)字電容測量儀來測量電容的容值大小。該數(shù)字電容儀有方便,精度高的優(yōu)點(diǎn),這也使我的選題有了更大的意義,并提高了我對做畢業(yè)設(shè)計的興趣。 2 STC89C52單片機(jī)的基本功能及應(yīng)用 2.1 STC89C52芯片介紹 STC89C52是一種低
15、電壓、高性能的CMOS 8位微處理器,具有8K在系統(tǒng)可編程的Flash處理器。STC89C52對比51單片機(jī)具有更大的數(shù)據(jù)存儲空間,并且?guī)в?K字節(jié)EEPROM存儲空間,使得該單片機(jī)比51單片機(jī)存儲空間更大,數(shù)據(jù)處理速度也更快。在單片機(jī)芯片上,該芯片擁有靈巧的8 位CPU 和在系統(tǒng)內(nèi)可編程的Flash,這使得STC89C52單片機(jī)相比其它單片機(jī)有了很大的提高,大大提高了它在各種電子系統(tǒng)中的使用。 STC89C52是由一個時鐘電路OSC、一個程序存儲器ROM、一個數(shù)據(jù)存儲器RAM和一個定時器/計數(shù)器組成。程序存儲器跟數(shù)據(jù)存儲器分為了兩個不同的邏輯存儲空間,這樣就可以用8位地址對數(shù)據(jù)及程序存儲器
16、來進(jìn)行訪問,通過這樣可以提高8位CPU的存儲和處理速度。 (1)STC89C52芯片引腳分布及說明: STC89S52引腳分布如圖1所示: 圖1 STC89C52引腳分布 (2) STC89C52各引腳功能簡介: P0 口:8位。漏極開路的雙向I/O口。 當(dāng)STC89C52擴(kuò)展外部存儲器及I/O接口芯片是沒P作為地址總線(低8位)及數(shù)據(jù)總線的分時復(fù)用端口。 P0口也可作為通用的I/O口使用,但需加上拉電阻,這時為準(zhǔn)雙向口。當(dāng)作為通用的I/O輸入時,應(yīng)先向端口輸出鎖存器寫入1。P0口可驅(qū)動8個LS型TTL負(fù)載。 P1 口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。 P
17、1口是專為用戶使用的準(zhǔn)雙向I/O口。當(dāng)作為通用的I/O口輸出時,應(yīng)先向端口鎖存器寫入1.P1口可驅(qū)動4個LS型TTL負(fù)載。 MOSI/P1.5、MISO/P1.6和SCK/P1.7也可用于對卡片內(nèi)Flash存儲器串行編程和校驗,它們分別是串行數(shù)據(jù)輸入、輸出和移位脈沖引腳。 P2 口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。 當(dāng)STC89C52擴(kuò)展外部存儲器及I/O口時,P2口作為高8位地址總線用,輸出高8位地址。 P2口也可作為普通的I/O口使用。當(dāng)作為通用的I/O輸入時,應(yīng)先向端口鎖存器寫入1。P2口可驅(qū)動4個LS型TTL負(fù)載。 P3 口:8位,準(zhǔn)雙向I/O口,具有內(nèi)部上拉電阻。
18、 P3口可作為通用的I/O口使用。當(dāng)作為通用的I/O輸入時,應(yīng)先向端口鎖存器寫入1.P3口可驅(qū)動4個LS型TTL負(fù)載。 RST:復(fù)位電路輸入端,高電平有效。在此引腳加上持續(xù)時間大于2個機(jī)器周期的高電平,就可以使單片機(jī)復(fù)位。在單片機(jī)正常工作時,此引腳應(yīng)為≤0.5V的低電平。 ALE/PROG:ALE為CPU訪問外部程序存儲器或外部數(shù)據(jù)存儲器提供一個地址鎖存信號,將低8位地質(zhì)所存在片外的地址鎖存器中。 此外,單片機(jī)在正常運(yùn)行時,ALE端一直有正脈沖信號輸出,此頻率為時鐘振蕩器頻率f的1/6。該正脈沖振蕩信號可做外部定時或出發(fā)信號使用。但是要注意每當(dāng)STC89C52訪問外部RAM時(
19、即執(zhí)行MOVX類指令時),要丟失一個ALE脈沖。 PROG為該引腳的第二功能,即在對片內(nèi)Flash存儲器編程是,此引腳作為編程脈沖輸入端。 PSEN:片外程序存儲器的讀選通信號,低電平有效。 EA/VPP:EA為該引腳的異地功能,即外部程序存儲器訪問允許控制端。 當(dāng)EA引腳接高電平時,在PC值不超出0FFFH時,將自動轉(zhuǎn)向讀取片外60KB程序存儲器空間的程序。 當(dāng)EA引腳接高電平時,只讀取外部程序存儲器中的內(nèi)容,讀取的地址范圍為0000H-FFFFH,片內(nèi)的4KB Flash程序存儲器不起作用。 VPP位該引腳第二功能,即在對片內(nèi)Flash進(jìn)行編程時,VPP引腳接入編程電壓。
20、 XTAL1:片內(nèi)振蕩器反相放大器和時鐘發(fā)生器電路的輸入端。當(dāng)使用片內(nèi)振蕩器時,該引腳連接外部石英晶體和微調(diào)電容;當(dāng)采用外接時鐘源時,該引腳接外部時鐘振蕩器的信號。 XTAL2:片內(nèi)振蕩器反相放大器的輸出端。當(dāng)使用片內(nèi)振蕩器時,該引腳連接外部石英晶體和微調(diào)電容;當(dāng)采用外部時鐘源時,該引腳懸空。 INT0:外部中斷請求0,中斷請求信號由INT0引腳輸入,中斷請求標(biāo)志為IE0。 INT1:外部中斷請求1,中斷請求信號由INT1引腳輸入,中斷請求標(biāo)志為IE1。 TO:計數(shù)器/定時器T0計數(shù)溢出發(fā)出的中斷請求,中斷請求標(biāo)志為TF0。 T1:計數(shù)器/定時器T1計數(shù)溢出發(fā)出的中斷請求,中斷請
21、求標(biāo)志為TF1。 2.2 STC89C52應(yīng)用說明 STC89C52主要性能如表1所示: 表 1 STC89C52主要性能 STC89C52各引腳性能 STC89C52各引腳性能 與MCS-51單片機(jī)產(chǎn)品兼容 1000次擦寫周期 三級加密程序存儲器 三個16位定時器/計數(shù)器 全雙工UART串行通道 掉電后中斷可喚醒 雙數(shù)據(jù)指針 8K字節(jié)在系統(tǒng)可編程Flash存儲器 全靜態(tài)操作:0Hz~33Hz 32個可編程I/O口線 八個中斷源 低功耗空閑和掉電模式 看門狗定時器 掉電標(biāo)識符 2.3 單片機(jī)工作的最小化配置 單片機(jī)的最小化系統(tǒng)簡稱單
22、片機(jī)最小應(yīng)用系統(tǒng),通俗的講就是單片機(jī)工作所用的最少元件。如圖2所示,最小系統(tǒng)一般包括只需要單片機(jī)、晶振電路和復(fù)位電路這三部分就可以讓單片機(jī)正常工作。該設(shè)計使用了STC89C52芯片,該芯片自帶8K FLASH程序存儲器,在通常情況下,該芯片的這8K的存儲空間是足夠我們使用的,因此STC89C52芯片的第31個引腳一般都用來接高電平,所以我們只用芯片本身內(nèi)部提供的8K程序存儲器。單片機(jī)的時鐘電路通常由12M的晶振及兩個30P的電瓷電容組成,它們共同決定了單片機(jī)的機(jī)器周期為1us。該復(fù)位電路由一個10UF電容一個200歐電阻和10K電阻共同組成。 圖2 STC89C52的最小化配置
23、3 數(shù)字電容測量儀系統(tǒng)工作原理 3.1 整體方案設(shè)計 本設(shè)計是通過一塊555芯片來測量電容,讓555芯片工作在直接反饋無穩(wěn)態(tài)的狀態(tài)下,使555芯片輸出一定頻率的方波,其頻率的大小跟被測量的電容之間的關(guān)系是: 我們固定R的大小,其公式就可以寫為: 因此,只要我們能夠測量出555芯片輸出的頻率,就可以計算出被測電容的容值。計算頻率的方法可以利用單片機(jī)的計數(shù)器T0和中斷INT0配合使用來測量,這種研究方法相當(dāng)?shù)暮唵?。系統(tǒng)框圖見圖3: S T C 8 9 C 5 2 LCD1602 復(fù)位電路 555 被測電容 按鍵測量
24、 晶振電路 圖3 系統(tǒng)框圖 圖中給出了整個系統(tǒng)設(shè)計的系統(tǒng)框圖,系統(tǒng)主要由四個主要部分組成,單片機(jī)和晶振電路設(shè)計,555芯片電路設(shè)計,LCD1602顯示電路,復(fù)位電路設(shè)計。 3.2 系統(tǒng)按鍵電路 按鍵電路可以實(shí)現(xiàn)人機(jī)對話,人們可以通過按鍵來實(shí)現(xiàn)讓單片機(jī)自動的做不同的工作。鍵盤是一組按鍵的集合,按鍵開關(guān)是一種常開型開關(guān),一般情況下按鍵電路的兩個觸點(diǎn)會處于斷開狀態(tài),按下鍵時它們是閉合的。鍵盤分為編碼鍵盤及非編碼鍵盤這2種,按鍵的識別是由專門的硬件通過譯碼來實(shí)現(xiàn)的,能產(chǎn)生鍵編號或者是鍵值的鍵盤被稱為編碼鍵盤,而缺少這種的要靠自編軟件識別的鍵盤則被稱為非編碼鍵盤。在由單
25、片機(jī)組成的電路系統(tǒng)以及智能儀器中,使用的較多的一般是非編碼鍵盤。圖4就是一種比較典型的按鍵電路,在按鍵沒有按下的時候,輸出的是高電平,當(dāng)按鍵按下去的時候,輸出的是低電平。電路圖見圖4: 圖4 系統(tǒng)按鍵電路 3.3 系統(tǒng)復(fù)位電路 單片機(jī)復(fù)位電路主要包括積分復(fù)位、微分復(fù)位、比較器復(fù)位和看門狗復(fù)位這四種類型。52單片機(jī)的復(fù)位功能主要是由外接復(fù)位電路來實(shí)現(xiàn)的,單片機(jī)在啟動時都會需要復(fù)位電路來實(shí)現(xiàn)CPU和各個原件都處于初始狀態(tài),并從初始狀態(tài)開始工作。 該復(fù)位電路采用的是按鈕復(fù)位這種方式,還有一種方式是上電自動復(fù)位。上電自動復(fù)位電路通過外接的電解電容自動充放電從而實(shí)現(xiàn)電路的復(fù)位作用,只要Vc
26、c的上升時間低于1ms,自動上電復(fù)位就可以實(shí)現(xiàn)。圖5中所示的電解電容在系統(tǒng)內(nèi)可以起到上電復(fù)位的作用,因為考慮到芯片剛剛上電時由于供電不穩(wěn)定而做出錯誤的計算,所以增加一個上電復(fù)位以達(dá)到延時啟動CPU的目的,使芯片能夠正常工作。雖然現(xiàn)在很多芯片自帶了上電延時功能,但是我們一般還是會增加額外的上電復(fù)位電路,提高可靠性。當(dāng)按壓式開關(guān)按下時,電容兩端構(gòu)成回路并放電,使RST端重新變?yōu)楦唠娖?,按鍵抬起時電容又充電使RST變回低電平電路。 圖5 系統(tǒng)復(fù)位電路 3.4 555芯片電路 555芯片電路是一種能將模擬數(shù)據(jù)功能與邏輯數(shù)據(jù)功能結(jié)合在同一個芯片上的組合式集成電路。它的設(shè)計新穎、功能強(qiáng)大、適用
27、面廣泛,深受電子方面工作人員以及電子愛好者的喜愛,因此人們稱555芯片為小IC。 555芯片電路能應(yīng)用的電路有很多,例如:多個單穩(wěn)、雙穩(wěn)觸發(fā)器以及一個單穩(wěn)和無穩(wěn)觸發(fā)器,一個雙穩(wěn)和無穩(wěn)觸發(fā)器等組合。在實(shí)際電路應(yīng)用中,除了一些簡單的電路外,555芯片還可以與不同的原件組合出很多功能不同的電路。本次設(shè)計中應(yīng)用的電路是直接反饋型無穩(wěn)類電路。電路如圖6所示: 圖6 555芯片電路 在555芯片輸出方波后,由于硬件的原因,輸出的方波會有很多毛刺,所以為了去除這些毛刺本設(shè)計中使用了一個兩輸入與門(74HC08),讓信號通過74HC08后會使輸出的波形毛刺減少很多,使單片機(jī)的測量結(jié)果變得精確
28、。 555時基芯片的輸出頻率跟所使用的電阻R和電容C的關(guān)系是: 又因為,所以 即: 如果單片機(jī)采用12M的晶振,計數(shù)器T0的值增加1,時間就增加1μS ,我們采用中斷的方式來啟動和停止計數(shù)器T0,中斷的觸發(fā)方式為脈沖下降沿觸發(fā),第一次中斷到來啟動T0,計數(shù)器的值為,第二次中斷到來停止T0,計數(shù)器器的值為,則測量方波的周期為 如何開始時刻計數(shù)器的值,則。 則: 單片機(jī)的計數(shù)器的值N=0-65535,為了測量的精度,N的取值一般在100~5000,當(dāng)電阻R越大,電容C的值就越小。我們?nèi)〔煌碾娮柚?,就得到不同的?/p>
29、容測量的量程。 第一檔: 1~50 uf 第二檔: 0.1~5 uf 第三檔: 0.01~0.5 uf 第四檔: 0.001~0.05 uf 為了編寫程序的方便,我們只計算后面的單位可以根據(jù)使用的量程自行添加。測量范圍的大小0.001uF~655.35uF。 3.5 系統(tǒng)顯示電路 LCD1602擁有功耗小、數(shù)據(jù)顯示豐富、體型輕便,功能強(qiáng)大等諸多優(yōu)點(diǎn),在很多電子產(chǎn)品和單片機(jī)系統(tǒng)中得到了廣泛的應(yīng)用。LCD1602一共有16個引腳,其引腳分布如圖7所示: 圖7 系統(tǒng)顯示電路 1602 采用標(biāo)準(zhǔn)的16腳接口
30、,引腳具體功能如表2所示: 表2 LCD1602各引腳功能圖 引腳號 引腳名 電平 輸入/輸出 作用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Vss Vcc Vee RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 A K 0/1 0/1 0,1→0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 =Vcc 接地 輸入 輸入 輸入 輸入/輸出 輸入/輸出 輸
31、入/輸出 輸入/輸出 輸入/輸出 輸入/輸出 輸入/輸出 輸入/輸出 電源地 電源(+5V) 對比調(diào)整電壓 0=輸入指令,1=輸出數(shù)據(jù) 0=寫數(shù)據(jù),1=讀數(shù)據(jù) 使能信號,1時讀信息,0時執(zhí)行指令 數(shù)據(jù)總線line0(最低位) 數(shù)據(jù)總線line1 數(shù)據(jù)總線line2 數(shù)據(jù)總線line3 數(shù)據(jù)總線line4 數(shù)據(jù)總線line5 數(shù)據(jù)總線line6 數(shù)據(jù)總線line7(最高位) LCD背光電源正極 LCD背光電源負(fù)極 3.6 整形方波電路 在555芯片輸出方波后,由于硬件的原因,輸出的方波會有很多毛刺,為了去除這些毛刺本設(shè)計中使用了一個兩輸入與門
32、(74HC08),讓信號通過74HC08后會使輸出的波形毛刺減少很多,使單片機(jī)的測量結(jié)果變得精確。 4 程序設(shè)計 軟件設(shè)計看起來是個非常復(fù)雜的過程,但其實(shí)這是一個非常有創(chuàng)造性的過程。軟件設(shè)計通過將問題和事物抽象起來,同時將這些東西分成不同的層和面來進(jìn)行編譯。對一些新手來說上手起來比較難,但是一旦理解了它的原理上手之后,編寫程序就會變得非常簡單。書上的理論知識雖然很重要,但是要想掌握程序設(shè)計,最重要的還是自己多實(shí)踐,自己程序?qū)懙枚嗔俗匀粫莆盏狡渲械脑E竅。對于高級的軟件設(shè)計,一個好的軟件系統(tǒng)與差的軟件系統(tǒng)相差是非常大的。好的軟件系統(tǒng)可以讓你日常維護(hù)、功能實(shí)現(xiàn)變得非常簡單,而一個差的軟件系
33、統(tǒng)則會讓功能實(shí)現(xiàn)屢屢受挫。因此,軟件開發(fā)最重要的步驟是對程序的構(gòu)思。 其實(shí)軟件設(shè)計到現(xiàn)在還是一個流程非常固定的過程,一般都是先構(gòu)思程序的流程,再加上一些指針及判斷和判定系統(tǒng),最后就是寫好程序進(jìn)行調(diào)試并且將其寫入實(shí)物中。如果實(shí)物實(shí)現(xiàn)不了功能,就需要對程序和實(shí)物都進(jìn)行檢測,查找是程序問題還是硬件問題。 軟件設(shè)計主要是針對硬件設(shè)計里面的控制部分的,這里指的是STC89C52單片機(jī),一般的單片機(jī)均可用匯編語言和C語言進(jìn)行編程。C語言直觀,相對比較的簡單,但占用的程序存儲器的內(nèi)存比較大,匯編語言是針對硬件設(shè)計的語言,如果想用匯編語言設(shè)計的話必須要對硬件有很大的了解,相對C語言就比較的復(fù)雜
34、,但是比較的精簡,占用的程序存儲器的空間比較的小。作為還在學(xué)生階段的我們,用匯編語言進(jìn)行編程對我們理解單片機(jī)的內(nèi)部結(jié)構(gòu)、資源都有很好的幫助,但是C語言編程在以后的實(shí)際工作中將會大大簡化自己的工作。因此本論文的程序都是基于C語言的。要完成的任務(wù)是:初始化程序設(shè)計、按鍵程序設(shè)計、中斷處理程序,計數(shù)器計數(shù)程序,顯示程序設(shè)計等。 在主程序中,通過檢測按鍵是否按下來執(zhí)行循環(huán)程序。通過單片機(jī)P3.7端口檢測是否開始測量電容,然后通過端口P3.6端口對555定時器復(fù)位端進(jìn)行方波輸出控制。最后通過程序?qū)ν獠恐袛?與定時器控制,計算出電容值得大小并通過LCD1602進(jìn)行顯示。圖8為該程序設(shè)計的流程圖:
35、 T0,INT0 初始化 啟動555 有無中斷 有無按鍵 有無中斷 啟動計數(shù)器T0 停止計數(shù)器T0 計算電容的大小 顯示電容值 有無按鍵 N Yn N Y N Y N Y 圖8 軟件設(shè)計流程圖 5 總結(jié) 一開始想通過兩位數(shù)碼管來顯示電容值,但后來因為排線雜亂,顯示位數(shù)少,就改用LCD1602來顯示,改善了不少缺點(diǎn)。 本設(shè)計通過由555芯片和電容電阻組成的振蕩電路來輸出方波,通過單片機(jī)定時器T0測量其脈沖寬度,
36、從而達(dá)到測量其周期的目的,再通過單片機(jī)軟件編程,對數(shù)據(jù)進(jìn)行進(jìn)一步的計算從而得出被測電容的值,最后再通過LCD1602顯示初被測電容的容值。 在最小電路的測試中,與單片機(jī)連接的LCD始終不亮,用萬用表測試發(fā)現(xiàn)是顯示管腳接錯了,重新焊接以后,LCD1602就亮了。 焊晶振要注意:一定要盡量保證晶振焊腳與18、19腳的焊腳是最短,對稱的,晶振焊腳與30pF的電容也要求最短和對稱。因為在STC89C52最小系統(tǒng)搭建中,最關(guān)鍵的就是確保晶振能起振。感覺晶振比較嬌氣,偏差一點(diǎn)點(diǎn)就很容易不振或亂振。前兩次的最小系統(tǒng)就是因為沒有起振,所以失敗了!不過有過兩次經(jīng)驗之后,這個就是小問題了。 參考文獻(xiàn) [1
37、] 張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2005 [2] 劉光斌,劉冬,姚志成.單片機(jī)系統(tǒng)實(shí)用抗干擾技術(shù)[M].北京人民郵電出版社,2004 [3] 楊小川.protel DXP 設(shè)計指導(dǎo)教程[M].北京:清華大學(xué)出版社,2004 [4] 李金平,沈明山,姜余祥.電子系統(tǒng)設(shè)計[M].北京:電子工業(yè)出版社,2007 [5] 王毓銀.數(shù)字電路邏輯設(shè)計[M].北京:高等教育出版社,1999 [6] 康華光.電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,2000 [7] 萬文略.單片機(jī)原理及應(yīng)用[M].重慶大學(xué)出版社,2004 [8] 江世明.基于Proteus的單片機(jī)用用
38、技術(shù)[M].北京:電子工業(yè)出版社,2009 [9] 邊春元.C51單片機(jī)典型模塊設(shè)計與應(yīng)用[M].機(jī)械工業(yè)出版社育出版社,2008 [10] 李海清,黃志遙.電容傳感器新型微弱電容測量電路[J].北京:傳感技術(shù)學(xué)報,2002 [11] 付曉光.單片機(jī)原理與使用技術(shù)[M].北京:清華大學(xué)出版社,2007. [12] 李桂安.電子技術(shù)實(shí)驗及課程設(shè)計[M].南京:東南大學(xué)出版社,2008 [13] 夏繼強(qiáng).單片機(jī)實(shí)驗與實(shí)踐教程[M].北京:北京航空航天大學(xué)出版社,2001 [14] 肖洪兵.跟我學(xué)用單片機(jī)[M].北京:北京航空航天大學(xué)出版社,2002 [15] 申忠如,郭福田,丁暉.現(xiàn)
39、代測試技術(shù)與系統(tǒng)設(shè)計[M].西安:西安交通大學(xué)出版社,2006 [16] 郝波.數(shù)字電子技術(shù)[M].西安:西安電子科技大學(xué)出版社,2007 [17] 趙文博.新型常用集成電路速查手冊[M].北京:人民郵政出版社,2006 [18] 薛文,華慧明.新編實(shí)用電子技術(shù)快速入門[M].福州:福建科學(xué)技術(shù)出版社,2003 [19] 羅民昌.集成電路系統(tǒng)[M].北京:中國鐵道出版社,1998 [20] 丁英麗.交流型微小電容測量電路的設(shè)計[J].北京:電工技術(shù)雜志,2003 附錄 附錄1 元件清單 元器件 數(shù)量 單位 萬能板 STC89C52芯片 單片機(jī)/555底座 12M晶
40、振
按鍵開關(guān)
555芯片
10k排阻/200/10k/1k電阻
LCD1602
74HC08
5V電源
103可變電阻
開關(guān)
100/1k/10k/100k精密可調(diào)電阻
30PF瓷電容
10uf/35uf電解電容
1
1
1
1
4
1
1
1
1
1
1
6
1
1
1
塊
個
個
個
個
個
個
個
個
個
個
個
個
個
個
附錄2 系統(tǒng)原理圖
附錄3 程序清單
#include
41、e DATA P0 sbit RW=P2^6; //1602寫數(shù)據(jù) sbit RS=P2^5; //1602寫地址 sbit EN=P2^7; //1602工作使能 sbit b_test=P3^7; //開始測量電容的按鍵輸入 sbit _reset=P3^6; //555時基芯片工作控制信號 unsigned int T_flag,N,C,i,Dis1,Dis0; unsigned int b[6]={0X13,0X0D,0X00,0X00,0X25,0X16}; //顯示C=00UF /********
42、***延時1MS******************/ void Delay1ms(unsigned int mm) {unsigned int i; for(mm;mm>0;mm--) for(i=100;i>0;i--); } /***************檢查忙否*****************/ void Checkstates() { unsigned char dat; RS=0; RW=1; do{EN=1;//下降沿 _nop_();//保持一定間隔 _nop_(); dat=DA
43、TA; _nop_(); _nop_(); EN=0; }while((dat&0x80)==1); } /**************LCD寫命令函數(shù)*********/ void wcomd(unsigned char cmd) { Checkstates(); RS=0; RW=0; DATA=cmd; EN=1; _nop_(); _nop_(); _nop_(); _nop_(); EN=0; } /**********LCD寫數(shù)據(jù)函數(shù)**************
44、/ void wdata(unsigned char dat) { Checkstates(); RS=1; RW=0; DATA=dat; EN=1; _nop_(); _nop_(); _nop_(); _nop_(); EN=0; } /*****************初始化********************/ void LCDINIT() { Delay1ms(15); wcomd(0x38);//功能設(shè)置 Delay1ms(5); wcomd(0x38);//功能設(shè)置
45、 Delay1ms(5); wcomd(0x01);//清屏 Delay1ms(5); wcomd(0x08);//關(guān)顯示 Delay1ms(5); wcomd(0x0c);//開顯示,不開光標(biāo) } /***********顯示函數(shù)**************/ void Display(void) //顯示函數(shù) { unsigned char i,j; unsigned char a[12]={0X4D,0X45,0X41,0X53,0X55,0X52,0X45,0X4D,0X45,0X4E,0X54,0X53};//顯
46、示measurements LCDINIT(); for(i=0;i<12;i++)//寫顯示第一行 { wcomd(0x80+i); Delay1ms(1); wdata(a[i]); Delay1ms(1); } for(j=0;j<6;j++)//寫顯示第二行 { wcomd(0xc0+j); Delay1ms(1); wdata(0x30+b[j]); Delay1ms(1); } Delay1ms(150); } void main() { I
47、E=0x81; //打開全部的中斷控制,并開啟外部中斷允許 TMOD=0x09; //T0為16位計數(shù)工作方式1 IT0=1; //設(shè)置外部中斷的觸發(fā)的方式為脈沖觸發(fā) TH0=0x00; TL0=0x00; T_flag=0; _reset=0; while(1) { while(!b_test) //如果有測量按鍵輸入就往下執(zhí)行
48、 { i=0; _reset=1; //啟動555時基芯片 EX0=1; //開啟中斷0 while(_reset) //超出等待時間,中斷還沒有過來,就退出 { i++; if(i>5000) //設(shè)置最長等待時間 { _reset=0; //最長等待時間到還沒有中斷,停止555 } } if(N<100)
49、 //如果計數(shù)值小于100,顯示SM,表示應(yīng)換用小一點(diǎn)的量程 { b[3]=0X1D; b[2]=0X23; } if(N>5000) //如果計數(shù)值大于5000,顯示LA,表示應(yīng)換用大一點(diǎn)的量程 { b[3]=0X11; b[2]=0X1C; } if(N>=100 && N<=5000) { C=N/100; //計算電容的大小 b[2]=C/1
50、0; //計算電容值的十位 b[3]=C-b[2]*10; //計算電容值的各位 } } Display(); //顯示電容的大小 } } void int0(void) interrupt 0 //第一次中斷開始計數(shù),第二個中斷停止計數(shù) { T_flag=!T_flag; if(T_flag==1) { TR0=1; //開始計時 } if(T_flag==0) { TR0=0; //停止計時 EX0=0; //關(guān)閉中斷 _reset=0; //停止發(fā)出方波 N=TH0*256+TL0; //計算計數(shù)器的值 N=N*5/3; TH0=0x00; //恢復(fù)初值 TL0=0x00; } } 23
- 溫馨提示:
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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案