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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13599|回復: 5
收起左側

51單片機對紅外發射和紅外接收模塊電路+程序設計

  [復制鏈接]
ID:407794 發表于 2018-12-12 22:07 | 顯示全部樓層 |閱讀模式
一、簡介
紅外發射模塊:電源3.3V或5V,通過發射管發射38KHz的紅外信號,高電平驅動
紅外接收模塊:電源3.3V或5V,可接收紅外信號,并解調成邏輯電平,低電平有效
二、電路圖
1.jpg
紅外發射電路圖
pIYBAFwOG5CAGyp6AABZ6ahZlTY336.png
紅外接收電路圖
三、紅外發射模塊代碼
#include
#include
#define uchar unsigned char
#define uint unsigned int
//管腳定義
sbit key = P2^0;
sbit out = P2^1;
//函數聲明
void delayms(uchar aa); //紅外發射延時
void khz(uchar aa); //發射38KHz
void IR_OUT(uchar num); //紅外發射
void keyScan(); //讀取鍵盤信息
//變量聲明
uchar i, a, num1;
//-----------------------
//紅外發射延時
//-----------------------
void delayms(uchar aa)
{
for(a=aa; a》0; a--)
{
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
}
}
//-----------------------
//發射38KHz
//-----------------------
void khz(uchar aa)
{
for(a=aa;a》0;a--) //這個for語句可以得到準確的26.3波特率
{
out=0;
i=7;
while(i》0) i--; //38kHZ
out=1;
}
}
//-----------------------
//紅外發射
//-----------------------
void IR_OUT(uchar num)
{
khz(116); //發射3ms 38khz
delayms(125);
for(num1=8; num1》0; num1--)
{
khz(40);
if(num&0x01)
delayms(93); //delay 1.5ms
else
delayms(65); //delay 1ms
num=num》》1;
}
khz(20);
}
//-----------------------
//讀取鍵盤信息
//-----------------------
void keyScan()
{
if(key==0)
{
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
if(key==0)
IR_OUT(0xC0);
key = 1;
}
}
//-----------------------
//主函數
//-----------------------
void main()
{
key = 1;
while(1)
{
keyScan();
}
}
四、紅外接收模塊代碼
#include
#include
#define uchar unsigned char
#define uint unsigned int
//管腳定義
sbit in = P3^2; //紅外中斷接收
//P2接靜態數碼管
//函數聲明
void init(); //初始化函數
void delayms(uchar j); //延時函數
//變量聲明
uchar i, num, a;
bit fleg;
//-----------------------
//初始化函數
//-----------------------
void init()
{
fleg = 1; //標志位
in = 1; //紅外接收
EA = 1; //中斷設置
EX0 = 1;
IT0 = 1;
}
//-----------------------
//延時函數
//-----------------------
void delayms(uchar j)
{
for(i=j; i》0; i--)
{
_nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_();
}
}//-----------------------
//主函數
//-----------------------
void main()
{
init();
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 開始讀數據
delayms(118);//若偏移一位,可以去掉。
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;
}
}
fleg = 1;
EX0 = 1;
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:237723 發表于 2018-12-13 08:38 | 顯示全部樓層
不明白for(num1=8; num1》0; num1--)   num1右移0是什么意思
回復

使用道具 舉報

ID:407794 發表于 2018-12-13 22:22 | 顯示全部樓層
qyh123456 發表于 2018-12-13 08:38
不明白for(num1=8; num1》0; num1--)   num1右移0是什么意思

補零右移0.0
回復

使用道具 舉報

ID:539254 發表于 2019-7-25 11:46 | 顯示全部樓層
請問接收電路圖中 左邊的J1是什么意思?
回復

使用道具 舉報

ID:425175 發表于 2019-8-5 21:28 | 顯示全部樓層
creeperist 發表于 2019-7-25 11:46
請問接收電路圖中 左邊的J1是什么意思?

排針(排針母座)
回復

使用道具 舉報

ID:378732 發表于 2019-8-19 21:35 | 顯示全部樓層
qyh123456 發表于 2018-12-13 08:38
不明白for(num1=8; num1》0; num1--)   num1右移0是什么意思

這是個NUM>0,大于0
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美黄色一区 | 国产线视频精品免费观看视频 | 黄色毛片视频 | 99精品视频免费观看 | 国产视频中文字幕 | 国产成人99久久亚洲综合精品 | 神马影院一区二区三区 | 日本午夜一区二区三区 | 亚洲人一区 | 成人欧美一区二区三区黑人孕妇 | 成人国产在线观看 | 视频一区二区三区中文字幕 | 久久精品69| 久草网站 | 日本在线免费观看 | 国产日韩欧美综合 | 一级国产精品一级国产精品片 | www.99久久.com | 欧美一区二区小视频 | 日韩一级免费电影 | 国产精品久久久久一区二区三区 | 黄色毛片免费看 | 在线观看国产视频 | 日韩福利| 亚洲精品大片 | 国产精品视频久久 | 成人一区av偷拍 | 亚洲精品视频一区 | 久久黄色 | 精品国产一区二区国模嫣然 | 国产精品一区二区三区久久久 | 久久激情网 | 欧美日韩视频在线 | 91麻豆精品国产91久久久久久 | 99久久婷婷国产综合精品电影 | 精品久久国产 | 日韩精品av | 一区二区三区在线免费观看 | 国内自拍视频在线观看 | 精品国产欧美一区二区三区成人 | 久久精品国产久精国产 |