毕业设计论文-智能学习型遥控系统的设计与实现内容摘要:
发码。 要想译码必须先了解其发码规则,经查阅相关资料,了解到此遥控器所发的红外信号是由引导码,8位的客户码,8位的客户码反码,8位的键码,8位的键码反码,再加延时,然后再有第二个引导码,如果按键还按着就循环第二引导码。 经过研究此遥控器各键的发码,发现各键所发的红外信号引导码,客户码,第二引导码都是相同的,不同之处仅只有键码不同,而且键码后8位为前8位的反码,所以我们所关注的只是键码部分的波形。 从资料上了解到此,此波形的逻辑0定义为560ms的高电平加上560 ms的底电平,逻辑1定义为560ms的高电平加上1690ms的底电平。 我们译码就是要译出8位键码的各位是0还是1,从逻辑定义可以发现,它们只是低电平时间不同,因此只要用定时器记住低电平的时间就可以译码了,当然还要断判下是否是NEC编码,这里只需要检测引导码就可以了。 以下程序段是此遥控器的译码检测程序:/ //红外发送程序 include define uchar unsigned char define uint unsigned int define send0 send_pulse_565 ()。 send_space_1685 ()。 define send1 send_pulse_565 ()。 send_space_560 ()。 uchar SYS_DATA=0x49。 //系统码 sbit OUT=P3^7。 void send_bit (uchar one_bit)。 //发送一位字节 void send_data (uchar one_data)。 //发送一个数据 //包括一个起始标志 一个系统码及其反码 一个数据码(one_data)及其反码 char code disp[]={0x28,0x7E,0xA2,0x62,0x74,0x61,0x21,0x7A,0x20,0x60,0x30,0x25,0xA7,0x26,0xA1,0xB1}。 char i1=0,i2=0,i3=0,i4=0,i5=0,i6=0,i7=0,i8=0。 //显示缓冲 void delay(uchar t) { char a。 while(t) for(a=255。 a0。 a)。 } void display(uchar t) { while(t) { P0=disp[i1]。 P2=0x7f。 //对P2口进行赋值 delay(1)。 P2=0xff。 //对P2口进行赋值 P0=disp[i2]。 P2=0xbf。 //对P2口进行赋值 delay(1)。 P2=0xff。 //对P2口进行赋值 P0=disp[i3]。 P2=0xdf。 delay(1)。 P2=0xff。 //对P2口进行赋值 P0=disp[i4]。 P2=0xef。 delay(1)。 //延时一小段时间 P2=0xff。 P0=disp[i5]。 P2=0xf7。 delay(1)。 P2=0xff。 P0=disp[i6]。 P2=0xfb。 //对P2口进行赋值 delay(1)。 //延时一小段时间 P2=0xff。 P0=disp[i7]。 P2=0xfd。 delay(1)。 P2=0xff。 P0=disp[i8]。 P2=0xfe。 delay(1)。 P2=0xff。 } } void send_pulse_9000 (void) //9ms脉宽 { TH0=0xdc。 TL0=0xff。 TR0=1。 TR1=1。 while(TR0)。 TR1=0。 OUT=1。 } //发送引导码中9ms的高电平void send_space_4500 (void) // { OUT=1。 TH0=0xee。 TL0=0x7f。 TR0=1。 while(TR0)。 OUT=1。 } //void send_pulse_565 (void) // { TH0=0xfd。 TL0=0xee。 TR0=1。 TR1=1。 while(TR0)。 TR1=0。 OUT=1。 } //发送客户码565ms的高电平void send_space_1685 (void) // { OUT=1。 TH0=0xf9。 TL0=0x7f。 TR0=1。 while(TR0)。 OUT=1。 } void send_space_560 (void) // { OUT=1。 TH0=0xfd。 TL0=0xea。 TR0=1。 while(TR0)。 OUT=1。 } void send_bit (uchar one_bit) { uchar i。 uchar key_num=0x01。 for(i=0。 i8。 i++) { send_pulse_565 ()。 // if( (one_bitamp。 key_num)==1 ) send_space_1685 ()。 //先发低位 else send_space_560()。 // one_bit=one_bit1。 //one_bit右移一位 } } void send_data (uchar one_data) { uint t=1000。 send_pulse_9000()。 //起始码 9ms的脉宽 考虑到误差 send_space_4500()。 // send_bit (SYS_DATA)。 //发系统码 send_bit (~SYS_DATA)。 //发系统码的反码 send_bit (one_data)。 //发数据码 send_bit (~one_data)。 //发数据码的反码 TR1=1。 while(t)。 TR1=0。 OUT=1。 } void main(void) { uchar c=0x77。 uint t=65535。 TMOD=0x21。 //T0产生精确时间的延时或脉宽 16位 //T1产生38kHz方波 8位自动重装 TH1=0xf3。 TL1=0xf3。 IE=0x8a。 delay(255)。 display(100)。 delay(255)。 display(100)。 while(1) { send_data(c)。 } } void time0 (void) interrupt 1 { TR0=0。 TR1=0。 } void time1 (void) interrupt 3 //T1用来产生38kHz方波 { OUT=~OUT。 } 按键检测程序的实现 本系统的按键检测分两种情况,一种是矩阵按键按下的时候,这时候红外发射头会发送一帧信号,信号里面含有该按键的键码。 另一种是按下学习按键后,系统将等待对方的信号输入,如果有信号输入,将该信号译码并保存至存储器中备用,如果没有信号输入,系统将等待一定得时间,如果超过等待时间还没有信号输入,系统将又回到获取键码的状态。 以下程序段是此系统检要的按键检测程序://判断是哪键接下程序//功能:根据键码中的值按键后需要做出的反应//条件:temp_h,temp_l中要有值//结果:current_n中得到当前按键if(temp_h==0x00amp。 temp_l==0x09)current_n=1。 //判断是不是矩阵键1if(temp_h==0x01amp。 temp_l==0x0d)current_n=2。 //判断是不是矩阵键2if(temp_h==0x01amp。 temp_l==0x0f)current_n=3。 //判断是不是矩阵键3if(temp_h==0x01amp。 temp_l==0x09)current_n=4。 //判断是不是矩阵键4if(temp_h==0x00amp。 temp_l==0x0d) //判断是不是学习按键 {current_n++。 if(current_n==7)current_n=1。 } 对蜂鸣器鸣叫控制程序的实现本系统中的蜂鸣器鸣叫控制程序比较简单,当需要鸣叫的时候,给控制蜂鸣器的脚输出低电平,则蜂鸣器鸣叫,当输出高电平时,蜂鸣器不会鸣叫。 通过调整输出低电平时间的长短可以控制鸣叫的时间长短。 反复通断可以让蜂鸣器连续鸣叫。 以下程序段为对蜂鸣器鸣叫控制程序://蜂鸣器鸣叫程序 Beep=1。 //一开始蜂鸣器是不应该叫的//有按键按下时,译码,蜂鸣器鸣叫 beep=0。 //输出低电平让蜂鸣器鸣叫 delay05s()。 // beep=1。 //输出高电平让蜂鸣器停止鸣叫 写入单片机的部分详细程序请参见附录。 系统的开发环境及测试分析6 系统的开发环境及测试分析。毕业设计论文-智能学习型遥控系统的设计与实现
相关推荐
,企业必须建立相应的组织制度体系,它应该包括危机日常处置机构,危机处置制度和危机处置队伍演练。 完备的组织制度,是企业有效开展危机预控的必要保障。 ( 1) 设立危机处置机构。 由于危机预防是企业一项经常性的工作,所以,危机预防工作不能只是应急,而应该引起高度重视,并且长期坚持。 为此,在企业中,专门设立由公关部门负责人和有关专家组成的危机处置机构将是十分必要的。
人提出适当的变更价格,经工程师确认后执行。 投标人应按招标人提供的工程量清单中列出的工程项目和工程量填报单价和合价。 每一项目只允许有一个报价。 任何有选择的报价将不予接受。 投标人未填报单价或合价的工程项目,在实施后,招标人将不予支付,并视为该项费用已包括在其他有价款的单价或合价内。 投标人在报价中所报的单价和合价,以及投标报价汇总表中的价格均包括完成该工程项目 的成本、利润、税金、开办费
等多种弊端。 切实为公众解决买房,卖房,租房和求租遇到的各种问题。 网站主要具有盈利性、实用性、知识性、交流性、娱乐性等特点 主要功能包括:公司简介、房产新闻、房产政策、出租信息。 求租信息、出售信息、求购信息、休闲时刻、 BBS、站点介绍、友情链接等。 系统构思是建立一个基于 web,使用 ASP 技术和 Access 数据库技术的房产中介管理信息系统。 包含普通用户、会员
定 8 第 5章 设计原则 系统先进性 充分考 虑电子信息技术的突飞猛进发展趋势,采用国内外先进的成熟的技术,起点要高,在技术上应具有一定的超前性,保证将保安系统建成为先进的智能化程度高、防范严密的综合安全防范系统。 开放性、集成性 采用标准硬件、操作系统及网络和通讯协议,并可提供开放的通讯协议,支持第三方系统集成。 实用性和简易性 充分分析防范需求及环境情况,采用实用的名牌优质设备
“皮带 — 行星式齿轮”传动机构,主要是因为该传动机构具有传动效率高 、加工成本低的优点。 故本次设计也采用“皮带 — 行星式齿轮”传动机构,其传动原理如图 所示: 图 小型球磨机行星式传动机构示意图 本实用新型卧式运动行星球磨机涉及的是一种适用于同时 球磨多种磨料的卧式行星球磨机。 动力传输机构由电动机 小带轮 传动皮带 2和大带轮 10组成。 行星旋转机构由太阳轮 托盘 行星轮 球磨罐 5