完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
#include
typedef unsigned char u8; typedef unsigned int u16; ***it k1=P3^1; ***it k2=P3^0; ***it k3=P3^2; ***it PWM=P2^0; ***it IRIN=P3^2; u8 IrValue[7]; u16 value=12,timer1=0;count=0;Time; void delay(unsigned int x) { unsigned int i,j; for(i=x;i>0;i--) for(j=110;j>0;j--); } void IrInit() { IT0=1;//下降沿触发 EX0=1;//打开中断0允许 EA=1; //打开总中断 IRIN=1;//初始化端口 } void ReadIr() interrupt 0 { u8 j,k; u16 err; Time=0; delay(700); //7ms if(IRIN==0) //确认是否真的接收到正确的信号 { err=1000; //1000*10us=10ms,超过说明接收到错误的信号 /*当两个条件都为真是循环,如果有一个条件为假的时候跳出循环,免得程序出错的时 侯,程序死在这里*/ while((IRIN==0)&&(err>0)) //等待前面9ms的低电平过去 { delay(1); err--; } if(IRIN==1) //如果正确等到9ms低电平 { err=500; while((IRIN==1)&&(err>0)) //等待4.5ms的起始高电平过去 { delay(1); err--; } for(k=0;k<4;k++) //共有4组数据 { for(j=0;j<8;j++) //接收一组数据 { err=60; while((IRIN==0)&&(err>0))//等待信号前面的560us低电平过去 { delay(1); err--; } err=500; while((IRIN==1)&&(err>0)) //计算高电平的时间长度。 { delay(10); //0.1ms Time++; err--; if(Time>30) { return; } } IrValue[k]>>=1; //k表示第几组数据 if(Time>=8) //如果高电平出现大于565us,那么是1 { IrValue[k]|=0x80; } Time=0; //用完时间要重新赋值 } } } if(IrValue[2]!=~IrValue[3]) { return; } } IrValue[4]=IrValue[2]>>4; //高四位变低四位 IrValue[5]=IrValue[2]&0X0F; //取键值得低四位 IrValue[7]=IrValue[4]*16+IrValue[5];//十六进制换算成十进制 EX1=1; } void Time1init() { EA=1; ET1=1; TMOD=0x10; TH1=(65535-65)/256; TL1=(65535-65)%256; TR1=1; } void keys() { if(IrValue[7]==7) { if (value>=5) value--; } if (IrValue[7]==21) { if (value<=25) value++;} } void main() { IrInit(); k1=1; k2=1; Time1init(); while(1) { keys(); }} void time1stop()interrupt 3 using 0 { timer1++; if (timer1<=value) PWM=1; else PWM=0; if (timer1==200) timer1=0; TH1=(65535-65)/256; TL1=(65535-65)%256; } 谢谢大家~ |
|
相关推荐
1个回答
|
|
|
一步一步查,看有没有进入中断
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
693 浏览 0 评论
RT-Thread与英飞凌(infineon)合作得板子PSOC 6 板子学习
681 浏览 0 评论
有人有STM8H1K08T连接TM1650的源码吗,可以直接使用的那种,我的代码在烧录之后数码管一直处于熄灭状态
993 浏览 0 评论
【瑞萨RA6E2】瑞萨E2S软件安装过程,等待过程玩下97_e2 studio_ZGZZ
781 浏览 0 评论
893 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
16959 浏览 31 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-9 09:48 , Processed in 0.718684 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2673