<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于89C51單片機(jī)的數(shù)字視頻監(jiān)控系統(tǒng)鍵盤及報(bào)警控制卡設(shè)計(jì)

          基于89C51單片機(jī)的數(shù)字視頻監(jiān)控系統(tǒng)鍵盤及報(bào)警控制卡設(shè)計(jì)

          作者: 時(shí)間:2012-12-13 來源:網(wǎng)絡(luò) 收藏

          3 系統(tǒng)軟件

          系統(tǒng)軟件主要有兩部分組成。

          3.1 向主機(jī)發(fā)送掃描碼

          與PC標(biāo)準(zhǔn)兼容,當(dāng)檢測到有效鍵閉合時(shí),鍵盤向主機(jī)發(fā)送接通碼,當(dāng)檢測到閉合鍵釋放時(shí),發(fā)送斷開碼,即在接通碼前加0F0H,系統(tǒng)采用中斷的方式每隔10ms掃描一次鍵盤,考慮到的實(shí)際情況,與標(biāo)準(zhǔn)PC機(jī)鍵盤不一樣的是,每次按鍵無論時(shí)間長短,只發(fā)送一次接通碼,且每次有效按鍵輸入,均有聲音提示。

          3.2 鍵盤接收主機(jī)控制命令及應(yīng)答

          主機(jī)的控制命令包括兩部分,一部分是標(biāo)準(zhǔn)PC機(jī)發(fā)送給鍵盤的控制命令,主要是用于鍵盤的自檢,另一部分是本系統(tǒng)增設(shè)的控制命令,主要是和外設(shè)進(jìn)行雙向通信以實(shí)現(xiàn)輸入輸出功能。主機(jī)開機(jī)時(shí)都要對鍵盤進(jìn)行自檢,主機(jī)對鍵盤的自檢是通過鍵盤控制命令實(shí)現(xiàn)的,主機(jī)要求鍵盤每接收一個(gè)命令都要用0FAH作為應(yīng)答,而且在發(fā)送鍵盤復(fù)位命令0FFH后,鍵盤要發(fā)送0FAH和0AAH作為鍵盤自檢正確的響應(yīng)。本系統(tǒng)增設(shè)的控制命令是在檢測到動(dòng)態(tài)信號及系統(tǒng)異常時(shí)通知外設(shè)以便發(fā)出聲光信號。這些控制命令是通過對主機(jī)鍵盤接口狀態(tài)寄存器(口地址064H)和數(shù)據(jù)寄存器(口地址060H)的讀寫操作實(shí)現(xiàn)的。圖3給出了鍵盤處理中斷服務(wù)子程序框圖。

          圖3 鍵盤處理中斷服務(wù)子程序框圖

          4 結(jié)束語

          本系統(tǒng)在不占用主機(jī)硬件資源的情況下,利用PC鍵盤接口實(shí)現(xiàn)了與外設(shè)的雙向通信,所鍵盤及報(bào)警具有鍵數(shù)少、操作簡單和可靠性高的優(yōu)點(diǎn),已在實(shí)際的硬盤錄像中得到了成功的應(yīng)用,證明該方法是切實(shí)可行的,可廣泛應(yīng)用于工業(yè)監(jiān)控系統(tǒng)中。

          DIY機(jī)械鍵盤相關(guān)社區(qū):機(jī)械鍵盤DIY



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();