亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? read_write2770.bas

?? 利用VB開發的針對Maxim-Dallas DS2770電量檢測芯片
?? BAS
字號:
Attribute VB_Name = "Read_Write"
Option Explicit
Dim sndbyt(0) As Byte
Public DS2770ROM(8) As Integer
Public NetAddress(8) As Integer
Public BlankROM As Integer

Public AssemblyID As Integer

Public Const REALTIME_ADDRESS   As Byte = &H1
Public Const ACR_ADDRESS        As Byte = &H10
Public Const LMD_ADDRESS        As Byte = &H26
Public Const TAD_ADDRESS        As Byte = &H27

Public Const BLOCK_0_ADDRESS  As Byte = &H20
Public Const BLOCK_1_ADDRESS    As Byte = &H30
Public Const BLOCK_2_ADDRESS    As Byte = &H40

Public Const SRAM_ADDRESS       As Byte = &H80

Sub CopyBytes(StartingAddress As Integer)
Dim wait As Double
    If DS9123.OneWireReset() Then
        SendCommand2770 (CopyData)
        SendData (StartingAddress)
        If DS9123.OneWireReset() Then
        End If
    End If
    
    wait = Timer
    While (Timer - wait) < 0.01
        If Timer > wait Then
            wait = Timer
        End If
    Wend
End Sub

Sub RecallBytes(StartingAddress As Integer)
Dim wait As Double
    If DS9123.OneWireReset() Then
        SendCommand2770 (RecallData)
        SendData (StartingAddress)
        If DS9123.OneWireReset() Then
        End If
    End If
    
    wait = Timer
    While (Timer - wait) < 0.01
        If Timer > wait Then
            wait = Timer
        End If
    Wend
End Sub

Sub LockEEPROMBytes(StartingAddress As Integer)
    ReadBytes 7, 1
    DataIn(7) = DataRead(7) Or &H40
    WriteBytes 7, 1
    
    If DS9123.OneWireReset() Then
        SendCommand2770 (LockEEPROM)
        SendData (StartingAddress)
        If DS9123.OneWireReset() Then
        End If
    End If
End Sub

Sub RefreshStatus()
    If DS9123.OneWireReset() Then
        SendCommand2770 (RefreshCommand)
        If DS9123.OneWireReset() Then
        End If
    End If
End Sub

Sub StopCharging()
    If DS9123.OneWireReset() Then
        SendCommand2770 (StopCharge)
        If DS9123.OneWireReset() Then
        End If
    End If
End Sub

Sub StartCharging()
    If DS9123.OneWireReset() Then
        SendCommand2770 (StartCharge)
        If DS9123.OneWireReset() Then
        End If
    End If
End Sub

Sub WriteBytes(StartingAddress As Integer, BytesToWrite As Integer)
Dim i As Integer
    
    If DS9123.OneWireReset() Then
        SendCommand2770 (WriteData)
        SendData (StartingAddress)
        For i = 0 To (BytesToWrite - 1)
            If Not (DataIn(StartingAddress + i) = "empty") Then
                SendData (DataIn(StartingAddress + i) And &HFF)
            End If
        Next i
        If DS9123.OneWireReset() Then
        End If
    End If
    
End Sub

Sub ReadBytes(StartingAddress As Integer, BytesToRead As Integer)
Dim i As Integer
    If DS9123.OneWireReset() Then
        SendCommand2770 (ReadData)
        SendData (StartingAddress)
        For i = 0 To (BytesToRead - 1)
            DataRead(StartingAddress + i) = ReadByte
        Next i
        If DS9123.OneWireReset() Then
        End If
    End If
    
End Sub

Sub ReadRealTime()
    If DS9123.OneWireReset() Then
        ReadBytes REALTIME_ADDRESS, &H1B
        gStatus = DataRead(1)
        gETRMSB = DataRead(2)
        gETRLSB = DataRead(3)
        gETRLWMSB = DataRead(4)
        gETRLWLSB = DataRead(5)
        
        gCTR = DataRead(6)
        gCTRLSB = DataRead(&H1B)
        
        gEEPROM = DataRead(7)
        
        gVoltMSB = DataRead(12)
        gVoltLSB = DataRead(13)
        gCurrentMSB = DataRead(14)
        gCurrentLSB = DataRead(15)
        gACRMSB = DataRead(16)
        gACRLSB = DataRead(17)
        
        gTempMSB = DataRead(24)
        gTempLSB = DataRead(25)
    End If
