基于ST20P18單片機的通用家電無線遙控設(shè)備的設(shè)計方案
該模塊的顯示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)來計時,并設(shè)計初值為零。隨后開始40s計時,若在此期間有鍵按下,則進入中斷服務(wù)程序,若40s內(nèi)無鍵按下,則單片機的 LCD控制器進入空閑模式。若在空閑中有鍵被按下,單片機被喚醒,執(zhí)行中斷服務(wù)程序。由于單片機的LCD控制器被中斷喚醒執(zhí)行完中斷程序返回后,單片機會接著執(zhí)行把單片機的LCD控制器置為空閑模式的那條指令的下一條指令,因此在把單片機的LCD控制器置為空閑模式的指令后再有一個循環(huán)來計時,由于中斷返回前,重設(shè)計數(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所示。
評論