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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA的家居遙控設計

          基于FPGA的家居遙控設計

          作者: 時間:2011-10-27 來源:網(wǎng)絡 收藏
          4 軟件

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

            4.1 液晶(LCD)驅(qū)動程序

            我們采用89S51單片機來控制液晶屏,通過不斷循環(huán)讀取的狀態(tài)編碼來控制液晶顯示器實時地刷新其顯示內(nèi)容,其中包括系統(tǒng)當前所處的狀態(tài)(是處于學習狀態(tài)還是狀態(tài))以及當前處理的對象類別和編號,防止用戶由于不清楚當前的對象而產(chǎn)生誤操作,同時在每一個狀態(tài)液晶屏都要提示用戶下一步該如何操作,為用戶提供一個十分人性化的使用界面,軟件使用Keil C編寫。其程序流程如圖6所示。

          圖6.LCD顯示軟件流程

            4.2 Girder程序

            Girder是一款完全免費的軟件,從本質(zhì)上說它可接收來自任何輸入設備的指令,識別后做事先定義好的動作,如啟動某個程序或鼠標雙擊等。首先要設置好硬件,從網(wǎng)上下載串口驅(qū)動文件IgorPlug.dll拷貝到Girder目錄下的子目錄Plugins中。Girder軟件的界面如圖7。

            進入“filesettings”,點擊選項卡上的“Plugins”,找到滾動窗口中的“Igor SFH-56 device”,在它前面的小框中打上勾,再點擊左邊的“Setting”, 選擇你所使用的串口,點擊OK就可以通過串口來控制電腦了。

          圖7.Girder的主界面

            對于像關機,關閉顯示器等動作,Girder已經(jīng)有設置好的現(xiàn)成的命令可用,對于一些較復雜的播放軟件的控制可以通過簡單的設置來完成。

            5 關鍵技術--對編碼信號的學習方法

            紅外遙控信號的編碼方式多種多樣,例如圖8所示的是一種電視卡自帶的遙控器的編碼波形,它采用的是Space編碼,前面9ms的脈沖加4ms低電平是引導碼,中間是8位地址碼00H、8位地址反碼FFH、8位數(shù)據(jù)碼E8H、8位數(shù)據(jù)反碼17H,從引導碼開始計時發(fā)送108ms后若按鍵仍沒有松開則以后每隔108ms發(fā)送一個9ms高+2ms底+0.5ms高的重復簡碼,直到按鍵松開為止。

           一種電視卡的遙控器編碼波形

          圖8. 一種電視卡的遙控器編碼波形

            如果每一種遙控器都通過解碼后存儲“0”“1”的數(shù)字信號,那么解碼的工作將是非常繁重而且不經(jīng)濟的,一個簡單的方法是記錄下波形中每個高低電平的寬度,使用時再按照原始形式將波形發(fā)射出去。

            6 結語

            智能各類產(chǎn)品的智能化加速必將推動產(chǎn)業(yè)發(fā)展,讓我們共同期待,相信智能時代還會創(chuàng)造更多的智能奇跡,智能生活終會飛入尋常百姓家,普通百姓也能享受高科技時代下的智慧生活。

          紅外熱像儀相關文章:紅外熱像儀原理

          上一頁 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); })();