![]() |
發布時間: 2023-8-1 16:43
正文摘要:剛學了1天寫了一個基于天問中文編程下STC8 監控鋰電池電壓 當電壓高于4.175V斷開充電NMOS 當單壓低于2.799V斷開放電NMOS 采用外部參考電壓2.5V鋰電池用2個10K電池串聯取中間電壓 也不知道程序寫的對不對求大神指點 ... |
atzs 發表于 2023-8-6 03:31 給你幾個建議吧 1,汽車鋰電就不要用STC了,用PIC或者NXP,要么是TI吧,STC單片機還沒達到汽車級的那個能力,雖然我業余玩得最多的是STC單片機 2,太陽能可以用 3,學STC,最好的選擇,到現在為止,依然是KEIL,哪怕是漢化版本的,也比中文編程強 4,STC8在鋰電上使用,是不需要外部參考電壓的,STC的內部參考電壓足夠了 |
Y_G_G 發表于 2023-8-3 22:17 目標是大型鋰電池組,比如汽車鋰電或者太陽能鋰電這類 |
1, 鋰電池保護板不應該由軟件控制 2,鋰電池保護板的原則是電池低電壓之后,比如2.60V,直接斷電,電流幾乎為0,但如果你用單片機來控制,單片機就算是進入了掉電模式,也會有接近1uA的電流,這樣一來,單片機會一直給鋰電池放電,直到單片機不耗電為止 但如果你是以學習為目的,或者是說鋰電池很大個,那就另說了 |
yzwzfyz 發表于 2023-8-2 10:34 大佬新人不懂就問:在比較X30與P31目的是為了減少對端口輸出嗎,看我理解是否正確我以為如果P30一直保持高電平輸出時候沒隔100MS給一次高電平輸出是不是單片機就判定P30保持高電平不變輸出就不會有任何波動 |
liyonghua111 發表于 2023-8-2 14:38 大佬新人不懂就問:中斷處理這個是什么原理,是不是在循環里無法直接讀取ADC引腳數據嗎? |
首先,你需要連接硬件以實現電壓監測。你可以將鋰電池的正極連接到單片機的ADC引腳上,然后將負極接地。另外,你需要將2個10K電阻串聯,并將中間電壓接到單片機的參考電壓輸入引腳上。 接下來,你需要在Keil 5中配置ADC模塊并初始化代碼。你可以使用STC8系列單片機自帶的ADC模塊來讀取電壓值。你可以設置參考電壓為2.5V,采樣精度為10位。 在初始化代碼中,你需要設置ADC通道和其他相關參數。你可以選擇一個可用的ADC通道來讀取電壓值。 然后,你需要設置中斷來處理ADC轉換完成的事件。當ADC轉換完成時,中斷將觸發,你可以在中斷處理程序中進行進一步的操作。 你可以根據電壓的變化設置閾值來判斷電壓狀態。如果電壓高于4.175V,你可以斷開充電NMOS;如果電壓低于2.799V,你可以斷開放電NMOS。 最后,你需要根據電流的狀態執行相應的操作。例如,如果電流短路或斷路,你可以通過控制相應的NMOS來停止充電或放電。 這只是一個基本的思路,你需要根據具體的需求和硬件來調整代碼。希望這些提示對你有幫助! |
左邊思路正確,這樣每間隔100ms,都要改一下輸出。 可以考慮需要變化時再改輸出: 例如設置兩變量,X30和X31,將你程序中的P30、P31用X30和X31替代。 再比較X30與P30、X31與P31,只當兩者不同時,修改一下輸出(P30、P31)。 |