智能学习型遥控系统的设计与实现毕业设计内容摘要:

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。 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。 i 8。 i++ send_pulse_565。 //先发 毫秒脉宽 if one_bitamp。 key_num 1 send_space_1685。 //先发低位 某位是 1 则延时 else send_space_560。 //如果是 0 则延时 one_bit one_bit 1。 //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。 //判断是不是矩阵键 1 if temp_h 0x01amp。 temp_l 0x0d current_n 2。 //判断是不是矩阵键 2 if temp_h 0x01amp。 temp_l 0x0f current_n 3。 //判断是不是矩阵键 3 if temp_h 0x01amp。 temp_l 0x09 current_n 4。 //判断是不是矩阵键 4 if temp_h 0x00amp。 temp_l 0x0d //判 断是不是学习按键 current_n++。 if current_n 7 current_n 1。 对蜂鸣器鸣叫控制程序的实现 本系统中的蜂鸣器鸣叫控制程序比较简单,当需要鸣叫的时候,给控制蜂鸣器的脚输出低电平,则蜂鸣器鸣叫,当输出高电平时,蜂鸣器不会鸣叫。 通过调整输出低电平时间的长短可以控制鸣叫的时间长短。 反复通断可以让蜂鸣器连续鸣叫。 以下程序段为对蜂鸣器鸣叫控制程序: //蜂鸣器鸣叫程序 Beep 1。 //一开始蜂鸣器是不应该叫 的 //有按键按下时 ,译码 ,蜂鸣器鸣叫 beep 0。 //输出低电平让蜂鸣器鸣叫 delay05s。 //让蜂鸣器持续鸣叫 秒 beep 1。 //输出高电平让蜂鸣器停止鸣叫 写入单片机的部分详细程序请参见附录。 6 系统的开发环境及测试分析 系统开发环境 系统开发环境包括硬件平台和软件平台两种。 硬件环境。 开发本系统需要一些必须的硬件准备,如: PC 机、 MCS51 系列单片机编程器、万用电路板、 TDS220 存储式数字示波仪、万用表 、 5V 稳压电源、制板和焊接的一些工具,以及必须的电子元器件等。 要很好地完成该设计这些都是必须的, PC 机可以实现程序的编译产生单片机可以识别的机器码,并可以和外部硬件电路联合防真。 编程器是单片机开发中必不可少的,它的功能是把 PC机编译后产生的机器码写入单片机的程序存储器,因此在单片机的开发中起到相当大的作用。 仿真机可以通过和 PC 机的连接来实现硬件的防真,而不需要每次都把程序写入单片机才可以调试。 在本设计中还有一个重要的测试工具就是存储式示波仪,它能较准确并形象地测试出红外线信号,并测试出一些必要的数据,为单片 机的译码工作提供重要的依据。 软件环境。 在本系统的开发中会用到以下辅助软件: Keil、 Protel 99se、以及编程器的驱动等软件。 Keil 主要是完成程序的编译及提供防真环境,应用Protel 可以完成电路及电路板的设计, Protel 是一款电路设计专业软件,应用该软件可以轻松完成电路图的设计,并且其超强的自动布线功能,更能出色完成电路 PCB 的绘制。 系统测试分析 在本系统开发过程中采用了多种措施保证质量,但是实际开发过程中还是不可避免地会产生差错,系统中通常可能隐藏着错误和缺陷,未经周密测试的系统投入应用,将会造成难以想像的后果,因此系统测试是开发过程中为保证质量必须进行的工作。 由于系统中隐藏的某些缺陷只在特定的环境下才有可靠显露,系统缺陷通常是由于对某些特定情况考虑不周造成的。 因此测试不是为了表明系统正确;成功的测试也不是没有发现错误的测试。 有意义的系统测试应该是从“破坏”系统的角度出发,精心设计最有可以暴露系统缺陷的测试方案。 因此软件测试的目标应该是以尽可能少的代价和时间找出系统中潜在的错误和缺陷。 硬件测试分析 硬件测试一般是对硬件的稳定性和可靠度所进行的测试,主要是通过改变外部环境观察 其是否能正常工作,比如电源波动等,并作出相应的保护措施,若发现问题及时寻求解决的方法,力求增加系统的稳定性和安全性。 另一方面就是检测红外接收头工作的稳定性,在本设计中,红外接收头是采集红外线信息的重要元件,所以其能不能正常稳定的工作直接影响到测码系统的稳定,可以进行多次长时间的测试,看其错误的几率有多大,再根据具体的情况增加保护,或改善电路,增加抗干扰的能力。 程序测试分析 单元测试: 对每部分功能的单元进行测试,单元测试也称模块测试或程序测试。 单元测试是对每个模块单独进行的,验证模块接口与设计说明书是 否一致,对模块的所有主要处理路径进行测试且与预期的结构进行对照,还要对所有错误处理路径进行测试。 对源码进行审查,对照设计说明书,表态地检查源程序是否符合功能的逻辑要求,是进行单元测试前的重要工作工。 组合测试: 组合测试的对象是指已经通过单元测试的模块,不是对零散模块进行单个测试,而是用系统化的方法装配和测试程序系统,是一个严格的过程,必须认真地进行。 把各个不同功能的模块组合起来进行相关功能的严格测试,是否能够达到预期的效果,若出现差错,客观认真地分析原因,并寻求最佳的解决方案。 全系统测试 主要把硬件 和软件结合起来进行比较全面的测试,主要可以通过以下各方式进行: 白盒测试: 白盒测试就是在了解系统各功能的情况下所进行的有目的的测试,来验证各部分功能是否都已达到预期效果,并检查是否会有新问题的出现。 黑盒测试: 在对系统功能完全不了解的情况下所进行的无目的的测试,对所有按键及遥控器的检测过程中,无目的的随便操作,观察其运行情况是否有问题出现,若有问题及时找出原因,并修改。 老化测试: 让系统较长时间工作,观察其是否能够长时间正常运行。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。