完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
这个程序不是我写的
这是发送端:#include ***it OUT = P1 ^ 0; ***it LED = P1 ^ 7; // /********************************************************************************************* 函数名:毫秒级CPU延时函数 调 用:DELAY_MS (?); 参 数:1~65535(参数不可为0) 返回值:无 结 果:占用CPU方式延时与参数数值相同的毫秒时间 备 注:应用于1T单片机时i<600,应用于12T单片机时i<125 /*********************************************************************************************/ void DELAY_MS (unsigned int a){ unsigned int i; while( a-- != 0){ for(i = 0; i < 600; i++); } } /*********************************************************************************************/ /**********************************************************************************************/ void ST (void){//开始码 OUT = 1; // DELAY_MS (6); OUT = 0; // DELAY_MS (4); } /**********************************************************************************************/ void BT (bit s){//数据位码 OUT = 1; DELAY_MS (1); OUT = 0; DELAY_MS (1); if(s){ DELAY_MS (1); } } /**********************************************************************************************/ void MT (unsigned char a){//字节发送 unsigned char i,n; for(i=0;i<8;i++){ n = a & 0x80;//1000 0000 a = a << 1;//0000 1010 if(n == 0x80){ BT(1); }else{ BT(0); } } } /**********************************************************************************************/ void END (void){//结束码 MT(0x00); // } /**********************************************************************************************/ /********************************************************************************************* 函数名:主函数 调 用:无 参 数:无 返回值:无 结 果:程序开始处,无限循环 备 注: /**********************************************************************************************/ void main (void){ while(1){ ST(); // MT(0x93); // 0x05 = 0000 0101 MT(0x94); // 0x05 = 0000 0101 MT(0x95); // 0x05 = 0000 0101 MT(0x96); // 0x05 = 0000 0101 END(); // DELAY_MS (1000); } } /**********************************************************************************************/
|
|
相关推荐
3个回答
|
|
这是接收端,延时函数没有使用:
#include ***it IN =P3^7; ***it LED=P1^7; unsigned char Ir_Buf[4]; //用于保存解码结果 /********************************************************************************************* 函数名:毫秒级CPU延时函数 调 用:DELAY_MS (?); 参 数:1~65535(参数不可为0) 返回值:无 结 果:占用CPU方式延时与参数数值相同的毫秒时间 备 注:应用于1T单片机时i<600,应用于12T单片机时i<125 /*********************************************************************************************/ void DELAY_MS (unsigned int a){ unsigned int i; while( a-- != 0){ for(i = 0; i < 600; i++); } } /*********************************************************************************************/ /*********************************************************************************************/ unsigned int Ir_Get_Low() { TL1=0; TH1=0; TR1=1; while(IN == 0 && (TH1&0x80)==0); TR1=0; return TH1*256+TL1; } /*********************************************************************************************/ unsigned int Ir_Get_High() { TL1=0; TH1=0; TR1=1; while(IN ==1 && (TH1&0x80)==0); TR1=0; return TH1*256+TL1; } /*********************************************************************************************/ void main(void){ unsigned int temp; unsigned char i,j; TMOD=0x11; while(1){ restart: while(!IN); temp=Ir_Get_High(); if(temp<5000 || temp>8000){ goto restart; } temp=Ir_Get_Low(); if(temp<3000 || temp>6000){ goto restart; } for(i=0;i<4;i++){ //4个字节 for(j=0;j<8;j++){ //每个字节8位 temp=Ir_Get_High(); if(temp<500 || temp>1500){ goto restart; } temp=Ir_Get_Low(); if(temp<500 || temp>2500){ goto restart; } Ir_Buf[i]<<=1; if(temp>2000){ Ir_Buf[i]|=0x01; } } } if(Ir_Buf[3]==0x96){LED=~LED;} } } /*********************************************************************************************/ |
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
479 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
229 浏览 0 评论
334 浏览 0 评论
165 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》 第十六章 WATCH_DOG实验
496 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11972 浏览 31 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 09:41 , Processed in 0.488731 second(s), Total 48, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号