欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機用單獨按鍵實現球賽積分器 缺少原理圖 [打印本頁]

作者: mny123    時間: 2022-6-1 15:30
標題: 單片機用單獨按鍵實現球賽積分器 缺少原理圖
#include<REGX51.H>
#define s1 0x0e
#define s2 0x0d
#define s3 0x0b
#define s4 0x07
unsigned char Get_key();
void sp(unsigned char key);
void display(unsigned a,unsigned ab,unsigned b,unsigned bb);
void delay(unsigned int t);
void beep(unsigned int t);
code unsigned char led[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
code unsigned char le[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
int a=0,ab=0,b=0,bb=0;
sbit spk=P1^0;
void main()
{
         unsigned char k;
         while(1)
         {
                 k=Get_key();
                 sp(k);
                 display(a,ab,b,bb);
         }
}
void delay(unsigned int t)
{
    unsigned int i,j;
        for(i=0;i<t;i++)
        for(j=0;j<112;j++);        
}
void beep(unsigned int t)
{
        spk=0;
        delay(t);
        spk=1;
}
unsigned char Get_key()
{
        unsigned char k;
        if((P3&0x0f)==0x0f)return(0xff);
        delay(20);
        if((P3&0x0f)==0x0f)return(0xff);
    k=P3&0x0f;
    while((P3&0x0f)!=0x0f);
    return(k);
        
}
void sp(unsigned char k)
{
        switch(k)
        {
                case s1:a++;beep(20);break;
                case s2:if(a>0){a--;beep(20);}break;
                case s3:b++;beep(20);break;
                case s4:if(b>0){b--;beep(20);}break;
                default: break;
        }

if((((b-a)>=2)||((a-b)>=2))&&((a>=25)||(b>=25)))
{
        if(a>b)
        {
                ab++;
                a=0;
                b=0;
        }
        else
        {
                bb++;
                a=0;
                b=0;
        }
        beep(20);
}
}
void display(unsigned a,unsigned ab,unsigned b,unsigned bb)
{
        static char num=0;
        P2=0xff;
        switch(num)
        {
                case 0: P0=led[b%10];break;
                case 1: P0=led[b/10];break;
                case 2: P0=led[10];break;
                case 3: P0=led[bb%10];break;
                case 4: P0=led[ab%10];break;
                case 5: P0=led[10];break;
                case 6: P0=led[a%10];break;
                case 7: P0=led[a/10];break;
                default: P0=0xff;
        }
        P2=le[num++];
        num%8;
}







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1