崔越 梅斌 靳明歡 史津鴻 湖北師范大學教技學院
目前,我國為了實行可持續(xù)發(fā)展戰(zhàn)略,大力發(fā)展電瓶車。在電瓶車的應用中,蓄電池的充放電不當等問題,如果設計了一種基于單片機的電池電量檢測系統(tǒng),將對電池進行實時監(jiān)測。通過電壓值更準確地估計電池剩余電量,從而避免電池過充放電造成的損壞,從而提高電池的使用壽命。
通過功能需求分析,我們需要設計單片機主控電路,A/D轉換模塊,LCD1602液晶顯示器,蜂鳴器等來實現(xiàn)對蓄電池的電壓實時監(jiān)控。用戶在騎行電瓶車時,電壓檢測電路將檢測到的電壓通過A/D轉換,再通過單片機讓液晶器顯示電壓值,用戶通過該電壓值可以大致判斷出該蓄電池是否需要充電以及充電完成大概在什么時候從而避免過沖導致蓄電池損壞。
本設計選用52系列單片機,是集CPU、存儲器、定時器/計數器、看門狗等為一體的微型計算機。這款單片機性價比高,擁8k可重復閃存只讀程序存儲器和256 b隨機存儲數據存儲器與mcs 51指令系統(tǒng)兼容。我們需要時鐘電路、復位電源和電源系統(tǒng)組成的最小的單片機系統(tǒng),將最小系統(tǒng)與LCD1602和PCF8591模塊相連接,通過PCF8591A/D轉換來實現(xiàn)蓄電池電量的檢測。
本系統(tǒng)最核心的部分是A/D轉換,它需要將所測到的模擬數據轉換為數字數據。通過對功能分析,我們需要具有4個模擬輸入,1個模擬輸出和1個串行I2C總線接口以及8位數模轉換等功能的元器件,通過各方面的分析,我們采用了PCF8591芯片。它的工作原理將SDA和SCL連接到單片機的I/O口。電壓檢測電路將檢測到的電量通過PCF8591芯片里的8-bit模數轉換獲得的電壓值,在單片機的控制下將測得的電壓值在1602并顯示出來。
本設計采用LCD1602顯示,它可以顯示圖像和數字功能。它由多個顯示字符塊組成,這些字符塊由多個點陣塊組成。每個點陣塊相當于一個字符位。每個字符與字符之間存在著間隙導致它顯示的圖像效果不是很好。單片機通過向1602發(fā)送指令以完成對1602的控制,這些指令包括檢查其是否忙碌,清屏,復位等操作指令。
單片機一個并行口與1602的8位并行數據端口相連,然后使用該單片機的任何三個I/O引腳來控制該1602的使能端和讀寫功能。同時,在單片機和V0引腳之間連接一個滑動電阻.我們可以通過改變滑動變阻器R的阻值大小來調節(jié)顯示器的對比度。這里LCD1602主要是顯示測量結果供用戶進行參考。
報警裝置主要采用蜂鳴器,當檢測到的電壓值低于預設電壓時,蜂鳴器會接收到單片機發(fā)出的信號后發(fā)出警報聲,提醒用戶該對蓄電池進行充電保護。
由于AT89C52單片機是一種可編程可擦除的高效微型控制器,程序主要使用的是C語言,該編程序是在用Keil 的環(huán)境下編寫完成的,該程序主要包括啟動總線函數,結束總線函數,字節(jié)數據發(fā)送函數,字節(jié)數據接收函數,PCF8591轉換讀取函數,實時電壓顯示函數,蜂鳴器報警函數以及1602顯示函數等,通過該程序實現(xiàn)對蓄電池的電量檢測以及報警。在調試的過程中,本次設計主要使用Proteus等仿真軟件,通過仿真結果在程序編譯軟件keil 中進行程序設計,兩者結合起來進行系統(tǒng)調試。
本次設計完全按照上述硬件電路、軟件程序要求模擬出的蓄電池電量檢測系統(tǒng),基本實現(xiàn)了用戶對電池電量的檢測。單片機控制部分使用單片機開發(fā)板電路(包括蜂鳴器),然后通過杜邦線分別連接LCD1602,PCF8591模塊,蜂鳴器,給單片機上電后,通過檢測電路與蓄電池連接,實現(xiàn)用戶對蓄電池的實時監(jiān)控,通過1602上的電壓值估算出蓄電池剩余電量,判斷其是否需要充電。
通過這半年的學習,我發(fā)現(xiàn)基于單片機蓄電池系統(tǒng)具有很強的實用性。目前市場上有很多同類產品,比如說:蓄電池電量檢測儀,蓄電池電壓檢測等,但是成本都比較昂貴,不符合可持續(xù)發(fā)展戰(zhàn)略。本次設計不僅便利了人們的生活,同時在保護環(huán)境方面也做出了貢獻。由于單片機的可編程性和智能性,人們可以使其具有更大的應用價值。