wb52014 发表于 2010-12-3 10:19:16

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]
查看完整版本: kankakn