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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 一種新穎的智能碼盤的研究

          一種新穎的智能碼盤的研究

          作者: 時間:2012-03-09 來源:網絡 收藏

          摘要:在此介紹了一種由極少硬件構成的簡易碼盤,該系統(tǒng)主要由單片機和拔碼開關組成,采用撥碼開關設置輸入數(shù)據(jù)量的位碼和數(shù)碼,通過外部中斷數(shù)據(jù)采集按鍵控制該位數(shù)據(jù)量的輸入,并由顯示器監(jiān)視,內部E2PROM保存,同時通過串行口向用戶系統(tǒng)發(fā)送設置數(shù)據(jù)。故使用該碼盤用戶系統(tǒng)僅占用一個串行口或虛擬串行口就可實現(xiàn)16位BCD碼設置或64位二進制碼輸入,16位BCD碼可根據(jù)用戶需要分割為幾組,每組數(shù)據(jù)的位數(shù)也可任意定義,以滿足各種控制系統(tǒng)控制參數(shù)設置的需要。
          關鍵詞:碼盤;16位BCD碼;撥碼開關;E2PROM

          0 引言
          在自動控制系統(tǒng)應用中,經常需要設定控制目標參數(shù),這些參數(shù)一般由鍵盤或碼盤輸入,隨著工業(yè)自動化程度越來越高,各種碼盤的需求也逐漸增加。
          很多學者了各式各樣的碼盤。他們大多是利用物理、電磁、生物、光學等原理,研制出撥鍵式、光電式及光柵式等碼盤。然而,這些碼盤都有一個共同的缺點,一個碼盤只能輸入一個數(shù)據(jù)位,當輸入量位數(shù)過多時,就需要多個碼盤,這樣將會帶來計算機接口數(shù)量不夠的矛盾,即輸入數(shù)據(jù)位數(shù)越多,硬件越多,占用CPU接口就越多,硬件體積大,成本高,系統(tǒng)結構復雜。
          本文了一種簡易碼盤,只需占用系統(tǒng)CPU一個串行接口或2個普通輸入/輸出口(用虛擬串行口技術)就可實現(xiàn)16位BCD碼或者64位二進制碼輸入,不僅簡化了硬件電路,而且解決了當輸入數(shù)據(jù)位數(shù)過多時系統(tǒng)CPU接口不足的難題。

          1 設計原理
          該智能碼盤用8位撥碼開關實現(xiàn)數(shù)據(jù)輸入,其中高4位用于選擇輸入碼(BCD碼)的位數(shù),低4位用于設置BCD碼的大小。如設置第8位碼為7,則撥碼開關高4位設置為1000,低4位為0111,然后按一次采集按鈕即完成輸入。碼盤CPU將采集到的BCD碼存入相應的內存,并轉存片內E2PROM或FLASH內,然后再從串行口輸出供用戶設備使用(用戶CPU串口采樣)。智能碼盤系統(tǒng)框圖如圖1所示。

          本文引用地址:http://www.ex-cimer.com/article/160992.htm

          a.jpg


          為了進一步降低成本,當用戶系統(tǒng)不大的情況下,也可選擇用戶CPU替代碼盤CPU。即利用用戶CPU的一個普通8位輸入/輸出口和一個外部中斷即可完成輸入控制參數(shù)設置功能。系統(tǒng)框圖如圖2所示。輸入完畢,所有撥碼開關處于斷開狀態(tài),該口即可恢復其他輸入或輸出口功能,即不占用用戶系統(tǒng)接口,提高了接口使用效率。

          b.jpg


          上一頁 1 2 3 下一頁

          關鍵詞: 研究 智能 新穎

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();