电子工程设计第三阶段报告题目:红外遥控系统专业:通信工程小组: 14姓名学号:0902412609024129指导教师:**完成日期:2012.4.11摘要:电子工程设计第三阶段的任务是完成基于单片机的红外遥控系统硬件电路设计,并编程实现按键控制,数据显示,最终实现通过红外发射管发射39KHz ASK 信号,与模板红外接收单元的简单通信联系(测试通信协议),进行闭环温控的启动/停止控制,接收模板红外发送单元发出的温度数据并进行显示这几项功能,分别是读取模板当前温度、修改模板数/模转换值、启动模板闭环温度控制或打印功能、设置模板闭环控制温度、设置模板闭环温度控制启动延时时间、读取模板闭环温度控制设置值、读取模板闭环温度控制启动延时时间、读取模板当前控制状态的项功能。
在调试成功基础上,可进行程序固化,从而真正完成红外遥控系统开发。
完成硬件电路的设计焊接,包括以下几个单元:单片机的编程处理,完成与各个单元的数据,控制线连接,编程实现对各单元控制,最终实现遥控;显示:显示键控定义的值和测温结果;按键控制:控制显示和协议的收发,以及4060完成的分频器设计(提供ASK信号载频)与串行数据运算产生ASK信号。
完成软件编程实现测试模块的基本功能,运行完整程序完成各个协议的收发,从而实现对模板的遥控。
经不断调试及排障,使各个模块基本达到了相应要求,且编程联调实现了遥控的功能。
在实验的具体操作焊接、编程、纠错等步骤中,自主学习其中的概念原理以及相应的具体实验操作方式与真实的问题分析等实用方法。
目录一.实验目的 (4)二.设计实验及其原理 (4)三.程序设计 (7)四.组装(焊接),调试与测试 (13)五.实验心得与体会 (16)六.致谢 (17)七.参考文献 (17)红外遥控系统实验一.实验目的电子工程设计第三阶段的任务是完成基于单片机的红外遥控系统,用以代替系统小键盘的部分功能,通信格式和通信协议同串行通信。
完成硬件电路设计,并编程实现按键控制,数据显示,最终实现通过红外发射管发射39KHz ASK信号,与模板红外接收单元的简单通信联系(测试通信协议),进行闭环温控的启动/停止控制,接收模板红外发送单元发出的温度数据并进行显示这几项功能。
完成相应软件编程,实现遥控功能。
二.设计实验及其原理1.原理电路图上图为系统完整电路图显示部分原理图单片机P2,P3口直接与共阳极数码管相连a1b1c1d1e1f1g1dp1a2b2c2d2e2f2g2dp2+5+5 由于为了更方便的编译数字,我们依旧沿用上一次二阶段所使用的数码管的接线焊接方式来完成,如上图所示。
键盘部分原理图:四个键值分别与单片机P10—P13连接ASK信号的产生及红外接收1.载波的产生其中为5M的晶体振荡器,上下分别为101的电容,中间加一个1M的电阻,对于6管脚的输出约为一个频率为39KHZ的方波。
2.ASK信号的产生红外发光二极管的发射距离是同消耗在管子上的瞬时功率呈单调递增关系。
在红外发光二极管最大功耗一定的情况下,要想增大发射距离,只能把信号调制到一个小占空比的脉冲载波上。
脉冲载波的占空比越小,红外发光二极管的瞬时功率才能越大,发射距离才能越远。
2.红外接收采用红外一体化接收头HS0038。
三、程序设计源代码:#include "C8051F020.h"#include "absacc.h"#include "data_define.c"#define TIMER 0x8000#include "Init_IR_Device.c"#define DP1 P3#define DP2 P2#define TIM_L 0xe8 /*T/C1计数值*/#define TIM_H 0xe8#define uchar unsigned charunsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};sbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;sbit P1_3=P1^3;int count=-1;void delay(unsigned int x) //延时子程序{unsigned char i;for(i=0;i<x;x++);}void display(uchar x) /*显示子程序*/ {uchar h,l;h=x/10;l=x%10;DP1=table[h];DP2=table[l];}void showtem() //A0功能,查询当先温度{uchar x;x=0;SBUF0=0xA0;while(TI0==0); TI0=0;while(RI0==0); RI0=0;delay(500);x=SBUF0;display(x);RI0=0;TI0=0;}void da() //A1功能,数模{uchar h=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);}void close() //A2功能,闭环{int flag=0;SBUF0=0xa2;flag++;flag=flag%2;while(TI0==0); TI0=0;while(RI0==0); RI0=0;SBUF0=0x02;TI0=0; RI0=0;}void set() //A3功能,设定温度{uchar h=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);}void timing() //A4功能,定时{uchar h=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);}void re_set() //A5功能,查询闭环保持温度{uchar x;x=0;SBUF0=0xA5;while(TI0==0); TI0=0;while(RI0==0); RI0=0;delay(500);x=SBUF0;display(x);RI0=0;TI0=0;}void re_timing() //A6功能,查询延时{uchar x;x=0;SBUF0=0xA6;while(TI0==0); TI0=0;while(RI0==0); RI0=0;delay(500);x=SBUF0;display(x);RI0=0;TI0=0;}void re_close() //A7功能,查询系统当前状态{uchar x;x=0;SBUF0=0xA7;while(TI0==0); TI0=0;while(RI0==0); RI0=0;delay(500);x=SBUF0;display(x);RI0=0;TI0=0;}void showtime(int c) //在数码管上显示此事时A?功能{DP1=0x88; //A的七段码DP2=table[c]; //0至7}void starts(int c){ switch(c) {case 0:showtem();break;case 1:da();break;case 2:close();break;case 3:set();break;case 4:timing();break;case 5:re_set();break;case 6:re_timing();break;case 7:re_close();break;default:break;}}void main(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):电源接通时,绿色电源指示灯不停闪烁,则证明红外遥控调试电路板运行正常。