学习型红外线遥控程序.c

学习型红外线遥控程序.c

ID:14839930

大小:46.00 KB

页数:16页

时间:2018-07-30

学习型红外线遥控程序.c_第1页
学习型红外线遥控程序.c_第2页
学习型红外线遥控程序.c_第3页
学习型红外线遥控程序.c_第4页
学习型红外线遥控程序.c_第5页
资源描述:

《学习型红外线遥控程序.c》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学习型红外线遥控程序.C更多技术资料,论文请登录www.srvee.com/*************晶体为11.0592M,波特率9600bps***************学习型红外线遥控程序*******/#includevoidEwen(void);voidEwds(void);voidDelay(void);voidIrda(void);voidStudy(void);voidOutput(unsignedinth);voidComput(unsignedcharoutdata);voidErase(unsignedcharA

2、ddress);unsignedintRead(unsignedcharAddress);unsignedcharDisplay(unsignedcharinAddress);voidWrite(unsignedcharAddress,unsignedintInData);unsignedintBoth(unsignedchardata1,unsignedchardata2);//Sys_Ma系统码//Sys_FMa系统反码、//User_Ma用户码//User_FMa用户反码unsignedchardataSys_Ma_at_0x1A;//分别存放红外线译

3、码后的数据unsignedchardataSys_FMa_at_0x1B;unsignedchardataUser_Ma_at_0x1C;unsignedchardataUser_FMa_at_0x1D;sbitIrInput=P3^2;//红外线输入引脚,可自定义sbitStudy_Key=P3^6;//学习按键,可自定义sbitLed2=P2^5;//接收成功、学习成功指示sbitLed1=P2^6;//空闲指示sbitDout=P2^3;//at93c16--DOsbitDin=P2^2;//at93c16--DIsbitsk=P2^1;//at93c

4、16--SKsbitcs=P2^0;//at93c16--CS/*******************红外线查询子程序*******************/voidIrda(void){/*#pragmaasmMOVR6,#10SB:MOVR4,#19;延时880微秒D1:MOVR5,#19DJNZR5,$DJNZR4,D1JBP3.2,EXIT;延时882微秒后判断P3.2脚是为1DJNZR6,SB;在8820微秒内如P3.2为1就退出JNBP3.2,$;等待高电平避开9毫秒低电平引导脉冲MOVR4,#10;延时4740微秒D2:MOVR5,#218DJ

5、NZR5,$DJNZR4,D2;延时4.74毫秒避开4.5毫秒的结果码MOVR1,#1AH;设定1AH为起始RAM区MOVR2,#4;接收从1AH到1DH,用于存放操作码和操作反码PP:MOVR3,#8;每组数据为8位SS:JNBP3.2,$;等待地址码第一位的高电平信号MOVR4,#19;延时880微秒D5:MOVR5,#19DJNZR5,$DJNZR4,D5;高电平开始后882微秒判断信号的高低电平MOVC,P3.2;将P3.2引脚此时的电平状态0或1存入C中JNCTT;如果为0就跳转到TTMOVR4,#2;延时1000微秒D6:MOVR5,#248DJ

6、NZR5,$DJNZR4,D6;检测到高电平1的话延时1毫秒等待脉冲高电平结束TT:MOVA,@R1;将R1中地址的给ARRCA;将C中的值0或1移入A中的最低位MOV@R1,A;DJNZR3,SS;接收满8位换一个内存INCR1;对R1中的值加1,换下一个RAMDJNZR2,PP;接收完所有数据EXIT:#pragmaendasm*/}/******************红外线学习程序***************************/voidStudy(void){unsignedcharAddress[9]={0x00,0x01,0x02,0x0

7、3,0x04,0x05,0x06,0x07,0x08};//unsignedintj,h,rd,i;unsignedchark,t,Addr;EX0=0;//关外部中断0k=0;//给"K"变量赋初值t=0;//给"t"变量赋初值Led1=0;//"学习灯亮"for(j=0;j<80;j++)//进入"for"循环共80次{//"for"循环开始for(k=0;k<9;k++)//进入"for"循环共9次{//"for"循环开始Delay();//延时begin:i=20000;//begin:是goto语句中的标号while(Study_Key)//学习键

8、按下了吗?{//学习键未按下Addr=Display

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

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

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