End Sub


Sub UpdateACR(NewACR As Single)
Dim Register As Long

    Register = NewACR * SenseResistor / 0.00625
    
    If Register < 0 Then
        Register = Register + 65536
    End If
    
    DataIn(ACR_ADDRESS + 1) = Register And &HFF
    DataIn(ACR_ADDRESS) = ((Register And &HFF00) / &H100) And &HFF
    
    WriteBytes ACR_ADDRESS, 2
    
End Sub

Sub SendData(Send As Byte)
Dim InBuffer() As Byte
Dim wait As Double
    sndbyt(0) = Send
    DS9123.MSComm1.Output = sndbyt
    
    If sndbyt(0) = &HE3 Then
        DS9123.MSComm1.Output = sndbyt
    End If
    
    ' this is to swallow the echo of the ReadROM command
    wait = Timer
    While DS9123.MSComm1.InBufferCount < 1     'Waits for Recieve response
        If ((Timer - wait) > 2) Or (Timer < wait) Then
            Exit Sub
        End If
    Wend
    InBuffer = DS9123.MSComm1.Input
End Sub

Function ReadByte() As Byte
Dim InBuffer() As Byte
Dim wait As Double

    sndbyt(0) = &HFF
    DS9123.MSComm1.Output = sndbyt
    wait = Timer
    While DS9123.MSComm1.InBufferCount < 1     'Waits for Recieve response
        If ((Timer - wait) > 2) Or (Timer < wait) Then
            Exit Function
        End If
    Wend
    InBuffer = DS9123.MSComm1.Input
    ReadByte = InBuffer(0)
End Function

Sub SendCommand2770(Command As Byte)
Dim InBuffer() As Byte
Dim i As Integer
Dim wait As Double
    
    If DS9123.OneWireReset() Then
        If frmEvalKit.SelectedDevice = 0 Then
            DS9123.SkipROM
        Else
            DS9123.MatchROM (DS9123.FoundROMs(NetAddress(frmEvalKit.SelectedDevice)))
        End If
        sndbyt(0) = Command
        DS9123.MSComm1.Output = sndbyt
        
        ' this is to swallow the echo of the ReadROM command
        wait = Timer
        While DS9123.MSComm1.InBufferCount < 1     'Waits for Recieve response
            If ((Timer - wait) > 2) Or (Timer < wait) Then
                Exit Sub
            End If
        Wend
        InBuffer = DS9123.MSComm1.Input
    End If
End Sub

Sub ReadStoredData()
Dim temp As Double
Dim wait As Double
    'Reads Data that is programmed into the DS2770 and formats
    ' the data into the appropriate variables
    ReadBytes BLOCK_0_ADDRESS, 36
    
    temp = DataRead(&H20)
    CC(0) = (temp * 256) + DataRead(&H21)  'Charge Level
    CC(1) = CC(0) + DataRead(&H22)         'Charge Level
    CC(2) = CC(1) + DataRead(&H23)         'Charge Level
    CC(3) = CC(2) + DataRead(&H24)         'Charge Level
    CC(4) = CC(3) + DataRead(&H25)         'Charge Level
    
    LMD = DataRead(&H26) * 10
    
    TADMSB = DataRead(&H27)
    TADLSB = DataRead(&H28)
    
    CB = DataRead(&H29)
    CBT(0) = DataRead(&H2A)
    CBT(1) = DataRead(&H2B)
    CBT(2) = DataRead(&H2C)
    CET(0) = DataRead(&H2D)
    CET(1) = DataRead(&H2E)
    CET(2) = DataRead(&H2F)
    
    If DataRead(&H30) = 0 Then
        SenseResistor = 0.025
        frmEvalKit.txtSenseResistor.Text = Format(SenseResistor * 1000, "#0.00")
        frmEvalKit.lblRsense.Caption = "Sense : Internal"
        frmEvalKit.txtSenseResistor.Visible = False
        frmEvalKit.optInternalResistor.Value = True
    Else
        SenseResistor = DataRead(&H30) / 4000
        frmEvalKit.txtSenseResistor.Text = Format(SenseResistor * 1000, "#0.00")
        frmEvalKit.lblRsense.Caption = "Sense : " & Format(SenseResistor * 1000, "#0.00") & " mOhms"
        frmEvalKit.txtSenseResistor.Visible = True
        frmEvalKit.optExternalResistor.Value = True
    End If
    
    StatusSave = DataRead(&H31)
    'OffsetMSB = DataRead(&H32)
    'OffsetLSB = DataRead(&H33)
    'CTRInit = DataRead(&H34)
    
    DateCode(0) = DataRead(&H35)
    DateCode(1) = DataRead(&H36)
    
    D1(4) = 0           '               'Discharge Efficiency, Rate 1
    D1(3) = DataRead(&H3A)
    D1(2) = D1(3) + DataRead(&H39)
    D1(1) = D1(2) + DataRead(&H38)
    D1(0) = D1(1) + DataRead(&H37)
    
    D2(4) = DataRead(&H3F)             'Discharge Efficiency, Rate 2
    D2(3) = D2(4) + DataRead(&H3E)
    D2(2) = D2(3) + DataRead(&H3D)
    D2(1) = D2(2) + DataRead(&H3C)
    D2(0) = D2(1) + DataRead(&H3B)
    
    AssemblyID = DataRead(&H40)
    RatedCapacity = DataRead(&H41) * 10
    BatteryID = DataRead(&H42) And &HF    '4 bits of Manu ID
    
