kankakn
#include"reg51.h"#defineucharunsignedchar
#defineuint unsignedint
#include"ziku.h"
uchar state=0;
bittflg;
sbitcp=P3^5;
sbitdir=P2^0;
sbitrl=P2^1;
ucharb;
ucharstrl;
ucharktime,ktmp;
bitqd,up,dn,lsh,rsh,ent;
uchardp;
uintcpn;
#include"l.h"
qidong()
{
qd=~qd;
if(qd)
{
zx=zx=zx=zx=zx=zx=0;
dir=1;
cpn=1000;
}
else
{
zx=zx=zx=zx=zx=zx=16;
lcdclr();
wrstring(0,0,4,hy);
cpn=0;
}
}
key()
{
P1=0XF0;
if(P1!=0XF0)
{
if(ktime<=10) ktime++;
if(ktime==10)
{
ktmp=P1;
P1=ktmp|0x0f;
ktmp=P1;
switch(ktmp)
{
case0x77:qidong();break;
case0x7b:if(qd) state=2;break;
case0x7d:if(qd) up=1;break;
case0x7e: if(qd) ent=1;break;
case0xbb:if(qd) lsh=1;break;
case0xbe: if(qd) rsh=1;break;
case0xdd:if(qd) dn=1;break;
default:break;
}
}
}
elsektime=0;
}
main()
{ uint tms,a;
//uinttms4;
ucharts,tmin,tho;
uchar k,t;
uintatmp0=0;
init();
lcdinit();
lcdclr();
wrstring(0,0,4,hy);
while(1)
{
if(tflg)
{
tflg=0;
if(qd)
{
if(cpn!=0)
{
cp=~cp;
if(state!=0) cpn--;
}
if(tms++==1000)
{
tms=0;
if(ts++==60)
{
ts=0;
if(tmin++==60)
{
tmin=0;
if(tho++==24)
tho=0;
}
}
zx=ts%10;zx=ts/10;
zx=tmin%10;zx=tmin/10;
zx=tho%10;zx=tho/10;
}
}
key();
switch (state)
{ case 0:
{
if(rl)
{
cpn=2800;
dir=0;
state=1;
}
if(tms==1)
{
lcdclr();
wrstring(0,0,2,shoudong);
wrstring(1,0,5,lddj);
wrnum(1,80,4,shuju);
}
}break;
case1:
{ if(tms==400)
{ // tms1=0
lcdclr();
wrstring(0,0,2,shoudong);
wrstring(1,0,5,lddj);
wrnum(1,80,4,shuju);
}
if(cpn==0)
{if(up)
{up=0;
a++;
cpn=280;
dir=0;
}
elseif(dn)
{
dn=0;
if(a--==0) a=0;
dir=1;
cpn=280;
}
for(k=0;k<16;k++)
{
shuju=number;
shuju=number;
shuju=number;
}
}
}break;
case2:
{
if(up)
{
up=0;
if(dp--==0)dp=0;
}
if(dn)
{
dn=0;
if(dp++==2)dp=2;
}
if(ent)
{ ent=0;
switch(dp)
{
case0: state=1;break;
case1:state=3;break;
case2:state=4;break;
default: break;
}
}
if(tms==20)
{
lcdclr();
wrstring(0,0,2,shoudong);
wrstring(1,0,2,zidong);
wrstring(2,0,4,dangqian);
}
}break;
case 3 :
{
if(tms==20)
{
lcdclr();
wrstring(0,0,2,zidong);
wrstring(1,0,5,lddj);
wrnum(1,80,4,shuju);
}
if(cpn==0)
{
ADC();
if(atmp>atmp0)
{
dir=0;
cpn=(atmp-atmp0)*280;
}
else
{
dir=1;
cpn=(atmp0-atmp)*280;
}
atmp0=atmp;
for(k=0;k<16;k++)
{
shuju=number;
shuju=number;
shuju=number;
}
}
}
break;
case4:
{
if(tms==220)
{ for(k=0;k<16;k++)
{
time=number];
}
lcdclr();
wrnum(0,0,6,time);
}
if(rsh)
{
rsh=0;
if(b++==5) b=5;
}
if(lsh)
{
lsh=0;
if(b--==0)b=0;
}
if(up)
{
up=0;
if(t++==9) t=9;
strl=t;
}
if(dn)
{
dn=0;
if(t--==0) t=0;
strl=t;
}
// if(tms4++==2000)
{
// tms4=0;
if(ent)
{ent=0;
tho=strl*10+strl;
tmin=strl*10+strl;
ts=strl*10+strl;
state=2;
}
}
}
default: break;
}
}
}
}
voidtime0()interrupt1
{
tflg=1;
display();
TH0=0XFC;
TL0=0X18;
}
页:
[1]