欢迎来到沃文网! | 帮助中心 分享知识,传播智慧!
沃文网
全部分类
  • 教学课件>
  • 医学资料>
  • 技术资料>
  • 学术论文>
  • 资格考试>
  • 建筑施工>
  • 实用文档>
  • 其他资料>
  • ImageVerifierCode 换一换
    首页 沃文网 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机人工智能与控制技术.doc

    • 资源ID:838359       资源大小:104.55KB        全文页数:15页
    • 资源格式: DOC        下载积分:20积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录 微博登录
    二维码
    微信扫一扫登录
    下载资源需要20积分
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,下载更划算!
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机人工智能与控制技术.doc

    1、单片机课程设计姓名:班级:学号:课题编号:课题三课题名称:红外遥控器基本功能:红外遥控器是由发射部分和接收部分组成的,它的基本功能是在发射部分按一个键,在接收部的数码管上显示对应的键值(09)。 扩展功能:红外遥控器是由发射部分和接收部分组成的,它的基本功能是在发射部分按一个键,在接收部的数码管上显示对应的键值(A、B)。成绩:评审老师:一、 需求分析(1)应用场合: 红外线遥控是目前使用最广泛的一种通信和遥控手段。由于红外线遥控装置具有体积小、功耗低、功能强、成本低等特点,因而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。工业设备中,在高压

    2、、辐射、有毒气体、粉尘等环境下,采用红外线遥控不仅安全可靠而且能有效地隔离电气干扰。(2)设计目的:实现简单的数据传送和接收。(3)立题意义:体会红外遥控器编程上的一些独特的编法,以及硬件连接和各部件的使用。在这次课设中制作红外遥控器的目的是为了学习它的基本功能,以及这些功能怎样用AT89C51去编程实现我们需要的功能。二、 硬件设计方案发射部分包括键盘矩阵43、AT89C51单片机、LED红外发送器;接收部分包括红外接收器、AT89C51单片机、解码电路、数码管。 硬件所用的器件: 序号名称型号数量1单片机AT89C5122按键四脚123电阻47054电阻4.7K25电解电容22uf26瓷片

    3、电容30pf47晶振12MHz28红外发射器519接收头V34138110电源5V211七段数码管共阳112三极管NPN113万用板2AT89C51芯片的原理:AT89系列单片机是ATMEL公司最早推出,也是功能最简单的一个系列,该系列都是内含Flash程序存储器的MCS-51兼容单片机,AT89C51就是其中一款可在线编程ISP Flash单片机。AT89C51具有价格便宜、性能优良、可在线编程等特点。其具体性能参数如下:兼容MCS-51内核单片机;4KB可在线编程Flash存储器,可有效擦除/读写1000次;工作电压范围4.05.5V;完全静态工作:0Hz33MHz;ROM三级加密模式;1

    4、28*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 的载频进行二次调制以提高发射效率,达到降低电源功耗的目的。然后再通过红外发射二

    5、极管产生红外线向空间发射,如图3 所示。图3 遥控信号编码波形图利用定时器产生的遥控编码是连续的10 位二进制码组,其中前2位为引导码,能区别不同的电器设备,防止不同机种遥控码互相干扰。后8位操作码(数据码)。四、 调试软件调试:使用伟福WAVE.在使用中,我们使用断点调试,用跟踪型单步观察程序,设定观察项,查看程序运行时设定值的变化,并修改程序,并使用伟福试波器来观察波形。硬件调试:使用万用表检查万用板的焊接线路是否连接无误各个器件是否短接,芯片引脚是否接错或少接,以免烧坏元器件,焊点是否连焊、虚焊或焊点过大,线路连接是否美观五、 心得体会(1)我们在最开始的焊板中就遇到了问题,首先没考虑到

    6、芯片在万用板上摆放位置,以至于接线无法完成,焊点不够牢固,布线不够美观。经过反复思考调试达到预期效果。(2)软件调试上没有注意到细节,逻辑算法不够合理。经过不断修改和老师的指导调试成功。(3)通过本次课设使我们充分地了解和使用C51,并且能够合理地安排万用板上布线布局,对软件程序也能够根据要求合理地设计和安排程序逻辑。将红外遥控器的基本原理及编程,掌握并得到充分的运用。附录1:发射代码:#include reg51.h#includeabsacc.h#includeintrins.h#define uchar unsigned char#define uint unsigned intsbit

    7、 A=P20;uchar flag=1,k; uchar flag2; sbit P1_0=P10; sbit P1_1=P11; sbit P1_2=P12; sbit P1_3=P13; sbit P1_4=P14; sbit P1_5=P15; sbit P1_6=P16;unsigned char GetKey() /按键扫描子程序 uchar key,temp; P1=0xFF; /扫描第一行 P1_0=0; /第一行线送0 temp=P1; /读取P口数据 temp&=0xF0; /取高四位 if(temp !=0xF0) /判断高四位是否全为1 若果不是进入此函数 temp=P1

    8、; /消抖从新检测 temp&=0xF0; if(temp !=0xF0) temp=P1; temp&=0xF0; switch(temp) /高四位判断数值 并进行码制转换 case 0xE0: key=0;flag2+;break; case 0xD0: key=1;flag2+;break; case 0xB0: key=2;flag2+;break; return key; P1=0xFF; /扫描第二行 P1_1=0; temp=P1; temp&=0xF0; if(temp !=0xF0) temp=P1; temp&=0xF0; if(temp !=0xF0) temp=P1;

    9、 temp&=0xF0; switch(temp) case 0xE0: key=3;flag2+;break; case 0xD0: key=4;flag2+;break; case 0xB0: key=5;flag2+;break; return key; P1=0xFF; /扫描第三行 P1_2=0; temp=P1; temp&=0xF0; if(temp !=0xF0) temp=P1; temp&=0xF0; if(temp !=0xF0) temp=P1; temp&=0xF0; switch(temp) case 0xE0: key=6;flag2+;break; case 0

    10、xD0: key=7;flag2+;break; case 0xB0: key=8;flag2+;break; return key; P1=0xFF; /扫描第四行 P1_3=0; temp=P1; temp&=0xF0; if(temp !=0xF0) temp=P1; temp&=0xF0; if(temp !=0xF0) temp=P1; temp&=0xF0; switch(temp) case 0xE0: key=9;flag2+;break; case 0xD0: key=10;flag2+;break; case 0xB0: key=11;flag2+;break; retur

    11、n key; return key=15; void delay(uint k)while(k-)_nop_(); void timeint(void) interrupt 1 /定时器0中断处理 A=A;void fa(uchar h)uchar i=h; uchar s; ET0=1; delay(268); ET0=0; delay(290); for(s=0;s1; h=i; ET0=0; void main() TMOD = 0x02; /设定时器0为方式2 TH0 = 0xF3; /定时器赋初值 TL0 = 0xF3; TR0=1; /开定时器 EA = 1; /允许CPU中断 d

    12、elay(1); while(1) k=getkey(); /接收键值 delay(800);if(k=1) ET0=1;fa(k);k=16;ET0=0; if(k=2) ET0=1;fa(k);k=16;ET0=0; if(k=3) ET0=1;fa(k);k=16;ET0=0; if(k=4) ET0=1;fa(k);k=16;ET0=0; if(k=5) ET0=1;fa(k);k=16;ET0=0; if(k=6) ET0=1;fa(k);k=16;ET0=0; if(k=7) ET0=1;fa(k);k=16;ET0=0; if(k=8) ET0=1;fa(k);k=16;ET0=

    13、0; if(k=9) ET0=1;fa(k);k=16;ET0=0; if(k=10) ET0=1;fa(k);k=16;ET0=0; if(k=11) ET0=1;fa(k);k=16;ET0=0; if(k=12) ET0=1;fa(k);k=16;ET0=0; 接收代码:/解码程序/晶振12M#include reg51.h#include absacc.h#include intrins.hsbit DQ=P17;sbit p=P10;#define uint unsigned int#define uchar unsigned charuint conut=0,k=0;uchar j

    14、ie=0;uchar code duma13=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83;void yindao() st: k=0; while(DQ=1); while(DQ=0) k+; /判断引导码 if(k=900)&(k=1300); else goto st;void jiema()uchar i=0; for(i=0;i90)&(k1+0; else jie=(jie1)+0x80; jie=jie4; _nop_(); void display(uchar k) uchar i;i=k;P2=dumai; /送数码管显示 p=1;void main() while(1) yindao(); /调引导函数 jiema(); /调解码函数 display(jie); /传送接收到的段码值


    注意事项

    本文(单片机人工智能与控制技术.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给沃文网发消息,QQ:2622162128 - 联系我们

    版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

    Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1

    陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922