文档详情

基于51单片机的红外线控制系统 2.doc

发布:2017-11-03约2.8千字共10页下载文档
文本预览下载声明
单片机原理结课项目 项目题目 基于51单片机的红外线控制系统 基于51单片机的红外线控制系统 概述: 红外遥控是一种无线、非接触控制技术,具有抗干扰能力强,信息传输可靠,功耗低,成本低,易实现等显著优点,被诸多电子设备特别是家用电器广泛采用,并越来越多的应用到计算机系统中。 由于红外线遥控不具有像无线电遥控那样穿过障碍物去控制被控对象的能力,所以在设计红外线遥控器时,不必要像无线电遥控器那样,每套( 发射器和接收器) 要有不同的遥控频率或编码( 否则,就会隔墙控制或干扰邻居的家用电器) ,所以同类产品的红外线遥控器,可以有相同的遥控频率或编码,而不会出现遥控信号“串门”的情况。这对于大批量生产以及在家用电器上普及红外线遥控提供了极大的方面。由于红外线为不可见光,因此对环境影响很小,再由红外光波动波长远小于无线电波的波长,所以红外线遥控不会影响其他家用电器,也不会影响临近的无线电设备。 基于51单片机的红外线控制系统。要求通过单片机发送和接红外信号程序,根据接收的信号,执行有关动作的系统,能够实现近距离的无线通。 二、硬件设计 系统框图 电路原理图 电路由五个模块构成(最小系统模块、红外接收模块、数码管显示模块、编程下载模块、电源模块) 最小系统 最小系统由stc12c5410ad单片机,按键复位电路,时钟振荡电路构成。 电源 电源采用5V直流电供电。 时钟、复位电路 本电路选用12MHz晶振。 红外接收模块 显示模块 三、软件设计 红外编解码原理 红外线发射编码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制‘0’; 以脉宽为0.565ms、间隔1.658ms、周期为2.25ms的组合表示二进制‘1’; 红外接收头接收的信号和发射编码相反; 一组编码由一个引导码,四个字节数据组成;引导码由9ms的高电位和4.5ms的地电位组成。 程序框图 N Y 四、程序代码 解码程序源代码: #include STC12C5X.h unsigned char code table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,};// 显示数值表0-f unsigned char s,g; unsigned char ircord[4]; unsigned char irtime;//红外用全局变量 bit irok,jiemaok; sbit ge=P3^3; sbit shi=P3^2; sbit ir=P3^7; void init(void); void delayms(unsigned int t); //函数声明 void display(void); void jiema(void); void process(void); /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { init(); while (1) //主循环 { jiema(); if(jiemaok) { process(); jiemaok=0; } display(); } } void init(void) { // P3M0=0X00; // P3M1=0X0c; TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值 TH0=0x9C; //重载值 TL0=0x9C; //初始化值 EA = 1; ET0=1; //开中断 TR0=0; } void jiema(void) { unsigned char i,j,value; if(!ir) { while(!ir); TR0=1; while(ir); TR0=0; // P1=0; if(irtime48irtime=42) { irok=1; // P1=0; } else { irok=0; } irtime=0; if(irok) { irok=0; for(i=0;i4;i++) { for(j=0;j8;
显示全部
相似文档