#include
#define uchar unsigned char
#define uint unsigned int
sbit beep=P1^7;
bit startflag; //界说一个扫描开端标志位
bit irreceok;//红外接纳OK标志位
bit irprosok;//红外接纳处理OK标志位
uchar irdata[33];//界说一个寄存编码的数组。引导码1位,客户码8位,客户反码8位,数据码8位,数据反码8位 ,共33位
uchar bitnum;//接纳到的第几位数据的标志位
uchar irtime;//界说红外扫描时间
uchar ircode[4];//为四个码值界说一个数组寄存,把四位码分隔
uchar disp[8];//四组数据,每组拆成高四位和低四位,共八个元素
/**************1602部分******************/
sbit lcden=P1^2;
sbit lcdrs=P1^0;
sbitlcdrw=P1^1;
/*char code Tab[]={0,1,2,3,4,5,6,7,8,
9,A,B,C,D,E,F};*/
char code Tab[]=”0123456789abcdef”;
void delay(uint z) //延时子程序
{
uint x,y;
for(x=z;x>0;x–)
for(y=220;y>0;y–);
}
void write_com(uchar com)//界说一个带参数的写指令子程序
{
lcdrs=0; //1602的rs为0时,接纳指令,为1时接纳数据
P0=com;//把void write_com(uchar com)中的COM中的数据给P0口
delay(2);
lcden=1;
delay(2);
lcden=0;
delay(2);
}
void init_1602()//界说一个初始化子程序
{
lcden=0;
lcdrw=0;
write_com(0x38);//调用 write_com子程序并把0x38赋给P0口,显现形式翻开
write_com(0x0f);//调用 write_com子程序并把“开显现,显现光标,光标闪耀”指令码赋给P0口
write_com(0x06);//调用 write_com子程序并把“地址指针加1,整屏不移动”指令码赋给P0口
//write_com(0x80+0x10);//数据指针初始化,让指针指向可显现的最右端
write_com(0x80);//数据指针初始化,让指针指向最左端,显现从榜首行开端
write_com(0x01);//调用 write_com子程序并把”清零指”令码赋给P0口
}
void write_dat(uchar dat)//界说一个带参数的写数据子程序
{
lcdrs=1; //1602的rs为0时,接纳指令,为1时接纳数据
P0=dat;//把void write_shu(uchar shu)中的COM中的数据给P0口
delay(2);
lcden=1;
delay(2);
lcden=0;
delay(2);
}
void delayms(uint t)
{
uint i,j;
for(i=t;i>0;i–)
for(j=110;j>0;j–);
}
void timer0init()//定时器O初始化
{
TMOD=0x02;//定时器设成方法2,由于方法2能够主动重装初值
TH0=0x00;//高位设为O
TL0=0x00;//低位设为O
ET0=1; //中止翻开
EA=1;//总中止翻开
TR0=1;//定时器翻开
}