新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 單片機籃球計分器程序和仿真圖

        單片機籃球計分器程序和仿真圖

        作者: 時間:2016-11-24 來源:網(wǎng)絡 收藏
        1、 基本要求
        (1) 按照題目要求獨立設計系統(tǒng)所需電路,并完成硬件電路的制作及調(diào)試。
        (2)結(jié)合硬件能夠正常計分
        (3)能夠正常顯示分值。
        (4)能夠正常修改工作模式
        (5)能夠24秒的誤差不小于1秒。
        2、發(fā)揮部分
        能夠兩隊球員犯規(guī)次數(shù)計數(shù)。

        三:基本原理與參考框圖

        在本題目中用到的參考原理圖如下:





        #include
        #define uchar unsigned char
        uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
        uchar code wei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0xdf,0x7f};
        uchar fen=0,miao=0,yi1=0,yi2=0,er1=0,er2=0;
        int a=0,flag=0,temp=0,temp1=0;fangui1=0,fangui2=0;
        sbit key1=P1^0;
        sbit key2=P1^1;
        sbit key3=P1^2;
        sbit key4=P1^3;
        sbit key5=P1^4;
        void delay(uchar z)
        {
        uchar i,j;
        for(i=z;i>0;i--)
        for(j=110;j>0;j--);
        }
        void time01()//定時器相關(guān)
        {
        EA=1;
        TR0=1;//啟動定時器0
        ET0=1;//開定時器0中斷
        TMOD=1;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%6;//聲明:定時50毫秒
        }
        display1(void)
        {
        P2=wei[0];
        P0=table[fen];
        delay(3);
        P2=wei[1];
        P0=table[miao];
        delay(3);
        P2=wei[2];
        P0=table[fangui1];
        delay(3);
        P2=wei[3];
        P0=table[fangui2];
        delay(3);
        }
        display2()
        {
        P2=wei[0];
        P0=table[yi2];
        delay(3);
        P2=wei[1];
        P0=table[yi1];
        delay(3);
        P2=wei[2];
        P0=table[er2];
        delay(3);
        P2=wei[3];
        P0=table[er1];
        delay(3);
        }
        void keyboard()
        {
        if(key1==0)
        {
        delay(10);
        if(key1==0)
        {
        flag=!flag;
        while(!key1);
        delay(4);
        }
        }

        }
        void jishu()
        {
        if(key2==0)
        {
        delay(10);
        if(key2==0)
        {delay(3);
        temp++;
        yi1=temp;
        yi2=temp/10;
        if(yi2==10) yi2=0;
        while(!key2);
        delay(4);
        }
        }
        if(key3==0)
        {
        delay(10);
        if(key3==0)
        {delay(3);
        temp++;
        er1=temp;
        er2=temp/10;
        if(er2==10) er2=0;
        while(!key3);
        delay(5);

        }
        }
        if(key4==0)
        {
        delay(10);
        if(key4==0)
        {delay(3);
        fangui1++;
        if(fangui1==10)fangui1=0;
        while(!key4);
        delay(5);

        }

        }
        if(key5==0)
        {
        delay(10);
        if(key5==0)
        {delay(3);
        fangui2++;
        if(fangui2==10) fangui2=0;
        while(!key5);
        delay(5);
        }

        }

        }
        void main(void)
        {
        time01();
        while(1)
        {
        keyboard();
        jishu();
        if(flag==1) display1();
        if(flag==0) display2();

        }
        }

        void time0() interrupt 1
        {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%6;
        a++;
        if(a==20)
        {
        a=0;
        miao++;
        if(miao==10)
        {
        miao=0;
        fen++;
        }
        if(fen==2&&miao==5)
        {
        fen=0;miao=0;
        }
        }
        }


        關(guān)鍵詞: 單片機籃球計分器仿真

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 七台河市| 固始县| 桐乡市| 宁河县| 株洲市| 德清县| 乃东县| 长岭县| 霸州市| 偃师市| 内江市| 昌都县| 布尔津县| 莱芜市| 云阳县| 桐梓县| 宜宾县| 方城县| 将乐县| 武冈市| 鄂托克前旗| 南川市| 翼城县| 陇西县| 霍城县| 吴川市| 阿拉善右旗| 沙田区| 贵州省| 台山市| 观塘区| 怀化市| 崇礼县| 南乐县| 报价| 南平市| 华容县| 大足县| 吉木萨尔县| 敦化市| 盐源县|