红外接收发制作.doc

红外接收发制作.doc

ID:55700394

大小:96.00 KB

页数:12页

时间:2020-05-25

红外接收发制作.doc_第1页
红外接收发制作.doc_第2页
红外接收发制作.doc_第3页
红外接收发制作.doc_第4页
红外接收发制作.doc_第5页
资源描述:

《红外接收发制作.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、红外接收原理图:#include#include#include#defineuintunsignedint#defineucharunsignedcharsbitir=P3^2;//红外端口sbitP2_0=P2^0;//LED1端口sbitP2_1=P2^1;//LED2端口sbitP2_2=P2^2;//LED3端口sbitP2_3=P2^3;//LED4端口sbitP2_4=P2^4;//LED5端口sbitP2_5=P2^5;//LED6端口sbitP2_6=P

2、2^6;//LED7端口sbitP2_7=P2^7;//LED8端口ucharkey_code=0;//遥控键值ucharnew_code=0;//有无新按键uintbuf_key_code=0;//键值暂存ucharkey_bit_count=0;//键编码脉冲计数uintcount=0;//定时中断次数计数uintbuf_count=0;//定时中断计数暂存ucharcommon_code_count=0;//前导码脉冲计数ucharir_status=0;//脉冲接收器所处的状态,0:无信号,1:系统码接收区,2:数据编码

3、接收区///延时子程序10usvoiddelay_10us(unsignedchary){   unsignedcharx;   for(x=y;x>0;x--);}/////初始化voidinit(void){   ir=1;   //红外端口写1      EA=1;   //开总中断   TMOD=0x02;   //定时器0,模式2,8位自动装载模式   TH0=0Xd1;   //定时50us   TL0=0Xd1;   IT0=1;   //INT1下降沿触发   ET0=1;   //允许定时器中断   EX0=1

4、;   //允许外部中断}/***********************************************定时器中断***********************************************////定时器中断voidtime0()interrupt1{   count++;   //定时器中断次数累加}/**********************************************  外部中断,红外解码程序*************************************

5、*********////外部中断voidint1()interrupt0{      TR0=1;   //开定时器中断   //如果信号合法,则放入buf_count,count清0,对下一个脉冲信号计时   if(count>12&&count<270)   {       buf_count=count;       count=0;   }   delay_10us(10);   //延时100us以消除下降沿跳变抖动   //INT1引脚稳定为低电平,则表法确实是信号,count重新计时,因上面延时了50us,故要补

6、偿1次TO中断   if(ir==0)   {       count=2;   }   //若收到的信号合法,则再进行信号分析   if(buf_count>12&&buf_count<270)   {       //如果之前未收到引导码       if(ir_status==0)       {           //判断是否引导码13.5ms           if(buf_count>210&&buf_count<270)           {               ir_status=1;       

7、        //系统标记               buf_count=0;               //           }       }       ///收到引导码       elseif(ir_status==1)       {                      //若收完26个脉冲           if(common_code_count>=25)           {                              ir_status=2;               //

8、数据解码标记               common_code_count=0;               //系统码计算清零               buf_count=0;               //中断计数暂存清0           }  

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。