紅外光電開關(guān)在人流量記錄中的應(yīng)用
反射板反射式光電開關(guān)集發(fā)射和接收于一體,使用和安裝非常方便。采用繼電器輸出,有多種工作電壓,能調(diào)節(jié)靈敏度,精心設(shè)計(jì)的光路經(jīng)過透鏡聚焦配合特制的反射板反射,可以達(dá)到4米的檢測(cè)距離。利用這個(gè)特性可以做成電腦人次記錄器。光電開關(guān)產(chǎn)生的是開關(guān)信號(hào),需要加工,才能讓計(jì)算機(jī)接收。辦法是采用簡(jiǎn)單的單片機(jī)電路接收開關(guān)信號(hào),通過串口傳 送到計(jì)算機(jī),計(jì)算機(jī)使用專用的軟件進(jìn)行記錄。這樣的人次記錄器制作較為簡(jiǎn)單,費(fèi)用較低。
一、具體實(shí)現(xiàn)
1.單片機(jī)電路及軟件的設(shè)計(jì)
芯片可以采用AT89C51,它屬于51單片機(jī),有一個(gè)全雙工的串行通信口,所以單片機(jī)和電腦之間可以方便地進(jìn)行串口 通信。進(jìn)行串行通信時(shí)要滿足一定的條件,比如電腦的串口是 RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須 有一個(gè)電平轉(zhuǎn)換電路,可以采用專用芯片MAX232進(jìn)行轉(zhuǎn)換,用三線制連接串口,和電腦的9針串口只連接其中的3根線:第2腳的RXD、第3腳的TXD、第5腳的GND。這是最簡(jiǎn)單 的連接方法。電路如圖1所示,MAX232的第10腳和單片機(jī)的】1腳連接,第9腳和單片機(jī)的】0腳連接,第15腳和單片機(jī)的20腳連接。芯片的VCC電壓為5V,可從計(jì)算機(jī)的USB口獲得。
單片機(jī)寫人程序如下:
ORG 0000H
MOV SC〇N,#50H;設(shè)置成串口 1方式 MOV TMOD, #20H ;波特率發(fā)生器T1工作在模式2上 MOV PCON, #80H ;波特率翻倍為 2400x2 =4800BPS MOV TH1,#0F3H
;預(yù)置初值(按照波特率2400BPS預(yù)置初值)
MOV TL1, #0F3H
;預(yù)置初值(按照波特率2400BPS預(yù)置初值)
SETB TR1 ;啟動(dòng)定時(shí)器T1;以上完成通訊初始化設(shè)置 WRIT: JB P1. 0, $
;判斷光電開關(guān)有無(wú)閉合,如果沒有閉合就等待 ACALL DELAY10 ;延時(shí)10毫秒消觸點(diǎn)抖動(dòng) JB P1.0, WRIT ;去除干擾信號(hào) JNB P1.0,$ ;等待按鍵松開 MOV A, #02FH;將16進(jìn)制數(shù)2F發(fā)送到串口去 MOV SBUF,A ;將2卩通過串口發(fā)送出去AJMP WRIT DELAY10: MOV R4, #20 ; 10毫秒延時(shí)子程序 D2: MOV R5, #248 DJNZ R5, $
DJNZ R4, D2
RET
END
上面程序經(jīng)匯編以后獲得寫人編程器燒寫文件,文件的二進(jìn)制代碼如下:
二、軟件設(shè)計(jì)
在VB中,新建一個(gè)工程,添加一個(gè)新窗口Forml,添加 部件 Microsoft Comm Control 6. 0,在窗 口 中增加一個(gè) MSComm 控件MSComml,用于接收串[1數(shù)據(jù)。引用Microsoft ActiveX Data Objects 2. 6 Library,數(shù)據(jù)庫(kù)的訪問=一個(gè)文本框用于顯示人次,如圖2所示。
在Access中新建一個(gè)數(shù)據(jù)庠data, mdb,創(chuàng)建表tablel,設(shè)置字段日期(文本,10)、人次(數(shù)字,長(zhǎng)整梨).存放每天的進(jìn) 出人次。對(duì)于多出入口進(jìn)行人次記錄,后臺(tái)可以使用SQLServ- ei•數(shù)據(jù)庫(kù),增加一個(gè)地點(diǎn)字段作為出人口的識(shí)別。實(shí)現(xiàn)的核心 代碼如下:
Dim ConnStr As String
Dim
Private Sub Form丄oad ()
Dim Recordset 1 AsADODB. Recordset ConnStr = " Provider = Microsoft. Jet. OLEDB. 4. 0; Jet OLEDB: Data Source = 〃 + App. Path + "\VPN. mdb; Persist Security Info = False"
Call ConnAccess(App. Path + "\data. mdb")'打開數(shù)據(jù)庫(kù)
'初始化人次
Set Recordset 1 = Conn. Execute( M select * from table 1 where 日期+ Format(Now(), "YYYYMMDD” +"一)
If Not Recordset 1. EOF Then .找到
Textl, Text = LTrim (Str(Recordset 1. Fields("人次")))
Else
Textl, Text = "0"
End If
If MSComml. PortOpenThen MSComml. PortOpen = False MSComml. Comm Port = 1 '設(shè)置打開 C0M1 口 If MSComml. PortOpen = False Then MSComml, Settings = "4800, n, 8,1"
'9600波特率,無(wú)校驗(yàn),8位數(shù)據(jù)位,1位停止位 MSComml, PortOpen =True '打開串口 End If
MSComml. RThreshold = 1 '必須設(shè)置成1,不然不能觸發(fā) OnComm
Label2, Caption =,日期:"+ Format(Now( )f "YYYY 年 MM 月DD日,)
End Sub
Function ConnAccess (Database As String) As Boolean
'連接數(shù)據(jù)庫(kù)
On
Set Conn = NewADOD巳.Connection
Exit Function
ConnError:
MsgBoxError + % 將關(guān)閉窗口! ! ! ' , 〃出錯(cuò)〃
End
End Function
Private Sub MSComml 一OnComm ()
Dimav()AsByte '從接收緩沖區(qū)讀取數(shù)據(jù) Dim tAs Integer
Dim Recordset 1 AsADODB. Recordset
With MSComml
Select Case. CommEvent
Case comEvReceive
i = MSComml. InBufferCount
av = . Input
ifav(0) =&H2FThen
Set Recordset 1 =
If Not Recordset 1. EOF Then •找到 Textl. Text = LTrim (Str (Recordset 1 ■ Fields (w 人次’)+ 1)) Set Recordset 1 = Conn. Execute("update tablet set 人次 =人次 +1 where 日期=y" + Format!Now( ), " YYYYM- MDD” + …)
Else
Textl. Text = "1
Set Recordset 1 = Conn. Execute ("insert into table 1 (日期, 人次)values (…+ Format (Now (), "YYYYMMDD] + ”, 1)")
End If End If Case Else End Select End With End Sub
三、結(jié)語(yǔ)
在Windows環(huán)境下,利用單片機(jī)與計(jì)算機(jī)串口通信的功 能,使用編程簡(jiǎn)潔、面向?qū)ο蟮目梢暬幊陶Z(yǔ)言VisualBasic, 在反射板反射式光電開關(guān)的控制下,實(shí)現(xiàn)進(jìn)出人次量的記錄。本單片機(jī)程序在51單片機(jī)編程器上燒寫成功并通過調(diào)試,記 錄程序在Windows 98、Visual Basic 6. 0下調(diào)試通過。該人次記錄器通過張家港市圖書館使用,效果很好。
關(guān)于“光電開關(guān) 反射式光電開關(guān) ”的相關(guān)資訊
- 陽(yáng)光對(duì)于億光對(duì)射型光電開關(guān)的影響測(cè)試
- 實(shí)驗(yàn):光電傳感器—光電開關(guān)(紅外發(fā)光管與光敏三極管)
- 億光推出超小外形ITR光電開關(guān)
- 光電開關(guān)應(yīng)用問題解決方法
- 光電開關(guān)與其他光電器件之間的區(qū)別
- 對(duì)射式光電開關(guān)安裝時(shí)的注意事項(xiàng)
- 光電開關(guān)引腳的好壞如何判斷
- 光電開關(guān)在監(jiān)控中的應(yīng)用-視頻演示
- 光電開關(guān)在縫紉機(jī)中的應(yīng)用(2)視頻演示2
- 光電開關(guān)中縫紉機(jī)中的應(yīng)用(1)視頻演示1
我要評(píng)論: | |
---|---|
內(nèi) 容: | |
驗(yàn)證碼: | (內(nèi)容最多500個(gè)漢字,1000個(gè)字符) 看不清?! |
請(qǐng)注意: |
|
1.尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī),不發(fā)表攻擊性言論。 2.承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任。 3.新聞留言板管理人員有權(quán)保留或刪除其管轄留言中的任意內(nèi)容。 |
共有-條評(píng)論【我要評(píng)論】