freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的鋰離子電池電量檢測系統(tǒng)設(shè)計(本科畢業(yè)論文)-閱讀頁

2024-08-29 15:04本頁面
  

【正文】 DS1302時鐘電路LED數(shù)碼顯示電量開始系統(tǒng)初始化采樣鋰離子電池電信號及溫度等參數(shù),BQ2040檢測電池電量W78E365單片機控制TM1629驅(qū)動控制LED結(jié)束返回圖42 主程序流程圖主程序完成初始化后,便等待定時器中斷狀態(tài)或外部中斷的到來,然后完成鋰電池電壓、電流和溫度值的信號采集,最后完成鋰離子電池電量的計算,并在LED輸出顯示屏上顯示出來。參考子程序(以每50ms中斷一次舉例):void time0(void) interrupt 1 using 2{ TH0=0x3c。 TIME_count++。 TIME_seconds++。SMBus是System Management Bus的縮寫,譯為系統(tǒng)管理總線,SMBus是一種二線制串行總線,它大部分基于I2C(InterIntegrated Circuit)總線規(guī)范。I2C是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。SMBus為系統(tǒng)電源管理等任務(wù)提供了一條控制總線,使用SMBus的系統(tǒng),設(shè)備之間發(fā)送和接收消息都是通過SMBus,而不是使用單獨的控制線,這樣可以節(jié)省設(shè)備的管腳數(shù)。tRtFTHIGHTSU:STOTSU:STATHD:STATLOWTSU:DATTHD:DATSMBCSMBDTBUF圖44 BQ2040總線時序 時序特性符號參數(shù)最小最大單位FSMBSMBus工作頻率10100KHzTBUF總線停止和啟動間的空閑時間μsTHD:STA啟動后保持時間μsTSU:STA重復(fù)啟動時間μsTSU:STO停止時間μsTHD:DAT數(shù)據(jù)保持時間300nsTSU:DAT數(shù)據(jù)建立時間250nsTLOW低電平時間μsTHIGH高電平時間μsTF時鐘/數(shù)據(jù)下降時間300msTR時鐘/數(shù)據(jù)上升時間1000msTLOW:SEXT低電平累積時間25TTIMEOUT2535第五章 系統(tǒng)測試硬件設(shè)計完成將待設(shè)計的系統(tǒng)分割成各個功能模塊,然后組合成一個合理的可行性方案的任務(wù),用Protel等相關(guān)軟件完成硬件原理圖的設(shè)計后,制成PCB板。系統(tǒng)測試的思路可以針對BQ2040內(nèi)的三個重要寄存器:Full Charge Capacity(FCC)、Remaining Capacity(RM)、Discharge Count Register(DCR)。2  放電的逆過程即充電,充電期間,若RM數(shù)值停止遞增,則RM=FCC,這時我們讀取的RM應(yīng)近似等于FCC,此時DCR=0。3  DCR隨著RM的遞減逐漸增大,直到RM=0,鋰離子電池放電和自放電都會使DCR增大,但當(dāng)RM=0后,只有放電才使DCR增大。另外本文還完成了軟件系統(tǒng)的設(shè)計,用C語言進行編程,實現(xiàn)數(shù)據(jù)的采集、轉(zhuǎn)換、存儲和傳輸,進一步證實了本設(shè)計的有效性和可行性,同時本文給出了硬件原理圖、軟件流程圖及源程序設(shè)計。經(jīng)過反復(fù)多次的設(shè)計及修改,該系統(tǒng)的各項指標(biāo)均達(dá)到了設(shè)計要求,具有很高的實用價值。(2) 軟件方面:增加鋰離子電池電量檢測更多相關(guān)功能。在這幾個月的時間里,饒繁星老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和熱忱的工作作風(fēng)使我十分佩服,其淵博的專業(yè)知識,嚴(yán)以律己、寬以待人的崇高風(fēng)范,樸實無華、平易近人的人格魅力對我影響深遠(yuǎn)。在此對幫助我的老師和同學(xué)們表示深深的感謝。這些都是我在平時學(xué)習(xí)和生活中所得不到的鍛煉,更是我人生中寶貴的經(jīng)歷。感謝母校四年來對我的培養(yǎng)與教導(dǎo)。//sbit SMBC=P1^4。//sbit SMBD=P1^5。 //讀剩余電量的指令signed char bq2040_Command_C=0x0a。 //讀電池狀態(tài)unsigned char ReceiveData_L, ReceiveData_H, Current_H_7, BatteryStatus_L_6, BatteryStatus_L_5。 //用于判斷接收確認(rèn)是否超時,超時為1,未超時為0void Delay(void) //延時子程序{ _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。}//以下函數(shù)詳見SMbus原理void Star(void) //開始子程序 當(dāng)SMBC為高電平時,SMBD上出現(xiàn)一個下降沿。 Delay()。 Delay()。 Delay()。 Delay()。該條件停止一次傳輸過程{ SMBC=0。 SMBD=0。 SMBC=1。 SMBD=1。}void Ackw(void) //ACKNOWLEDGE寫子程序 SMBC為高時,采樣到SMBD為低電平{ unsigned char a=0。 SMBC=0。 SMBD=1。 SMBC=1。}void Ackr(void) //ACKNOWLEDGE讀子程序 SMBC為高時,采樣到SMBD為低電平{ SMBC=0。 SMBD=0。 SMBC=1。}void Nack(void) //NOT ACKNOWLEDGE子程序 SMBC為高電平時,采樣到SMBD為高電平{ SMBC=0。 SMBD=1。 SMBC=1。}void Send(unsigned char b) //發(fā)送子程序 將b按從最高位到最低位的順序,逐位的發(fā)送給bq2040{ unsigned char i,x,y,z。 for(i=1。i++) { x=bamp。 if(x==0) y=0。 SMBC=0。 SMBD=y。 SMBC=1。 z=1。 for(i=1。i++) { SMBC=0。 _nop_()。 Delay()。 Delay()。 if(SMBD) g++。 } return g。 Star()。 Send(a)。 //發(fā)送確認(rèn) if(ack) //未確認(rèn)則重新發(fā)送 return。 //發(fā)送讀剩余電量指令 Ackw()。 Star()。 //發(fā)送器件地址0x17 Send(a)。 //發(fā)送確認(rèn) if(ack) //未確認(rèn)則重新發(fā)送 return。 //接收剩余電量低8位數(shù)據(jù) Ackr()。 //接收剩余電量高8位數(shù)據(jù) Nack()。 //結(jié)束}void Delay2(void) //4s顯示延時{ unsigned char i,j,k。i255。j255。k20。}main(){ unsigned char RemainingCapacity_H,RemainingCapacity_L,Current_H,BatteryStatus_L。 //串口波特率9600bps,方式3,無校驗,數(shù)據(jù)位8,停止位1. TH1=0xFD。 PCON=0x00。 SCON=0xD8。 while(1) { Read(bq2040_Command_C)。 SBUF=bq2040_Command_C。 TI=0。 while(!TI)。 SBUF=ReceiveData_L。 TI=0。0x80。 // 向串口發(fā)送電池狀態(tài),利用串口助手可以看到 if(ack==0) //讀數(shù)據(jù)成功,則執(zhí)行賦值 BatteryStatus_L=ReceiveData_L。 while(!TI)。 SBUF=ReceiveData_H。 TI=0。 while(!TI)。 BatteryStatus_L_6=BatteryStatus_Lamp。 BatteryStatus_L_5=BatteryStatus_Lamp。 Read(bq2040_Command_RC)。 RemainingCapacity_L=ReceiveData_L。 while(!TI)。 SBUF=RemainingCapacity_H。 TI=0。 while(!TI)。 if(ack==0) LedDisplay_Battery(RemainingCapacity_H,RemainingCapacity_L)。 }}
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1