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

標(biāo)題: STC8A8K64單片機(jī)+H1838紅外解碼程序 [打印本頁(yè)]

作者: heryyy    時(shí)間: 2022-1-19 15:22
標(biāo)題: STC8A8K64單片機(jī)+H1838紅外解碼程序

  1.                                                  
  2. /*

  3. 此次開發(fā) 利用STC8A平臺(tái)全面方面 實(shí)現(xiàn)了51單片機(jī) 學(xué)習(xí) 實(shí)驗(yàn) 設(shè)計(jì) 等功能

  4. 下面是接口整體介紹
  5. TFT驅(qū)動(dòng)IC為  ILI9341

  6. tft
  7. 控制線:RS-P3^5;    WR-P3^6;   RD-P3^7;   CS-P4^4;   RST-P4^3
  8. 數(shù)據(jù)線: P7口低八位數(shù)據(jù)端口  P0口高八位數(shù)據(jù)端口(兩個(gè)數(shù)據(jù)口都以選用 不可做其他)

  9. 觸摸xpt2046
  10. SPI總線  MOSI-P2^3  MISO-P2^4  SCLK-P2^5
  11. CS-P6^2   PENIRQ-P6^3

  12.      紅外解碼實(shí)驗(yàn)
  13.      紅外采用P3.2中斷0口 讀取H1838傳來(lái)的紅外信息并將其進(jìn)行解碼
  14.          
  15.          NEC 碼的位定義:一個(gè)脈沖對(duì)應(yīng)560us 的連續(xù)載波,
  16.          邏輯1 應(yīng)該是560us 低+1680us 高,
  17.          邏輯0 應(yīng)該是560us 低+560us 高。
  18.      
  19.          NEC 遙控指令的數(shù)據(jù)格式為:同步碼頭、地址碼、地址反碼、控制碼、控制反碼。
  20.          同步碼 由一個(gè)9ms 的低電平和一個(gè)4.5ms 的高電平組成,地址碼、地址反碼、控制碼、
  21.          控制反碼均是 8  位數(shù)據(jù)格式。

  22.     具體解碼過(guò)程請(qǐng)參考資料
  23.                     
  24. */


  25. #include  "stc8.h"                          //STC頭文件
  26. #include  "def.h"                              //宏定義 常用函數(shù)
  27. #include  "delay.h"                                  //延時(shí)函數(shù)
  28. #include  "tft.h"                              //TFT IC底層驅(qū)動(dòng)
  29. #include  "gui.h"
  30. #include  "xpt2046.h"
  31. #include  "spi.h"
  32. #include  "h1838.h"



  33. //真對(duì) STC8A系列 IO口初始化
  34. //除P3 P5口外 其他IO默認(rèn)準(zhǔn)雙向IO口 所以當(dāng)用的P3 P5口是要進(jìn)行初始化一下   
  35. void IO_init(void)
  36. {
  37.   P3M0 = 0X00;
  38.   P3M1 = 0X00;

  39.   P5M0 = 0X00;
  40.   P5M1 = 0X00;
  41. }





  42. void main()
  43. {         
  44.         IO_init();                                    //IO口初始化
  45.         Lcd_Init();                 //tft初始化
  46.         Init_SPI();                             //SPI初始化
  47.         GUI_Clear(White);                        //白色清屏
  48.     GUI_sprintf_hzstr16x(0,0,"infrared decoding test",White,1);
  49.     GUI_sprintf_hzstr16x(0,18,"IR-CODE: --H",Red,White);

  50.         hongw();                                         //紅外解碼測(cè)試函數(shù)

  51.           
  52. }

復(fù)制代碼




#include  "stc15f2k60s2.h"
#include  "delay.h"
#include  "tft.h"
#include  "gui.h"
#include  "xpt2046.h"
#include  "h1838.h"
#include  "gui.h"



u8 ma[2];                              //紅外解碼數(shù)據(jù)
u8 hong=0;                                  //紅外 標(biāo)志位

void hongw(void)
{
   IT0=1;                            //邊沿觸發(fā)   
   EX0=1;               //外部中斷0   P3.2口
   EA   = 1;            // 開總中斷   

   while(1)
   {

    if(hong==1)                  //判斷標(biāo)志位 是否數(shù)據(jù)更新
    {
       GUI_sprintf_char(73,16,ma[0],White,Blue,0);                                  //顯示解碼值
       GUI_sprintf_char(81,16,ma[1],White,Blue,0);

           hong=0;              //清標(biāo)志位等待下一次接收
     }  
   }

}




