久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4514|回復: 4
打印 上一主題 下一主題
收起左側

VB串口和單片機讀IC卡上位機源程序

[復制鏈接]
跳轉到指定樓層
樓主
VB寫的串口和單片機讀卡程序 有需要的下


所有資料51hei提供下載:
自己寫的通過串口和單片機通訊的ic卡讀卡程序.rar (55.17 KB, 下載次數: 73)


vb源程序如下:
  1. Attribute VB_Name = "IC卡管理自動記錄系統"
  2. Attribute VB_GlobalNameSpace = False
  3. Attribute VB_Creatable = False
  4. Attribute VB_PredeclaredId = True
  5. Attribute VB_Exposed = False
  6. Option Explicit
  7. Public inData As String '串口中斷時讀入的字符串
  8. Dim TEXT_OK As Boolean
  9. Dim text1_temp As String
  10. Dim t7 As String



  11. Private Sub Command2_Click()
  12. data1.Recordset.MovePrevious
  13. If data1.Recordset.BOF Then data1.Recordset.MoveFirst
  14. Text1.Text = data1.Recordset("卡號")
  15. Text2.Text = data1.Recordset("姓名")
  16. Text3.Text = data1.Recordset("班級")
  17. Text4.Text = data1.Recordset("余額")
  18. Text5.Text = data1.Recordset("日期")
  19. Text6.Text = data1.Recordset("時間")

  20. Text9.Text = Format(CStr(CStr((CSng(Text4.Text) * 100) \ 60)), "#00") & "小時" & Format(CStr(CStr((CSng(Text4.Text) * 100) Mod 60)), "#00") & " 分鐘"
  21. data1.UpdateRecord
  22. End Sub

  23. Private Sub Command3_Click()

  24. If data1.Recordset.EOF = False Then data1.Recordset.MoveNext
  25. If data1.Recordset.EOF Then data1.Recordset.MoveLast
  26. Text1.Text = data1.Recordset("卡號")
  27. Text2.Text = data1.Recordset("姓名")
  28. Text3.Text = data1.Recordset("班級")
  29. Text4.Text = data1.Recordset("余額")
  30. Text5.Text = data1.Recordset("日期")
  31. Text6.Text = data1.Recordset("時間")
  32. data1.UpdateRecord

  33. Text9.Text = Format(CStr(CStr((CSng(Text4.Text) * 100) \ 60)), "#00") & "小時" & Format(CStr(CStr((CSng(Text4.Text) * 100) Mod 60)), "#00") & " 分鐘"
  34. End Sub

  35. Sub 找卡號()
  36. Dim n, m As Integer
  37. data1.Refresh
  38. data1.Recordset.MoveLast
  39. m = data1.Recordset.RecordCount
  40. data1.Refresh
  41. data1.Recordset.MoveFirst

  42. For n = 1 To m Step 1
  43.     If Text1.Text = data1.Recordset("卡號") Then
  44.         Text1.Text = data1.Recordset("卡號")
  45.         'Text2.Text = data1.Recordset("姓名")
  46.         'Text3.Text = data1.Recordset("班級")
  47.     End If
  48.     data1.Recordset.MoveNext
  49. Next n
  50. End Sub




  51. Private Sub Command6_Click()
  52. Timer2.Enabled = True
  53. Command9.Enabled = True
  54. Command6.Enabled = False
  55. End Sub

  56. Private Sub Command7_Click()

  57. Text1.Text = ""

  58. Text2.Text = ""
  59. Text3.Text = ""
  60. Text4.Text = ""
  61. MSComm1.Output = "rr12345678" '把查詢命令發出到串口
  62. End Sub
  63. Private Sub Command8_Click()
  64. Dim NUM, n, m As Integer

  65. Call CACK_TEXT
  66. If TEXT_OK = True Then
  67.     NUM = Val(Text4.Text)
  68.     n = NUM \ 256
  69.     m = NUM - n * 256
  70.     'Call 寫入單片機
  71.    
  72.     Call 寫入數據庫
  73.     text1_temp = Text1.Text
  74.     Text1.Text = ""
  75. Else
  76.     n = MsgBox("請正確輸入", 5 + vbExclamation, "錯誤")
  77. End If

  78. End Sub
  79. Sub 寫入單片機()
  80. Dim adsafdds As String
  81. Dim yuer1, yuer2 As String
  82. yuer1 = Format(CStr(CStr((CSng(Text4.Text) * 100) \ 60)), "#00")
  83. yuer2 = Format(CStr(CStr((CSng(Text4.Text) * 100) Mod 60)), "#00")

  84. adsafdds = "ss" & Text1.Text & yuer1 & yuer2
  85. MSComm1.Output = adsafdds

  86. End Sub

  87. Private Sub Command9_Click()
  88. Timer2.Enabled = False
  89. Command6.Enabled = True
  90. Command9.Enabled = False
  91. End Sub

  92. Private Sub Form_Load()
  93. MSComm1.PortOpen = True
  94. MSComm1.RThreshold = 1
  95. Command8.Enabled = False
  96. Command6.Enabled = True
  97. Command9.Enabled = False
  98. End Sub
  99. Sub CACK_TEXT()
  100. TEXT_OK = False
  101. If (Len(Text1.Text) = 4 And Len(Text4.Text) < 6) Then TEXT_OK = True
  102. End Sub
  103. Sub 寫入數據庫()
  104. data1.Refresh
  105. data1.Recordset.MoveLast
  106. data1.Recordset.AddNew
  107. data1.Recordset("卡號") = Text1.Text
  108. 'data1.Recordset("姓名") = Text2.Text
  109. 'data1.Recordset("班級") = Text3.Text
  110. data1.Recordset("余額") = Text4.Text
  111. data1.Recordset("日期") = Date
  112. data1.Recordset("時間") = Time()
  113. data1.UpdateRecord

  114. End Sub


  115. Private Sub MSComm1_OnComm() '串口中斷
  116. 'On Error Resume Next
  117. Static bFlag As Boolean
  118. Static Xbyte As Long
  119. Select Case MSComm1.CommEvent '選擇事件
  120. Case comEvReceive '接收到字符
  121. Dim I As Integer
  122.         Dim InByte() As Byte '定義一個二進制指針放接收到的數據
  123.         InByte = MSComm1.Input '數據轉移到指針
  124.         Dim j As Long
  125.         For j = 0 To UBound(InByte) '循環到指針上標
  126.             
  127.             inData = inData & Chr(InByte(j)) '取出一個字節換為16進制顯示用
  128.          
  129.         Next j
  130. DoEvents
  131.     Text1.SelText = inData '將剛收到的字符串顯示出來
  132.     inData = ""
  133. Text1.SelStart = Len(Text1.Text) '光標置后
  134.   If Len(Text1.Text) = 10 Then
  135.     Call 計算
  136.     'Call 找卡號
  137.   End If
  138. Case comEventRxOver '接收緩沖區滿的處理
  139. MsgBox "接收緩沖區滿了!" '發出警告
  140. End Select

  141. End Sub

  142. Sub 計算()
  143. Dim temp As String
  144. Dim 標志 As String
  145. Dim k As Integer
  146. Dim yuer1   As String
  147. Dim 余額    As Integer
  148. temp = Text1.Text

  149. 標志 = Left(temp, 1)
  150. temp = Right(temp, Len(temp) - 2)
  151. Select Case 標志
  152.     Case "s"
  153.         Text1.Text = Left(temp, 4)
  154.         
  155.     Case "r"
  156.         Text1.Text = ""
  157.         MsgBox "寫卡成功!!!!!"

  158.         GoTo 計算end
  159.     Case Else
  160.         Text1.Text = ""
  161.         MsgBox "通訊有誤??????"
  162.         GoTo 計算end
  163. End Select
  164.     temp = Right(temp, 4)
  165.     Text9.Text = Left(temp, 2) & "小時" & Right(temp, 2) & "分鐘"
  166.     Text4.Text = Format(CStr((CSng(Left(temp, 2) * 60 + CSng(Right(temp, 2)))) / 100), "#00.00")
  167. 計算end:
  168.    
  169. End Sub


  170. ……………………

  171. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:130231 發表于 2017-10-8 22:25 | 只看該作者
