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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2586|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产网站在线免费观看 | 国产在线观看福利 | 日韩久久久久 | 男女在线网站 | 精品久久1| 欧美日韩在线观看一区二区三区 | 天堂久久网 | 精品久久久久久 | 成人免费毛片片v | 久久久久亚洲精品 | 一级黄色绿像片 | 久久精品网 | 日本在线一二 | 亚洲欧美激情视频 | 精品久久久久一区二区国产 | 成人在线播放 | www.国产91 | www日本高清 | 久久精品国产一区二区三区不卡 | 色天堂影院 | 午夜三级视频 | 美女毛片| 日本精品一区二区 | 狠狠操狠狠干 | 亚洲精品无 | 97成人免费| 久久久久久久91 | 国产不卡视频 | 国产91在线 | 亚洲 | 福利视频一区二区三区 | 国产精品视频在线观看 | 91porn在线 | 黑人精品欧美一区二区蜜桃 | 亚洲视频二区 | 热99视频 | 国产你懂的在线观看 | 日日夜夜精品视频 | 不卡一区 | 国产在线97 | 久久久久久高潮国产精品视 | 高清视频一区 |