#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit IR=P3^2; //红外接口标志
sbit RS = P1^0;
sbit RW = P1^1;
sbit E = P1^2;
sbit beep = P1^7;
uint hour,minute,second,count;
char code Tab[16]={'0','1','2','3','4','5',
'6','7','8','9','A','B','C','D','E','F'};
//char code Tab[16]="0123456789abcdef";//两种定义方法都可以
char data TimeNum[]=" ";//data:固定指前面0x00-0x7f的
//128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小。
char data Test1[]=" ";
void DelayMs(uchar z);
/******************************************************************/
/* 变量声明 */
/******************************************************************/
uchar irtime;//红外用全局变量
bit irpro_ok,irok;
uchar IRcord[4]; //处理后的红外码,分别是 客户码,客户码,数据码,数据码反码
uchar irdata[33]; //33个高低电平的时间数据
/******************************************************************/
/* 函数声明 */
/******************************************************************/
void Ir_work(void);
void Ircordpro(void);
void ShowString (unsigned char line,char *ptr);
/******************************************************************/
/* 定时器0中断服务函数 */
/******************************************************************/
void beep1()
{
uchar i;
for (i=0;i<4;i++)
{beep=0;
DelayMs(400);
beep=1;
DelayMs(400);
}
}
void beep2()
{
uchar i;
for (i=0;i<5;i++)
{beep=0;
DelayMs(300);
beep=1;
DelayMs(300);
}
}
void beep3()
{
uchar i;
for (i=0;i<2;i++)
{beep=0;
DelayMs(500);
beep=1;
DelayMs(500);
}
}
void shan()
{
uchar i;
for (i=0;i<3;i++)
{P0=0x55;
DelayMs(1000);
P0=0xff;
DelayMs(1000);
}
}
void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数
{
irtime++; //用于计数2个下降沿之间的时间
}
/******************************************************************/
/* 外部中断0函数 */
/******************************************************************/
|