历史sshi
#定义uchar无符号字符
#定义uint无符号整数
sbit dula=p2^6;
sbit wela=p2^7;
sbit lcden=p3^4;
sbit lcdrs=p3^5;
sbit key1=p3^0;
sbit key2=p3^1;
sbit key3=p3^2;
//sbit key4=p3^3;
sbit key=p3^7;
void显示();
void delay ms(uint z);
void keyscan();
void init();
void write _ com(uchar com);
void write _ data(uchar date);
uchar num,num1,num 2;num3,num4
uchar sshi、sge、fshi、fge、mshi、mge
uint temp = 0;
Void init() //初始化
{
杜拉= 0;
wela = 0;
TMOD = 0x 01;
TH0 =(65536-45872)/256;
th 1 =(65536-45872)% 256;
EA = 1;
ET0 = 1;
TR0 = 1;
LC den = 0;
write _ com(0x 38);
write _ com(0x0c);
write _ com(0x 06);
write _ com(0x 01);
}
void write _ com(uchircom)//写指令
{
LCD RS = 0;
P0 = com
戴莱姆斯(5);
LC den = 1;
戴莱姆斯(5);
LC den = 0;
}
Void write_data(uchar date)//写入数据。
{
LCD RS = 1;
P0 =日期;
戴莱姆斯(5);
LC den = 1;
戴莱姆斯(5);
LC den = 0;
}
Void delayms(uint z)//延迟
{
uint i,j;
for(I = z;我& gt0;我-)
for(j = 110;j & gt0;j-);
}
Void display()// LCD显示
{
write _ com(0x 80);
write _ data(sshi+48);
delay ms(1);
write _ com(0x 80+0x 01);
write _ data(sge+48);
delay ms(1);
write _ com(0x 80+0x 02);
write _ data(':');
delay ms(1);
write _ com(0x 80+0x 03);
write _ data(fshi+48);
delay ms(1);
write _ com(0x 80+0x 04);
write _ data(fge+48);
delay ms(1);
write _ com(0x 80+0x 05);
write _ data(':');
delay ms(1);
write _ com(0x 80+0x 06);
write _ data(mshi+48);
delay ms(1);
write _ com(0x 80+0x 07);
write _ data(mge+48);
delay ms(1);
}
void keysscan()
{
key = 0;
if(key1==0)
{
戴莱姆斯(5);
if(key 1 = = 0);
{
而(!key 1);
temp++;
TR0 = 0;
write _ com(0x0f);
}
}
开关(温度)
{
案例1:
if(key2==0)
{
戴莱姆斯(5);
if(key 2 = = 0);
{
而(!按键2)
num 1++;
if(num 1 = = 60)num 1 = 0;
}
}
if(key3==0)
{
戴莱姆斯(5);
if(key3==0)
{
而(!按键3)
num 1-;
if(num 1 = =-1)num 1 = 0;
}
}
打破;
案例二:
{
if(key2==0)
{
戴莱姆斯(5);
if(key2==0)
{
而(!key 2);
num 2++;
if(num 2 = = 60)num 2 = 0;
}
}
if(key3==0)
{
戴莱姆斯(5);
if(key3==0)
{
而(!key 3);
num 2-;
if(num 2 = =-1)num 2 = 0;
}
}
}
打破;
案例三:
{ if(key2==0)
{
戴莱姆斯(5);
if(key2==0)
{
而(!key 2);
num 3++;
if(num 3 = = 60)num 3 = 0;
}
}
if(key3==0)
{
戴莱姆斯(5);
if(key3==0)
{
而(!key 3);
num 3-;
if(num 3 = =-1)num 3 = 0;
}
}
}
打破;
案例4:
{
temp = 0;
TR0 = 1;
write _ com(0x 08);
}
}
}
Voidt0 _ time()中断1//时钟0中断
{
num++;
TH0 =(65536-45872)/256;
th 1 =(65536-45872)% 256;
如果(数量==20)
{
num = 0;
num 1++;
if(num1==60)
{
num 1 = 0;
num 2++;
}
mshi = num 1/10;
mge = num 1% 10;
if(num2==60)
{
num 2 = 0;
num 3++;
}
fshi = num 2/10;
fge = num 2% 10;
if(num3==24)
{
num 3 = 0;
//num 4++;
}
sshi = num 3/10;
sge = num 3% 10;
//if(num4)
显示();
}
}
void main()
{
init();
while(1)
{
keys scan();
}
}