智能家具之家电控制系统—基于单片机的灯光智能控制以及煤气泄漏报警的设计

发布时间 : 星期六 文章智能家具之家电控制系统—基于单片机的灯光智能控制以及煤气泄漏报警的设计更新完毕开始阅读

洛 阳 理 工 学 院 课 程 设 计 报 告

}

/*------------------------------------------------ 全局变量声明 ------------------------------------------------*/ //unsigned

char

code

}

dofly_DuanMa[10]={0xff,0xfe,0xfd,0xdf,0xbf,0xbe,0xbd,0x9e,0x9c,0xff}; // 显示led灯 L0,L1,L5,L6 unsigned

char

code

dofly_DuanMa[10]={0x00,0x01,0x02,0x04,0x08,0x03,0x07,0x05,0x0f,0x00}; // 显示led灯 L0,L1,L5,L6 ,0xbe,0xbd,0x9e,0x9c,0xff unsigned char irtime; //红外用全局变量

bit irpro_ok,irok; unsigned char IRcord[4]; unsigned char irdata[33];

/*------------------------------------------------ 函数声明 ------------------------------------------------*/ void Ir_work(void); void Ircordpro(void);

/*------------------------------------------------ 定时器0初始化 ------------------------------------------------*/ void TIM0init(void)//定时器0初始化 {

TMOD=0x02; //定时器0工作方式2,TH0是重装值,TL0是初值

11

洛 阳 理 工 学 院 课 程 设 计 报 告

TH0=0x00; //重载值 TL0=0x00; //初始化值 ET0=1; //开中断 TR0=1; }

/*------------------------------------------------ 外部中断0初始化 ------------------------------------------------*/ void EX0init(void) {

IT0 = 1; //指定外部中断0下降沿触发,INT0 (P3.2) EX0 = 1; //使能外部中断 EA = 1; //开总中断 }

/*------------------------------------------------ 定时器0中断处理 ------------------------------------------------*/

void tim0_isr (void) interrupt 1 using 1 {

irtime++; //用于计数2个下降沿之间的时间 }

/*------------------------------------------------ 外部中断0中断处理 ------------------------------------------------*/

void EX0_ISR (void) interrupt 0 //外部中断0服务函数 {

12

洛 阳 理 工 学 院 课 程 设 计 报 告

static unsigned char i; //接收红外信号处理 static bit startflag; //是否开始处理标志位

if(startflag) {

if(irtime<63&&irtime>=33)//引导码 TC9012的头码,9ms+4.5ms i=0;

irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i++; if(i==33)

{ irok=1; i=0; }

} else }

/*------------------------------------------------ 键值处理 ------------------------------------------------*/

void Ir_work(void) //红外键值散转程序 {

switch(IRcord[2]) //判断第三个数码值

13

{ irtime=0; startflag=1; }

洛 阳 理 工 学 院 课 程 设 计 报 告

{

case 0x16:DataPort=dofly_DuanMa[0];break;//0 按下遥控器上面0的

按键灯灭

case 0x0c:DataPort=dofly_DuanMa[1];break;//L0 显示相应的灯亮 case 0x18:DataPort=dofly_DuanMa[2];break;//L1 case 0x5e:DataPort=dofly_DuanMa[3];break;//L5 case 0x08:DataPort=dofly_DuanMa[4];break;//L6 case 0x1c:DataPort=dofly_DuanMa[5];break;//L0,L6 case 0x5a:DataPort=dofly_DuanMa[6];break;//L1,L6 case 0x42:DataPort=dofly_DuanMa[7];break;//L1,L5,L6 case 0x52:DataPort=dofly_DuanMa[8];break;//L0,L1,L5,L6 case 0x4a:DataPort=dofly_DuanMa[9];break;//灯灭

default:break; }

/*------------------------------------------------ 红外码值处理 ------------------------------------------------*/ void Ircordpro(void) //红外码值处理函数 {

unsigned char i, j, k; unsigned char cord,value; k=1;

for(i=0;i<4;i++) //处理4个字节 {

for(j=1;j<=8;j++) //处理1个字节8位 {

14

}

irpro_ok=0;//处理完成标志

联系合同范文客服:xxxxx#qq.com(#替换为@)