/////////////////////////////////
//////////////////////////////////
//紅外解碼  外部P32口邊沿觸發(fā)中斷
//同步碼 由一個(gè)9ms 的低電平和一個(gè)4.5ms 的高電平組成
//邏輯1 是560us 低+1680us 高,邏輯0 是560us 低+560us 高
void IR_IN() interrupt 0   
{
     u8 j,k,N=0;
     u8 IRCOM[4];
   EX0 = 0;                      //進(jìn)入中斷后關(guān)閉中斷 進(jìn)行解碼
   delay_us(7700);                   //24M下大約7ms延時(shí)        9ms低電平前 檢測(cè)P32狀態(tài)
   if (IRIN==1)                    //如果非0 說(shuō)明紅外錯(cuò)誤 返回
   { EX0 =1;
           return;
    }
                           //確認(rèn)IR信號(hào)出現(xiàn)
   while(!IRIN);            //等IR變?yōu)楦唠娖剑^(guò)9ms的前導(dǎo)低電平信號(hào)。   

   for (j=0;j<4;j++)         //收集四組數(shù)據(jù)
   {
    for (k=0;k<8;k++)        //每組數(shù)據(jù)有8位
    {
     while (IRIN);            //等 IR 變?yōu)榈碗娖剑绻堑谝淮尾杉^(guò)4.5ms高電平信號(hào)。

     while (!IRIN);          //等 IR 變?yōu)楦唠娖?br />
     while (IRIN)            //計(jì)算IR高電平時(shí)長(zhǎng)  猶豫單片機(jī)的運(yùn)行 存在著計(jì)算時(shí)間
     {
       delay_us(280);      //27M下大約300+us
       N++;           
       if(N>=30)
            { EX0=1;                   //開中斷
             return;}          //0.14ms計(jì)數(shù)過(guò)長(zhǎng)自動(dòng)離開。
     }                      //高電平計(jì)數(shù)完畢                 
     IRCOM[j]=IRCOM[j] >> 1;      //數(shù)據(jù)最高位補(bǔ)“0”
     if (N>=6)
     {IRCOM[j]=IRCOM[j] | 0x80;}  //數(shù)據(jù)最高位補(bǔ)“1”
     N=0;
    }
   }
   if (IRCOM[2]!=~IRCOM[3])        //控制碼 控制反碼進(jìn)行比對(duì) 如果錯(cuò)誤跳出
   { EX0=1;return; }

   ma[1]=IRCOM[2] & 0x0F;      //取鍵碼的低四位
   ma[0]=IRCOM[2] >> 4;        //右移4位 取高四位值

   if(ma[1]>9)
     ma[1]=ma[1]+0x37;                    //A 從65開始 十六進(jìn)制為0x41
   else
         ma[1]=ma[1]+0x30;

   if(ma[0]>9)
     ma[0]=ma[0]+0x37;
   else
         ma[0]=ma[0]+0x30;
   hong=1;                //打開標(biāo)志位
   EX0 = 1;                           //開中斷

}

Keil代碼下載: 紅外解碼.zip (214.92 KB, 下載次數(shù): 35)





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 日韩精品在线一区二区 | 狠狠的操| 色资源在线 | 亚洲精品无 | 中文字幕在线免费观看 | 久久久福利 | 自拍 亚洲 欧美 老师 丝袜 | www.精品一区| 一区二区三区四区在线播放 | 粉嫩一区二区三区四区公司1 | 国产精品中文字幕在线 | 天天操夜夜操免费视频 | 久久久久久美女 | 亚洲精品68久久久一区 | 老司机午夜性大片 | 国产成人精品久久二区二区 | 国产日韩一区二区 | 国产成人精品一区二区三 | 日韩精品一区二区三区中文在线 | 欧美黄视频 | 91一区| 国产人成精品一区二区三 | 国产精品久久久久久久久免费软件 | 无吗视频| 午夜三区| 日韩在线大片 | 精品免费视频 | 国产成人精品免费视频大全最热 | 欧美亚州 | 中文字幕在线三区 | 国产精品一区二区三区四区 | 亚洲国产情侣 | 瑞克和莫蒂第五季在线观看 | 在线一区观看 | 中文字幕二区三区 | 欧美一级毛片久久99精品蜜桃 | 国产精品欧美一区二区 | 激情国产在线 | 麻豆精品久久久 | 日韩中文在线观看 | 日韩在线观看一区二区三区 |