版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)定時(shí)器-遙控器解碼程序分析 武漢三維電子工作室 楊榮國 唐精明 2010年12月6日一、前言利用STC公司1T內(nèi)核的STC12C08S2單片機(jī)對一款遙控器進(jìn)行解碼,將解碼的數(shù)據(jù)轉(zhuǎn)換為以us為單位的時(shí)間通過單片機(jī)串口通訊發(fā)送到STC下載軟件自帶的串口調(diào)試工具接收框進(jìn)行顯示。本文主要對測試結(jié)果進(jìn)行展示與分析并對單片機(jī)控制程序進(jìn)行分析,以此起到拋磚引玉的作用,希望讀者理解程序以后可以利用單片機(jī)對身邊的任意一款遙控器進(jìn)行解碼并將遙控器與單片機(jī)的實(shí)際應(yīng)用聯(lián)系在一起。二、測試結(jié)果展示1、實(shí)驗(yàn)材料介紹實(shí)驗(yàn)材料硬件部分 軟件部分 為KEIL V2 編程軟件 和 單片機(jī)程序下載軟件STC_ISP_V479
2、為了高效率學(xué)習(xí)程序編寫,本實(shí)驗(yàn)平臺(tái)采用三維電子SFC51-V3??刂菩酒瑸?STC12C08S2,紅外通訊傳感器為VS1838 與單片機(jī)的P3.2引腳連接。程序下載器采用三維電子程序下載及串口通訊模塊 SFCSTC-USB-V1。遙控器采用如上圖(對于NEC標(biāo)準(zhǔn)的遙控器都適用,比如電視遙控器等)。2、遙控器按下數(shù)字1,PC所接收的數(shù)據(jù)碼顯示的數(shù)據(jù):數(shù)字1: 02456 00206 00205 00202 00204 00207 00202 00206 00206 00407 00408 00412 00407 00408 00412 00407 00408 00206 00206 00407
3、00408 00206 00205 00203 00204 00409 00411 00202 00204 00410 00410 00407 004103、遙控器按下數(shù)字2,PC所接收的數(shù)據(jù)碼數(shù)字2:2456 00206 00200 00206 00206 00202 00205 00206 00202 00412 00407 00410 00410 00407 00408 00412 00407 00206 00205 00202 00410 00410 00203 00204 00205 00408 00409 00410 00205 00202 00408 00412 004074、遙
4、控器按下數(shù)字3,PC所接收的數(shù)據(jù)碼數(shù)字3:02457 00206 00198 00208 00206 00198 00209 00206 00200 00413 00407 00406 00414 00407 00405 00415 00408 00206 00410 00405 00417 00407 00206 00407 00206 00408 00206 00200 00208 00208 00407 00206 00408三、測試數(shù)據(jù)分析下載程序在硬件電路正常的情況下,遙控器按下數(shù)字1,PC機(jī)可以接收到以下數(shù)據(jù)數(shù)字1: 02456 00206 00205 00202 00204 00
5、207 00202 00206 00206 00407 00408 00412 00407 00408 00412 00407 00408 00206 00206 00407 00408 00206 00205 00203 00204 00409 00411 00202 00204 00410 00410 00407 00410那這些數(shù)據(jù)代表什么意思呢?單片機(jī)向PC機(jī)每發(fā)送一次都是5位數(shù)據(jù),這5位數(shù)據(jù)是單片機(jī)內(nèi)部定時(shí)器以5us循環(huán)一次對temp變量從0開始自加所得到的數(shù)據(jù)。也就是說這些數(shù)據(jù)可以理解為一個(gè)時(shí)間值,這個(gè)時(shí)間值就是遙控器每個(gè)數(shù)據(jù)碼高電平和低電平所持續(xù)時(shí)間的值。從數(shù)據(jù)可以看出每個(gè)按鍵按
6、下去PC機(jī)都接收到33個(gè)數(shù)據(jù),這33個(gè)數(shù)據(jù)仔細(xì)觀察可以發(fā)現(xiàn)都有以下規(guī)律:第一個(gè)數(shù)據(jù) 在2456和2460之間。第二個(gè)數(shù)據(jù)到第九個(gè)數(shù)據(jù) 在200和210之間。第十個(gè)數(shù)據(jù)到第十八個(gè)數(shù)據(jù) 在400和410之間。第十九個(gè)數(shù)據(jù)到第三十二個(gè)數(shù)據(jù)在200和210之間和在400和410之間都有。繼續(xù)分析:如果將在2456和2460之間的數(shù)據(jù)定義為字符h,將在200和210之間的數(shù)據(jù)定義為字符0,將在400和410之間的數(shù)據(jù)定義為字符1。那么以上33個(gè)數(shù)據(jù)可以表達(dá)為:h 1111 1111 0000 0000 0011 0000 1100 1111 那么這個(gè)數(shù)據(jù)就是按鍵1按下的用0和1來表示的編碼。相同道理可以
7、推測出數(shù)字2和數(shù)字3用0和1來表示的編碼如下:數(shù)字 2 : h 0000 0000 1111 1111 0001 1000 1110 0111數(shù)字 3 : h 0000 0000 1111 1111 0111 1010 1000 0101好了,到了這里我們可以下結(jié)論了,因?yàn)橐呀?jīng)有了3個(gè)對比。我們的結(jié)論是:如上圖的遙控器編碼原理為每個(gè)按鍵都有33個(gè)編碼其中第一個(gè)編碼都相同時(shí)間比較長,接著16編碼分別可以用我們所定義的0和1表示即前八個(gè)為0后八個(gè)為1。其實(shí)這個(gè)我們可以理解為遙控器的地址編碼,就好比電話號(hào)碼的區(qū)號(hào)一樣的,浙江衢州的區(qū)號(hào)是0570而武漢的區(qū)號(hào)是027,在本區(qū)域里的所有的座機(jī)號(hào)碼都是以這
8、個(gè)開頭固定不變的。接著再仔細(xì)觀察可以發(fā)現(xiàn)原來后面16個(gè)數(shù)據(jù)碼也是有規(guī)律的,那就是前8個(gè)和后8個(gè)是相互取反的的編碼。好了,更多的思維留個(gè)大家希望大家下載程序以后可以得出我以上的結(jié)論,哈哈,這也是學(xué)習(xí)單片機(jī)的趣味所在哦。因?yàn)槲覍⒎窒淼某绦蚝w了單片機(jī)外部中斷、內(nèi)部定時(shí)器、串口通訊的三個(gè)結(jié)構(gòu)的應(yīng)用。四、紅外遙控器編碼及解碼原理介紹1、遙控器編碼原理遙控發(fā)射器專用芯片很多,根據(jù)編碼格式可以分成兩大類:NEC碼和RC5碼,本課程以運(yùn)用比較廣泛,解碼比較容易的日本NEC為例說明編碼原理(遙控專用IC HT6221編碼方式也采用NEC碼)。NEC碼產(chǎn)生的遙控編碼是連續(xù)的32位二進(jìn)制碼組,其中前16位為用戶識(shí)
9、別碼,能區(qū)別不同的電器在設(shè)備,防止不同機(jī)種遙控碼互相干擾。后16位為8位功能碼及其反碼。NEC數(shù)據(jù)幀格式:當(dāng)一個(gè)鍵按下超過36ms,振蕩器使芯片激活,將發(fā)射一組108ms的編碼脈沖,這108ms發(fā)射代碼由一個(gè)起始碼(9ms的高電平),一個(gè)結(jié)果碼(4.5ms低電平),低8位地址碼(918ms),高8位地址碼(918ms),8位數(shù)據(jù)碼(918ms)和這8位數(shù)據(jù)碼的反碼(918ms)組成。其中地址碼和數(shù)據(jù)碼有“0”編碼和“1”編碼組成。在NEC編碼格式中“0”,“1”的表示方法(脈寬調(diào)制)如下:從上圖可以看出遙控發(fā)射碼“0”由持續(xù)0.565ms的高電平和0.56ms的低電平組成,遙控發(fā)射碼“1”由持
10、續(xù)0.565ms的高電平和1.685ms的低電平組成,前導(dǎo)碼由9ms的高電平和4.5ms的低電平組成。每個(gè)按鍵按下先發(fā)一個(gè)前導(dǎo)碼,接著持續(xù)發(fā)32個(gè)有“0”和“1”組成的地址碼和數(shù)據(jù)碼。高電平代表有紅外線,低電平代表無紅外線,對于遙控發(fā)射碼“0”表示紅外發(fā)光二極管發(fā)射紅外線0.565ms,停止發(fā)射0.56ms。如果遙控器要對外發(fā)射01兩位數(shù)據(jù),紅外二極管的工作流程是,先發(fā)紅外線持續(xù)9ms接著停止發(fā)射紅外線4.5ms,表示發(fā)射前導(dǎo)碼。接著發(fā)紅外線持續(xù)0.565ms接著停止發(fā)射紅外線0.56ms,表示發(fā)射碼“0”。接著發(fā)紅外線持續(xù)0.565ms接著停止發(fā)射紅外線1.685ms,表示發(fā)射碼“1”。如下
11、圖:為降低功耗提高發(fā)射效率,紅外二極管發(fā)射紅外線時(shí)并不是一直工作的,而是按38KHZ的脈沖進(jìn)行調(diào)制工作的。也就說說紅外線在工作的時(shí)候是按38KHZ的頻率在閃爍,而不是一直亮。2、遙控器解碼原理紅外線遙控信號(hào)的接收,可以使用一種集紅外線接收和放大于一體的VS183B來接收,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號(hào)的所有工作。VS183B實(shí)物圖如下: 器件對外只有三個(gè)引腳,從左到右分別是OUT GND VCC,工作電壓為2.7V5V, VCC接5V電源正極,GND接電源負(fù)極,OUT引腳為信號(hào)輸出引腳,可以輸出TLL的高電平和低電平信號(hào)。VS183B在空閑時(shí)輸出高電平信號(hào),在接
12、收到38KHZ紅外信號(hào)時(shí)輸出低電平,根據(jù)這個(gè)特性可得出以下結(jié)論。如果遙控器發(fā)射01兩位數(shù)據(jù),VS183B接收到遙控信號(hào)以后將輸出持續(xù)9ms的低電平和4.5ms的高電平表示接收到前導(dǎo)碼,接著輸出0.565ms的低電平和0.56ms的高電平表示接收到“0”發(fā)射碼,接著輸出0.565ms的低電平和1.685ms的高電平表示接收到“1”發(fā)射碼。3、單片機(jī)解碼編程將VS1838B的輸出引腳與單片機(jī)外部中斷0引腳相連,每個(gè)被解出來的碼都是以低電平開始緊接著是高電平,第二個(gè)碼也同樣以低電平開始緊接著高電平,啟動(dòng)單片機(jī)外部中斷并設(shè)置為脈沖觸發(fā)方式可以精確的捕獲到每個(gè)碼開始瞬間,這個(gè)時(shí)候啟動(dòng)定時(shí)器中斷,等待一個(gè)
13、低電平和一個(gè)高電平結(jié)束并關(guān)閉定時(shí)中斷。通過查看定時(shí)中斷的次數(shù)可以計(jì)算出對應(yīng)編碼的執(zhí)行時(shí)間從而推算出相應(yīng)的編碼。五、程序分享1、將每個(gè)遙控按鍵對應(yīng)的32個(gè)碼的延時(shí)時(shí)間發(fā)送到串口顯示/*測試原理:在測試方案_01的結(jié)論上,記錄一組紅外信號(hào)33位中各編碼持續(xù)時(shí)間測試結(jié)果:前導(dǎo)碼:約 2457,持續(xù)時(shí)間為 2457 * 0.005 = 12.285ms (NEC標(biāo)準(zhǔn)為13.5) 編碼 0:約 206, 持續(xù)時(shí)間為 206 * 0.005 = 1.03ms (NEC標(biāo)準(zhǔn)為1.125) 編碼 1:約 408, 持續(xù)時(shí)間為 408 * 0.005 = 2.04ms (NEC標(biāo)準(zhǔn)為2.25)*/#includ
14、e <reg52.h>sbit IR = P32;/ 紅外信號(hào)感應(yīng)引腳unsigned int time;unsigned int dat33 = 0 ;bit flag = 0;void Send( void ) /將32位數(shù)據(jù)對應(yīng)的時(shí)間發(fā)送到PC上顯示char i;for(i = 0;i < 33;i +) TI = 0;SBUF = dati / 10000 + 48;while( !TI );TI = 0;SBUF = dati / 1000 % 10 + 48;while( !TI );TI = 0;SBUF = dati / 100 % 10 + 48;while
15、( !TI );TI = 0;SBUF = dati / 10 % 10 + 48;while( !TI );TI = 0;SBUF = dati % 10 + 48;while( !TI );TI = 0;SBUF = ' 'while( !TI );void Init( void )/定時(shí)器、外部中斷初始化TMOD = 0x22;/ 定時(shí)器0、1方式2SCON = 0x40;/ 串行口方式1,不允許接收 TH1 = TL1 = 0xfd;/ 串行口方式2,F(xiàn)osc=11.05926,BPS=9600TH0 = TL0 = 0xfb;/ 中斷頻率 0.005msTR1 = 1
16、;/ 開啟與串行口相關(guān)的定時(shí)器1IT0 = 1;/ 邊沿式觸發(fā)ET0 = 1;/ 開啟定時(shí)器0中斷EX0 = 1;/ 外部中斷0中斷允許IP = 0x02;/ 定時(shí)器0優(yōu)先級高EA = 1;void main( void ) /主程序Init( );/中斷 定時(shí)器 初始化while( 1 );/等待遙控信號(hào)void Xint0( void ) interrupt 0 /外部中斷0復(fù)位子程序char i;for(i = 0;i < 33;i +)time = 0;TR0 = 1;while( !IR );/ 前導(dǎo)信號(hào)檢測while( IR ); TR0 = 0;dati = time;Se
17、nd( );flag = 1;EX0 = 0; void Timer0( void ) interrupt 1 /5us中斷一次 變量加1time +;2、將每個(gè)遙控按鍵對應(yīng)的32個(gè)遙控碼轉(zhuǎn)換成4個(gè)16進(jìn)制數(shù)據(jù)發(fā)送到串口顯示#include<reg52.h> sbit Ir= P32; unsigned char temp = 0,x = 0,ch=0;char DAT14= 0 ;void init( ) /中斷初始化IE = 0x83; /啟動(dòng)中斷總開關(guān) 外部中斷0 定時(shí)中斷0IT0 = 1;/外部中斷0下降沿觸發(fā)SCON = 0x40;/串口工作方式1TMOD = 0x22;
18、/定時(shí)器0、1方式2 TH1 = TL1 = 0xfd;/ 定時(shí)器1,用于串口通訊TR1 = 1;TH0 = TL0 = 0x47;/ 定時(shí)器0,用于延時(shí)計(jì)算IP = 0x02;/設(shè)置定時(shí)器0的中斷優(yōu)先級最高void ck_int()unsigned char i;for(i=0;i<4;i+)SBUF = DAT1i;while(TI = 0);TI=0;void main() init(); while(1)if(x = 1)ck_int();x=0;EX0=1;void ins_0() interrupt 0 /整個(gè)脈沖時(shí)間unsigned char i,j;temp = 0;/ 從 0 開始計(jì)數(shù)TR0 = 1;while( !Ir ); /前導(dǎo)碼是高電平 9MSwhile( Ir ) if(temp >80) break; /前導(dǎo)碼是低電平 4.5MSif(temp >
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度苗圃技術(shù)員苗木質(zhì)量檢測與標(biāo)準(zhǔn)制定合同4篇
- 停車場智能化系統(tǒng)定制合同2025版
- 2025年度新型建筑材料代理投標(biāo)合同范本4篇
- 二零二五版煤礦場地地質(zhì)災(zāi)害防治租賃合同3篇
- 2025年度船舶建造與綠色能源應(yīng)用合同4篇
- 2025年度智能落水管系統(tǒng)安裝與維護(hù)服務(wù)合同4篇
- 2025年度農(nóng)業(yè)示范區(qū)土地種植承包管理協(xié)議4篇
- 二零二五年度環(huán)保技術(shù)開發(fā)與應(yīng)用承包合同范本4篇
- 二零二五版民間借貸合同糾紛調(diào)解中心運(yùn)營管理合同4篇
- 二零二五年度大棚建設(shè)與農(nóng)業(yè)科技培訓(xùn)服務(wù)合同4篇
- 第22單元(二次函數(shù))-單元測試卷(2)-2024-2025學(xué)年數(shù)學(xué)人教版九年級上冊(含答案解析)
- 藍(lán)色3D風(fēng)工作總結(jié)匯報(bào)模板
- 安全常識(shí)課件
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末聯(lián)考化學(xué)試題(含答案)
- 2024年江蘇省導(dǎo)游服務(wù)技能大賽理論考試題庫(含答案)
- 2024年中考英語閱讀理解表格型解題技巧講解(含練習(xí)題及答案)
- 新版中國食物成分表
- 浙江省溫州市溫州中學(xué)2025屆數(shù)學(xué)高二上期末綜合測試試題含解析
- 2024年山東省青島市中考生物試題(含答案)
- 保安公司市場拓展方案-保安拓展工作方案
- GB/T 15843.2-2024網(wǎng)絡(luò)安全技術(shù)實(shí)體鑒別第2部分:采用鑒別式加密的機(jī)制
評論
0/150
提交評論