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

立即注冊 登錄
返回首頁

uid:67624的個人空間

日志

單片機紅外收發的簡單程序

已有 1025 次閱讀2014-10-19 10:47 |個人分類:單片機程序| 單片機, 程序

1.接收程序:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit in=P3^2;
sbit beer=P1^3;
uchar i,a,num;
bit fleg;
void init()
{
fleg=1;
in=1;
EA=1;
EX0=1;
IT0=1;
}
void delayms(uchar aa)
{
for(i=aa;i>0;i--)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
}
void delay(uchar z)
{
uchar x,y;
{
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
}
void main()
{
init();
//delayms(45);//0.642ms
//delayms(35);//0.502ms
//delayms(115);//1.623ms
//delayms(72);//1.02ms
//delayms(84);//1.188ms
//delayms(31);//0.446ms
while(1);
}
void sieasdf() interrupt 0
{
EX0=0;
for(a=5;a>0;a--)
{
delayms(35);//延時0.5ms 判斷5次 5*0.5=2.5ms
if(in)fleg=0;
}
if(fleg)
{
delayms(72);//延時1ms 判斷是不是高電平了
if(in)
{
delayms(115);//延時讓它超過2ms; 2.5+1+1.623=5.123ms 開始讀數據
for(a=8;a>0;a--)
{
while(!in);
delayms(86);//延時1.188ms 判斷IO高低,從而得0或1
num=num>>1;
if(in)
{
num=num|0x80;
delayms(31);//延時0.6ms 因為上面延時1.2ms+0.6 剛好跳過1.5ms
}
}
P2=num;
if(num==0xff)beer=~beer;
}
}
fleg=1;
EX0=1;
}
2.發送程序:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^3;
sbit key2=P3^4;
sbit key3=P3^5;
sbit LED=P2^0; //發射指示燈
sbit out=P3^7;
uchar i,a,num1;
void init()//初始化作用
{
key1=1;
key2=1;
key3=1;
}
void delay(uchar aa)
{
uchar bb,cc;
for(bb=aa;bb>0;bb--)
for(cc=200;cc>0;cc--);
}
void delayms(uchar aa)//延時程序
{
for(a=aa;a>0;a--)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}

void khz(uchar aa)//是發射38KHZ的程序
{
for(a=aa;a>0;a--) //這個for語句可以得到準確的26.3波特率
{
out=0;
i=7; //低了17us
while(i>0)i--; // 38kHZ
out=1;
//高了9us 17+9=26us 比26.3快一點點
}

}
//khz(116);//3.028ms 精確的時間
//khz(64);//2.006ms
//khz(40); //1.052ms
//delayms(125);//2.012ms 這里是一些時間的介紹
//delayms(65);//1.054ms
//delayms(93);//1.5ms
void fashu(uchar num)
{
khz(116);//發射3ms 38khz
delayms(125);
for(num1=8;num1>0;num1--) //原來用的是a 后來出錯,肯定在這里!
{
khz(40);
if(num&0x01)
delayms(93);//delay 1.5ms
else
delayms(65);//delay 1ms
num=num>>1;
}
khz(20);

}
void keyscan()//按鍵掃描
{
if(key1==0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
if(key1==0)
{
while(!key1);
fashu(0x7f);
LED=0;
delay(200);
LED=1;
delay(200);
LED=0;
delay(200);
LED=1;
}

}
if(key2==0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
if(key2==0)
{
while(!key2);
fashu(0);
LED=0;
delay(200);
LED=1;
delay(200);
LED=0;
delay(200);
LED=1;

}

}
if(key3==0)
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
if(key3==0)
{
while(!key3);
fashu(0xff);
LED=0;
delay(200);
LED=1;
delay(200);
LED=0;
delay(200);
LED=1;

}

}
}
void main()
{
init();
while(1)
{
keyscan();
}
}

路過

雞蛋

鮮花

握手

雷人

評論 (0 個評論)

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

Powered by 單片機教程網

返回頂部
主站蜘蛛池模板: 国产a区 | 精品欧美一区二区三区精品久久 | 久久中文字幕一区 | 欧美片网站免费 | 日韩免费福利视频 | 亚洲日本中文 | 亚洲91 | 日韩精品视频在线 | 成人亚洲 | 这里有精品 | 久久福利电影 | h视频亚洲| 老司机成人在线 | 亚洲一区二区网站 | 国产真实精品久久二三区 | 亚洲免费视频在线观看 | av日日操| 日本精品久久久久久久 | av在线一区二区三区 | 国产欧美一区二区三区另类精品 | 午夜一级黄色片 | 天天操夜夜操 | 成人精品一区二区三区中文字幕 | 亚洲一区二区三区免费观看 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 欧美精选一区二区 | 欧美成年人网站 | 久久精品国产99国产精品 | 欧美三区在线观看 | 中文字幕欧美日韩 | 欧美久久久久久久久 | 中文字幕11页| 久久激情视频 | 黄色大片免费观看 | 天天久 | www.日本在线观看 | 亚洲成人精品国产 | 成人午夜电影在线观看 | 日本久久综合网 | 一区二区视屏 | 91一区|