ST20P18單片機應用于通用家電無(wú)線(xiàn)遙控設備
該模塊的顯示RAM分為4塊,每塊5行,8列,所以共有4×5×8位。液晶屏幕上的每一個(gè)8點(diǎn)列對應顯示RAM中的一個(gè)列字節。當設置了塊地址和列地址后,就唯一確定了顯示RAM中的一個(gè)列字節。每個(gè)列字節中最上面一位為L(cháng)SB,最下面一位為MSB。對顯示RAM的一個(gè)列字節賦值就是對液晶屏幕上對應像素點(diǎn)是否顯示進(jìn)行控制。把不同字符的字模寫(xiě)到不同位置的顯示RAM字節中,就能在屏幕上顯示相應的所要求的字符。本文引用地址:http://dyxdggzs.com/article/172107.htm
開(kāi)機后,先進(jìn)行初始化,包括對單片機的初始化、LCD的初始化和其他模塊的初始化。出于省電的考慮在40s內若沒(méi)有鍵按下,讓單片機的LCD控制器進(jìn)入空閑模式。用“for”循環(huán)來(lái)計時(shí),并設計初值為零。隨后開(kāi)始40s計時(shí),若在此期間有鍵按下,則進(jìn)入中斷服務(wù)程序,若40s內無(wú)鍵按下,則單片機的 LCD控制器進(jìn)入空閑模式。若在空閑中有鍵被按下,單片機被喚醒,執行中斷服務(wù)程序。由于單片機的LCD控制器被中斷喚醒執行完中斷程序返回后,單片機會(huì )接著(zhù)執行把單片機的LCD控制器置為空閑模式的那條指令的下一條指令,因此在把單片機的LCD控制器置為空閑模式的指令后再有一個(gè)循環(huán)來(lái)計時(shí),由于中斷返回前,重設計數初值為零,所以會(huì )重新開(kāi)始5s的計時(shí)。在這40s內,若無(wú)鍵按下, 則單片機的LCD控制器又進(jìn)入空閑模式。程序流程圖如圖4所示。

圖4 軟件設計流程
通信協(xié)議
1 編碼字的格式
能實(shí)現編碼功能的邏輯電路稱(chēng)為編碼器。每一種遙控編碼芯片都有一種特定的編碼格式。我們把傳送一位二進(jìn)制數0或者1的時(shí)間作為一個(gè)時(shí)間單位T,編碼信號的頻率為F=1/T。這里用的是種比較常用的編碼格式,每一幀由步碼、地址碼和數據碼組成,同步碼用在一幀的開(kāi)始,是一幀的識別標志,寬度為8T;地址碼20(A0—A19),寬度為20T;數據碼4位(D0-D3),寬度為4T, 一幀占據的總時(shí)間是32T。
對應于每一種狀態(tài),編碼芯片內部能夠生成一種特殊的編碼,這種編碼也是由“1”和“0”組成,但并不是簡(jiǎn)單的用高電平代表“1”,用低電平代表 “0”,而是用高電平與低電平寬度比例的不同來(lái)區分“1”和“0”,也就是所謂的占空比。為了提高此編碼傳輸串行信號的可靠性,故此編碼采用一個(gè)周期的占空比為1/4的脈沖表示0,占空比為3/4的脈沖表示1,同步信號用一個(gè)占空比為1/32的脈沖表示,如圖5所示。
評論