- 148.50 KB
- 15页
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运源点教育项目报告题目:51单片机红外发送与接受开发环境:keilproteus项目开发人:李树杨指导老师:邓老师开发周期:一周-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运一.题目要求1.基本要求:了解红外发射与接受的基本原理,实现红外的发送与接受。2.拓展要求:利用红外控制外围电路驱动直流电机正反转二.题目分析1:红外发送分为发送与接收。发送:要发的信号通过38K载波调制,利用红外发射管发射接收:用红外接收管接收红外信号,再通过解调与信号放大,把信息传递给单片机实现控制电机2:了解红外通信协议所要发的码分为:引导码+系统码+系统码+数据码+数据码+结束码当在精度要求高的场合,上述结构码可以实现,当精度要求不高的场合,自己可以自定义所要发射的结构码(例:引导码+数据码+数据码+结束码)三.设计方案论证与比较1.硬件:硬件解决方案1:红外信号发射与接受都通过单片机实现:发射部分:用52单片机通过PWM调制,通过IO口发出1/3占空比的38K载波信号,利用9014驱动红外发射管,把所要发射的信号发出去,其中通过轻触开关控制所要发送的数据码。接受部分:用52单片机读回红外信号。现在市面很多红外接受的集成模块,它具有解调和信号放大的作用,使用很方便,最后通过集成模块得到的信号来判断所得的信息数据,实现不同的控制。附件A(模块图/电路图等):PROTEL图附件B(PCB/元件清单等):见表…………………………硬件解决方案2:红外信号发射与接收都通过集成模块实现:发射部分:现在有很多红外发射的专用芯片,体积小,功能强,价格便宜,大量用于遥控器,控制家电,汽车,玩具;工业控制等。如:c9012b/max3100/upd6121等发射部分:一般都是通过红外三端一体化接受模块接受,它集成了解调与信号放大功能,使用简单方便。也有用红外二极管接受的,但电路多为分立,元器件,电路复杂。附件A(模块图/电路图等):文档图附件B(PCB/元件清单等):略-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运1.软件:软件解决方案1:调制的解决方案:通过51定时器0和定时器1来实现1/3占空比,调制为38K载波频率。1/3占空比有利于节能,特别在利用电池供电的场合。2:判断解调后的信号的方案:因为此时有严格的时序,所以用了延时子程序控制解码过程。当在判断解码是否完成后对外围电路进行控制。附件AA(流程图):附件BB(程序清单):一.项目测试(调试)注:需根据具体的题目附测试(调试报告),附件格式如下:问题1:发送延时和所设定的延时值不一致分析:其中定时中断消耗了时间,所以所需的延时子程序时间应该比实际的小,才能得到所要的延时值。解决方案:通过keil在线仿真看时间的变化得到实际的延时值。或者通过示波器观看波形来判断延时值。(前者好些,简单方便)技巧总结:观看仿真软件的时间的变化,有利于程序的调试。我们应该习惯各种仿真方法,提高调试能力。问题2:外围电路的直流电机不转,经测量用三极管搭的桥控制电机正反转的电流输出太小无电势差。分析:搭桥的三极管被击穿,电阻过大。解决方案:更换三极管和阻值较小的电阻。技巧总结:外围电路的设计应考虑各方面的需要来确定各原器件的参数大小。二.项目优化:此项目只适合学习,不适合真正产品的开发。其中主要讲述了红外的最本质的原理,可以用于初学红外者的学习。当学会了这些本质的东西就可以对红外有深刻的理解(如占空比,调制与解调,编码与解码,发送与接受)。此方法的优点是编码随意,可以用于不同场合。当做产品的话,我们应该用更廉价的单片机来实现,或用专用红外发射芯片实现。而且可以利用此项目原理,扩充更多的按键,实现更多控制功能。三.性能测试:l通信距离可达10ml接收角度为90度l按键切换电机的正反转四.总结:心得:通过此项目,提高了我的自学能力,在对陌生东西的摸索期间,我们应该沉着细心,在搜集资料的时候要既广又专,要善于发现别人的错误。当要做真正的产品时,我们要站在客户的角度思考,怎样才能让产品-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运更人性化,功能强而操作简单,很重要的一方面是怎么降低成本。硬件方案一附件A:附件B:AT89S52:2片红外发射头:1个红外接受三极管:1个9013:2个9014:1个9015:2个发光二极管:2个晶振11.0592:2个104瓷片电容:5个电阻:100欧姆2个550欧姆2个220欧姆2个10K2个电解电容:10uF2个轻触开关:2个直流3V电机:1个1.5V电池:四节小车:一辆-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运软件方案一:附件AA(流程图)开始初始化,开定时器1、2按键0按下按键1按下发送码1发送码0开定时器1P1口送高电平返回定时器零中断开定时器2P1口送高电平返回定时器零中断红外发射流程图-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运红外接收流程图开始初始化1ms等待键值响应100ms无按键查看红外信号Y重新记数100ms有无红外信号来接受红外信号判断键值驱动直流电机转动YYYNNNN-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运附件BB:;~~~~~~~~~~~~~~~~发射程序代码~~~~~~~~~~;key0:引导码+0b1h+3eh+结束码;key1:引导码+8dh+7ch+结束码;频率:38k;占空比:1/3;~~~~~~~~~~~主程序~~~~~~~~~~~~~~pwmoutequp1org0000hajmpstartorg000bhajmpT0Serorg001bhajmpT1Serstart:movp3,#0ffhmovsp,#60hmovie,#10001010bmovtmod,#22hmovdptr,#256-26;periodmovth0,dplmovdptr,#256-9;dutycyclemovth1,dplsetbtr1main:jnbp0.0,k0jnbp0.1,k1ljmpmaink0:;key0Downlcalldelay15msjbp0.0,maincallfashe0ljmpmaink1:;key1Downlcalldelay15msjbp0.1,maincallfashe1ljmpmain;~~~~~~~~~~~定时器0~~~~~~~~~~~~~~~T0Ser:movpwmout,#0ffhsetbtr1reti-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运;~~~~~~~~~~~定时器1~~~~~~~~~~~~~T1Ser:clrtr1movpwmout,#0reti;~~~~~~~~~~~~~~~~~~~~~~~fashe0:lcallleader;key0的代码lcallout_1lcallout_0lcallout_1lcallout_1lcallout_0lcallout_0lcallout_0lcallout_1lcallout_0lcallout_0lcallout_1lcallout_1lcallout_1lcallout_1lcallout_1lcallout_0lcallenderret;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~fashe1:lcallleader;key1的代码lcallout_1lcallout_0lcallout_0lcallout_0lcallout_1lcallout_1lcallout_0lcallout_1lcallout_0lcallout_1lcallout_1lcallout_1lcallout_1lcallout_1lcallout_0lcallout_0lcallender-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运ret;~~~~~~~~~~~~~~~代码对应的高低电平~~~~~~~~~~~~~~~~~~~~~leader:setbtr0;引导码lcalldelay900uslcalldelay900usclrtr0lcalldelay2500usretout_0:setbtr0;bit0lcalldelay160usclrtr0lcalldelay600usretout_1:setbtr0;bit1calldelay160usclrtr0lcalldelay600uslcalldelay600uslcalldelay600usretender:setbtr0;结束码lcalldelay160usclrtr0lcalldelay15msret;~~~~~~~~~~~延时子程序~~~~~~~~~delay160us:movr7,#9delay160us1:movr6,#8djnzr6,$djnzr7,delay160us1nopnopnopnopnopnopretdelay600us:movr7,#10delay600us1:movr6,#23djnzr6,$-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运djnzr7,delay600us1retdelay900us:movr7,#10delay900us1:movr6,#43djnzr6,$djnzr7,delay900us1retdelay2500us:movr7,#10delay2500us1:movr6,#113djnzr6,$djnzr7,delay2500us1retdelay15ms:movr7,#100delay15ms1:movr6,#68djnzr6,$djnzr7,delay15ms1ret;~~~~~~~~~~~end-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运;接收程序代码:;~~~~~~~~~~MCU:AT89S52~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;~~~~~~~~~~晶振:12M~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;~~~~~~~~~~功能:接受红外信号,产生灯的不同反映~~~~~~~;~~~~~~~~~~key0:引导码+0b1h+3eh+结束码~~~~~~~~~~~~~~~~;~~~~~~~~~~key1:引导码+8dh+7ch+结束码~~~~~~~~~~~~~~~~;~~~~~~~~~~频率:38k~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;~~~~~~~~~~占空比:1/3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~;~~~~~~~~~~缓冲定义区~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~data1equ30hdata2equ31hdispmodeequ32hTh0backequ33hTl0backequ34hldconunt1equ35hledtimerequ36hpilicountequ3bhtabcount1equ3chtabcount2equ3dhtabcount3equ3ehtabcount4equ3fhbContinuebit00hkey0errorbit01hkey1errorbit02herrorFlagbit03hbT0bit04hbResbonsebit05hpilibit06h;~~~~~~~~~~~~~~~~~~~~~~主程序~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~org0000hajmpmainorg000bh-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运ajmpT0Serorg0030hmain:movr0,#7fh;清除缓冲区qc:mov@r0,#0djnzr0,qcmovsp,#60hmovtmod,#01hmovdptr,#65536-1000movTh0back,dphmovTl0back,dplmovth0,Th0backmovtl0,Tl0backsetbtr0setbet0setbeaclrp1.1clrp1.2loop:movp1,#00hjnbp1.0,IR;遥控扫描ljmpmain;在正常无遥控信号时,一体化红外接收头输出是高电平,程序一直在循环。;~~~~~~~~~~~~~~~~~~定时器0~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~T0Ser:movth0,Th0backmovtl0,Tl0backsetbbT0jnbp1.0,setFlagclrbContinueljmpT0outsetFlag:setbbContinueT0out:reti;~~~~~~~~~~~~~~~~~~~~~红外接收子程序~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~IR:setbbResbonsemovr5,#6IR_start:lcalldelay800us;判断引导码jbp1.0,errordjnzr5,IR_start-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运jnbp1.0,$lcalldelay2700usmovr1,#data1movr2,#2IR_2BYTE:movr3,#8;接受数据IR_8BIT:jnbp1.0,$lcalldelay800usmovc,p1.0jncIR_0IR_1:lcalldelay1200usIR_0:mova,@r1rlcamov@r1,adjnzr3,IR_8BITincr1djnzr2,IR_2BYTEmovr5,#5jnbp1.0,$IR_end:lcalldelay2700us;判断停止码jnbp1.0,errordjnzr5,IR_endlcalldelay2700uslcallIR_OKjberrorFlag,errorerror:ljmploop;接收出错;~~~~~~~~~~键值处理~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~IR_OK:lcallkey0jnbkey0error,dispkey1:lcallkey1jbkey1error,IRerrordis:lcallMoljmpOKoutIRerror:setberrorFlagOKout:ret;~~~~~~~~~~~键值判断子程序~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~key0:mova,data1-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运;接受成功,然后判断数据是否相等cjnea,#0b1h,Setkey0mova,data2cjnea,#3eh,Setkey0setbp1.1;数据相等,接受正确clrp1.2clrkey0errorljmpkey0outSetkey0:setbkey0errorljmpkey0outClrkey0:clrkey0errorkey0out:retkey1:mova,data1;接受成功,然后判断数据是否相等cjnea,#8dh,Setkey1mova,data2cjnea,#7ch,Setkey1setbp1.2;数据相等,接受正确clrp1.1clrkey1errorljmpkey1outSetkey1:setbkey1errorljmpkey1outClrkey1:clrkey1errorkey1out:retMo:clrp1.1setbp1.2ret;~~~~~~~~~~~延时子程序~~~~~~~~~~~~~~~~~~~~~~~~~~~delay800us:movr7,#10delay800us1:movr6,#38djnzr6,$djnzr7,delay800us1nopnopnopnopnop-15-www.stoneedu.com源于科技、点石成金
专业IC嵌入式教育机构Fountainheadpointeducation虚度毁灭前途、拼搏改变命运ret;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~delay1200us:movr7,#10delay1200us1:movr6,#58djnzr6,$djnzr7,delay1200us1nopnopnopnopnopret;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~delay2700us:movr7,#10delay2700us1:movr6,#133djnzr6,$djnzr7,delay2700us1nopnopnopnopnopret;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~end-15-www.stoneedu.com源于科技、点石成金'