End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'WriteStoredData takes the data that is in the variables CC(x), D1(x),
'   D2(x), manipulates it into Byte form and programs bytes
'   32-47 and 52-58 of the DS2770 with the appropriate data
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub WriteStoredData()
    'Takes the data written to the table on the DS2770Data form and
    ' formats it into bytes and then writes the data tot he DS2770
    PackDate
    
    DataIn(&H20) = ((CC(0) And &HFF00) / &H100) And &HFF
    DataIn(&H21) = CC(0) And &HFF
    DataIn(&H22) = (CC(1) - CC(0)) And &HFF
    DataIn(&H23) = (CC(2) - CC(1)) And &HFF
    DataIn(&H24) = (CC(3) - CC(2)) And &HFF
    DataIn(&H25) = (CC(4) - CC(3)) And &HFF
    
    DataIn(&H26) = (LMD / 10) And &HFF 'stored in 10's of Ahrs
    
    DataIn(&H27) = TADMSB And &HFF
    DataIn(&H28) = TADLSB And &HFF
    
    DataIn(&H29) = CB And &HFF
    
    DataIn(&H2A) = CBT(0) And &HFF
    DataIn(&H2B) = CBT(1) And &HFF
    DataIn(&H2C) = CBT(2) And &HFF
    
    DataIn(&H2D) = CET(0) And &HFF
    DataIn(&H2E) = CET(1) And &HFF
    DataIn(&H2F) = CET(2) And &HFF
    
    WriteBytes BLOCK_0_ADDRESS, 16
    
    ReadBytes BLOCK_1_ADDRESS, 5
    
    DataIn(&H30) = DataRead(&H30) And &HFF  'Sense Resistor
    DataIn(&H31) = StatusSave And &HFF
    DataIn(&H32) = DataRead(&H32) And &HFF  'offsetMSB
    DataIn(&H33) = DataRead(&H33) And &HFF  'offsetLSB
    DataIn(&H34) = DataRead(&H34) And &HFF  'CTR Init
    
    DataIn(&H35) = DateCode(0) And &HFF
    DataIn(&H36) = DateCode(1) And &HFF
    
    DataIn(&H37) = (D1(0) - D1(1)) And &HFF
    DataIn(&H38) = (D1(1) - D1(2)) And &HFF
    DataIn(&H39) = (D1(2) - D1(3)) And &HFF
    DataIn(&H3A) = D1(3) And &HFF
    
    DataIn(&H3B) = (D2(0) - D2(1)) And &HFF
    DataIn(&H3C) = (D2(1) - D2(2)) And &HFF
    DataIn(&H3D) = (D2(2) - D2(3)) And &HFF
    DataIn(&H3E) = (D2(3) - D2(4)) And &HFF
    DataIn(&H3F) = D2(4) And &HFF
    
    WriteBytes BLOCK_1_ADDRESS, 16
    
    DataIn(&H40) = (AssemblyID) And &HFF
    DataIn(&H41) = (RatedCapacity / 10) And &HFF 'stored in 10's of Ahrs
    DataIn(&H42) = (BatteryID) And &HFF
    
    WriteBytes BLOCK_2_ADDRESS, 3
    
    
