新聞中心

        八路搶答器程序和仿真

        作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
        一 性能指標(biāo)要求:

        1、 需要自己設(shè)計(jì)電路并焊接電路板。

        本文引用地址:http://www.104case.com/article/201611/321038.htm

        2、基本要求:有一個主持人控制開關(guān)和6路搶答按扭,當(dāng)主持人允許搶答時才能進(jìn)行搶答操作,并用一個數(shù)碼管顯示搶答選手的號碼,同時其他選手不能再搶答。

        3、當(dāng)主持人允許搶答后倒計(jì)時5秒時間,在這5秒內(nèi)搶答有效,過后就不能進(jìn)行搶答了。

        4、 電路上要加個蜂鳴器的電路,當(dāng)有選手搶答時蜂鳴器響一下。

        5、當(dāng)有選手搶答后,進(jìn)行倒計(jì)時20秒作為選手回答問題時間,用兩個數(shù)碼管顯示,倒計(jì)時時間到時有聲光提示。

        6、 畫電路板時要增加下載接口,方便調(diào)試程序。

        #include
        #define uchar unsigned char
        uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
        uchar code wei[4]={0xef,0xf7,0xfb,0xfd};
        uchar fen=0,miao=0,qd=0;
        uchar flag=0,temp=0,flag2=0,tt=0,b=31,bb=31;
        sbit d0=P1^0;
        sbit d1=P1^1;
        sbit feng=P1^3;
        sbit deng=P1^4;
        void delay(uchar z)
        {
        uchar i,j;
        for(i=z;i>0;i--)
        for(j=110;j>0;j--);
        }
        void delay2(uchar z)
        {
        uchar i,j;
        for(i=z;i>0;i--)
        for(j=30;j>0;j--);
        }
        fengming()
        {
        feng=1;
        delay2(1);
        feng=0;
        delay2(1);
        feng=1;
        delay2(1);
        feng=0;
        delay2(1);

        }
        void time01()//定時器相關(guān)
        {
        EA=1;
        TR0=1;//啟動定時器0
        ET0=0;//開定時器0中斷
        TMOD=1;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%6;//聲明:定時50毫秒

        }
        display(void)
        {
        P2=wei[0];
        P0=table[fen];
        delay(8);
        P2=wei[1];
        P0=table[miao];
        delay(8);
        P2=wei[3];
        P0=table[qd];
        delay(8);
        }
        qiangda(void)
        {
        P3=0xff;
        delay(15);
        if(P3!=0xff)
        {
        delay(5);
        if(P3!=0xff)
        {

        switch(P3)
        {
        case 0xfe: temp=1;break;
        case 0xfd: temp=2;break;
        case 0xfb: temp=3;break;
        case 0xf7: temp=4;break;
        case 0xef: temp=5;break;
        case 0xdf: temp=6;break;
        case 0xbf: temp=7;break;
        case 0x7f: temp=8;break;
        }
        }
        }
        return(temp);
        }
        daojishi()//30 miao
        {

        bb--;
        miao=bb;
        fen=bb/10;
        fengming();
        if(bb==0){ ET0=0;bb=31;feng=1;deng=1;delay(80);feng=0;}
        }
        inition()//初始化
        {
        fen=0,miao=0,qd=0;
        flag=1,temp=0,flag2=0,tt=0;deng=1;
        }
        d1pand()
        {
        if(d1==0)
        {
        delay(20);
        if(d1==0) b--;while(!d1)
        {
        bb=b;
        P2=wei[0];
        P0=table[bb/10];
        delay(5);
        P2=wei[1];
        P0=table[bb];
        delay(5);
        if(b<5) b=31;
        }
        }
        }
        d0pand()
        {
        if(d0==0)
        {
        delay(20);
        if(d0==0)
        {
        inition();
        while(!d0);
        }
        }
        }

        void main()
        {
        time01();

        while(1)
        {//fengming();
        feng=0;
        display();
        d1pand();
        d0pand();
        if(flag==1)
        {
        if(flag2==1){flag=0;}
        else//flag2=0
        {
        ET0=1;
        qd=qiangda();
        if(qd!=0)
        { flag2=1;tt=1;
        deng=0;feng=1;delay(80);feng=0;
        }


        }
        }


        }

        }

        void time0() interrupt 1
        {
        uchar a;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%6;
        a++;
        if(a ==0)
        {
        miao++;
        if(miao==6&&flag2==0){feng=1;;miao=0;flag2=1;delay(80);feng=0;ET0=0;}

        if(tt==1){
        daojishi();
        }

        }


        }




        關(guān)鍵詞: 八路搶答器程序和仿

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 顺平县| 南乐县| 松阳县| 岚皋县| 志丹县| 如皋市| 呼图壁县| 泌阳县| 阿坝县| 武功县| 长治市| 珲春市| 延川县| 陇南市| 柞水县| 巴里| 依兰县| 福安市| 禄劝| 漾濞| 福泉市| 卫辉市| 惠安县| 通州市| 江城| 隆回县| 抚州市| 绥德县| 仪征市| 镇安县| 洪洞县| 岳阳市| 镇巴县| 四平市| 远安县| 洪雅县| 泽普县| 淮安市| 长宁区| 株洲市| 常德市|