通過串口和單片機通訊的ic卡讀卡程序VB源碼.rar
(55.17 KB, 售價: 1 E幣)
2020-5-3 18:02 上傳
點擊文件名下載附件
售價: 1 E幣 [記錄]
[ 購買]
1.png (40.95 KB)
下載附件
2020-5-3 18:00 上傳
- Attribute VB_Name = "IC卡管理自動記錄系統"
- Attribute VB_GlobalNameSpace = False
- Attribute VB_Creatable = False
- Attribute VB_PredeclaredId = True
- Attribute VB_Exposed = False
- Option Explicit
- Public inData As String '串口中斷時讀入的字符串
- Dim TEXT_OK As Boolean
- Dim text1_temp As String
- Dim t7 As String
- Private Sub Command2_Click()
- data1.Recordset.MovePrevious
- If data1.Recordset.BOF Then data1.Recordset.MoveFirst
- Text1.Text = data1.Recordset("卡號")
- Text2.Text = data1.Recordset("姓名")
- Text3.Text = data1.Recordset("班級")
- Text4.Text = data1.Recordset("余額")
- Text5.Text = data1.Recordset("日期")
- Text6.Text = data1.Recordset("時間")
- Text9.Text = Format(CStr(CStr((CSng(Text4.Text) * 100) \ 60)), "#00") & "小時" & Format(CStr(CStr((CSng(Text4.Text) * 100) Mod 60)), "#00") & " 分鐘"
- data1.UpdateRecord
- End Sub
- Private Sub Command3_Click()
- If data1.Recordset.EOF = False Then data1.Recordset.MoveNext
- If data1.Recordset.EOF Then data1.Recordset.MoveLast
- Text1.Text = data1.Recordset("卡號")
- Text2.Text = data1.Recordset("姓名")
- Text3.Text = data1.Recordset("班級")
- Text4.Text = data1.Recordset("余額")
- Text5.Text = data1.Recordset("日期")
- Text6.Text = data1.Recordset("時間")
- data1.UpdateRecord
- Text9.Text = Format(CStr(CStr((CSng(Text4.Text) * 100) \ 60)), "#00") & "小時" & Format(CStr(CStr((CSng(Text4.Text) * 100) Mod 60)), "#00") & " 分鐘"
- End Sub
- Sub 找卡號()
- Dim n, m As Integer
- data1.Refresh
- data1.Recordset.MoveLast
- m = data1.Recordset.RecordCount
- data1.Refresh
- data1.Recordset.MoveFirst
- For n = 1 To m Step 1
- If Text1.Text = data1.Recordset("卡號") Then
- Text1.Text = data1.Recordset("卡號")
- 'Text2.Text = data1.Recordset("姓名")
- 'Text3.Text = data1.Recordset("班級")
- End If
- data1.Recordset.MoveNext
- Next n
- End Sub
- Private Sub Command6_Click()
- Timer2.Enabled = True
- Command9.Enabled = True
- Command6.Enabled = False
- End Sub
- Private Sub Command7_Click()
- Text1.Text = ""
- Text2.Text = ""
- Text3.Text = ""
- Text4.Text = ""
- MSComm1.Output = "rr12345678" '把查詢命令發出到串口
- End Sub
- Private Sub Command8_Click()
- Dim NUM, n, m As Integer
- Call CACK_TEXT
- If TEXT_OK = True Then
- NUM = Val(Text4.Text)
- n = NUM \ 256
- m = NUM - n * 256
- 'Call 寫入單片機
-
- Call 寫入數據庫
- text1_temp = Text1.Text
- Text1.Text = ""
- Else
- n = MsgBox("請正確輸入", 5 + vbExclamation, "錯誤")
- End If
- End Sub
- Sub 寫入單片機()
- Dim adsafdds As String
- Dim yuer1, yuer2 As String
- yuer1 = Format(CStr(CStr((CSng(Text4.Text) * 100) \ 60)), "#00")
- yuer2 = Format(CStr(CStr((CSng(Text4.Text) * 100) Mod 60)), "#00")
- adsafdds = "ss" & Text1.Text & yuer1 & yuer2
- MSComm1.Output = adsafdds
- End Sub
- Private Sub Command9_Click()
- Timer2.Enabled = False
- Command6.Enabled = True
- Command9.Enabled = False
- End Sub
- Private Sub Form_Load()
- MSComm1.PortOpen = True
- MSComm1.RThreshold = 1
- Command8.Enabled = False
- Command6.Enabled = True
- Command9.Enabled = False
- End Sub
- Sub CACK_TEXT()
- TEXT_OK = False
- If (Len(Text1.Text) = 4 And Len(Text4.Text) < 6) Then TEXT_OK = True
- End Sub
- Sub 寫入數據庫()
- data1.Refresh
- data1.Recordset.MoveLast
- data1.Recordset.AddNew
- data1.Recordset("卡號") = Text1.Text
- 'data1.Recordset("姓名") = Text2.Text
- 'data1.Recordset("班級") = Text3.Text
- data1.Recordset("余額") = Text4.Text
- data1.Recordset("日期") = Date
- data1.Recordset("時間") = Time()
- data1.UpdateRecord
- End Sub
- Private Sub MSComm1_OnComm() '串口中斷
- 'On Error Resume Next
- Static bFlag As Boolean
- Static Xbyte As Long
- Select Case MSComm1.CommEvent '選擇事件
- Case comEvReceive '接收到字符
- Dim I As Integer
- Dim InByte() As Byte '定義一個二進制指針放接收到的數據
- InByte = MSComm1.Input '數據轉移到指針
- Dim j As Long
- For j = 0 To UBound(InByte) '循環到指針上標
-
- inData = inData & Chr(InByte(j)) '取出一個字節換為16進制顯示用
-
- Next j
- DoEvents
- Text1.SelText = inData '將剛收到的字符串顯示出來
- inData = ""
- Text1.SelStart = Len(Text1.Text) '光標置后
- If Len(Text1.Text) = 10 Then
- Call 計算
- 'Call 找卡號
- End If
- Case comEventRxOver '接收緩沖區滿的處理
- MsgBox "接收緩沖區滿了!" '發出警告
- End Select
- End Sub
- Sub 計算()
- Dim temp As String
- Dim 標志 As String
- Dim k As Integer
- Dim yuer1 As String
- Dim 余額 As Integer
- temp = Text1.Text
- 標志 = Left(temp, 1)
- temp = Right(temp, Len(temp) - 2)
- Select Case 標志
- Case "s"
- Text1.Text = Left(temp, 4)
-
- Case "r"
- Text1.Text = ""
- MsgBox "寫卡成功!!!!!"
- GoTo 計算end
- Case Else
- Text1.Text = ""
- MsgBox "通訊有誤??????"
- GoTo 計算end
- End Select
- temp = Right(temp, 4)
- Text9.Text = Left(temp, 2) & "小時" & Right(temp, 2) & "分鐘"
- Text4.Text = Format(CStr((CSng(Left(temp, 2) * 60 + CSng(Right(temp, 2)))) / 100), "#00.00")
- 計算end:
-
- End Sub
- ……………………
- …………限于本文篇幅 余下代碼請下載附件…………
復制代碼
【必讀】版權免責聲明
1、本主題所有言論和內容純屬會員個人意見,與本論壇立場無關。2、本站對所發內容真實性、客觀性、可用性不做任何保證也不負任何責任,網友之間僅出于學習目的進行交流。3、對提供的數字內容不擁有任何權利,其版權歸原著者擁有。請勿將該數字內容進行商業交易、轉載等行為,該內容只為學習所提供,使用后發生的一切問題與本站無關。 4、本網站不保證本站提供的下載資源的準確性、安全性和完整性;同時本網站也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的損失或傷害。 5、本網站所有軟件和資料均為網友推薦收集整理而來,僅供學習用途使用,請務必下載后兩小時內刪除,禁止商用。6、如有侵犯你版權的,請及時聯系我們(電子郵箱1370723259@qq.com)指出,本站將立即改正。
|