久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
8051單片機制作紅外發射與接收
[打印本頁]
作者:
jinsheng7533967
時間:
2018-12-6 11:03
標題:
8051單片機制作紅外發射與接收
[attach]159518[/attach]
/////////////////////////// 紅外發射代碼 ///////////////////////////
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit rfot=P1^6; //紅外線輸出
sbit akey=P1^2; //A鍵輸入
sbit bkey=P1^3; //B鍵輸入
sbit ckey=P1^4; //C鍵輸入
sbit dkey=P1^5; //D鍵輸入
void delay_ms(uint xms) //延時子函數1ms*xms
{
uint i,j;
for(i=xms;i>0;i--)
for(j=127;j>0;j--);
}
void delay_112() //紅外線延時函數,延時1.12毫秒
{
uint m,n;
for(m=1;m>0;m--)
for(n=142;n>0;n--);
}
void delay_56() //紅外線延時函數,延時0.56毫秒
{
uint m,n;
for(m=1;m>0;m--)
for(n=70;n>0;n--);
}
void delay_50() //紅外線延時函數,延時0.5毫秒
{
uint m,n;
for(m=1;m>0;m--)
for(n=64;n>0;n--);
}
void bit_boot()
{
rfot=0; delay_ms(9);
rfot=1;
delay_ms(4);
delay_50();
}
void a_key() //A鍵編碼
{
uint i;
bit_boot();
for(i=0;i<8;i++)
{
rfot=0;
delay_56();
rfot=1;
delay_56();
}
for(i=0;i<8;i++)
{
rfot=0;
delay_56();
rfot=1;
delay_112();
}
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0; delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112(); //用戶碼
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56(); //用戶反碼
rfot=0;
delay_ms(1);
rfot=1;
}
void b_key() //B鍵編碼
{
uint i;
bit_boot();
for(i=0;i<8;i++)
{
rfot=0;
delay_56();
rfot=1;
delay_56();
}
for(i=0;i<8;i++)
{
rfot=0;
delay_56();
rfot=1;
delay_112();
}
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0; delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112(); 用戶碼
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56(); 用戶反碼
rfot=0;
delay_ms(1);
rfot=1;
}
void c_key() //C鍵編碼
{
uint i;
bit_boot();
for(i=0;i<8;i++)
{
rfot=0;
delay_56();
rfot=1;
delay_56();
}
for(i=0;i<8;i++)
{
rfot=0;
delay_56();
rfot=1;
delay_112();
}
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0; delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112(); 用戶碼
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56(); 用戶反碼
rfot=0;
delay_ms(1);
rfot=1;
}
void d_key() //D鍵編碼
{
uint i;
bit_boot();
for(i=0;i<8;i++)
{
rfot=0;
delay_56();
rfot=1;
delay_56();
}
for(i=0;i<8;i++)
{
rfot=0;
delay_56();
rfot=1;
delay_112();
}
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0; delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_112(); 用戶碼
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_112();
rfot=0;
delay_56();
rfot=1;
delay_56();
rfot=0;
delay_56();
rfot=1;
delay_56(); 用戶反碼
rfot=0;
delay_ms(1);
rfot=1;
}
void init()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
}
void keyscan() //鍵盤掃描程序
{
if(akey==0)
{
delay_ms(5);
if(akey==0)
{
a_key();
while(!akey);
}
}
if(bkey==0)
{
delay_ms(5);
if(bkey==0)
{
b_key();
while(!bkey);
}
}
if(ckey==0)
{
delay_ms(5);
if(ckey==0)
{
c_key();
while(!ckey);
}
}
if(dkey==0)
{ delay_ms(5);
if(dkey==0)
{
d_key();
while(!dkey);
TR0=~TR0;
}
}
}
void main() //程序從這里開始
{
init();
while(1)
{
keyscan();
}
}
void T0_time()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
/////////////////////////// 紅外接收代碼 ///////////////////////////
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit rfin=P3^7; //紅外線輸入
void delay_ms(uint xms) //延時子函數1ms*xms
{
uint i,j;
for(i=xms;i>0;i--)
for(j=127;j>0;j--);
}
void delay_112() //紅外線延時函數,延時1.12毫秒
{
uint m,n;
for(m=1;m>0;m--)
for(n=142;n>0;n--);
}
void delay_56() //紅外線延時函數,延時0.56毫秒
{
uint m,n;
for(m=1;m>0;m--)
for(n=70;n>0;n--);
}
void delay_50() //紅外線延時函數,延時0.5毫秒
{
uint m,n;
for(m=1;m>0;m--)
for(n=64;n>0;n--);
}
void delay_35() //紅外線延時函數,延時0.35毫秒
{ uint m,n;
for(m=1;m>0;m--)
for(n=60;n>0;n--);
}
void delay_30() //紅外線延時函數,延時0.30毫秒
{
uint m,n;
for(m=1;m>0;m--)
for(n=41;n>0;n--);
}
void delay_25() //紅外線延時函數,延時0.25毫秒
{
uint m,n;
for(m=1;m>0;m--)
for(n=26;n>0;n--);
}
void main()
{
uchar i,j,k,temp,m;
uchar usercode,user_code,datecode,date_code;
//k=0;
//temp=0;
//rfin=0;
if(rfin==0)
{
for(m=0;m<10;m++) //跳過9mS引導區
{
if(rfin==0)
{
delay_56();
delay_30();
}
}
if(rfin==1) //跳過4.5mS引導區
{
delay_ms(4);
delay_50();
}
if(rfin==0);
{ delay_56;
delay_56;
delay_30;
}
for(i=0;i<4;i++)
{
temp=0;
k=1;
for(j=0;j<9;j++)
{
if(rfin==0)
{
k=0;
}
else
if(rfin==1)
{
k=1;
}
temp=(temp<<1)|k;
if(rfin==0)
{
delay_25();
if(rfin==1);
delay_56();
delay_30();
}
else
{
if(rfin==1)
{
delay_35();
if(rfin==1);
delay_56();
delay_30();
}
}
}
switch (i)
{
case 0: usercode=temp; //用戶碼數據寄存器
break;
case 1: user_code=temp; //用戶反碼數據寄存器
break; case 2: datecode=temp; //數據碼數據寄存器
break;
case 3: date_code=temp; //數據反碼數據寄存器
break;
}
}
P1=datecode; //將數據碼送入P1端口點亮LED
}
}
作者:
admin
時間:
2018-12-6 16:44
補全原理圖或者詳細說明一下電路連接即可獲得100+黑幣
作者:
jinsheng7533967
時間:
2018-12-6 18:15
明明放了原理圖的,怎么就沒了呢
作者:
jinsheng7533967
時間:
2018-12-6 20:55
8051單片機制作紅外發射與接收電路圖.rar
(73.76 KB, 下載次數: 51)
2018-12-6 20:54 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
四無青年啦啦啦
時間:
2020-4-17 01:17
源程序怎么下載呀
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
色一级
|
国产99在线 | 欧美
|
欧美女优在线观看
|
国产精品久久久久久久久久久久
|
国产成人精品免费
|
国产黄色在线观看
|
成人在线观看免费观看
|
男女在线免费观看
|
国产 欧美 日韩 一区
|
欧美精品一区二区三区四区 在线
|
国产乱码精品1区2区3区
|
国产精品国产成人国产三级
|
二区中文
|
午夜精品一区二区三区在线
|
欧美一区二区久久
|
久久av在线播放
|
一区精品视频
|
日韩中文字幕在线视频
|
久久成人免费观看
|
精品久久不卡
|
免费a v网站
|
国产精品久久久久久久久久久久久久
|
亚洲 欧美 日韩在线
|
亚洲最新网址
|
久久久蜜桃一区二区人
|
日本精品视频在线观看
|
综合欧美亚洲
|
www.国产精品
|
国产精品久久久久久久久久尿
|
国产性网
|
日韩综合网
|
国产精品美女久久久久久久网站
|
成人在线免费观看av
|
特级生活片
|
亚洲精品久久久久中文字幕欢迎你
|
国产精品久久久久久久久免费软件
|
国产福利在线
|
精品国产91亚洲一区二区三区www
|
成人国产在线视频
|
av在线免费播放
|
国产免费视频
|