该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
sbit RS=P2^6;
sbit RW=P2^5;
sbit LCDN=P2^7;
sbit xiang=P1^5;
sbit led=P2^1;
#define GPIO P0
#define uchar unsigned char
#define uint unsigned int
unsigned char date1,aa,ee,k,flag;
unsigned char code table[]="time over";
void lcdwritecom(unsigned char com);
void lcdwritedata(unsigned char dat);
void init();
void ustar();
void sendstring(uchar *p);
void send(uchar ch);
void delay(unsigned int z);
void display(uint date);
void main(void)
{
init();
ES=1;
EA=1;
PS=1;
PT0=0;
PT1=0;
IP=0x10;
while(1)
{
if(ee==14)
{
ee=0;
date1--;
}
if(date1==3)
{
xiang=1;
delay(12);
xiang=0;
delay(12);
}
if(date1==2)
{
xiang=1;
delay(12);
xiang=0;
delay(12);
}
if(date1==1)
{
xiang=1;
delay(12);
xiang=0;
delay(12);
}
if(date1==0)
{
while(1)
{
ustar();
sendstring(table);
while(!TI)
{
TI=0;
}
}
}
lcdwritecom(0x80+7);
display(date1);
}
}
void lcdwritecom(unsigned char com)
{
LCDN=0;
RS=0;
RW=0;
GPIO=com;
delay(10);
LCDN=1;
delay(10);
LCDN=0;
}
void lcdwritedata(unsigned char dat)
{
RS=1;
RW=0;
GPIO=dat;
delay(10);
LCDN=1;
delay(10);
LCDN=0;
}
void init()
{
TMOD=0x01;
TH0=(65536-46080)/256;
TH0=(65536-46080)%256;
EA=1;
ET0=1;
ES=1;
TR0=1;
RW=0;
LCDN=0;
date1=10;
lcdwritecom(0x38);
lcdwritecom(0x0c);
lcdwritecom(0x06);
lcdwritecom(0x01);
lcdwritecom(0x80);
}
void display(uint date)
{
unsigned int ge,shi;
ge=date%10;
shi=date/10;
lcdwritedata(0x30+shi);
lcdwritedata(0x30+ge);
}
void delay(unsigned int z)
{
unsigned char a;
unsigned char b;
for(a=z;a>0;a--)
for(b=100;b>0;b--);
}
void timer0() interrupt 1
{
TH0=(65536-46080)/256;
TH0=(65536-46080)%256;
ee++;
}
void ustar()
{
SCON=0X50;
TMOD=0X20;
PCON=0X80;
TH1=0XF3;
TL1=0XF3;
ES=1;
EA=1;
TR1=1;
}
void send(uchar ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
void sendstring(uchar *p)
{
while(*p)
{
send(*p);
p++;
}
}
void shou() interrupt 4
{
REN=1;
date1=SBUF;
if(RI)
{
RI=0;
led=0;
ET0=1;
}
}