单片机-人工智能与控制技术[毕业设计,精品论文].doc

单片机-人工智能与控制技术[毕业设计,精品论文].doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机课程设计 需求分析 (1)应用场合: 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅全可靠而且能有效地隔离电气干扰。 发射部分包括键盘矩阵、LED红外发送器接收部分包括器、解码电路。 名称 型号 数量 1 单片机 AT89C51 2 2 按键 四脚 12 3 电阻 470Ω 5 4 电阻 4.7KΩ 2 5 电解电容 22uf 2 6 瓷片电容 30pf 4 7 晶振 12MHz 2 8 红外发射器 φ5 1 9 接收头 V34138 1 10 电源 5V 2 11 七段数码管 共阳 1 12 三极管 NPN 1 13 万用板 2 AT89C51芯片的原理: AT89系列单片机是ATMEL公司最早推出,也是功能最简单的一个系列,该系列都是内含Flash程序存储器的MCS-51兼容单片机,AT89C51就是其中一款可在线编程ISP Flash单片机。AT89C51具有价格便宜、性能优良、可在线编程等特点。其具体性能参数如下:兼容MCS-51内核单片机;4KB可在线编程Flash存储器,可有效擦除/读写1000次;工作电压范围4.0~5.5V;完全静态工作:0Hz~33MHz;ROM三级加密模式;128*8bit内置RAM;32位可控I/O引脚;2个16位的时钟源;5个中断源;全双工UART串行接口;低功耗工作模式;看门狗计时器;两个数据指针;快速编程特性。 软件设计方案 发射流程图: 接收流程图: 算法分析: 这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.6ms、间隔0. 6ms、周期为1.2ms 的组合表示二制的“0”;以脉宽为1.2ms、间隔0.6ms、周期为1.8ms 的组合表示二进制的“1”,其波形如图2 所示。 图2 遥控码的“0”和“1” 上述“0”和“1”组成的10 位二进制码经38kHz 的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二极管产生红外线向空间发射,如图3 所示。 图3 遥控信号编码波形图 利用定时器产生的遥控编码是连续的10 位二进制码组,其中前2位为引导码,能区别不同的电器设备,防止不同机种遥控码互相干扰。后8位操作码(数据码)。 调试 软件调试:使用伟福WAVE.在使用中,我们使用断点调试,用跟踪型单步观察程序,设定观察项,查看程序运行时设定值的变化,并修改程序,并使用伟#include "reg51.h" #include"absacc.h" #include"intrins.h" #define uchar unsigned char #define uint unsigned int sbit A=P2^0; uchar flag=1,k; uchar flag2; sbit P1_0=P1^0; sbit P1_1=P1^1; sbit P1_2=P1^2; sbit P1_3=P1^3; sbit P1_4=P1^4; sbit P1_5=P1^5; sbit P1_6=P1^6; unsigned char GetKey() //按键扫描子程序 { uchar key,temp; P1=0xFF; //扫描第一行 P1_0=0; //第一行线送0 temp=P1; //读取P口数据 temp&=0xF0; //取高四位 if(temp !=0xF0) //判断高四位是否全为1 若果不是进入此函数 { temp=P1; //消抖从新检测 temp&=0xF0; if(temp !=0xF0) { temp=P1; temp&=0xF0; switch(temp) //高四位判断数值 并进行码制转换 { case 0xE0: key=0;flag2++;break; case 0xD0: key=1;flag2++;break;

文档评论(0)

好老师 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档