网站大量收购闲置独家精品文档,联系QQ:2885784924

红外线发射接收对管的简单应用基础.doc

红外线发射接收对管的简单应用基础.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
红外线发射接收对管的简单应用基础 作者:羊村村长(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 -------

文档评论(0)

185****7617 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档