中国矿业大学徐海学院单片机

发布时间 : 星期一 文章中国矿业大学徐海学院单片机更新完毕开始阅读

P2=0xef;

delay(300);//短暂延时

P0=mDis_Gewei; //显示个位 P2=0xdf; delay(300); if(key_value==0x09) //如果读到K1为0 { key_value=0; min++; if(min==60) min=0; }

P0=hDis_Shiwei;//显示十位 P2=0xfb;

delay(300);//短暂延时

P0=hDis_Gewei; //显示个位 P2=0xf7; delay(300); if(key_value==0x43) //如果读到K1为0 { key_value=0; hour++; if(hour==24) hour=0; } if(key_value==0x40) //如果读到K1为0 { key_value=0; hour--; if(hour==0) hour=23; }

sDis_Shiwei=~tab[second/10];//十位显示值处理 sDis_Gewei=~tab[second]; //个位显示处理 mDis_Shiwei=~tab[min/10];//十位显示值处理 mDis_Gewei=~tab[min]; //个位显示处理 hDis_Shiwei=~tab[hour/10];//十位显示值处理 hDis_Gewei=~tab[hour]; //个位显示处理

if(key_value==0x45) //如果读到K1为0 { key_value=0; minx=min; hourx=hour;

}

flag=0; } if(key_value==0x15) //如果读到K1为0 { key_value=0; min--; if(min==0) min=59; }

if((min==(minx+1)) && (hour==hourx)) {flag=0;}

if((min==minx) && (hour==hourx) && flag==0) {

while(1) {

TR2=1; //启动定时器 ET2=1; //打开定时器2中断 i=0;

while(i<100) //音乐数组长度 ,唱完从头再来 {

k=sszymmh[i]+7*sszymmh[i+1]-1; timer0h=FREQH[k]; timer0l=FREQL[k]; RCAP2H=timer0h; RCAP2L=timer0l;

time=sszymmh[i+2]; i=i+3; song();

if(key_value==0x47) //如果读到K1为0 { key_value=0; flag=1; TR2=0; //启动定时器

ET2=0; //打开定时器2中断 break; } } break; } }

}

timer1() interrupt 3 {

unsigned char count; TH1=0xd8;//重新赋值 TL1=0xf0; count++;

if (count==100) {

count=0;

second++;//秒加1 if(second==60) { second=0; min=min+1; } if(min==60) { min=0; hour=hour+1; } if(hour==24) { hour=0; second=0; min=0; } } }

void t2int() interrupt 5 {

TR2=0; TF2=0;

speaker=!speaker;

TR2=1; }

Decode.c

/******************************************************************/ /* 红 外 遥 控 解 码 */ /* CPU & XTAL :89c52 @ 12Mhz */ /* 支持的红外编码方案: NEC6121 */ /* 编码格式:引导信号(或连发信号)+地址码+地址码+控制码+控制码反码 */ /******************************************************************/

#include \//#include \#include #include

#define uchar unsigned char #define uint unsigned int

/******************************************************************/ /* 变 量 保 存 区 */ /******************************************************************/ static unsigned char Timer0_cnt; //定时器计数值 static unsigned char Timer0_cnt_bk; static bit timeout; //超时标志 static bit Guide; //引导码有效 static bit Continuous; //连发码 static unsigned char IR_time[33]; //保存每两个下降沿之间的时间间隔

/******************************************************************/ /* 结 构 体 区 */ /* 保存一次解码后接受到的四字节数据 */ /******************************************************************/ static struct IR_data //红外接收数据寄存 {

unsigned char addr1; //地址1(客户码1) unsigned char addr2; //地址2(客户码2) unsigned char data1; //数据1(数据码) unsigned char data2; //数据2(数据码反码) }IR_data;

uchar key_value; //键值 bit key_flg; //按钮按下标志 bit cycle_flg; //循环标志

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