收藏 分销(赏)

基于51单片机红外发射与接收C程序.doc

上传人:w****g 文档编号:2487336 上传时间:2024-05-30 格式:DOC 页数:6 大小:175.04KB 下载积分:6 金币
下载 相关 举报
基于51单片机红外发射与接收C程序.doc_第1页
第1页 / 共6页
基于51单片机红外发射与接收C程序.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
(完整word)基于51单片机红外发射与接收C程序 基于51单片机红外发射与接收程序 实验证明,效果非常好。 红外发射程序 #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=P1^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 tishi() { LED=0; delay(50); LED=1; delay(50); LED=0; delay(50); LED=1; } void keyscan()//按键扫描 { if(key1==0) { _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); if(key1==0) { while(!key1); fashu(0xf3); tishi(); } } if(key2==0) { _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); if(key2==0) { while(!key2); fashu(0x3f); tishi(); } } if(key3==0) { _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); if(key3==0) { while(!key3); fashu(0xf5); tishi(); } } } void main() { init(); while(1) { keyscan(); } } 红外接收程序 #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; 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 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 开始读数据 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; }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服