摘要:[Visual Basic 6.0] 新乙級硬體裝修題目 2014年新版
[Visual Basic 6.0] 新乙級硬體裝修題目 2014年新版
新題目由原本的並列埠換成USB Port。也算Visual Basic的一大創新,搭配ATMega8晶片達到控制效果。
程式碼:
Form
'////////////////////////////////////////////////////////////////////////////////
' 新乙級硬體裝修 Visual Baisc 6.0 程式 流程分析
'
' 進入視窗後 => 預設 16 個 (綠、紅各 8 顆) 模擬燈為白色 (未連線狀態)
' 並且在 TextBox 上顯示目前的時間 Current Time:XX:XX:XX
' 接上USB 後 => 會將預設個 16 個模擬燈分別變化為 8 個淺紅、淺綠色
' (RGB(128, 0, 0) / (RGB(0, 128, 0)) )(已連線狀態)
' 這時候VB介面上的模擬燈號才會與電路板上的燈號同步動作
' 當 電路板上的第 3 顆綠燈為發光時 VB介面上的模擬燈號綠色第三顆
' 會呈現深綠色的狀態 (RGB(0, 255, 0)) 即為模擬發亮
'////////////////////////////////////////////////////////////////////////////////
Dim A, B(99), c
Private Sub Command1_Click(Index As Integer)
A = Index
c = 0
End Sub
Private Sub display(no)
For i = 0 To 7
If no Mod 2 = 1 And A = 1 Then G(i).FillColor = RGB(0, 255, 0) Else G(i).FillColor = RGB(0, 128, 0)
If no Mod 2 = 1 And A = 2 Then R(i).FillColor = RGB(255, 0, 0) Else R(i).FillColor = RGB(128, 0, 0)
no = no \ 2
Next i
End Sub
Private Sub Form_Load()
' 設定動作控制到 B 陣列中
B(0) = "第一個動作"
B(1) = "第二個動作"
B(2) = "第三個動作"
B(3) = "第四個動作"
B(4) = "第五個動作"
B(N) = "第N 個動作"
End Sub
Private Sub Timer1_Timer()
' 每次動作必須要先做的事情
' 顯示目前時間到畫面上 (Text1)
Text1.Text = "Current Time:" & Time$ ' 顯示時間
' 將 紅、綠色模擬燈 (Shape) 顏色接設為白色 RGB(255,255,255) 為 白色
For i = 0 To 7
G(i).FillColor = RGB(255, 255, 255) ' 模擬綠燈 8 顆 (索引 0~7)
R(i).FillColor = RGB(255, 255, 255) ' 模擬紅燈 8 顆 (索引 0~7)
Next i
If OpenUsbDevice(VendorID, ProductID) Then ' 判斷是否與電路板連結上
For i = 0 To 7 '
G(i).FillColor = RGB(0, 128, 0)
R(i).FillColor = RGB(128, 0, 0)
Next i
OutDataCtrl 0, 0
OutDataCtrl 0, 16
If A = 1 Then OutDataCtrl B(c), 0: display (B(c))
If A = 2 And c <= 7 Then
OutDataCtrl 2 ^ c, 32
OutDataCtrl 2 ^ c, 48
display (2 ^ c)
End If
End If
If A = 3 Then CloseUsbDevice: End ' 關閉 USB 驅動並關閉程式
If c > 15 Then c = 15 Else c = c + 1
End Sub
模組
Public Declare Function OpenUsbDevice Lib "USBIO.dll" (ByVal MyUsbVendorID As Integer, ByVal MyUsbProductID As Integer) As Boolean
Public Declare Sub OutDataCtrl Lib "USBIO.dll" (ByVal OutData As Byte, ByVal OutControl As Byte)
Public Declare Sub CloseUsbDevice Lib "USBIO.dll" ()
Public Const VendorID = &H1234
Public Const ProductID = &H6789
檔案下載 (包含 USBIO.dll 檔):
※原程式碼出自於乾龍工作室,本人將程式碼加以註解。
#0xDe 從分享中學習
#Facebook:ProgrammerDe (https://www.facebook.com/MicrosoftDes) 有問題歡迎提問