久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1979|回復: 0
打印 上一主題 下一主題
收起左側

紅外控制流水燈

[復制鏈接]
跳轉到指定樓層
樓主
ID:306790 發(fā)表于 2018-4-12 20:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近在弄紅外解鎖:數據碼,數據反碼:
  1.                          /*NEC協(xié)議紅外通信
  2. 單片機解碼后通過串口以9600的比特率發(fā)送出去
  3. */
  4. #include <reg52.h>
  5. /*====================================
  6. 自定義類型名
  7. ====================================*/
  8. typedef unsigned char INT8U;
  9. typedef unsigned char uchar;

  10. typedef unsigned int INT16U;
  11. typedef unsigned int uint;
  12. /*====================================
  13. 硬件接口位聲明
  14. ====================================*/
  15. sbit IR  = P3^2;     //定義紅外脈沖數據接口        外部中斷O輸入口

  16. uchar IRtime;//儲存檢測紅外高低電平持續(xù)時間
  17. uchar IRcord[4];//儲存解碼后的4個字節(jié)數據
  18. uchar IRdata[33];//包含起始碼在內的33位數據
  19. bit IRpro_ok;//解碼后4個字節(jié)數據接收完成標志位
  20. bit IRok;//33位數據接收完成標志
  21. //初始化定時器0,外部中斷0
  22. void init()
  23. {
  24.         TMOD|=0x02;//設置定時器0工作模式2,8位自動重裝
  25.         TL0=TH0=0;//初始化定時器0寄存器,定時器0溢出一次時間為256個機器周期
  26.         EA=1;//開總中斷
  27.         ET0=1;//開定時器0中斷
  28.         TR0=1;//啟動定時器0
  29.        
  30.         IT0=1;//設置外部中斷0跳變沿觸發(fā)方式
  31.         EX0=1;//開外部中斷0中斷
  32.        
  33. }
  34. //定時器0中斷,每中斷一次需要256*1.085us =  277.76us
  35. void time0() interrupt 1
  36. {
  37.         IRtime++;  //277.76us
  38. }
  39. //外部中斷0 存入33次脈寬
  40. void int0() interrupt 0
  41. {
  42.         static uchar i;//靜態(tài)變量用于存入33次數據計數
  43.         static bit startflag;//開始儲存脈寬標志位
  44.         if(startflag)
  45.         {
  46.                 /*判斷引導碼,如果是引導碼則從起始碼開始存*/
  47.                 if((IRtime<53)&&(IRtime>=32)) i=0;
  48.                 IRdata[i]=IRtime;  //以TO溢出的次數來計算脈寬把這個時間存放在數組中
  49.                 IRtime=0;  //計數清零
  50.                 i++;//計數脈寬存入次數自加
  51.                 if(i==33)  //i等于33那么就表示已經存入了33次脈寬
  52.                 {
  53.                         IRok=1;  //脈寬檢查完成
  54.                         i=0; //把脈寬計數清零準備下次存入
  55.                 }
  56.         }
  57.         else
  58.         {
  59.                 IRtime=0;//定時器0計數清零
  60.                 startflag=1;//開始處理標志位置1
  61.         }
  62. }
  63. void IRcordpro()
  64. {
  65.         uchar i;//i是用于計數處理4個字節(jié)
  66.         uchar j;//j用于計數處理1個字節(jié)的8位數據
  67.         uchar k;//k用于計數處理33次脈寬
  68.         k = 1;//從第一位脈寬開始處理,丟掉起始碼
  69.         for(i=0;i<4;i++)
  70.         {
  71.                 for(j=0;j<8;j++)
  72.                 {
  73.                         //如果脈寬大于數據0標準的1125us那么就判定為數據1
  74.                         if(IRdata[k]>5)  IRcord[i]|=0x80;//寫1
  75.                         //只能右移7次,如果右移8次則會把第一位數據移出去
  76.                         if(j<7)  IRcord[i]>>=1;
  77.                         k++;  //處理下一次脈寬
  78.                 }
  79.         }
  80.         IRpro_ok=1;//解碼完成
  81. }
  82. void main()
  83. {
  84.         init(); //初始化
  85.         while(1)
  86.         {
  87.                 if(IRok)//判斷33次脈寬是否提取完成
  88.                 {
  89.                         IRcordpro();//根據脈寬解碼出4個字節(jié)的數據
  90.                         IRok=0;//清零脈寬檢查完成標志位等待下一次脈寬檢查
  91.                         if(IRpro_ok)//判斷解碼完成,4個字節(jié)數據
  92.                         {
  93.                                 if(IRcord[2] == 0x45)
  94.                                         P1 = 0xfe;  //數據碼,低電平,開鎖       
  95.                                 else
  96.                                         P1 = 0x01;          //數據反碼,高電平
  97.                                 IRpro_ok=0;//清零解碼標志位
  98.                         }
  99.                 }
  100.         }
  101. }
復制代碼



評分

參與人數 1黑幣 +5 收起 理由
stkh + 5 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品成人一区二区 | 欧美一区二| 国家一级黄色片 | 国产成人免费一区二区60岁 | 亚洲一视频| 亚洲福利 | 国产成人99久久亚洲综合精品 | 亚洲国产精品一区二区三区 | 久久久久久久久久一区二区 | 亚洲高清在线视频 | 91精品导航 | 91精品亚洲 | 欧美国产精品 | 成人免费视频7777777 | 欧美成人免费在线视频 | 精品一区二区在线观看 | 老司机午夜性大片 | 久久午夜精品 | 国产91在线精品 | 91视视频在线观看入口直接观看 | 黄色免费在线观看网站 | 欧美精品在线一区 | 免费观看色 | 自拍偷拍中文字幕 | 夜夜草 | 日日操操 | 夜夜av| 免费黄色的视频 | 在线亚洲一区二区 | 国产在线精品一区二区 | 久久久久久综合 | 天天碰夜夜操 | 免费观看av网站 | 日本超碰 | 在线观看涩涩视频 | 久热伊人 | 户外露出一区二区三区 | 久久久久久国产精品免费免费 | 久久亚洲国产精品日日av夜夜 | 日韩亚洲视频在线 | 蜜桃精品视频在线 |