国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于AT89C2051的紅外線接收控制器的制作

發(fā)布時間:2011-6-22 11:45    發(fā)布者:circuit_share




紅外線接收控制器的制作

在生活中,我們常用到紅外線控制各類電器,如彩電、空調(diào)、電風扇等。為我們帶來較多的方便。但有時我們?nèi)愿械讲环奖恪H缈赐觌娨暫螅眠b控器只能關掉電視主電源,電視仍處于待機狀態(tài)。使用者還得走到電視跟前.按下電小視電源開關方能放心。若想看電視。還得動身開電視,顯得很麻煩。尤其是冬天躺在床上看電視,上上下下,深感不便。本文以利用紅外遙控器來遙控風扇的制作方法為例(可任選一只紅外線遙控器.能調(diào)速,軟件稍作改變,可增加定時功能等),來介紹紅外線接收控制器的制作方法,如果制作電視交流電源的開、關控制器,可與電視共用一只遙控器,制作也較簡單些。

制作思路

紅外遙控發(fā)射器是利用紅外線作載體傳送信息的,發(fā)射周期不等的經(jīng)過調(diào)制后串行碼.該串行碼一般由引導碼、用戶識別碼、操作碼組成。經(jīng)紅外接收頭解碼后得到一串周期不等的矩形波。如示意圖1。

不同型號的遙控發(fā)射器的波形寬度不同。即周期T1、T2……不同.在不知手頭遙控發(fā)射器的波形周期的情況下.首先要制作一個檢測紅外線周期的工具。根據(jù)測得的周期規(guī)律來制作紅外線接收控制器。

制作方法

檢測紅外周期的器件制作.見圖2。

當紅外接收頭沒有接收到發(fā)射器發(fā)送來的紅外線.其輸出端輸出高電平(約 5V)。當接收到紅外線,輸出端電平變低.送到單片機AT89C2051的外部中斷1口即INT1,使其發(fā)生中斷而進入中斷服務:啟動定時器1并開M-I-數(shù)。相當于在圖1的A點.1個周期后即C點。單片機第二次中斷。關定時器1.記下周期T1(實際上只記下TH1的數(shù)值。 TL1的值可以丟棄)。然后清TH1、TL1,再啟動定時器1重新計數(shù),第二個周期完后,同樣會引起單片機發(fā)生中斷.再記下周期T2'…一,如此記下40-50個周期(一般紅外編碼為4字節(jié).即32BIT.之前還有引導碼。又因接收到的紅外數(shù)據(jù)不一定是從引導碼開始,要分析一次完整的串行碼,應盡可能多記下紅外矩形波周期數(shù))。接收完后,通過按輕觸開關將各記下的各周期的THl在數(shù)碼管顯示出來以作分析(每按一次輕觸開關,顯示下一個周期數(shù))。

編程方法

在main()中開中斷。啟動定時器1.即EA=I;EX1=1:IT1=1;TRI=I:
在外部中斷1的服務程序中編寫如下語名:#defineCNT50//預測50個紅外線周期 DATA Byte value_h[CNT]://記錄周期的變量(數(shù)組) DATA Byte count=0;//接收到的周期數(shù) void int1(void)interrupt 2{
if(TH1==TL1&&TL1==0)//判斷是否是第一次接收到紅外數(shù)據(jù)
{
TR1=1:
}elseI
TRl=0;value_h[count]:THl;
THl=TLl=0;TRI=I:count  ;
if(count==CNT)
{
EXl=0:count=u;
l} l
假設接收到的TH的數(shù)值為:30,50.04,08,08,08,04,04,04,04,04,08,08,08,04,04,04,04。08,04,04,08,04,04,04,04,04,04,08,08,04.08,08,08,08,3f,50....
稍作分析可知。表示高低電平的有效數(shù)為:04,08。若將04定作低電平.08定作高電平.舍棄其他數(shù)據(jù),得到4字節(jié)數(shù)據(jù)即:01110000。01110000,10010000。01101111。轉為十六進制后得:70h,70h,90h,6fh,至此得到遙控發(fā)射器剛才按下的鍵值碼.用同樣的方法可以測得其他鍵鍵值碼。假設有:70h,70h,0x90,0x6f。//0鍵70h,70h.0x00,0xff。//1鍵70h,70h.0xd0,0x2f//power鍵
根據(jù)以上數(shù)據(jù)分析得.每鍵碼為4字節(jié).前2字節(jié)固定不變,為用戶識別碼。后2字節(jié)均不同,是操作碼。將遙控器上的各鍵鍵值碼測出后,根據(jù)這些數(shù)據(jù)可以根據(jù)制作需要進行編程了。因鍵值碼為4字節(jié)太長。不利于編程,需要將各鍵鍵值轉為相對應的1字節(jié)的數(shù)據(jù),如:70h,70h,0x90,0x6f,對應于O,70h,70h,0x00,0xff對應于1..…·