請教一下用什么單片機好。
回復

使用道具 舉報

板凳
ID:241242 發表于 2017-11-17 13:37 | 只看該作者
真是不錯
回復

使用道具 舉報

地板
ID:241242 發表于 2017-11-17 13:37 | 只看該作者
刷卡器和單片機連接,然后單片機再和VB通過串口連接嗎?
回復

使用道具 舉報

5#
ID:252862 發表于 2017-11-25 16:20 | 只看該作者
正在學習IC卡的單片機和上位機通信,多謝分享。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜午夜精品一区二区三区文 | 成人二区 | 国产主播第一页 | www.国产一区 | 黄视频网址| 国产免费又黄又爽又刺激蜜月al | www.99热这里只有精品 | 欧美久久久久久久久中文字幕 | 国产在线网站 | 亚洲天堂影院 | 亚洲欧洲精品成人久久奇米网 | 久视频在线观看 | 成人精品一区二区三区中文字幕 | 国产91精品在线 | 亚洲欧美一区二区三区国产精品 | 色综合天天天天做夜夜夜夜做 | 99精品一区二区三区 | 91污在线 | 国产精品高潮呻吟久久 | 视频三区 | av在线播放国产 | 九色在线| 国产成人免费视频网站高清观看视频 | 久久69精品久久久久久久电影好 | 欧美一区二区三区在线 | 99re在线视频 | 美女在线观看av | 亚洲精品一 | 亚洲欧美一区二区三区情侣bbw | 久久爆操 | 亚洲一区视频在线 | 欧美高清视频在线观看 | 午夜性视频 | 久久国产一区二区 | 日韩欧美一区二区在线播放 | 欧美成人精品在线观看 | 一区二区三区成人 | 黄色播放 | 亚洲欧美日韩中文字幕一区二区三区 | 免费观看一级毛片视频 | 免费在线观看一区二区三区 |