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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機紅外遙控模塊程序

[復制鏈接]
ID:919762 發表于 2021-8-1 18:45 | 顯示全部樓層 |閱讀模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit lsa=P2^2;
sbit lsb=P2^3;
sbit lsc=P2^4;
sbit IRIN=P3^2;

uint jz=0,time;//jz存的是鍵值相對應的數值
uchar irdata[4],duan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f};

void delay(uint n)          //延時一次約為0.01ms 用來判斷脈沖時間
{while(n--);}

void smg(uint x)   //數碼管顯示
{
lsa=0;lsb=0;lsc=0;
P0=duan[x];//顯示數字

}

void init()                 //初始化
{
IT0=1;//確定中斷0(紅外接收)的觸發方式為下降沿觸發
EX0=1;//打開外部中斷0和總中斷的允許位
EA=1;
IRIN=1;                         //相當于打開外部中斷0  此處意義為紅外接收器打開
}

void hhh() interrupt 0   //執行中斷:進行讀取信號  最后產生鍵值
{
uint i,j,k;
delay(700);//能進入中斷函數就代表IR已經為0,此處的延時是為了判斷延時的大體時間
if(IRIN==0)
{
k=1000;
while(IRIN==0&&(k>0))//檢測引導碼中9ms低電平
{
delay(1);
k--;
}
if(IRIN==1)//判斷高電平
{
k=500;
while(IRIN==1&&(k>0))//檢測引導碼中4.5ms高電平
{
delay(1);
k--;
}
for(i=0;i<4;i++)        //開始讀取用戶碼和數據和數據反碼,

{
        for(j=0;j<8;j++)//每組數據有八位,故內層循環有八組,每次循環讀一位
        {
         if(IRIN==0)
         {
         k=70;
         while(IRIN==0&&(k>0))//檢測0.56ms的低電平
         {
         k--;
         delay(1);
         }
         }
         if(IRIN==1)//進入高電平時間,這一塊比較核心,它判斷了高電平持續時間的長短
         {
         time=0;
         k=500;
         while(IRIN==1&&k>0)//開始檢測高電平
         {
         delay(10);
         time++;//time是以0.1ms為單位,因為dy(10);
         k--;
         }
         if(time>30) return ;
         irdata[ i]>>=1;        //移位運算,空出最高為為下一次采集做準備
         if(time>=8)//如果高電平持續時間超過0.85ms代表位是“1”
         irdata[ i]|=0x80;//或運算,給最高為置1
         time=0;//重置
         }
        }
}
}
if(irdata[2]!=~irdata[3])//irdata[2]與irdata[3]分別是數據碼和數據反碼 ,此操作是檢驗數據準確性
return;
}
switch(irdata[2])
{
case 0x16:jz=0;break;
case 0x0c:jz=1;break;
case 0x18:jz=2;break;
case 0x5e:jz=3;break;
case 0x08:jz=4;break;
case 0x1c:jz=5;break;
case 0x5a:jz=6;break;
case 0x42:jz=7;break;
case 0x52:jz=8;break;
case 0x4a:jz=9;break;
case 0x45:jz=10;break;
default:break;
}

}

void main()
{
init();//初始化
while(1)
smg(jz);//顯示數值
}

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青草综合 | 午夜午夜精品一区二区三区文 | 亚洲综合日韩精品欧美综合区 | 成人一区二区三区 | 午夜精品久久久久久久星辰影院 | 免费看国产片在线观看 | 国产亚洲一区二区三区 | 殴美成人在线视频 | 91免费观看国产 | 国产 日韩 欧美 在线 | 成人免费视频网站在线看 | 黄色男女网站 | 91麻豆精品国产91久久久资源速度 | 国产视频久 | 成人免费观看男女羞羞视频 | 国产一区二区三区在线 | 黄色网址免费在线观看 | 免费福利视频一区二区三区 | 91xxx在线观看| 超碰97免费在线 | 国产成人精品一区二区三区网站观看 | 亚洲国产精品99久久久久久久久 | 99在线资源 | 天天爽夜夜骑 | 亚洲精品美女视频 | 国产视频亚洲视频 | 久草资源在线 | a免费在线 | 亚洲欧洲激情 | 亚洲 日本 欧美 中文幕 | av资源网站| 国产欧美日韩精品一区二区三区 | 亚洲国产高清在线 | 国产96色在线 | 欧美黄色大片在线观看 | 在线观看视频h | 91国内精品久久 | 爱草在线 | 少妇午夜一级艳片欧美精品 | 网页av| 波多野结衣亚洲 |