具有學(xué)習功能的智能遙控器
3 軟件設計
由于電路受按鍵控制,故在主程序中要不斷地判斷鍵值,相應的功能在子程序中完成。軟件應完成的工作有以下幾部分:
3.1接收碼的處理
無(wú)論遙控器的編碼以哪種編碼調制方式發(fā)出,總可以認為編碼由時(shí)間延續不等的高、低電平組成,因此,可以不斷讀取與接收頭相連的I/O口的數值,用計數器記錄高、低電平的時(shí)間??紤]到單片機的時(shí)鐘周期較長(cháng),可以將接收信號的時(shí)間進(jìn)行壓縮,即將記錄的數值除以32后再儲存,可以節省存儲空間。
為了準確地存儲編碼,可以進(jìn)行3次學(xué)習操作,每次學(xué)習時(shí),均記錄3組數值,存至不同的空間。每次學(xué)習后,將3組數值進(jìn)行比較,每個(gè)數值的偏差在03H之內,即認為本次學(xué)習成功,將3組數平均,存儲。重復學(xué)習三次后,將3次學(xué)習的結果再進(jìn)行比較,偏差在03H之內,即可認為學(xué)習成功,取3次學(xué)習的結果作平均,作為遙控器編碼的代用碼,存至EEPROM的相應空間,以防數據掉電丟失。
編碼存儲時(shí)先存儲鍵值作起始標志,最后以FFH為結束碼。按照12M的晶體振蕩器決定的時(shí)鐘周期和除以32的時(shí)間壓縮,編碼的規律為高、低電平交錯出現。
3.2 判斷鍵盤(pán)按鍵
按鍵被按下時(shí),通過(guò)INT1產(chǎn)生中斷。在中斷服務(wù)程序中,判斷鍵值,存儲,并確定相應的編碼存儲地址。
3.3 發(fā)射編碼
發(fā)射編碼時(shí),先根據鍵值尋找相應編碼所在地址,依據起始碼判斷是否正確,確認后依據高、低電平的順序控制振蕩器的起振與停振,起振與停振的時(shí)間是將存儲碼擴展32倍。擴展時(shí)間是通過(guò)延時(shí)進(jìn)行的,延時(shí)時(shí)間需經(jīng)過(guò)多次反復的實(shí)驗。
3.4遙控器編碼預存
為了降低學(xué)習時(shí)的誤碼率,在程序中填加了遙控器編碼預存功能,將收集到的編碼存儲在程序存儲器中,并將編碼序號與發(fā)射芯片的對應關(guān)系告之用戶(hù),用戶(hù)在已知發(fā)射芯片型號的基礎上可以預存遙控器編碼。當預存鍵按下時(shí),配以數字增減鍵,將相應的編碼存至EEPROM對應的地址中。
3.5顯示功能
顯示系統能顯示學(xué)習及編碼預存功能的各種狀態(tài)。如進(jìn)入學(xué)習狀態(tài)時(shí)顯示HELP;每一次學(xué)習成功時(shí)顯示1111;學(xué)習不成功顯示2222;三次學(xué)習成功顯示5555。編碼預存時(shí)顯示編碼芯片的序列號。為了節電,不學(xué)習時(shí)顯示系統不工作。
4 結束語(yǔ)
設計完成后,由于其價(jià)格低廉,控制準確,操作簡(jiǎn)單,而得到了生產(chǎn)廠(chǎng)家的認可,預計可以給廠(chǎng)家帶來(lái)的經(jīng)濟效益每年近百萬(wàn)元。單片機代替編碼芯片的思路將我們引入了單片機應用的一個(gè)新領(lǐng)域,我們將進(jìn)一步縮小其體積,使其功能進(jìn)一步完善,以求更大的發(fā)展。
參考文獻
1 郝建國,家用電器遙控系統集成電路大全[M],北京:人民郵電出版社,1996年
2王裕琛、安穎,與空調、電視共用遙控器的遙控燈[P],中華人民共和國知識產(chǎn)權局,ZL03281069.5,2004年10月6日
評論