基于單片機的蓄電池容量檢測系統(tǒng)的設(shè)計【含程序、電路圖】
基于單片機的蓄電池容量檢測系統(tǒng)的設(shè)計【含程序、電路圖】,含程序、電路圖,基于,單片機,蓄電池,容量,檢測,系統(tǒng),設(shè)計,程序,電路圖
畢 業(yè) 設(shè) 計(論 文)
設(shè)計(論文)題目: 基于單片機的蓄電池容量檢測系
系統(tǒng)的設(shè)計
學(xué)生姓名:
二級學(xué)院:
班 級:
提交日期:
目 錄
摘 要 III
Abstract IV
第一章 緒 論 1
1.1 課題研究的相關(guān)背景 1
1.2 課題研究的意義 1
1.3 國內(nèi)外研究狀況 1
1.4 本課題主要研究的內(nèi)容 2
第二章 系統(tǒng)硬件的設(shè)計 3
2.1 系統(tǒng)的方案選擇 3
2.2 系統(tǒng)的總體設(shè)計方案 4
2.3 單片機STC89C52的概況 5
2.4 主要元件 7
2.5 蓄電池容量檢測系統(tǒng)硬件電路設(shè)計 13
2.6 蓄電池容量算法 15
第三章 系統(tǒng)軟件設(shè)計 17
3.1 主程序設(shè)計 17
3.2 子程序設(shè)計 17
3.3 程序清單 19
第四章 系統(tǒng)實物制作 20
4.1 系統(tǒng)原理圖 20
4.2 實物焊接 20
4.3 器件詳細清單 20
4.4 程序的編譯 20
4.5 系統(tǒng)調(diào)試 21
4.6 實物演示 21
第五章 總 結(jié) 31
參考文獻 32
附錄1 系統(tǒng)原理圖 34
附錄2 系統(tǒng)程序清單 35
致 謝 43
- IV -
基于單片機的蓄電池容量檢測系統(tǒng)的設(shè)計
摘 要
本課題為基于單片機的蓄電池容量檢測系統(tǒng)的設(shè)計。系統(tǒng)以單片機為核心,硬件主要包括單片機、LCD1602的顯示器、PCF8591數(shù)據(jù)采集器、分壓器和TC35通信等。當(dāng)測量蓄電池容量時,系統(tǒng)會通過分壓電阻進行分壓,PCF8591數(shù)據(jù)獲取器進行數(shù)據(jù)采集,由單片機進行轉(zhuǎn)換,通過LCD1602顯示器進行顯示。當(dāng)觀察LCD1602顯示器時,可以清楚的看到蓄電池的容量,以此來判斷該蓄電池能否滿足該電力系統(tǒng)。當(dāng)檢測的蓄電池容量超過14V時向手機發(fā)送短信。
為了確保用電設(shè)備在斷電后仍然能正常并且安全的工作,就必須確保蓄電池容量的足夠,所以實時的檢測蓄電池的容量,對電路安全穩(wěn)定的工作意義重大。在系統(tǒng)的總體設(shè)計方案出來之后,對系統(tǒng)的硬件部分進行了詳細的過成設(shè)計,并繪制出相應(yīng)的系統(tǒng)原理圖,并根據(jù)原理圖制作了相應(yīng)的實物。根據(jù)控制的要求,來繪畫出系統(tǒng)軟件流程圖,并且編寫了相應(yīng)的系統(tǒng)程序。最后對實物進行整體的調(diào)試,調(diào)試的結(jié)果說明該系統(tǒng)的設(shè)計滿足了控制的要求。
關(guān)鍵詞:STC89C52單片機;PCF8591數(shù)據(jù)采集器;LCD1602的顯示器;直流穩(wěn)壓電源;容量顯示;TC35通信
Abstract
Design of microcontroller based on battery capacity detection system
Abstract
This topic is the design of the battery capacity detection system based on single chip microcomputer.?System as the core, the hardware mainly includes MCU, LCD1602 display, PCF8591 data collector, voltage divider and TC35 communication.?When measuring the capacity of the battery, the system will be divided by the voltage divider resistance, PCF8591 data acquisition device for data collection, by the microcontroller for conversion, through the LCD1602 display.When observing the LCD1602 display, you can clearly see the battery capacity, in order to determine whether the battery can meet the power system.?Send text messages to mobile phones when the battery capacity is detected by more than 14V.?
In order to ensure that the use of electrical equipment in power after the still can be normal and safe work, it is necessary to ensure that the battery capacity is sufficient, so the real-time detection of the battery capacity, the safety and stability of the circuit is of great significance.After the overall design of the system, the hardware part of the system was designed in detail, and the corresponding system schematic diagram was drawn, and the corresponding objects were made according to the principle diagram.According to the control requirements, to draw the system software flow chart, and the preparation of the corresponding system program. Finally, the overall system debugging, debugging results show that the design of the system to meet the requirements of the control.?
Key words: STC89C52 microcomputer; PCF8591 data acquisition device; LCD1602 Display;DC power supply;Capacity display;TC35 Communications
第一章 緒論
第一章 緒 論
1.1 課題研究的相關(guān)背景
在二十一世紀,電力和通信的系統(tǒng)在現(xiàn)代的經(jīng)濟的迅速發(fā)展中間發(fā)揮著巨大的作用。目前發(fā)電廠、變電站和通信基站中的直流電路系統(tǒng)中,基本都是由蓄電池組、充電浮充電裝置和熔斷器等器件組成的。在電力系統(tǒng)和通信系統(tǒng)中,保護裝置以及控制裝置等一系列電路設(shè)備中都需要使用到蓄電池組,所有它性能和狀態(tài)的好壞直接影響到這一系列系統(tǒng)運行的安全和可靠性。因此,檢查蓄電池組的性能和運行狀態(tài)的正常,就能夠保證這些設(shè)備在沒有交流電源的特殊的情況下依舊能夠安全的運行。對蓄電池實施監(jiān)測,并重視對它的日常性維護,才能夠保證蓄電池擁有足夠的放電容量來應(yīng)付可能會發(fā)生的特殊事件,比如火電中斷等事件。
蓄電池目前是使用的最廣泛的一種電源。蓄電池利用其中的化學(xué)物質(zhì)可逆的化學(xué)反應(yīng)來實現(xiàn)再充電,它將化學(xué)能轉(zhuǎn)換成可以直接使用的電能并將其存儲起來的器件。它的工作原理:充電時它利用化學(xué)反應(yīng),將電能存儲為化學(xué)能,使用時再將化學(xué)能轉(zhuǎn)換為可用電能對用電器件進行輸出。蓄電池它作為一種性能可靠且循環(huán)利用的化學(xué)電能,它的價值也與日俱增,它廣泛應(yīng)用在電力、交通、通信等部門的設(shè)備中,已經(jīng)成為其不可缺少的重要組成部分。因此蓄電池的容量的多少對系統(tǒng)來說非常重要。
1.2 課題研究的意義
在二十一世紀,蓄電池組的性能直接關(guān)系到設(shè)備的正常運行是因為它已經(jīng)是很多設(shè)備的動力源或應(yīng)急電源。需要經(jīng)常通過對蓄電池參數(shù)進行嚴格測量,用來保證蓄電池組處于最佳的工作狀態(tài)來提高電池的使用壽命來讓其可靠運行。人工測量,不僅速度慢而且測量精度也有點低,尤其是其中影響人體健康的有害氣體。通過進行自動測量蓄電池參數(shù),它的測量速度和測量精度可以得到提高,這是十分重要的。之所以會一個電池的故障破壞到整個系統(tǒng),是因為系統(tǒng)是由多個單體電池串聯(lián)而成的,因此通過檢測系統(tǒng)電池的充電和放電過程等各方面的數(shù)據(jù)在線實時檢測。要想來提高整個電池系統(tǒng)的安全性和穩(wěn)定性,就必須要找到損壞的和性能明顯下降的電池。在受到環(huán)境限制下,為了對單一電池進行維修和日常的維護,單獨的電壓和電流的變化通過LCD顯示,可以每個電池用一個單獨的系統(tǒng)來確保系統(tǒng)簡單而且實用。
1.3 國內(nèi)外研究狀況
對單電池電壓的監(jiān)測在我國蓄電池監(jiān)測系統(tǒng)中是主要內(nèi)容。目前,測量技術(shù)已經(jīng)成熟的方面是關(guān)于溫度和電流的常規(guī)測量。測量單個電壓量的方法在電壓的各種測量方法上非常簡單的一種。在電池組中,測量其中某一個單電池電壓是其中最為關(guān)鍵的??茖W(xué)家們通過了大量的研究工作來解決如何測量單電池電壓問題,其中用繼電器來切換電池組中的每只電池是十分有效的。體積較大、成本較高、壽命短暫、速度太慢、電壓值計算復(fù)雜是觸點式繼電器切換的缺點,因此提出另外一種方法V/F轉(zhuǎn)換器來轉(zhuǎn)換模擬信號。。存在的問題是用V/F轉(zhuǎn)換作為A/D轉(zhuǎn)換器時,如何讓輸入信號電壓高于芯片的最大工作電壓。電容上的電壓在A/D轉(zhuǎn)換過程中發(fā)生變化降低了它的測量精度,測量器件的動作延遲導(dǎo)致采樣時間過長,使該方法應(yīng)用較少。我國研制了ZXJ24/2-1型監(jiān)測儀。
1989年,無人值守場站PBEC鉛酸蓄電池綜合在線狀態(tài)監(jiān)測系統(tǒng)在美國電力研究所和國家電能研究公司合作下成功研發(fā)。1994年,耗資200萬美元的研究完成樣機的現(xiàn)場試驗。在每一只電池上安裝多傳感器電池,每個電池組監(jiān)測器可以監(jiān)測256個實時數(shù)據(jù)。想要監(jiān)測更多的電池組監(jiān)測器需要通過MODEMS與公用電話線。該技術(shù)已經(jīng)應(yīng)用于電廠等各個領(lǐng)域。
韓國人延長整個系統(tǒng)的使用壽命就必須要防止過度充放電,儲存設(shè)備可以使用獨立光伏系統(tǒng)。該系統(tǒng)可以監(jiān)測蓄電池組的單電池電壓、通過的電流和電解液的比重等。一個20個通道的掃描器、一個數(shù)字多路選擇器和一個筆記本電腦可以組成一個便攜式數(shù)據(jù)采集系統(tǒng)。該系統(tǒng)通過一種“電流中斷技術(shù)”,不僅可以監(jiān)測以上數(shù)據(jù)還可以算出電池組內(nèi)部電阻。
1.4 本課題主要研究的內(nèi)容
本課題所要研究的主要內(nèi)容總體有以下幾個方面:
1.了解蓄電池容量檢測系統(tǒng)的相關(guān)背景,研究該系統(tǒng)的具體需求和功能;
2.設(shè)計出基于單片機的蓄電池容量檢測系統(tǒng)的設(shè)計方案,并給出硬件連接方案;
3.設(shè)計出單片機控制算法,并完成相關(guān)程序的編寫;
4.研究總的電路圖,了解其基本功能,并且能夠掌握住各個主要功能部分的設(shè)計方法和原理,總結(jié)出設(shè)計思想,發(fā)現(xiàn)該設(shè)計的在現(xiàn)實中實用價值。
5.設(shè)計蓄電池容量檢測系統(tǒng)時,能夠利用LCD1602模塊將蓄電池電壓及容量信息顯示出來。
6.當(dāng)待測蓄電池超過14V時發(fā)送短信提示。
- 42 -
第二章 系統(tǒng)硬件的設(shè)計
第二章 系統(tǒng)硬件的設(shè)計
2.1 系統(tǒng)的方案選擇
2.1.1選擇芯片
方案1:
采用HT46R22系列的單片機。
這種單片機是為A/D轉(zhuǎn)換的而設(shè)計的一種8位高性能精簡指令集所構(gòu)成的,比如傳感器信號輸入。引腳和功能相同的就是掩膜版本HT46C22和OTP版本HT46R22。在帶傳感器的A/D轉(zhuǎn)換和工業(yè)控制等系統(tǒng)中需要單片機可以實現(xiàn)低的能耗,靈活的使用I/O,在A/D轉(zhuǎn)換的多通道傳輸以及I2C通信暫停和喚醒等方面的功能。
由于它比較復(fù)雜,導(dǎo)致它較貴的價格,并且它的焊接也不太方便,種種原因?qū)е略撈骷^長的開發(fā)制作。
方案2:
采用STC89C52單片機。
多功能保護器是該單片機的核心控制單元,十分符合本次課題的系統(tǒng)設(shè)計,它能夠?qū)崿F(xiàn)PCF8591數(shù)據(jù)采集器的信號處理和控制TC35模塊的報警短信。STC89C52單片機控制簡單和操作方便又可以利用它控制和尋址等方面的功能來實現(xiàn)本次設(shè)計。該單片機擁有8K的存儲空間來保證存儲操作指令,可以按位尋址使用I/O口,最重要的是它的價格十分低。
通過比較,方案2是本設(shè)計較理想的方案。
并且從價格和操作上看,也選擇方案2。
2.1.2蓄電池電壓檢測模塊的選擇
方案1:
采用PCF8591系列模塊。
1個串行I2C總線接口接入4個模擬輸入和1個模擬輸出可以組成一個單獨供電且單片集成PCF8591器件,它的數(shù)據(jù)獲取是8-bit CMOS。8個PCF8591器件可以同時連接在同一個I2C總線上,它的硬件地址編程可以使用它的地址引腳A0, A1和A2。PCF8591的I2C總線可以使用雙線雙向串行來傳輸?shù)刂泛涂刂菩盘柕葦?shù)據(jù)。它的模擬量是用多路復(fù)用輸入的,它的模數(shù)和數(shù)模轉(zhuǎn)換都是8位的,因此它的片上可以進行跟蹤和保持等方面的功能。I2C總線的最大速度決定了它的最高轉(zhuǎn)換速率。
方案2:
采用DS2438系列模塊。
DS2438智能電池監(jiān)視器是一個專門為測試電池組數(shù)據(jù)的器件。它可以存儲各種電池的參數(shù),是精確實時測試蓄電池信息的很好的器件。DS2438和中央微控制器間使用1條連線來接收和發(fā)送信息,這就說明可使用一個電池電源、地線和1-Wire接口來組成電池組。
通過比較,方案1適合本次的蓄電池容量檢測系統(tǒng),它性能穩(wěn)定,價格便宜。
2.1.3顯示器的選擇
方案1:
采用HD44780液晶顯示模塊。
它是一種的字符型的液晶顯示器件,其他公司使用的電路如NOVATEK公司的NT3881,SUNPLUS公司的SPLC78A01,SAMSUNG公司的KS0066等都與它的主控制驅(qū)動電路HD44780(HITACHI)相兼容。利用多個5×7或者5×10點陣塊可以來形成的液晶顯示器,在智能儀表和辦公自動化等領(lǐng)域以經(jīng)在使用它。
方案2:
采用LCD1602顯示模塊。
它是一種點陣型液晶顯示,專門用來顯示字母、數(shù)字、符號等數(shù)據(jù)的。由于它每位和每行之間都有間隔,所有它可以很好的顯示每一個字符卻不能顯示形象的圖形。即使使用自定義CGRAM,結(jié)果也是一樣的。LCD1602是指顯示的內(nèi)容為16×2,它可以顯示兩行,且每行16個字符。
通過比較,本設(shè)計只需采用方案2。
2.1.4 GSM通信模塊選擇
方案1:
采用TC35系列模塊。
TC35可以實現(xiàn)數(shù)據(jù)傳輸和短消息的服務(wù),是Siemens公司無線通信GSM模塊的主要產(chǎn)品。GSM模塊在900MHz工作時耗能2W(900M),在1800MHz工作時耗能為1W(1800M),限制在3.3V-5.5V電壓下工作。TC35I和TC35是同一系列的產(chǎn)品,但是它們外形、體積和電壓等方面是不同的,TC35I比TC35價格貴的原因是因為TC35I的使用能耗是十分低的,有利于節(jié)省。
方案2:
采用MC35系列模塊。
西門子公司GPRS模塊MC35不僅擁有方案一的所有功能,還能利用GPRS。MC35I價格高過TC35是因為它的傳輸速度要比TC35快的多。
通過比較,方案1適合本次的短信發(fā)送系統(tǒng),它出貨量大,價格便宜。
2.2 系統(tǒng)的總體設(shè)計方案
為了實現(xiàn)系統(tǒng)對于蓄電池容量的檢測,設(shè)計了如圖2.1所示的系統(tǒng)。
本次的設(shè)計系統(tǒng)主要分為液晶顯示電路、蓄電池電壓檢測電路、單片機核心電路和短信發(fā)送電路。系統(tǒng)以STC89C52單片機為核心,利用電源電路對被測蓄電池進行5倍的分壓,利用蓄電池電壓檢測電路進行檢測,通過單片機與LCD1602之間進行轉(zhuǎn)換,在液晶顯示屏上顯示被測蓄電池的電壓以及容量,這樣方便我們了解該蓄電池是否能滿足它所使用的電路系統(tǒng)。當(dāng)蓄電池電壓高于14V是,可以知道該蓄電池電量已經(jīng)充滿,利用TC35向手機發(fā)送短信。
圖2.1系統(tǒng)總體設(shè)計框圖
2.3 單片機STC89C52的概況
STC89C52是一個擁有8K可編程的Flash存儲器,它的控制器是由8位CMOS,因此它擁有很低的能耗。STC89C52的指令和引腳與工業(yè)上的80C51等系列產(chǎn)品完全相兼容,主要是因為存儲技術(shù)的高密度和不易丟失性造成的。通常使用的編程器可以在它的片上的Flash進行編程。十分靈活的控制各種應(yīng)用系統(tǒng)是STC89C52單片機的主要特點,是因為可自主編程的Flash和8位的CPU在它的芯片上。在掉電的保護方式下,RAM的內(nèi)容可以保存,振蕩器被凍結(jié),單片機的所有工作都停止,一直到下一個的中斷或者硬件可以復(fù)位為止【1】。通過把程序的代碼燒寫進這種單片機,并在它的外圍接上電源電路、晶振電路和復(fù)位電路等各種模塊,就構(gòu)成了一個獨立的系統(tǒng)。
1. STC89C52標(biāo)準功能:
1)8k字節(jié)的Flash。
2)256字節(jié)的RAM。
3)32位的I/O口線。
4)看門狗定時器。
5)2個數(shù)據(jù)指針。
6)3個16位的定時器/計數(shù)器。
7)1個6向量的2級中斷結(jié)構(gòu)。
8)全雙工的串行口。
9)片內(nèi)晶振和時鐘電路。
2.STC89C52引腳介紹:
圖2.2 引腳圖
1)Vcc(40腳):+5V電源端;
2)Vss(20腳):接地端。
3)XTAL1(19腳):當(dāng)做外部時鐘來使用時必須接地,因為它的片內(nèi)是晶振電路的反向放大器輸入端。
4)XTAL2(18腳):連接外部的晶體和微調(diào)電容一端。當(dāng)通過示波器來查看這個端口是否有脈沖信號的輸出可以判斷STC89C52的晶振電路是否在正常工作。
5)RST(9腳):它高電平時有效,輸入復(fù)位信號。想要完成復(fù)位的操作,就需要在這里保持兩個機器周期(24個時鐘的振蕩周期)高電平。
6)ALE/PROG(30引腳):是地址鎖存允許的信號端。當(dāng)STC89C52通電正常工作之后,此引腳可以不斷的向外輸出正脈沖信號。當(dāng)通過示波器來查看這個端口是否無脈沖信號的輸出,只有當(dāng)信號輸出時才能說明STC89C52的芯片是好的。
7)PSEN(29腳);是程序存儲所允許的輸出信號引腳。當(dāng)它作為片外存儲器時,就會定時的輸出負脈沖的選通信號。這個引腳接的是ERROM的OE端。當(dāng)通過示波器查看PSEN端是否有脈沖輸出,當(dāng)有時就說明CPU工作正常。
8)/VPP(31腳):是外部程序存儲器地址允許輸入端。CPU訪問片內(nèi)ERROM/ROM就需要EA引腳連接高電平,才能執(zhí)行內(nèi)部程序存儲器中的指令。當(dāng)接低電平時,CPU只會訪問外部ERROM/ROM中的指令。連接沒有芯片的器件時,需要將EA引腳接地并且外擴ERROM。
3.I/O(輸入/輸出端口,P0,P1,P2,P3)
P0口:P0口是漏極開路8位準雙向I/O端口之一;
P1口:是8位準雙向I/O端口;
P2口:用做普通的I/O,或高8位的地址總線輸出地址(準雙向口);
P3口:雙功能口:可以做普通的I/O口用,也可以自定義來實現(xiàn)第二功能的操作。見表2.1。
表2.1 P3口的第二功能表
引腳
第二功能
P3.0
RXD(串行輸入口)
P3.1
TXD(串行輸出口)
P3.2
INT0(外部中斷0)
P3.3
INT1(外部中斷1)
P3.4
T0(定時器0外部中斷)
P3.5
T1(定時器1外部中斷)
P3.6
WR(外部存儲器寫選通)
P3.7
RD(外部存儲器讀寫通)
2.4 主要元件
2.4.1PCF8591數(shù)據(jù)采集器
1個串行I2C總線接口接入4個模擬輸入和1個模擬輸出可以組成一個單獨供電且單片集成PCF8591器件,它的數(shù)據(jù)獲取是8-bit CMOS。8個PCF8591器件可以同時連接在同一個I2C總線上,它的硬件地址編程可以使用它的地址引腳A0, A1和A2。PCF8591的I2C總線可以使用雙線雙向串行來傳輸?shù)刂泛涂刂菩盘柕葦?shù)據(jù)。它的模擬量是用多路復(fù)用輸入的,它的模數(shù)和數(shù)模轉(zhuǎn)換都是8位的,因此它的片上可以進行跟蹤和保持等方面的功能。I2C總線的最大速度決定了它的最高轉(zhuǎn)換速率。
1.PCF8591的功能
1)多路模擬輸入。
2)內(nèi)置跟蹤保持。
3)8-bit模數(shù)轉(zhuǎn)換。
4)8-bit數(shù)模轉(zhuǎn)換。
2.引腳及功能
?PCF8591引腳圖如圖2.3所示。
圖2.3外接示意圖
表2.2 PCF8591的引腳和功能表
引腳
名稱
功能
1
AIN0
模擬信號輸入端
2
AIN1
模擬信號輸入端
2
AIN2
模擬信號輸入端
4
AIN3
模擬信號輸入端
5
A0
引腳地址端
6
A1
引腳地址端
7
A2
引腳地址端
8
VSS
電源端
9
SDA
I2C總線的數(shù)據(jù)線
10
SCL
I2C總線的時鐘線
11
OSC
時鐘1)內(nèi)部輸出端;2)外部輸入端
12
EXT
時鐘選擇線內(nèi)部時?EXT?接地
13
AGND
信號地模擬
14
VREF
基準電源端
15
AOUT
輸出端D/A?轉(zhuǎn)換
16
VDD
電源端
地址:設(shè)置以后數(shù)據(jù)傳輸方向的讀/寫位的是最后一位地址字節(jié)。地址在I2C總線協(xié)議成立后作為第一個字節(jié)發(fā)送。見下圖2.4
圖2.4地址
3.芯片特點:
1)單獨供電
2)PCF8591的操作電壓范圍2.5V-6V
3)低待機電流
4)通過I2C總線串行輸入/輸出
5)PCF8591的采樣率由I2C總線速率決定
6)PCF8591通過3個硬件地址引腳尋址
7)單端或差分可編程4個模擬輸入
8)自動增量頻道選擇
9)PCF8591的模擬電壓范圍從VSS到VDD
10)PCF8591內(nèi)置跟蹤保持電路
11)8-bit逐次逼近A/D轉(zhuǎn)換器
12)通過1路模擬輸出實現(xiàn)DAC增益
4.PCF8591原理圖:
如下圖2.5
圖2.5 PCF8591原理圖
5.功能特點:
控制字: PCF8591控制其它器件時需要利用存儲在控制寄存器中的第二個字節(jié)。系統(tǒng)每次A/D轉(zhuǎn)換后通道號將自動增加是因為自動增量為1。?
D/A轉(zhuǎn)換:數(shù)字量轉(zhuǎn)換成模擬量。外部電壓和選擇開關(guān)組成D/A轉(zhuǎn)換器,PCF8591的輸出電壓會被新收到的數(shù)據(jù)來改變。?
A/D轉(zhuǎn)換:檢測到的模擬量轉(zhuǎn)換成數(shù)字量。當(dāng)PCF8591接收到第一個有效讀模式的地址后,就開始了一個A/D轉(zhuǎn)換周期。當(dāng)A/D轉(zhuǎn)換周期開始后,所有的輸入信號都將轉(zhuǎn)換為對應(yīng)的8位二進制碼并保存進芯片。
2.4.2 LCD顯示
1602LCD的基控制器是HD44780,帶背光的比不帶背光的厚,但是兩者在應(yīng)用中是沒有差別的,尺寸如圖2.6所示。
圖2.6 LCD1602結(jié)構(gòu)圖
1. 主要技術(shù)參數(shù):
1)容量:16×2個字符;
2)芯片工作電壓:4.5—5.5V;
3)工作電流:2.0mA(5.0V);
4)模塊最佳工作電壓:5.0V;
5)字符尺寸:2.95×4.35(W×H)mm。?
2.引腳功能說明:
16引腳1602LCD標(biāo)準是,如下表2.3所示:
表2.3 引腳接口說明表
編號
符號
引腳說明
1
VSS
電源地
2
VDD
電源正極
3
VL
液晶顯示偏壓
4
RS
數(shù)據(jù)/命令選擇
5
R/W
讀/寫選擇
6
E
使能信號
7
D0
數(shù)據(jù)
8
D1
數(shù)據(jù)
9
D2
數(shù)據(jù)
10
D3
數(shù)據(jù)
11
D4
數(shù)據(jù)
12
D5
數(shù)據(jù)
13
D6
數(shù)據(jù)
14
D7
數(shù)據(jù)
15
BLA
背光源正極
16
BLK
背光源負極
第1腳:VSS為地電源。
第2腳:VDD接+5V。
第3腳:VL為液晶顯示器對比度調(diào)整端。接入一個大小10K的電位器來調(diào)整液晶顯示器的對比度,因為當(dāng)它接正電源時最弱,接地時最強。 “鬼影”現(xiàn)象的出現(xiàn)是因為對比高。
第4腳:RS為寄存器選擇。高電平和低電平分別選擇數(shù)據(jù)寄存器、指令寄存器。
第5腳:R/W為讀寫信號線。高電平和低電平時分別進行讀操作和寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址;當(dāng)RS為低電平R/W為高電平時可以讀忙信號;當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)【2】。
第6腳:E端為使能端。當(dāng)其高電平轉(zhuǎn)變成低電平時,顯示器執(zhí)行命令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
第15腳:背光源正極。
第16腳:背光源負極。
2.4.3直流穩(wěn)壓電源
直流穩(wěn)壓電源利用它的負載電阻與為它供電的交流電源發(fā)生變化,來為其它用電器輸出穩(wěn)定的直流電源。目前,用電設(shè)備向著更穩(wěn)定可靠、更詳細的精度這些方面發(fā)展,因此這些電子設(shè)備的供電電源就需要提高更多的方面。它可以調(diào)節(jié)輸出的電壓和電流值來適應(yīng)各種電路情況。它可以自動轉(zhuǎn)換穩(wěn)壓或穩(wěn)流狀態(tài),并能夠準確的識別其大小。使用時,需要加入保護電路以免電路短路時破壞器件。
特點:
1)輸出顯示:輸出電壓電流LED顯示。
2)采用19英寸標(biāo)準化尺寸。
3)體積小、重量輕、節(jié)能高效。
4)恒壓恒流:自動切換輸出恒壓恒流,可調(diào)節(jié)電壓電流值。
5)保護功能:過壓、過流、過載和欠壓等保護。
6)短路特性:工作狀態(tài)下長時間短路。
7)外接補償:降低因輸出回路較長等造成的壓降。
8)過壓保護值:當(dāng)輸出過壓值后切斷輸出并鎖定。
2.4.4 TC35通信
TC35模塊是西門子工業(yè)中支持中文短信息的GSM模塊的重要組成部分。它是一款雙頻900/1800MHZ的模塊。目前,TC35正廣泛應(yīng)用于遠程監(jiān)控和無線通訊等領(lǐng)域。并且它還擁有GPRS方面的功能。
性能信息:
1)信息傳送內(nèi)容:語音和數(shù)據(jù)。
2)電源:單電源 3.3V ~ 5.5V。
3)頻段:雙頻GSM900MHz 和 DCS1800 MHz(Phase 2+)。
4)發(fā)射功率:2W (GSM900MHz Class 4) 1W (DCS1800MHz Class 1)。
5)SIM 卡連接方式:外接。
6)天線:由天線連接器連接外部天線。
7)外型尺寸:54.5 x 36 x 6.7mm。
8)短信息:MT,MO,CB和PDU模式。
9)通訊接口:RS232(指令和數(shù)據(jù)雙向傳送)。
10)模塊復(fù)位:采用AT指令或掉電復(fù)位。
2.5 蓄電池容量檢測系統(tǒng)硬件電路設(shè)計
2.5.1單片機最小系統(tǒng)
圖2.7 單片機最小系統(tǒng)
單片機、晶振電路和復(fù)位電路組成的單片機的最小系統(tǒng),這是任何單片機系統(tǒng)能夠運行程序、正常工作所必不可缺少的重要組成部分。由于STC89C52單片機的片內(nèi)有程序存儲器,大小為8K,所以該系統(tǒng)只需要外接晶振電路與復(fù)位電路。
2.5.2液晶顯示電路
圖2.8 LCD1602液晶顯示電路
采用LCD1602顯示屏,在電路通電的情況下,可以在顯示屏上看到當(dāng)前的蓄電池容量值;在屏幕的下方還有一位數(shù)值,顯示的是蓄電池電壓。
2.5.3蓄電池電壓檢測電路
圖2.9 蓄電池電壓檢測電路
利用PCF8591數(shù)據(jù)采集器對蓄電池進行數(shù)據(jù)采集,對數(shù)據(jù)進行A/D轉(zhuǎn)換,把模擬信號轉(zhuǎn)換為數(shù)字信號,傳輸進單片機中。
2.5.4電源電路
圖2.10 電源電路
采用5倍的分壓,使待測的蓄電池電壓進入設(shè)計電路中降低電壓,保證電路中運行安全。
2.5.5 TC35通信電路
圖2.11 TC35引腳圖
需要給TC35個大于3. 3V的穩(wěn)定電源來使其工作,并且要保證給它的IGT信號是一個持續(xù)時間不能超過1ms,且延時大于100ms的低脈沖信號,這樣才能保證電路安全穩(wěn)定的工作。利用TC35向手機發(fā)送報警短信。
2.6 蓄電池容量算法
2.6.1容量換算的算法
蓄電池的容量系數(shù)是由放電終點電壓和事故放電持續(xù)時間來決定的。蓄電池容量是由它們?nèi)矫婀餐绊憶Q定的。
所有蓄電池的計算容量:
式中:
CS:事故放電容量(Ah);
KCC:蓄電池容量系數(shù);
KREL:可靠系數(shù),一般取KREL=1.40。
當(dāng)放電期間事故負荷恒定不變時,事故放電時間TS(h)和事故放電電流IS(A)的乘機決定了事故放電容量CS。即
CS=IS*TS
2.6.2恒功率的算法
計算公式:
W:每節(jié)電池提供的功率;
P:額定功率;
F:負載功率因數(shù);
η:逆變器效率;
N:電池組額定節(jié)數(shù)。
2.6.3恒電流的算法
計算公式:
AH:電池安時數(shù);
P:額定功率;
F:負載功率因數(shù);
η:逆變器效率;
UMIN:UPS電池關(guān)閉時瞬時電壓,一般每單元1.75V。
2.6.4估計的算法
(1)用于延時1小時以下:
(2)用于延時1小時以上:
AH:電池安時數(shù);
P:額定功率;
F:負載功率因數(shù);
η:逆變器效率;
UMIN:UPS電池關(guān)閉時瞬時電壓,一般每單元1.75V;
C(30分鐘)=1.1;
C(60分鐘)=0.6;
第三章 系統(tǒng)軟件設(shè)計
第三章 系統(tǒng)軟件設(shè)計
3.1 主程序設(shè)計
根據(jù)任務(wù)書的要求,設(shè)計以下系統(tǒng)的軟件程序流程圖:
圖3.1 主程序流程圖
3.2 子程序設(shè)計
3.2.1蓄電池電壓檢測流程圖
圖3.2 蓄電池電壓檢測流程圖
3.2.2 LCD液晶顯示流程圖
圖3.3 LCD液晶顯示流程圖
3.2.3 短信發(fā)送流程圖
圖3.4 短信發(fā)送流程圖
3.3 程序清單
見附錄2
第四章 系統(tǒng)實物制作
第四章 系統(tǒng)實物制作
4.1 系統(tǒng)原理圖
見附錄1
4.2 實物焊接
首先將所用材料按順序的放置在桌面上,接著用萬用表檢查所有元器件的好壞,對照元器件來判斷各個引腳的作用,來確保電路焊接的正確性。將各個元器件合理的放入萬能板中,分步進行焊接,并不時的利用萬用表檢測焊接狀態(tài)是否正確,焊接完成后對實物進行整體檢測。
4.3 器件詳細清單
表4.1器件選型方案的詳細清單
器件
代號
型號
數(shù)量
單片機
U1
STC89C52
1
數(shù)據(jù)采集器
U2
PCF8591
1
雙刀雙擲開關(guān)
SW1
1
行程開關(guān)
AJ1
SW-PB
1
極化電容器(徑向)
C1,C4
10uF/25V
2
電容器
C2,C3
30p
2
電容器
C5
0.1uF
1
紅外發(fā)光二極管
D1
RED
1
低電壓電源連接器
J1
DC PORT
1
液晶顯示器
LCD1
LCD1602
1
電阻
R1,R4,R5
10k
3
電阻
R2
40k
1
電阻
R3
10k
1
電阻
R6
1k
1
隔離電阻網(wǎng)絡(luò)
RP1
1
晶體振蕩器
Y1
11.0592M
1
電阻抽頭
W1
1
接線插槽
P1
Header 4
1
端子
P2
Header 2
1
杜邦線
若干
排針
若干
GSM通信
TC35
1
萬能板
1
4.4 程序的編譯
在實物焊接好之后,就要進行軟件的仿真。將寫好的程序利用Keil軟件進行編譯,檢查沒有錯誤后生成.HEX文件。
將焊接好的實物與電腦連接,利用Keil軟件,將之前生成.HEX文件寫入STC89C52單片機中。
4.5 系統(tǒng)調(diào)試
在整個設(shè)計完成之后,對其進行整體調(diào)試。在調(diào)試的過程中驗證系統(tǒng)的設(shè)計是否正確,是否達到預(yù)期的要求,看各個要求是否達成。
4.6 實物演示
4.6.1電路初始狀態(tài)
如圖4.1所示。
圖4.1 電路初始狀態(tài)
4.6.2電路通電
按下電源總開關(guān)時電路通電,如圖4.2所示。
圖4.2 電路通電
4.6.3穩(wěn)壓電源
不同的直流輸入電壓模擬不同使用的蓄電池
圖4.3 調(diào)節(jié)輸入電壓
4.6.4不同電壓下容量顯示
調(diào)節(jié)穩(wěn)壓電源,模擬蓄電池容量,進行測量。
圖4.4 顯示00%容量(1)
圖4.5 顯示00%容量(2)
圖4.6 顯示10%容量(1)
圖4.7 顯示10%容量(2)
圖4.8 顯示20%容量
圖4.9 顯示30%容量
圖4.10 顯示40%容量
圖4.11 顯示50%容量
圖4.12 顯示60%容量
圖4.13 顯示70%容量
圖4.14 顯示80%容量
圖4.15 顯示99%容量(1)
圖4.16 顯示99%容量(2)
圖4.17 顯示99%容量(3)
圖4.18 顯示99%容量(4)
第五章 總 結(jié)
第五章 總 結(jié)
本次設(shè)計中,我通過對STC89C52D單片機、LCD1602液晶顯示器、PCF8591數(shù)據(jù)采集器和TC35通信的學(xué)習(xí),努力設(shè)計電路并制作實物,經(jīng)過不斷調(diào)試,目前已經(jīng)可以使用該系統(tǒng)對蓄電池容量進行檢測,但是由于時間等原因短信發(fā)送還沒有做到。這次的設(shè)計讓我學(xué)到了更多的專業(yè)性的知識,通過將大學(xué)四年學(xué)到理論知識綜合的運用起來,使自己對于原來所學(xué)的知識有了更進一步的理解。
在設(shè)計的過程中,通過查找各個方面的資料,再到自己動手制作實物,不斷努力解決自己在設(shè)計中所遇到的各種問題,從而培養(yǎng)了我獨立解決問題的能力,同時加強了自己的動手能力并了解自己所存在的問題。
雖然最后設(shè)計達到了部分的預(yù)期要求,也實現(xiàn)了蓄電池容量的測試。但是,在整個的設(shè)計過程中,如果沒有老師與同學(xué)的幫助,我就無法完成這次的設(shè)計。之后我還需要查詢更多方面的知識,不斷的請教老師,充實自己的知識面,才能更好的實現(xiàn)自己的目標(biāo),使自己更全面發(fā)展。
這次畢業(yè)設(shè)計的不足之處是利用TC35通信模塊發(fā)送短信給手機沒有成功。通過這個問題,我明白做任何事情都需要細心,仔細檢查各個部分,分析問題。
這次的畢業(yè)設(shè)計,雖然說是結(jié)束了,但也是一個新的開始。它讓我學(xué)到了很多,讓我看清了自己本身存在的不足,相信在未來自己可以不斷奮斗,努力完善自我,讓自己離理想更近一步。
參考文獻
參考文獻
[1] 陳云路,吳欽木.?dāng)?shù)字頻率計設(shè)計[J].現(xiàn)代機械,2015,(3).
[2] 王承林.基于Proteus在LCD1602中漢字顯示系統(tǒng)的設(shè)計[J].邢臺學(xué)院學(xué)報.2015,
(4).
[3] 李平等.單片機入門與開發(fā)[M]. 北京:機械工業(yè)出版社,2008.
[4] 馬青玉.高壓蓄電池組的計算機檢測設(shè)計[J].電子工程師,2002,28(1).
[5] 鐘富昭等.8051單片機典型模塊設(shè)計與應(yīng)用[M]. 北京:人民郵電出版社,2007.
[6] 陳海宴.51單片機原理及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010.
[7] 李朝青.單片機&DSP外圍數(shù)字IC技術(shù)手冊[M]. 北京:北京航空航天大學(xué)出版社,2009.
[8] 龔運新,羅慧敏,彭建軍.單片機接口C語言開發(fā)技術(shù)[M]. 北京:清華大學(xué)出版社,2009.
[9] 陳杰.智能鉛酸蓄電池組性能的監(jiān)控系統(tǒng)[J].機電工程,1999,(6).
[10] 朱松然.鉛蓄電池技術(shù)[M]. 北京:機械工業(yè)出版社,2008.
[11] 崔花.單片機實用技術(shù)[M]. 北京:清華大學(xué)出版社,2008.
[12] 徐新民.單片機原理及應(yīng)用[M]. 浙江:浙江大學(xué)出版社,2009.
[13] 劉守義等.單片機技術(shù)基礎(chǔ)[M]. 西安:西安電子科技大學(xué)出版社,2007.
[14] 江思明.電路工程設(shè)計-Protel?99實例演練[M].人民郵電出版社,2009.
[15] 馬淑華,王鳳文,張美金主編.單片機原理與接口技術(shù)[M]. 北京:北京郵電大學(xué)出版社,2008.
[16] 張曉冬.蓄電池監(jiān)測系統(tǒng)的現(xiàn)狀及發(fā)展趨勢[J].農(nóng)機化研究,2002,(8).
[17] 秦龍.MSP430單片機常用模塊與綜合系統(tǒng)實例精講[M]. 北京:電子工業(yè)出版社.2007.
[18] 閏新華.影響鉛酸蓄電池容量的因素[J].UPS應(yīng)用,2004,(1).
[19] 王俊峰,孟令啟.現(xiàn)代傳感器應(yīng)用技術(shù)[M]. 北京:機械工業(yè)出版社.2007.
[20] 胡漢才.單片機原理及接口技術(shù)[M]. 北京:清華大學(xué)出版社.1996.
[21] 高稚允,高岳.光電檢測技術(shù)[M]. 北京:國防工業(yè)出版社.1983.
[22] 梁森,王侃夫,黃杭美.自動檢測與轉(zhuǎn)換技術(shù)[M]. 北京:機械工業(yè)出版社.2007.?
[23] Meehan Joanne,Muir Lindsey.SCM in Merseyside SMEs:Benefits and barriers[J].TQM Journal,2008.
[24] Yeager Brent.How to troubleshoot you electronic scale[J].Powder and Bulk Engineering.1995.
[25] 楊清梅,孫建民.傳感器與測試技術(shù)[M]. 哈爾濱:哈爾濱工程大學(xué)出版社.2005.
[26] 康華光.模擬電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社.2006.
[27] 高吉祥.全國大學(xué)生電子設(shè)計競賽培訓(xùn)系列教程[M]. 北京:電子工業(yè)出版社.2007.
[28] 李增國.傳感器與檢測技術(shù)[M]. 北京:北京航空航天大學(xué)出版社.2009.
[29] 吳中明,吳昊.密封鉛酸蓄電池容量快速測試技術(shù)難點分析[J].通信電源技術(shù),2006,(23).
[30] 宋文緒,楊帆.自動檢測技術(shù)[M]. 北京:高等教育出版社.2000.
[31] 尉廣軍,朱宇虹.采用集成運算放大器構(gòu)成的蓄電池恒流放電電路[J].電工技術(shù),2000,(14).
[32] 魏小龍.MSP430系列單片機接口技術(shù)及系統(tǒng)設(shè)計實例[M]. 北京:北京航空航天大學(xué)出版.2002.
[33] 李廣弟.單片機基礎(chǔ)[M]. 北京:北京航空航天出版社,2001.
[34] 王東峰等.單片機C語言應(yīng)用100例[M]. 北京:電子工業(yè)出版社,2009.
附錄1
附錄1 系統(tǒng)原理圖
附錄2
附錄2 系統(tǒng)程序清單
#include //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
#include
#include "1602.h"
#include "delay.h"
#include "sysdefine.h"
char displaytemp[16]; //打印數(shù)組初始化
unsigned long time_20ms=0; //定時器計數(shù)
float Volt=0.0; //檢測電壓
unsigned int BatCap=80; //容量初始化
void Init_Timer0(void);
void uartSendStr(unsigned char *s,unsigned char length);
void UART_Init(void);
void uartSendByte(unsigned char dat);
void main (void)
{
unsigned char midvolt;
Init_Timer0(); //定時器0初始化
UART_Init();
LCD_Init(); //初始化液晶
DelayMs(20); //延時有助于穩(wěn)定
LCD_Clear();
sprintf(displaytemp,"The BatCap: %02d%%",BatCap);//打印電池容量值
LCD_Write_String(0,0,displaytemp);//顯示第一行
sprintf(displaytemp,"V:%4.2fv ",Volt);//打印電壓值
LCD_Write_String(0,1,displaytemp);//顯示第二行
uartSendStr("reday ok!!",10);
while (1) //主循環(huán)
{
DelayMs(50); //延時有助于穩(wěn)定
midvolt=ReadADC(0); //ad轉(zhuǎn)換采集
Volt=(float)midvolt*5.2/255*5; //計算出電壓 *5表示分壓值
if(Volt<=5.4) //判斷電池容量
{BatCap=0;}
if((Volt>5.4)&&(Volt<=8.4))
{BatCap=10;}
if((Volt>8.4)&&(Volt<=8.9))
{BatCap=20;}
if((Volt>8.9)&&(Volt<=9.4))
{BatCap=30;}
if((Volt>9.4)&&(Volt<=9.9))
{BatCap=40;}
if((Volt>9.9)&&(Volt<=11.4))
{BatCap=50;}
if((Volt>11.4)&&(Volt<=12.9))
{BatCap=60;}
if((Volt>12.9)&&(Volt<=13.5))
{BatCap=70;}
if((Volt>13.5)&&(Volt<=14.0))
{BatCap=80;}
if(Volt>14.0)
{BatCap=99;}
sprintf(displaytemp,"The BatCap: %02d%%",BatCap);//打印電池容量值
LCD_Write_String(0,0,displaytemp);//顯示第一行
sprintf(displaytemp,"V:%4.2fv ",Volt);//打印電壓電流值
LCD_Write_String(0,1,displaytemp);//顯示第二行
DelayMs(200); //延時有助于穩(wěn)定
}
}
void Init_Timer0(void)
{
TMOD |= 0x01; //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響
TH0=(65536-20000)/256; //重新賦值 20ms
TL0=(65536-20000)%256;
EA=1; //總中斷打開
ET0=1; //定時器中斷打開
TR0=1; //定時器開關(guān)打開
}
void Timer0_isr(void) interrupt 1
{
TH0=(65536-20000)/256; //重新賦值 20ms
TL0=(65536-20000)%256;
time_20ms++;
if(time_20ms%10==0)
{
}
}
void UART_Init(void)
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重裝
TH1 = 0xFD; // TH1: 重裝值 9600 波特率 晶振 11.0592MHz
TL1 = TH1;
TR1 = 1; // TR1: timer 1 打開
EA = 1; //打開總中斷
ES = 1; //打開串口中斷
}
void uartSendByte(unsigned char dat)
{
unsigned char time_out;
time_out=0x00;
SBUF = dat;
while((!TI)&&(time_out<10))
{time_out++;DelayMs(1);}
TI = 0;
}
void uartSendStr(unsigned char *s,unsigned char length)
{
unsigned char NUM;
NUM=0x00;
while(NUM?
#define?uint?unsig
收藏