轉換方法:

建立一個數(shù)組,將上述測得的各鍵碼按順序放入數(shù)組中(去掉用戶識別碼)
code Byte arr[][2]=
{
0x90,0x6f.//0,盡可能按鍵0、鍵1..·…的先后順序放,以符合習慣
0x00,0xff,//1
……
Oxl0,0xef.//9
0xd0, Ox2f //power 13
};
在接收紅外線的外部中斷1函數(shù)中編寫如下的鍵碼轉換語句:
DATA Byte arrtmp[4];
DATA Byte Keytmp;//轉換后的鍵值寄存變量
DATA Byte Keyval=NOKEY;
bit KeyOk;//鍵值轉換完成與否的標志
bit d_Ok;//接收到一個完整的鍵碼標志
void Ex_int(void)interrupt 2
{
Byte i;
Byte(*p)[2];


……
if(d_Ok)//若接收到完整的鍵碼
{
d_Ok=0://清除
if(arrtmp[0]==0x70&&arrtmp[1]
==0x70){//鍵碼轉換
for(p=arr,bO:i<14:i  。p  )
{if(arrtmp[2]==*(*p 0)&&arrtmp[3]
==*(*p 1))
{ Keytmp=i:KeyOk=1;//鍵值
轉換成功標志
break;
}else{Keytmp=NOKEY;l//未
接收到完整的鍵值
}
}eIse{Keytmp=NOKEY;}
} l
經(jīng)過轉換后的Keytmp為0、1、2……的整數(shù).然后再編寫主函數(shù)、調(diào)速函數(shù)(參源程序)。來進行電風扇調(diào)速。
有關電路的一些解釋:單片機U1(AT89C2051)P37腳輸出高低電平通過R13控制光耦可控硅MOC3041(參數(shù)可在《電子制作》網(wǎng)站查找)通斷.通過控制其通斷時間比來達到電風扇調(diào)速。
有關紅外周期檢測和電風扇調(diào)速實例的源程序可在本刊網(wǎng)站上下載。
本文地址:http://m.qingdxww.cn/thread-69270-1-1.html     【打印本頁】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內(nèi)容、版權和其它問題,我們將根據(jù)著作權人的要求,第一時間更正或刪除。
wfnic 發(fā)表于 2011-7-10 08:42:13
haphah1
wfnic 發(fā)表于 2011-7-10 09:55:46
haohao1
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發(fā)培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 曰批免费视频| 亚洲区欧美| 亚洲国产一区在线观看| 四虎在线网址入口2022| 一个人www在线高清观看| 百性阁论坛首页| 中文字幕在线有码高清视频| 粗好大用力好深快点漫画| 久久人妻少妇嫩草AV无码| 香蕉久久日日躁夜夜嗓| 亚洲精品无播放器在线看观看| 最近免费中文字幕MV免费高清| 色综合免费视频| 日本成人免费网站| 亚洲成人影院在线| 亚洲毛片在线播放| 啊灬啊灬啊灬快高潮视频 | 顶级少妇AAAAABBBBB片| 亚洲H成年动漫在线观看不卡| 三级黄色在线视频| 欧美性性性| 性欧美xxxx性| 亚洲国产大片| jealousvue成熟40岁| 免费一级片网站| 伊在香蕉国产在线视频| 香蕉国产人午夜视频在线| 日韩激情影院| 在线观看国产日本| 在线观看国产小视频| 国产偷抇久久精品A片蜜臀A| 秋霞电影网午夜一级鲁丝片| 亚洲人成影视| 欧美特级| 亚洲精品国产v片在线观看| 亚洲国产综合网| 成人动漫bt种子| 日韩少妇爆乳无码专区| 日韩大乳视频中文字幕| 欧洲激情网站| 伊人五月在线|