End Sub

Public Sub PackDate()
Dim tempdate As Long
Dim tempday As Long
Dim tempmonth As Long
Dim tempyear As Long

    tempday = Val(frmEvalKit.txtDay.Text)
    If tempday > 31 Then
        tempday = 31
    ElseIf tempday < 1 Then
        tempday = 1
    End If
    
    tempmonth = Val(frmEvalKit.txtMonth.Text)
    If tempmonth > 12 Then
        tempmonth = 12
    ElseIf tempmonth < 1 Then
        tempmonth = 1
    End If
    
    tempyear = Val(frmEvalKit.txtYear.Text) - 1980
    If tempyear > 127 Then
        tempyear = 127
    ElseIf tempyear < 0 Then
        tempyear = 0
    End If
    
    tempdate = tempday + (tempmonth * 32) + (tempyear * 512)
    DateCode(0) = tempdate And &HFF
    DateCode(1) = (tempdate And &HFF00) / &H100
End Sub

Public Sub UnpackDate()
Dim temp As Long
Dim tempdate As Long
Dim tempday As Long
Dim tempmonth As Long
Dim tempyear As Long
    temp = DateCode(1)
    tempdate = DateCode(0) + (temp * 256)
    
    tempday = tempdate And &H1F
    tempmonth = (tempdate And &H1E0) / &H20
    tempyear = (tempdate And &HFE00) / &H200
    
    frmEvalKit.txtDay.Text = tempday
    frmEvalKit.txtMonth.Text = tempmonth
    frmEvalKit.txtYear.Text = tempyear + 1980
