您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 北京工业大学电子工程设计--三阶
电子工程设计第三阶段报告题目:红外遥控系统专业:通信工程小组:14姓名学号:0902412609024129指导教师:司农完成日期:2012.4.11摘要:电子工程设计第三阶段的任务是完成基于单片机的红外遥控系统硬件电路设计,并编程实现按键控制,数据显示,最终实现通过红外发射管发射39KHzASK信号,与模板红外接收单元的简单通信联系(测试通信协议),进行闭环温控的启动/停止控制,接收模板红外发送单元发出的温度数据并进行显示这几项功能,分别是读取模板当前温度、修改模板数/模转换值、启动模板闭环温度控制或打印功能、设置模板闭环控制温度、设置模板闭环温度控制启动延时时间、读取模板闭环温度控制设置值、读取模板闭环温度控制启动延时时间、读取模板当前控制状态的项功能。在调试成功基础上,可进行程序固化,从而真正完成红外遥控系统开发。完成硬件电路的设计焊接,包括以下几个单元:单片机的编程处理,完成与各个单元的数据,控制线连接,编程实现对各单元控制,最终实现遥控;显示:显示键控定义的值和测温结果;按键控制:控制显示和协议的收发,以及4060完成的分频器设计(提供ASK信号载频)与串行数据运算产生ASK信号。完成软件编程实现测试模块的基本功能,运行完整程序完成各个协议的收发,从而实现对模板的遥控。经不断调试及排障,使各个模块基本达到了相应要求,且编程联调实现了遥控的功能。在实验的具体操作焊接、编程、纠错等步骤中,自主学习其中的概念原理以及相应的具体实验操作方式与真实的问题分析等实用方法。目录一.实验目的……………………………………………….4二.设计实验及其原理………………………………………4三.程序设计…………………………………………………7四.组装(焊接),调试与测试……………………………13五.实验心得与体会………………………………………16六.致谢…………………………………………………….17七.参考文献……………………………………………….17红外遥控系统实验一.实验目的电子工程设计第三阶段的任务是完成基于单片机的红外遥控系统,用以代替系统小键盘的部分功能,通信格式和通信协议同串行通信。完成硬件电路设计,并编程实现按键控制,数据显示,最终实现通过红外发射管发射39KHzASK信号,与模板红外接收单元的简单通信联系(测试通信协议),进行闭环温控的启动/停止控制,接收模板红外发送单元发出的温度数据并进行显示这几项功能。完成相应软件编程,实现遥控功能。二.设计实验及其原理1.原理电路图上图为系统完整电路图显示部分原理图单片机P2,P3口直接与共阳极数码管相连a1b1c1d1e1f1g1dp1a2b2c2d2e2f2g2dp2+5+5由于为了更方便的编译数字,我们依旧沿用上一次二阶段所使用的数码管的接线焊接方式来完成,如上图所示。键盘部分原理图:四个键值分别与单片机P10—P13连接ASK信号的产生及红外接收1.载波的产生其中为5M的晶体振荡器,上下分别为101的电容,中间加一个1M的电阻,对于6管脚的输出约为一个频率为39KHZ的方波。2.ASK信号的产生红外发光二极管的发射距离是同消耗在管子上的瞬时功率呈单调递增关系。在红外发光二极管最大功耗一定的情况下,要想增大发射距离,只能把信号调制到一个小占空比的脉冲载波上。脉冲载波的占空比越小,红外发光二极管的瞬时功率才能越大,发射距离才能越远。2.红外接收采用红外一体化接收头HS0038。三、程序设计源代码:#includeC8051F020.h#includeabsacc.h#includedata_define.c#defineTIMER0x8000#includeInit_IR_Device.c#defineDP1P3#defineDP2P2#defineTIM_L0xe8/*T/C1计数值*/#defineTIM_H0xe8#defineucharunsignedcharunsignedchartable[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};sbitP1_0=P1^0;sbitP1_1=P1^1;sbitP1_2=P1^2;sbitP1_3=P1^3;intcount=-1;voiddelay(unsignedintx)//延时子程序{unsignedchari;for(i=0;ix;x++);}voiddisplay(ucharx)/*显示子程序*/{ucharh,l;h=x/10;l=x%10;DP1=table[h];DP2=table[l];}voidshowtem()//A0功能,查询当先温度{ucharx;x=0;SBUF0=0xA0;while(TI0==0);TI0=0;while(RI0==0);RI0=0;delay(500);x=SBUF0;display(x);RI0=0;TI0=0;}voidda()//A1功能,数模{ucharh=0,l=0,size;delay(200);SBUF0=0xa1;DP1=DP2=table[0];while(1){while(P1_2==0)//判断按键{if(P1_2==1){h++;h=h%16;DP1=table[h];}}while(P1_3==0){if(P1_3==1){l++;l=l%16;DP2=table[l];}}if(P1_1==0)break;}size=h*16+l;//拼数,十位加个位DP1=0xc0;DP2=0x89;delay(200);SBUF0=size;delay(200);}voidclose()//A2功能,闭环{intflag=0;SBUF0=0xa2;flag++;flag=flag%2;while(TI0==0);TI0=0;while(RI0==0);RI0=0;SBUF0=0x02;TI0=0;RI0=0;}voidset()//A3功能,设定温度{ucharh=0,l=0,size;delay(200);SBUF0=0xa3;DP1=DP2=table[0];while(1){while(P1_2==0){if(P1_2==1){h++;h=h%10;DP1=table[h];}}while(P1_3==0){if(P1_3==1){l++;l=l%10;DP2=table[l];}}if(P1_1==0)break;}size=h*10+l;DP1=0x89;DP2=0x86;delay(200);SBUF0=size;delay(200);}voidtiming()//A4功能,定时{ucharh=0,l=0,size;delay(200);SBUF0=0xa4;DP1=DP2=table[0];while(1){while(P1_2==0){if(P1_2==1){h++;h=h%10;DP1=table[h];}}while(P1_3==0){if(P1_3==1){l++;l=l%10;DP2=table[l];}}if(P1_1==0)break;}size=h*10+l;DP1=0x89;DP2=0x89;delay(200);SBUF0=size;delay(200);}voidre_set()//A5功能,查询闭环保持温度{ucharx;x=0;SBUF0=0xA5;while(TI0==0);TI0=0;while(RI0==0);RI0=0;delay(500);x=SBUF0;display(x);RI0=0;TI0=0;}voidre_timing()//A6功能,查询延时{ucharx;x=0;SBUF0=0xA6;while(TI0==0);TI0=0;while(RI0==0);RI0=0;delay(500);x=SBUF0;display(x);RI0=0;TI0=0;}voidre_close()//A7功能,查询系统当前状态{ucharx;x=0;SBUF0=0xA7;while(TI0==0);TI0=0;while(RI0==0);RI0=0;delay(500);x=SBUF0;display(x);RI0=0;TI0=0;}voidshowtime(intc)//在数码管上显示此事时A?功能{DP1=0x88;//A的七段码DP2=table[c];//0至7}voidstarts(intc){switch(c){case0:showtem();break;case1:da();break;case2:close();break;case3:set();break;case4:timing();break;case5:re_set();break;case6:re_timing();break;case7:re_close();break;default:break;}}voidmain(void){Init_IR_Device();DP1=0x89;/*清除显示*/DP2=0x88;TMOD=0x20;/*T/C1方式2*/TH1=TIM_H;/*T/C1重装填值*/TL1=TIM_L;/*T/C1计数值*/TR1=1;/*启动T/C1*/SCON0=0x50;/*串口方式1*/while(1){while(P1_0==0)//判断按键{if(P1_0==1){count++;count=count%8;showtime(count);}}while(P1_1==0){DP1=0xc0;DP2=0x89;starts(count);}}}四.组装(焊接),调试与测试组装与焊接:根据protel99se绘制原理图,在插件布局时,尽量使电路中逻辑相邻元件靠近,以减少线数量,合理布局。焊接时,注意镀锡以保证无短路,连线起始点与终点距离适当,保证与其他不想相连焊点的有一定距离。红外调试电路板作为PC机与遥控板之间的数据转发设备,需要与调试台配合使用。如上图,调试时,红外遥控调试电路板应插在1的位置,遥控板插在2位置。使用串口连线将调试台的串口(如下图所示)与PC机COM1口相连。(注意:只能使用COM1口)COM口不支持热插拔,因此,在进行连接之前,请先关闭PC机和调试台的电源,连接好之后再打开电源,以免发生设备COM口损坏的情况。测试功能作用如下:1、电源指示灯(POWER):电源接通时,绿色电源指示灯不停闪烁,则证明红外遥控调试电路板运行正常。2、接收指示灯(REC):当红外接收组件接收到红外信号时,该指示灯闪烁。3、关键字指示灯(REC_R):当接收到命令字A1~A7时,该指示灯闪烁。4、发送指示灯(SEND):当红外遥控调试电路板向遥控板发送数据时该指示灯闪烁。5、串口接收指示灯(UART_REC):当接收到PC机发送的数据时该指示灯闪烁。6、串口发送指示灯(UART_SEND):当向PC机发送数据时该指示灯闪烁。7、数码管(DS1、DS2):随时以十六进制显示最后一次从遥控板接收到的数据,和向遥控板发送的数据。通信部分1.PC调试环境及其设计功能(1)本机控制模式系统启动后默认为“本机控制模式”,在此工作模式下,可以通过点击“数/模转换数据显示”二侧的按钮改变数模转换数据,“当前温度”显示窗口中的数据将随之变化。(2)远程控制模式点击“本地控制/远程控制”按钮(按钮变为红色)进入远程控制模式,远程控制模式时红外遥控板的调试模式,可以进行红外遥控板的电路调试和功能调试。(3)电路调试包括数据接收调试和数据发送调试。数据发送调试,主要测试ASK电路、红外发送电路、单片机数据发送电路的功能。调试时,可以编写一段连续发送某一数据的程序,如果电路工作正常,红外遥控调试电路板上的接收指示灯(REC)将闪烁,2位数码管将显示该数据,同时PC机模板仿真环境界面上“接收数据显示”窗口中也显示该数据。如果红外遥控板的上述电路工作不正常,将会有不同的现象发生。主要包括2种情况,一种情况是红外发送
本文标题:北京工业大学电子工程设计--三阶
链接地址:https://www.777doc.com/doc-8074156 .html