1、红外编码与解码解码北软课程设计模板课 程 设 计 报 告课程名称: 红外编码与解码无线控制 班 级: 学 号: 姓 名: 完成日期: 沈阳航空航天大学北方软件学院课设任务书专业名称:计算机应用(嵌入式)设计题目:红外编码与解码无线控制起止时间: 年 月 日 至 月 日题目要求:要求使用51单片机控制,有发送端,有接收端,接收端接收后要求相应的现实,以便证明设计的电路正常,在电路供电方面要求有供电指示灯,要求提供可移动电源。学生姓名: 学 号:指导教师(签字): 年 月 日 红外编码与解码无线控制1概要设计: a本程序主要模块有接收模块、解码模块、显示模块、延时模块、清屏模块。b接收模块主要是等
2、待接收信号出现的功能,接收到信号后以便下一步的操作。c解码模块主要是将接收到的信号进行解码操作。d显示模块主要是将解码后的结果显示到7段数码管上的具体数字。e延时模块起到延时的作用。f清屏主要起到初始化的功能防止影响到下一步的操作。2详细设计:设计思路:磁石验将一体化的红外线接收器与单片机相连,当收到红外线控制信号时,接收器将信号传递给单片机;通用红外线遥控系统由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作,所以解码部分是核心部分。红外线遥控器的原理是将编好的代表2进制的代码以调制的形式加载到红外波上,然后通过发射和接收装置来实现对电器的遥控。 红外遥控码在此实验中有着重
3、要的作用,它电平组成。接收到引导码时表示一祯数据的开始,利用红外一体接收头接收遥控器发是采用脉宽调制的串行码,引导码由9ms的低电平和4.5ms的低出的信号,输入单片机,通因为红外一体接收头输出的信号已经是解调过后的高低电平信号,可直接过单片机对接收到的信号进行解码并利用解好的红外遥控器代码来实现对时钟调整的控制。译码部分:根据芯片介绍可知,红外接收头接收到的编码,每一桢完整的串行数据有12位,而每一位的BIT0、BIT1是占空比不同的矩形方波,要完成以后的功能,就需要一个编码将其编成逻辑器件能识别的普通逻辑电平0和1。红外接收头接收38K载波的红外光,解调得到脉冲,输出至译码电路主要代码如下
4、:#include #define uchar unsigned char#define uint unsigned intunsigned char LED10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /共阳数码管sbit dua=P26; /段选控制端sbit DS=P32; /一体化转换模块引脚unsigned char xinhao=0; /是否受到遥控器发来的信号unsigned char num=0,0,0,0,0; /定义并初始化用于存储解码后的 6121 变量uchar power=1; /电源标志位int m; /
5、存储数码管要显示的数字是多少下面的函数是延时函数和清屏函数,并带有开关功能void delay(unsigned char x) unsigned char i; while(x-) for (i = 0; i13; i+) void delay2() unsigned char i; for (i=0;i180;i+) delay(5); void Display(uchar n) /单个数码管显示函数 传过来的参数是099的一个数 if(m=98) /当n=98是清屏并清0 n=99是关闭显示管 P0=0xbf; /清屏部分 m=0; else if(m=99&power=1) /关闭显示
6、管 P0=0xff; power=0; else if(m=99&power=0) P0=LED0; /打开显示管 power=1; else if(m0) m=10; P0=LEDm%10; delay2(); 下面的函数是译码部分,能将数字显示在七段数码管上void Yima(unsigned int n) / 译码函数 if (num4=0x00) /关闭按键 m=99; else if (num4=0x01) /清零按键 m=98; else if (num4=0x10) /按键1 m=1; else if (num4=0x11) /按键2 m=2; else if (num4=0x1
7、2) m=3; else if (num4=0x14) m=4; else if (num4=0x15) m=5; else if (num4=0x16) m=6; else if (num4=0x18) m=7; else if (num4=0x19) m=8; else if (num4=0x1a) m=9; else if (num4=0x05|num4=0x0a) /上方向键或右方向键 m+=1; else if (num4=0x08|num4=0x0d) /下方向键或左方向键 m-=1; else return;void printf(unsigned int n ) /将num4中
8、的二进制数变成想要的功能 Yima(num4); Display(0); 下面的函数包括中断函数和计数器函数,是此实验的核心部分void INT(void) interrupt 0 uint i,j; uint date; int sum; /存储定时器中的时间 delay(1); EA=0; /关闭中断 if (DS=1) EA=1; return; while(DS=0) /跳过低电平等待高电平到来 delay(1); while(DS=1) / 跳过高电平等待第一个数据到来 delay(1); for(i=0;i4;i+) date=0; for(j=0;j1; if(sum1000)
9、date=date|0x80; TH0=0; /重新清零计时器 TL0=0; numi=date; if (num2!=num3) /验证接收是否正确 EA=1; return; num4=num2; /将接收的第三个字节放入显示位置 delay2(); /延时防干扰 IE0=0; EA=1; xinhao=1; /将标志位置1void main() EA=1; /初始化中断控制变量 EX0=1; /打开外部中断0 IT0=1; /设置外部中断1为 边沿触发方式 TMOD=0x01; /设置定时器0的工作方式 while(1) if(xinhao = 1) /遥控器有信号发过来 printf(
10、num4); /显示发过来的遥控器信号 xinhao=0; /重新将标志位置0 3电路的实现: 由于仿真电路中没有符合条件的红外线接收器等零件所以电路图用PCB原理图代替电路图: 4主要器件和功能:1. 红外线接收器:用于接受红外信号的装置; 2. 51单片机或52单片机:把发送端信号解码成2进制数 53. 发光2极管:起到降压和提示的作用;4. 7段数码管:显示数字以便证明设计电路正确; 5. 电阻电容若干:用于完善电路,使电路更安全; 6. 晶振:起到控制频率的作用;7. 3极管:起到放大电量和信号的作用使信号接收更清楚;8. 简易遥控器:实现发送端功能;9. 外接电源:实现供电功能;(4
11、个1.5v电池)测试结果:经过硬件实现如图所示:通过硬件实现的电路图如图所示:心得体会:这次课程设计我学会了不轻言放弃,不怕困难,不怕麻烦,在做实验过程中会反复遇到一些相同的问题,特别是程序和电路的调试时,往往要经过很多的反复检查,测试才能找到问题所在,要仔细研究才可以。 这次课程设计又让我学会了从更多角度分析问题,解决问题,设计过程中也积攒了一些相关的项目经验,我想对我以后的实验操作肯定有很大的帮助,课程设计给予了我们一个发挥自己学到的理论知识的平台,锻炼了我们动手能力,巩固了我们所学的知识,为我们以后步入社会做了准备,使大学生学习相当重要、不可或缺的一部分。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。从这次的课程设计中,我意识到在以后的学习中要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。成绩:预习报告 分,系统 分,课设报告 分,总分 分, 总评: 。评语:批阅教师签字: 年 月 日
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2