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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ST20P18單片機的通用家電無線遙控設(shè)備的設(shè)計方案

          基于ST20P18單片機的通用家電無線遙控設(shè)備的設(shè)計方案

          作者: 時間:2010-09-20 來源:網(wǎng)絡(luò) 收藏

            該模塊的顯示RAM分為4塊,每塊5行,8列,所以共有4×5×8位。液晶屏幕上的每一個8點列對應(yīng)顯示RAM中的一個列字節(jié)。當(dāng)設(shè)置了塊地址和列地址后,就唯一確定了顯示RAM中的一個列字節(jié)。每個列字節(jié)中最上面一位為LSB,最下面一位為MSB。對顯示RAM的一個列字節(jié)賦值就是對液晶屏幕上對應(yīng)像素點是否顯示進行控制。把不同字符的字模寫到不同位置的顯示RAM字節(jié)中,就能在屏幕上顯示相應(yīng)的所要求的字符。

            器的軟件

            開機后,先進行初始化,包括對的初始化、LCD的初始化和其他模塊的初始化。出于省電的考慮在40s內(nèi)若沒有鍵按下,讓的LCD控制器進入空閑模式。用“for”循環(huán)來計時,并初值為零。隨后開始40s計時,若在此期間有鍵按下,則進入中斷服務(wù)程序,若40s內(nèi)無鍵按下,則的 LCD控制器進入空閑模式。若在空閑中有鍵被按下,單片機被喚醒,執(zhí)行中斷服務(wù)程序。由于單片機的LCD控制器被中斷喚醒執(zhí)行完中斷程序返回后,單片機會接著執(zhí)行把單片機的LCD控制器置為空閑模式的那條指令的下一條指令,因此在把單片機的LCD控制器置為空閑模式的指令后再有一個循環(huán)來計時,由于中斷返回前,重數(shù)初值為零,所以會重新開始5s的計時。在這40s內(nèi),若無鍵按下, 則單片機的LCD控制器又進入空閑模式。程序流程圖如圖4所示。

            

            圖4 軟件設(shè)計流程

            通信協(xié)議

            1 編碼字的格式

            能實現(xiàn)編碼功能的邏輯電路稱為編碼器。每一種編碼芯片都有一種特定的編碼格式。我們把傳送一位二進制數(shù)0或者1的時間作為一個時間單位T,編碼信號的頻率為F=1/T。這里用的是種比較常用的編碼格式,每一幀由步碼、地址碼和數(shù)據(jù)碼組成,同步碼用在一幀的開始,是一幀的識別標(biāo)志,寬度為8T;地址碼20(A0—A19),寬度為20T;數(shù)據(jù)碼4位(D0-D3),寬度為4T, 一幀占據(jù)的總時間是32T。

            對應(yīng)于每一種狀態(tài),編碼芯片內(nèi)部能夠生成一種特殊的編碼,這種編碼也是由“1”和“0”組成,但并不是簡單的用高電平代表“1”,用低電平代表 “0”,而是用高電平與低電平寬度比例的不同來區(qū)分“1”和“0”,也就是所謂的占空比。為了提高此編碼傳輸串行信號的可靠性,故此編碼采用一個周期的占空比為1/4的脈沖表示0,占空比為3/4的脈沖表示1,同步信號用一個占空比為1/32的脈沖表示,如圖5所示。



          評論


          相關(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); })();