亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索

得用stc12c5a60s2片內(nèi)pca模塊的捕獲解碼紅外遙控器

查看數(shù): 9695 | 評(píng)論數(shù): 13 | 收藏 3
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2017-5-5 19:20

正文摘要:

得用stc12c5a60s2片內(nèi)pca模塊的捕獲解碼紅外遙控器。

回復(fù)

ID:258210 發(fā)表于 2019-8-21 17:27
謝謝樓主分享的資源
ID:258210 發(fā)表于 2019-8-21 17:27

可以自己下載,值得學(xué)習(xí)參考
ID:258210 發(fā)表于 2019-8-21 17:26
謝謝樓主的資源,正在學(xué)習(xí)中
ID:475247 發(fā)表于 2019-2-10 16:57

有一點(diǎn)坑,不全!

評(píng)分

參與人數(shù) 1黑幣 +10 收起 理由
就你**** + 10

查看全部評(píng)分

ID:471147 發(fā)表于 2019-1-24 17:49
謝謝分享 剛好需要
ID:458859 發(fā)表于 2018-12-31 09:57
絕世好貼,頂一個(gè)
ID:262047 發(fā)表于 2018-2-18 21:01
回復(fù)支持一下,是否可以直接對(duì)接收到的紅外載波進(jìn)行學(xué)習(xí),不通過(guò)接收頭解調(diào),這樣不就可以實(shí)現(xiàn)任意載波頻率信號(hào)的學(xué)習(xí)了嗎
ID:280994 發(fā)表于 2018-2-9 00:09
不錯(cuò)的想法,又長(zhǎng)見(jiàn)識(shí)了,我都是用一個(gè)外部中斷檢測(cè)下降沿,一個(gè)定時(shí)器計(jì)時(shí)兩次下降沿時(shí)間間隔的,這種方法節(jié)省資源,不過(guò)只能在有輸入捕獲的芯片上用
ID:66287 發(fā)表于 2018-2-7 15:15
思路全新,值得學(xué)習(xí)
ID:183763 發(fā)表于 2017-12-20 20:47
非常實(shí)用的制作,正需要這個(gè)
ID:167337 發(fā)表于 2017-6-21 16:08
關(guān)注紅外線,正需要這些資料,謝謝樓主分享資源!
ID:1 發(fā)表于 2017-5-6 01:01
樓主的源碼:
  1. /*STC12C5A60S2 PCA模塊捕獲模式接收紅外遙控和解碼在顯示在LCD1602上,
  2.   P1^3為捕獲輸入引腳,接紅外接收傳感器。普中(HC6800 V3.2)開(kāi)發(fā)箱測(cè)試成功*/
  3. #include<stc12c5a60s2.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int

  6. sbit Lcd_RS=P2^6;                                        //LCD數(shù)據(jù)/命令選擇端(H/L)
  7. sbit Lcd_RW=P2^5;                                        //LCD讀/寫(xiě)選擇端(H/L)//
  8. sbit Lcd_EN=P2^7;                                        //lcd使能端(lcd讀命令時(shí)=H,lcd寫(xiě)命令時(shí)=高脈沖)
  9. sbit Lcd_PSB=P3^2;                                        //并口串口選擇
  10. sbit Lcd_BF=P0^7;                                        //LCD忙碌端

  11. code uchar TABLE[]="0123456789ABCDEF";                //LCD顯示用的數(shù)字
  12. uchar IR[33];                                                                //紅外接收捕獲的數(shù)據(jù)
  13. uchar IR_i=0;                                                                //紅外捕獲次數(shù)記錄
  14. bit F_IR=0;                                                                        //紅外捕獲起始標(biāo)記位                                         

  15. void delay(uint xms)                                                //延時(shí)函數(shù)約(x)ms
  16. {
  17.         uint i;
  18.         for(;xms>0;xms--)
  19.                 for(i=920;i>0;i--);
  20. }
  21. void lcd_read_bf()                                                        //讀忙碌標(biāo)志
  22. {
  23.         P0=0xff;
  24.         Lcd_RS=0;
  25.         Lcd_RW=1;
  26.         Lcd_EN=1;
  27.         while(Lcd_BF);
  28.         Lcd_EN=0;
  29. }
  30. void lcd_write_cmd(uchar cmd)                                //寫(xiě)命令
  31. {
  32.         lcd_read_bf();
  33.         Lcd_RS=0;                                                                //選擇寫(xiě)命令方式
  34.         Lcd_RW=0;
  35.         P0=cmd;                                                                        //將要寫(xiě)入的命令數(shù)據(jù)送到數(shù)據(jù)總線上
  36.         Lcd_EN=1;                                                                //給使能端1高脈沖,先置1
  37.         Lcd_EN=0;                                                                //再置0,以完成高脈沖
  38. }
  39. void lcd_write_dat(uchar dat)                                //寫(xiě)數(shù)據(jù)
  40. {
  41.         lcd_read_bf();
  42.         Lcd_RS=1;                                                                //選擇寫(xiě)數(shù)據(jù)方式
  43.         Lcd_RW=0;
  44.         P0=dat;                                                                //將要寫(xiě)入的命令數(shù)據(jù)送到數(shù)據(jù)總線上
  45.         Lcd_EN=1;                                                                //給使能端1高脈沖,先置1
  46.         Lcd_EN=0;                                                                //再置0,以完成高脈沖
  47. }
  48. void lcd_init()                                                                //LCD初始化
  49. {
  50.         Lcd_PSB=1;                                                //串口
  51.         P2&=0xff-0x80-0x20;                                //并口端口初始化
  52.         lcd_write_cmd(0x38);
  53.         lcd_write_cmd(0x06);
  54.         lcd_write_cmd(0x0c);
  55.         lcd_write_cmd(0x01);
  56. }
  57. void pca_init()                                                                //PCA模塊初始化 設(shè)置成捕獲模式
  58. {
  59.         CMOD=0x00;                                //PCA計(jì)數(shù)器模式寄存器
  60.         CCAPM0=0x11;                        //PCA比較/捕獲工作模式寄存器
  61.         CL=0x00;                                //PCA計(jì)數(shù)寄存器的低8位
  62.         CH=0x00;
  63. //        CCAP0L=0x00;                        //捕獲寄存器低8位,當(dāng)PCA模塊用于PWM模式時(shí),用來(lái)控制輸出的占空比
  64. //        CCAP0H=0x00;                        //當(dāng)CH&L=CCAPnH&L時(shí)輸出高電平,故CCAPnH&L越大,輸出高電平時(shí)間越短
  65.         CCON=0x01;                                //PCA控制寄存器 CR=1
  66.         EA=1;
  67. }
  68. void init()                                                                        //系統(tǒng)初始化
  69. {
  70.         lcd_init();
  71.         pca_init();
  72. }
  73. void out_lcd()                                                                //LCD顯示
  74. {
  75.         uchar i,num1,num2,num3,num4,nums;
  76.         for(i=0;i<8;i++)
  77.         {
  78.                 num1>>=1;
  79.                 if(IR[i]>0x06) num1|=0x80;
  80.         }
  81.         for(i=8;i<16;i++)
  82.         {
  83.                 num2>>=1;
  84.                 if(IR[i]>0x06) num2|=0x80;
  85.         }
  86.         for(i=16;i<24;i++)
  87.         {
  88.                 num3>>=1;
  89.                 if(IR[i]>0x06) num3|=0x80;
  90.         }
  91.         for(i=24;i<32;i++)
  92.         {
  93.                 num4>>=1;
  94.                 if(IR[i]>0x06) num4|=0x80;
  95.         }
  96.         nums=IR[32];
  97.         lcd_write_cmd(0x80);
  98.         lcd_write_dat(TABLE[num1>>4]);
  99.         lcd_write_dat(TABLE[num1&0x0f]);
  100.         lcd_write_dat(' ');
  101.         lcd_write_dat(TABLE[num2>>4]);
  102.         lcd_write_dat(TABLE[num2&0x0f]);
  103.         lcd_write_dat(' ');
  104.         lcd_write_dat(TABLE[num3>>4]);
  105.         lcd_write_dat(TABLE[num3&0x0f]);
  106.         lcd_write_dat(' ');
  107.         lcd_write_dat(TABLE[num4>>4]);
  108.         lcd_write_dat(TABLE[num4&0x0f]);
  109.         lcd_write_dat(' ');
  110.         lcd_write_dat(TABLE[nums>>4]);
  111.         lcd_write_dat(TABLE[nums&0x0f]);
  112.         lcd_write_cmd(0xc0);
  113.         if(num1==0x00&&num2==0xff&&(num3|num4)==0xff)
  114.         {
  115.                 lcd_write_dat('y');
  116.                 lcd_write_dat('e');
  117.                 lcd_write_dat('s');
  118.                 lcd_write_dat(' ');
  119.                 lcd_write_dat('0');
  120.                 lcd_write_dat('x');
  121.                 lcd_write_dat(TABLE[num3>>4]);
  122.                 lcd_write_dat(TABLE[num3&0x0f]);
  123.         }
  124.         else
  125.         {
  126.                 lcd_write_dat('n');
  127.                 lcd_write_dat('o');
  128.                 lcd_write_dat(' ');
  129.                 lcd_write_dat(' ');
  130.                 lcd_write_dat(' ');
  131.                 lcd_write_dat(' ');
  132.                 lcd_write_dat(' ');
  133.                 lcd_write_dat(' ');
  134.                 lcd_write_dat(' ');
  135.                 lcd_write_dat(' ');
  136.         }
  137.         if(nums>2)
  138.         {
  139.                 lcd_write_dat(' ');
  140.                 lcd_write_dat('s');
  141.                 lcd_write_dat('s');
  142.         }
  143.         else
  144.         {
  145.                 lcd_write_dat(' ');
  146.                 lcd_write_dat(' ');
  147.                 lcd_write_dat(' ');
  148.         }
  149. }
  150. void main()                                                                        //主程序
  151. {
  152.         delay(100);
  153.         init();
  154.         delay(100);
  155.         while(1)
  156.         {
  157.                 out_lcd();
  158.                 delay(100);                                                        //刷新顯示的間隔時(shí)間
  159.         }
  160. }
  161. void pca_()interrupt 7                                                //PCA中斷入口
  162. {
  163.         if(CF)                                                                        //PCA計(jì)數(shù)器中斷復(fù)位
  164.         {
  165.                 CF=0;
  166.                 IR_i=0;
  167.         }
  168.         if(CCF0)                                                                //捕獲中斷處理捕獲的時(shí)間
  169.         {                  
  170.                 CR=1;
  171.                 CCF0=0;
  172.                 if(F_IR)
  173.                 {
  174.                         IR[IR_i++]=CCAP0H;                                        //保存捕獲的時(shí)間(這里只要高8位即可)
  175.                         if(IR_i>=32)                                                //捕獲到32個(gè)時(shí)間數(shù)據(jù)后復(fù)位等下一個(gè)起始信號(hào)                                               
  176.                         {
  177.                                 F_IR=0;
  178.                                 IR_i=0;
  179.                         }
  180.                 }
  181.                 else

  182. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
ID:162136 發(fā)表于 2017-5-5 19:24
程序操作LCD1602都帶忙碌標(biāo)記檢測(cè),故不接LCD1602程序會(huì)一直停在LCD1602的初始化程序處,在此作提示。

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表