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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 4616|回復(fù): 4
收起左側(cè)

VB串口和單片機(jī)讀IC卡上位機(jī)源程序

[復(fù)制鏈接]
ID:237723 發(fā)表于 2017-10-8 11:33 | 顯示全部樓層 |閱讀模式
VB寫的串口和單片機(jī)讀卡程序 有需要的下
0.png

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


vb源程序如下:
  1. Attribute VB_Name = "IC卡管理自動(dòng)記錄系統(tǒng)"
  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 '串口中斷時(shí)讀入的字符串
  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("卡號(hào)")
  15. Text2.Text = data1.Recordset("姓名")
  16. Text3.Text = data1.Recordset("班級(jí)")
  17. Text4.Text = data1.Recordset("余額")
  18. Text5.Text = data1.Recordset("日期")
  19. Text6.Text = data1.Recordset("時(shí)間")

  20. Text9.Text = Format(CStr(CStr((CSng(Text4.Text) * 100) \ 60)), "#00") & "小時(shí)" & 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("卡號(hào)")
  27. Text2.Text = data1.Recordset("姓名")
  28. Text3.Text = data1.Recordset("班級(jí)")
  29. Text4.Text = data1.Recordset("余額")
  30. Text5.Text = data1.Recordset("日期")
  31. Text6.Text = data1.Recordset("時(shí)間")
  32. data1.UpdateRecord

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

  35. Sub 找卡號(hào)()
  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("卡號(hào)") Then
  44.         Text1.Text = data1.Recordset("卡號(hào)")
  45.         'Text2.Text = data1.Recordset("姓名")
  46.         'Text3.Text = data1.Recordset("班級(jí)")
  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" '把查詢命令發(fā)出到串口
  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 寫入單片機(jī)
  71.    
  72.     Call 寫入數(shù)據(jù)庫(kù)
  73.     text1_temp = Text1.Text
  74.     Text1.Text = ""
  75. Else
  76.     n = MsgBox("請(qǐng)正確輸入", 5 + vbExclamation, "錯(cuò)誤")
  77. End If

  78. End Sub
  79. Sub 寫入單片機(jī)()
  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 寫入數(shù)據(jù)庫(kù)()
  104. data1.Refresh
  105. data1.Recordset.MoveLast
  106. data1.Recordset.AddNew
  107. data1.Recordset("卡號(hào)") = Text1.Text
  108. 'data1.Recordset("姓名") = Text2.Text
  109. 'data1.Recordset("班級(jí)") = Text3.Text
  110. data1.Recordset("余額") = Text4.Text
  111. data1.Recordset("日期") = Date
  112. data1.Recordset("時(shí)間") = 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 '定義一個(gè)二進(jìn)制指針?lè)沤邮盏降臄?shù)據(jù)
  123.         InByte = MSComm1.Input '數(shù)據(jù)轉(zhuǎn)移到指針
  124.         Dim j As Long
  125.         For j = 0 To UBound(InByte) '循環(huán)到指針上標(biāo)
  126.             
  127.             inData = inData & Chr(InByte(j)) '取出一個(gè)字節(jié)換為16進(jìn)制顯示用
  128.          
  129.         Next j
  130. DoEvents
  131.     Text1.SelText = inData '將剛收到的字符串顯示出來(lái)
  132.     inData = ""
  133. Text1.SelStart = Len(Text1.Text) '光標(biāo)置后
  134.   If Len(Text1.Text) = 10 Then
  135.     Call 計(jì)算
  136.     'Call 找卡號(hào)
  137.   End If
  138. Case comEventRxOver '接收緩沖區(qū)滿的處理
  139. MsgBox "接收緩沖區(qū)滿了!" '發(fā)出警告
  140. End Select

  141. End Sub

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

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

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


  170. ……………………

  171. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼




回復(fù)

使用道具 舉報(bào)

ID:130231 發(fā)表于 2017-10-8 22:25 | 顯示全部樓層
請(qǐng)教一下用什么單片機(jī)好。
回復(fù)

使用道具 舉報(bào)

ID:241242 發(fā)表于 2017-11-17 13:37 | 顯示全部樓層
真是不錯(cuò)
回復(fù)

使用道具 舉報(bào)

ID:241242 發(fā)表于 2017-11-17 13:37 | 顯示全部樓層
刷卡器和單片機(jī)連接,然后單片機(jī)再和VB通過(guò)串口連接嗎?
回復(fù)

使用道具 舉報(bào)

ID:252862 發(fā)表于 2017-11-25 16:20 | 顯示全部樓層
正在學(xué)習(xí)IC卡的單片機(jī)和上位機(jī)通信,多謝分享。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 男女羞羞视频在线观看 | 黑人精品欧美一区二区蜜桃 | 亚洲一区二区三区桃乃木香奈 | 午夜影视 | 黄色片在线网站 | 国产精品视频一二三区 | 精品久久久网站 | 成人免费大片黄在线播放 | 中文字幕1区2区 | 精品av天堂毛片久久久借种 | 亚洲 欧美 另类 日韩 | 久久免费视频1 | 成人在线视频观看 | 精品久久久久一区二区国产 | 国产精品自拍视频 | 国产欧美精品一区二区色综合朱莉 | 久久免费国产 | 国产视频综合 | 色网站在线免费观看 | 精品久久久一区 | 久久精品91久久久久久再现 | 国产精品国产成人国产三级 | 在线视频亚洲 | 精品日韩一区二区三区av动图 | 国产成都精品91一区二区三 | av激情在线| 99爱免费 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 成人久久18免费网站图片 | 一级片av | 色小姐综合网 | 伊人网站 | 男人午夜视频 | 精品在线一区二区三区 | 成人h电影在线观看 | 99re热精品视频国产免费 | 成人综合视频在线观看 | av一区二区在线观看 | 日韩欧美在线视频 | 国产精品爱久久久久久久 | 精品粉嫩超白一线天av |