基于51单片机的NEC红外解码.ppt

基于51单片机的NEC红外解码.ppt

ID:55792029

大小:170.50 KB

页数:15页

时间:2020-06-02

基于51单片机的NEC红外解码.ppt_第1页
基于51单片机的NEC红外解码.ppt_第2页
基于51单片机的NEC红外解码.ppt_第3页
基于51单片机的NEC红外解码.ppt_第4页
基于51单片机的NEC红外解码.ppt_第5页
资源描述:

《基于51单片机的NEC红外解码.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、基于51单片机的NEC红外解码张静高佳华NEC编码头码:9ms高电平+4.5ms低电平码0:0.56ms高电平+0.56ms低电平码1:0.56ms高电平+1.68ms低电平结束位:0.56ms高电平发码顺序为先发低位再发高位单键码:头码+16位系统码+8位数据码+8位数据码反码连续键码(发简码):9ms高电平+2.25ms低电平简码重复周期:108msNEC编码硬件红外OUT脚接到了单片机P3^3中断接口需求分析思想:上升沿中断触发,时间清零38K载波信号HS0038矩形波信号单片机中断接口是否有上升

2、沿/读取时间/时间清零引导标志位是否为11时间是否为0、1、22错误,引导标志置0,时间置0,中断置0有0时间是否满足引导码是引导标志置1,中断计数置0,时间清零否时间清零0中断计数+1,数据位移,低位置0中断计数+1,数据位移,低位置0中断计数为8/16/24/3224数据储存8地址储存16地址进行相加校验是否成功失败所有数据清零成功32数据校验是否成功否数据清零是输出数据程序流程图主函数TMOD&=0xF0;//将TMOD的低4位定时器0控制部分清零TMOD

3、=0x01;//设置定时器0为方式1TL

4、0=0x33;//设置定时器0初值低8位TH0=0xFE;//设置定时器0初值高8位TR0=1;//启动定时器0ET0=1;//Timer0中断允许IT1=1;//下降沿触发方式EX1=1;//外部INT1中断允许EA=1;//开全局中断LCD1602_init();//调用1602液晶初始化函while(1)定时器中断voidTimer0(void)interrupt1{//定时250微秒TL0=0x33;//重新给TL0赋初值TH0=0xFE;//重新给TH0赋初值tmr_times++;//计时周

5、期自加//******************************************}接收信号中断voidINIT1(void)interrupt2{EA=0;TH0=0xfe;TL0=0x33;//循环时间int_times++;if(head_ok==0){if(tmr_times>0x31&tmr_times<两次中断时间间隔13.5ms{head_ok=1;//引导时间为1进入01判断int_times=0;tmr_times=0;lanth=0;}else{0x37)wrong();

6、//信息清零}}0/1判断voidone_zero(){lanth=0;if((tmr_times>2)&(tmr_times<7))//信号时长{lanth=0;}elseif((tmr_times>7)&(tmr_times<13)){lanth=1;}}接收信号存储one_zero();//01判断code_data=code_data>>1;//右移一位以存储信息if(lanth==1){code_data

7、=0x80;//最高位为1}else{code_data&=0x7f;//最高位为0}t

8、mr_times=0;//引导时间清零lanth=0;对信号进行校验if(int_times==8)//用户地址赋值{address=code_data;}elseif(int_times==16)//地址检验{if(code_data+address!=0xff)wrong();}elseif(int_times==24)//数据码记录{code_data1=code_data;}elseif(int_times==32)//数据码校验/校验正确,显示{int_times=0;head_ok=0;if

9、(code_data1==~code_data){flagf=1;shuju=code_data1;}elseflagf=0;}错误数据清零voidwrong(){int_times=0;tmr_times=0;head_ok=0;code_data=0;lanth=0;flagf=0;}LCD1602显示voidLCD1602_init(void){Delay1602(1500);//调用延时函数LCD1602_Write_com(0x38);//8位数据总线,两行显示模式,5*7点阵显示Delay1

10、602(500);//调用延时函数LCD1602_Write_com(0x38);//8位数据总线,两行显示模式,5*7点阵显示Delay1602(500);//调用延时函数LCD1602_Write_com(0x38);//8位数据总线,两行显示模式,5*7点阵显示LCD1602_Write_com_busy(0x38);//8位数据总线,两行显示模式,5*7点阵显示LCD1602_Write_com_busy(0x08);//显示功能关

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

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

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