文档详情

红外对管的简单应用.doc

发布:2016-05-18约字共6页下载文档
文本预览下载声明
红外对管的简单应用 作者:羊村村长(qq:332416820) 关键词:红外线、单片机、1T、AD模数转换、红外对管、1602 元件清单:STC12C5A60S2、12MHz晶振、30p电容(2个)、103可调电阻、1602液晶、红外对管、电阻(220,47k各一个) 电路图: 说明:1、红外发射管工作电流一般为100ma左右,使用中长时间超过额定电流工作会造成期间损坏,此电路中限流电阻为220欧,则工作电流5/220为22ma左右; 2、此电路实际测试中,感应距离15cm左右(从液晶上能看到电压变化),此距离为单程距离,从照片中可以看到; 3、如果要增加感应距离,方法有三个:一个是加大发射电流(减小限流电阻),二是用单片机定时进行脉冲发射,改变占空比,三是接收电流加三极管放大,提高接收电路灵敏度; 4、此电路所用STC12C5A60S2为1Tcpu,具有P1口内部adc功能,传统51需改时延,并自己增加ADC模块。 5、特别提醒,红外接收管正极应该接地。 实验场景: 下面图一红圈标示的就是红外对管连接 图一 万能板实验图 图二 上面用东西遮挡引起电压变化 源程序清单: /*---------------------------------------------------------------------------------------------------------------*/ /* 12Mhz晶振测试,100%通过 */ /*---------------------------------------------------------------------------------------------------------------*/ #includereg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar Vo; //A/D转换后换算的电压值 /*Declare SFR associated with the ADC */ sfr ADC_CONTR = 0xBC; //ADC control register sfr ADC_RES = 0xBD; //ADC high 8-bit result register sfr ADC_RESL = 0xBE; //sfr ADC_LOW2 = 0xBE; //ADC low 2-bit result register sfr P1ASF = 0x9D; //P1 secondary function control register /*Define ADC operation const for ADC_CONTR*/ #define ADC_POWER 0x80 //ADC power control bit #define ADC_FLAG 0x10 //ADC complete flag 模数转换结束标志位 #define ADC_START 0x08 //ADC start control bit 模数转换启动控制位 //转换速度控制位SPEED0和SPEED1,共四种状态,对应四种转换速度 #define ADC_SPEEDLL 0x00 //540 clocks #define ADC_SPEEDL 0x20 //360 clocks #define ADC_SPEEDH 0x40 //180 clocks #define ADC_SPEEDHH 0x60 //90 clocks uchar tCount; sbit RS = P2^0; sbit RW = P2^1; sbit EN = P2^2; void DelayMS(uint ms) { uint i; while(ms--) { for(i=0;i120;i++); } } /*---------------------------- Software delay function --------------
显示全部
相似文档