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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2543|回復: 0
收起左側

簡單程序用單片機定時器1和2測量紅外高低脈沖時間及個數

[復制鏈接]
ID:151846 發表于 2021-4-12 14:39 | 顯示全部樓層 |閱讀模式
1.jpg 2.jpg
遙控紅外引導碼

3.jpg 2021-04-12 140429.jpg

高低脈沖時間us

51hei圖片20210412134818.png 51hei圖片20210412134928.png

2021-04-12 140429(2).jpg 2021-04-12 140429(1).jpg


我用的數碼管電路圖

單片機源程序如下:
  1. #include<reg52.h>
  2. sfr T2MOD=0XC9; //定義定時器2
  3. #define u8  unsigned char
  4. #define u16 unsigned int
  5. sbit ir=P3^2;sbit LSA=P2^2;        sbit LSB=P2^3;sbit LSC=P2^4;//數碼管用的138
  6. bit di=0,gao=0,c=0;
  7. u8 js=0,us=0;          //js是計算低脈沖個數
  8. u16 idata IR[75];//所有高低脈沖都裝在里面
  9. //紅外一組為68個高低脈沖,設75個,隨便改脈沖個數
  10. u8 code tab[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0};
  11. u8 dw[5];//數碼管顯示0--9,最后那個0是關顯示
  12. void Delay(u16 n){while(--n);}//12M公式n=(延時-6)*0.12493899(us)
  13. void disp()
  14. {                P0=tab[dw[i]];
  15.                 Delay(70); //間隔一段時間掃描        
  16.                 P0=0x00;//消隱
  17. }
  18. void T0init(void) //定時器0模式2初始化,完成一次中斷為256us,10次就乘10次
  19. {TMOD=0x02;TH0=0x00;TL0=0x00;ET0=1;TR0=1;}
  20. void E0init(void)//外P3^2中斷0 初始化
  21. {IT0=1;EX0=1;}

  22. void main(void)
  23. { T2MOD=0;T2CON=0;    //定時器2初始化,向上計數,16位自動重裝模式
  24.   TL2=0x00;TH2=0x00;   //設置定時初值,完成一次中斷為65536us=65ms
  25.   RCAP2L=0x00;RCAP2H=0x00; //設置定時重載值
  26.   IE=0xa0;        //EA=1,ET2=1;
  27.   E0init();
  28.   T0init();
  29. while(1)
  30.    {static u8 a=0;
  31.            while(!ir){        //低脈沖時計算高脈沖時間
  32.         if(gao){IR[a]=TH2*256+TL2+8;
  33.                a++;gao=0;TH2=0;TL2=0;}}
  34.         if(di){TR0=0;TR2=1;IR[a]=us*256+TL0-4;//1個us為256,減4補誤差
  35.                a++;di=0;TL0=0;us=0;}//高脈沖時計算低脈沖時間
  36.         if(TH2>78){TR2=0;TH2=0;TL2=0;a=0;c=1;}//TH2>78高脈沖超20ms結束
  37.     if(c)disp();//結束后顯示高低脈沖時間us
  38. }  }
  39. void t0() interrupt 1
  40. {us++;di=1;}
  41. void E0() interrupt 0
  42. {TR0=1;if(TR2)gao=1;TR2=0;js++;}
  43. void t2() interrupt 5   
  44. {TF2=0;}              //要寫TF2=0
復制代碼

顯示部分不同程序就不同,顯示程序自己寫就行了,只要是顯示IR[]數組。
如果數碼管電路和我的一樣,就下載下面直接運行,w=100,我測試快用的,改為w=500慢顯示。

代碼:
捕捉紅外高低脈沖時間.rar (1.37 KB, 下載次數: 7)

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产成人综合一区二区三区 | 久草网址 | 一区二区精品 | 精品三区| 精品久久久久久亚洲精品 | 激情三区 | 久久国产区 | 国产中文视频 | 国产一区二区 | 欧美精品中文字幕久久二区 | 欧美日韩电影免费观看 | 中文字幕视频在线 | 国产精品久久av | 免费xxxx大片国产在线 | 国产 日韩 欧美 中文 在线播放 | 久久九精品 | 日韩精品网站 | 欧美福利 | 日韩伦理电影免费在线观看 | 欧美日韩国产精品一区 | 国产精品日日夜夜 | 浴室洗澡偷拍一区二区 | 欧美二三区| 国产伦精品一区二区三区高清 | 狠狠综合网 | 中文字幕av一区二区三区 | 久久伦理中文字幕 | 免费在线一区二区 | 成人精品免费视频 | 免费日韩av网站 | 精品一区二区免费视频 | 亚洲欧美中文日韩在线v日本 | 国产黄色精品在线观看 | 午夜羞羞| 亚洲一区 中文字幕 | 亚洲 精品 综合 精品 自拍 | 一区二区国产精品 | 一级黄色在线 | 一区二区三区日韩精品 | 国产精品99久久久精品免费观看 | 国产精品久久久久久吹潮 |