欢迎来到天天文库
浏览记录
ID:1703525
大小:275.50 KB
页数:6页
时间:2017-11-13
《红外线发射接收对管的简单应用基础》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、红外线发射接收对管的简单应用基础作者:羊村村长(qq:332416820)关键词:红外线、单片机、1T、AD模数转换、红外对管、1602元件清单:STC12C5A60S2、12MHz晶振、30p电容(2个)、103可调电阻、1602液晶、红外对管、电阻(220,47k各一个)电路图:说明:1、红外发射管工作电流一般为100ma左右,使用中长时间超过额定电流工作会造成期间损坏,此电路中限流电阻为220欧,则工作电流5/220为22ma左右;2、此电路实际测试中,感应距离15cm左右(从液晶上能看到电压变化),此距离为单程距离,从照片中可以看到;3、如果要增加感应距离,方法有三个:
2、一个是加大发射电流(减小限流电阻),二是用单片机定时进行脉冲发射,改变占空比,三是接收电流加三极管放大,提高接收电路灵敏度;4、此电路所用STC12C5A60S2为1Tcpu,具有P1口内部adc功能,传统51需改时延,并自己增加ADC模块。5、特别提醒,红外接收管正极应该接地。实验场景:下面图一红圈标示的就是红外对管连接图一万能板实验图图二上面用东西遮挡引起电压变化源程序清单:/*---------------------------------------------------------------------------------------------------
3、------------*//*12Mhz晶振测试,100%通过*//*---------------------------------------------------------------------------------------------------------------*/#include#include"intrins.h"#defineucharunsignedchar#defineuintunsignedintucharVo;//A/D转换后换算的电压值/*DeclareSFRassociatedwiththeADC*/sfrAD
4、C_CONTR=0xBC;//ADCcontrolregistersfrADC_RES=0xBD;//ADChigh8-bitresultregistersfrADC_RESL=0xBE;//sfrADC_LOW2=0xBE;//ADClow2-bitresultregistersfrP1ASF=0x9D;//P1secondaryfunctioncontrolregister/*DefineADCoperationconstforADC_CONTR*/#defineADC_POWER0x80//ADCpowercontrolbit#defineADC_FLAG0x10//AD
5、Ccompleteflag模数转换结束标志位#defineADC_START0x08//ADCstartcontrolbit模数转换启动控制位//转换速度控制位SPEED0和SPEED1,共四种状态,对应四种转换速度#defineADC_SPEEDLL0x00//540clocks#defineADC_SPEEDL0x20//360clocks#defineADC_SPEEDH0x40//180clocks#defineADC_SPEEDHH0x60//90clocksuchartCount;sbitRS=P2^0;sbitRW=P2^1;sbitEN=P2^2;voidDel
6、ayMS(uintms){uinti;while(ms--){for(i=0;i<120;i++);}}/*----------------------------Softwaredelayfunction----------------------------*/voidDelay(uintn){uintx;while(n--){x=5000;while(x--);}}/*-------------------------------------------------------------------------------------------------------
7、--------*//*ADC相关部分*//*---------------------------------------------------------------------------------------------------------------*//*----------------------------InitialADCsfr----------------------------*/voidInitADC(){P1ASF=0x01;//选择P1.0作为A/D输
此文档下载收益归作者所有