End Sub

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日摸夜夜添夜夜添精品视频| 国产一区二区在线看| 色综合中文字幕| 国产精品你懂的| 国产成人亚洲精品青草天美| 精品国产一区二区亚洲人成毛片| 久久精品国产99国产| 日韩欧美高清在线| 黑人巨大精品欧美黑白配亚洲| 日韩欧美的一区| 精品无码三级在线观看视频| 亚洲精品一区二区三区蜜桃下载| 狠狠狠色丁香婷婷综合久久五月| 欧美精品一区二区三区在线| 国产一区二区毛片| 欧美经典三级视频一区二区三区| 成人黄色国产精品网站大全在线免费观看 | 丁香婷婷综合五月| 国产欧美一区二区三区沐欲| 国产精品99久| 亚洲欧洲日韩综合一区二区| 一本久久a久久免费精品不卡| 一区二区在线电影| 欧美色视频一区| 日本欧美一区二区三区| 欧美大片国产精品| 国产精品一区二区三区网站| 国产精品美女久久久久av爽李琼| 色综合久久中文综合久久97| 亚洲一二三四在线观看| 欧美福利一区二区| 狠狠色丁香婷婷综合| 亚洲国产精品精华液2区45| 91在线观看美女| 亚洲成人av电影在线| 欧美一区二区三区日韩视频| 国产美女在线精品| 国产精品家庭影院| 欧美日韩中文另类| 久久精品免费观看| 国产精品美女一区二区三区| 欧美性xxxxxxxx| 卡一卡二国产精品| 国产精品国产自产拍高清av王其 | 在线亚洲人成电影网站色www| 偷拍与自拍一区| 久久久久久麻豆| www.爱久久.com| 日韩黄色小视频| 国产精品天天看| 欧美日韩高清在线播放| 韩国女主播一区| 亚洲精品伦理在线| 日韩亚洲欧美综合| 波多野结衣中文字幕一区| 亚洲国产成人91porn| 26uuu亚洲综合色欧美| 91蜜桃婷婷狠狠久久综合9色| 天天av天天翘天天综合网 | 日韩美女一区二区三区四区| 国产成人综合在线观看| 一区二区三区久久| 欧美xxx久久| 91视频观看免费| 蜜桃av一区二区| 亚洲精品日韩一| 久久网站热最新地址| 色欧美88888久久久久久影院| 麻豆国产欧美一区二区三区| 中文字幕日韩av资源站| 日韩精品最新网址| 色综合天天做天天爱| 精品影视av免费| 一区二区三区不卡视频在线观看| 精品国产电影一区二区| 日本精品裸体写真集在线观看 | 久久精品国产在热久久| 日韩理论片中文av| 精品国产123| 欧美天堂一区二区三区| 国产成人精品免费在线| 日韩精品免费视频人成| 最新国产の精品合集bt伙计| 欧美xxxxx牲另类人与| 欧美色男人天堂| 97精品超碰一区二区三区| 精品写真视频在线观看| 午夜精品成人在线| 中文字幕综合网| 久久免费午夜影院| 3d成人动漫网站| 一本到高清视频免费精品| 国产91丝袜在线播放0| 美女一区二区视频| 亚洲一区二区三区中文字幕| 最新热久久免费视频| 久久亚洲春色中文字幕久久久| 欧美日韩高清一区| 97久久超碰国产精品电影| 国产超碰在线一区| 精品在线观看免费| 免费人成在线不卡| 亚洲国产视频直播| 亚洲精品videosex极品| 国产精品色哟哟网站| 久久亚洲精华国产精华液 | 日本一区二区视频在线| 欧美成人r级一区二区三区| 欧美另类久久久品| 欧美亚洲高清一区| 91婷婷韩国欧美一区二区| 国产99久久久精品| 国产在线不卡视频| 韩国v欧美v日本v亚洲v| 毛片一区二区三区| 日韩av网站在线观看| 亚洲成人在线免费| 亚洲成人自拍网| 午夜免费欧美电影| 亚洲一区二区欧美| 成人免费毛片aaaaa**| 狠狠狠色丁香婷婷综合激情| 久久成人久久爱| 蜜桃精品视频在线| 久久精品免费观看| 乱中年女人伦av一区二区| 日韩和欧美一区二区三区| 日韩va欧美va亚洲va久久| 日韩在线a电影| 日本成人在线网站| 久久精品国产一区二区三| 久久er精品视频| 激情小说欧美图片| 国产美女在线精品| 成人亚洲一区二区一| 不卡一区中文字幕| 91丝袜美腿高跟国产极品老师| 91网站在线播放| 欧美偷拍一区二区| 欧美欧美午夜aⅴ在线观看| 91麻豆精品国产91久久久久久久久 | 亚洲欧美另类久久久精品2019| 亚洲欧美国产高清| 亚洲成人在线免费| 免费不卡在线视频| 国产尤物一区二区在线| 国产精品99久久久久久似苏梦涵| 成人激情开心网| 91国产丝袜在线播放| 精品婷婷伊人一区三区三| 欧美日韩的一区二区| 欧美mv日韩mv| 中文一区在线播放| 一区二区在线免费观看| 亚洲成精国产精品女| 奇米影视在线99精品| 国产美女在线精品| 92精品国产成人观看免费| 欧美图片一区二区三区| 欧美电视剧免费全集观看| 久久精品亚洲麻豆av一区二区 | 国产一区二区三区香蕉| 处破女av一区二区| 在线观看亚洲成人| 欧美一级免费观看| 国产偷v国产偷v亚洲高清| 国产99久久久精品| 在线免费av一区| 日韩欧美高清一区| 国产精品日韩精品欧美在线| 亚洲精品视频自拍| 美女诱惑一区二区| av一二三不卡影片| 欧美酷刑日本凌虐凌虐| 26uuu国产电影一区二区| 国产精品国产三级国产| 视频一区视频二区中文字幕| 国产精品一线二线三线精华| 色综合久久88色综合天天 | 欧美变态tickling挠脚心| 中文字幕一区不卡| 日韩va欧美va亚洲va久久| 成人一区二区三区视频在线观看| 欧美少妇xxx| 国产色综合久久| 亚洲香肠在线观看| 国产一区二区精品久久99| 一本久久综合亚洲鲁鲁五月天| 日韩午夜av一区| 亚洲视频精选在线| 精品中文字幕一区二区小辣椒 | 国产suv一区二区三区88区| 在线免费av一区| 久久精品视频网| 视频一区欧美精品| aaa亚洲精品一二三区| 精品久久国产老人久久综合| 夜夜夜精品看看| 成人黄动漫网站免费app| 制服视频三区第一页精品|