遙控編碼、解碼芯片是成對(duì)使用的,操作時(shí)需要同時(shí)改變幾個(gè)地址,極為不便。而用微控制器實(shí)現(xiàn)編碼功能,可以通過軟件來代替硬件操作,使用簡(jiǎn)便。
1 概述
在應(yīng)用遙控編、解碼芯片時(shí),要求一對(duì)芯片的地址完全一致,因此當(dāng)一個(gè)遙控芯片控制多個(gè)解碼芯片時(shí),需要與地址端連接的多個(gè)開關(guān)同時(shí)輔助動(dòng)作,以改變地址,使之與解碼芯片的地址完全一致,達(dá)到遙控的目的。
若用微控制器取代編碼芯片,就可以使多個(gè)開關(guān)動(dòng)作改變輸出波形的功能由軟件完成,同時(shí),在空閑時(shí)讓微控制器工作在掉電模式,這樣不但操作簡(jiǎn)便而且節(jié)省了能源。
為此,我們?cè)O(shè)計(jì)了用廉價(jià)單片機(jī)AT89C2051代替遙控編碼芯片PT2262來實(shí)現(xiàn)編碼功能的電路,用軟件模擬了遙控編碼功能。
2 PT2262的工作原理
2.1 管腳功能
PT2262的各管腳功能如表1所示。
2.2 位脈沖寬度
PT2262的地址引腳有3種接法,即懸空(高阻態(tài))、高電平及低電平,不同接法的輸出波形不同,如圖1所示。從圖中可知,若振蕩周期為a,則窄脈沖的寬度是4a,間隔是12a;寬脈沖的寬度是12a,間隔是4a,從而一個(gè)完整的位脈沖寬度是32a。
使用時(shí),PT2262振蕩電阻大約是與它成對(duì)的解碼芯片PT2272振蕩電阻的4倍,即若取PT2272振蕩電阻為470kΩ, PT2262的振蕩電阻可取2MkΩ。這種條件下,經(jīng)多次實(shí)驗(yàn)測(cè)得PT2262發(fā)射的窄脈沖寬度約為250μs,寬脈沖約為750μs,而2組數(shù)據(jù)之間的間隔約為6ms。
圖1 PT2262的位脈沖波形
2.3 編碼方式
PT2262共有12個(gè)地址端,發(fā)射的每一組數(shù)據(jù)都由12個(gè)位脈沖組成,順序是從A0、A1……到A11,由于每個(gè)地址端有3種接法,故數(shù)據(jù)端輸出的波形有312種形式。
3 軟件設(shè)計(jì)方法
以一片PT2262通過八片PT2272控制8個(gè)燈為例進(jìn)行說明。
3.1 復(fù)位的處理
設(shè)計(jì)程序時(shí)不容忽視的問題是:接上電池的首次復(fù)位和正常工作有鍵被按下時(shí)的掉電復(fù)位后,程序均從0000H單元運(yùn)行。因此不同的復(fù)位應(yīng)區(qū)別對(duì)待。
首次復(fù)位可認(rèn)為8個(gè)燈都是關(guān)著的,而掉電復(fù)位應(yīng)記憶掉電前8個(gè)燈的開關(guān)狀態(tài),以便在按鍵再次按下時(shí)能準(zhǔn)確地開、關(guān)燈。
為了達(dá)到這個(gè)目的,我們?cè)?a href="http://ttokpm.com/v/tag/132/" target="_blank">CPU的RAM中開辟了一個(gè)記憶區(qū)域,即20H、21H、22H,在這3個(gè)字節(jié)中存放復(fù)位標(biāo)志。
首次復(fù)位后寫入20H=55H,21H=AAH,22H=00H。其中22H的八位按順序?qū)?yīng)八個(gè)燈,當(dāng)某一個(gè)燈被打開時(shí),將其對(duì)應(yīng)位送“1”,被關(guān)掉后送“0”。每次復(fù)位均要檢查21H,22H單元的內(nèi)容,如果20H=55H,21H=AAH就說明是掉電復(fù)位;如果上述條件不成立,就說明是首次復(fù)位。由于首次復(fù)位時(shí),RAM內(nèi)容是隨機(jī)的,因此兩個(gè)字節(jié)的復(fù)位標(biāo)志保證了復(fù)位判斷的準(zhǔn)確性。
3.2 地址編碼
用2EH的8位和2FH的高4位來存儲(chǔ)12位地址A0~A11狀態(tài),“1”表示高電平,“0”表示低電平。此時(shí),最多可以控制燈的個(gè)數(shù)為212個(gè)。若需利用第三種狀態(tài),只需用一個(gè)字節(jié)的兩位表示即可,如“00”、“01”、“10”分別表示高、低電平及高阻態(tài),此時(shí)最多可以控制燈的個(gè)數(shù)為312個(gè)。
我們?cè)O(shè)計(jì)的是控制8個(gè)燈的電路,用兩個(gè)狀態(tài)時(shí),單片機(jī)輸出的A3~A10這9位編碼固定不變,從而使8個(gè)燈的8片解碼器PT2272 的這9個(gè)地址端接法完全一致。A0~A2決定了8個(gè)燈的地址編碼,如表2所示。
每種接法與相應(yīng)接受燈的解碼器PT2272一一對(duì)應(yīng)。A11也兼做數(shù)據(jù)D0位,D0=1時(shí),控制燈開;反之,控制燈關(guān)。
3.3 鍵值讀取
為了節(jié)電,程序中設(shè)置了一段1毫秒的延時(shí),在1毫秒之內(nèi),有鍵按下則去處理鍵值,若無鍵按下,則進(jìn)入掉電節(jié)能狀態(tài)。
處理鍵值時(shí),為了防止一次按鍵被重復(fù)處理,要等待按鍵結(jié)束后再去處理。
鍵值的處理有兩個(gè)內(nèi)容,首先將該按鍵對(duì)應(yīng)的燈的開關(guān)標(biāo)志位取反。例如,設(shè)定標(biāo)志字節(jié)為23H,當(dāng)按鍵AN0被按下,就將23H.0取反,并將取反后的結(jié)果送A11/D0的存儲(chǔ)位 。然后把該按鍵對(duì)應(yīng)的燈的編碼按表2送至A0~A2的存儲(chǔ)位。
3.4 模擬脈沖
發(fā)送脈沖程序就是根據(jù)2EH,2FH的內(nèi)容發(fā)送連續(xù)12個(gè)“1”,“0”或高阻數(shù)據(jù)脈沖。脈沖的寬度是用延時(shí)來實(shí)現(xiàn)的。在程序中,可編制幾段延時(shí)子程序,由主程序調(diào)用即可。需注意的是,延時(shí)時(shí)間要通過多次實(shí)驗(yàn),反復(fù)調(diào)整。
4 結(jié)束語
本系統(tǒng)現(xiàn)已投入使用,它不但結(jié)構(gòu)簡(jiǎn)單,價(jià)格低廉,操作方便,控制準(zhǔn)確、靈活,而且節(jié)能效果好,彌補(bǔ)了發(fā)射芯片的局限性,使其更加智能化、理想化。以此為基礎(chǔ),單片機(jī)在遙控系統(tǒng)中的應(yīng)用將更加廣泛。
-
解碼器
+關(guān)注
關(guān)注
9文章
1129瀏覽量
40637 -
單片機(jī)
+關(guān)注
關(guān)注
6030文章
44491瀏覽量
632008 -
振蕩電阻
+關(guān)注
關(guān)注
1文章
3瀏覽量
7057
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論