基于AT89C52單片機的遙控電扇
4.2 遙控碼的編碼格式
遙控碼采用脈沖,不同的脈沖個數(shù)代表不同的碼,最小為2個脈沖,最大為17個脈沖。
為了使接收可靠,第一位碼寬為3 ms,其余為1 ms,遙控碼數(shù)據(jù)幀間隔大于10 ms,其編碼波形如圖4所示。本文引用地址:http://m.butianyuan.cn/article/171297.htm
如圖4所示,當某個操作鍵按下時,單片機先讀出鍵值,然后根據(jù)鍵值設(shè)定遙控碼的脈沖個數(shù),再調(diào)制成40 kHz的方波由紅外線發(fā)射管發(fā)射出去。在上述的發(fā)射電路中,一共設(shè)置了4個按鍵,其中S2,S3,S4,S5的編碼分別是電器碼2,3,4,5,對于發(fā)射電路,每發(fā)送一個數(shù)據(jù)幀最短的時間間隔是10 ms。例如在按下S4時,即先發(fā)送3 ms的前導碼,隨后再發(fā)送5個1 ms的脈沖,就表示按鍵S4被按下了,單片機紅外接收電路在接收到一串串脈沖之后,通過軟件完成對紅外的解碼,通過設(shè)置,每個編碼對應于電動機不同的操作,比如2這個編碼,那么單片機的P0口輸出00000000,再經(jīng)過DAC0808之后,輸出電壓為0,這樣電動機就可以停止工作了。類似的編碼3,4,5分別對應直流電機的低速,中速和高速的操作。
4.3 單片機紅外發(fā)送和接收程序
由于程序較長,所以在本設(shè)計中只給出部分的核心的紅外發(fā)送和接收程序。關(guān)于紅外的發(fā)送程序如下:
評論