基于STM8單片機的鋰電池電壓檢測程序
????????這里分享一個前一段時間寫的一個單片機程序。程序的主要功能是對鋰電池充放電模塊的鋰電池電壓和輸出電壓進行檢測,并將檢測后的電壓用數碼管進行顯示。
????????下圖呢就是實際的顯示效果,左側是鋰電池的電壓,右側是輸出電壓。

????????程序的主控芯片是STM8S103F3P。用的是下圖的最小系統(tǒng)板。


??
基本參數如下:
????????1、核心尺寸:8bit
????????2、速度:16MHz
????????3、連接性:12C,IrDA,LIN,SPI, UART/USART4、外設:欠壓檢測/復位,POR,PWM,WDT
????????5、I/0數:16
????????6、程序存儲容量:8KB(8Kx8)
????????7、程序存儲器類型:閃存FLASH 可擦寫一萬次
????????8、EEPROM容量:640x8
????????9、RAM容量:1Kx8
????????10、電壓-電源(Vcc/Vdd): 2.95V~5.5V
????????11、數據轉換器:A/D 5x10b
????????12、振蕩器類型:內部
????????13、工作溫度:-40°C~85°C(TA)

?
????????數碼管顯示部分用的是TM1637驅動的數碼管模塊。該模塊是一個12腳的帶時鐘點的4位共陽數碼管(0.36英寸)的顯示模塊,驅動芯片為TM1637,只需2根信號線即可使單片機控制4位8段數碼管。
模塊特點如下:
????????顯示器件為4位共陽紅字數碼管;
????????數碼管8級灰度可調;
????????控制接口電平可為5V或3.3V;
????????4個M2螺絲定位孔,便于安裝。
數碼管模塊的:
????????CLK引腳與PB4引腳相連;
????????DIO引腳與PB5引腳相連。
????????由于本次使用的單片機的ADC部分為3.3V供電,而鋰電池電壓和輸出電壓都大于3.3V,所以這里通過串接電阻分壓的方式來實現電壓的檢測。程序中分別使用單片機ADC的通道2、通道3、通道4對輸入端電壓、鋰電池電壓及輸出端電壓進行檢測。
????????程序中利用單片機的定時器4進行采樣周期定時,采樣時間到后程序控制ADC進行電壓采集和計算,并進行了10次累加求平均值,最后將采集的電壓轉換為實際電壓進行顯示。