久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3414|回復: 2
打印 上一主題 下一主題
收起左側

單片機8位競賽搶答器調研,模塊劃分與接口定義文檔+Proteus仿真程序

[復制鏈接]
跳轉到指定樓層
樓主
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


使用at89c51實現功能
單片機源程序:
#include<reg51.h>
#include<lcd1602.h>
sbit sjjia=P1^0;         //定義時間加按鈕        
sbit sjjian=P1^1;                  //定義時間減按鈕
sbit kaishi=P1^2;                  //定義開始按鈕
sbit fuwei=P1^3;                  //定義復位按鈕
sbit soud=P1^4;                          //報警按鈕
sbit led_r=P1^5;                  //定義搶答成功指示
sbit led_y=P1^6;                   //定義闡述時間到指示

unsigned char num[]={'0','1','2','3','4','5','6','7','8','9'},num2;
unsigned char model,time,temp;

void init()        //初始化函數
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        ET0=1;
        TR0=0;
        EA=1;
        P1=0x0f;

        model=0;
        time=30;
}

void delay(unsigned char i)        //延時函數
{
        unsigned char j,k;
        while(i--)
                for(j=100;j>0;j--)
                        for(k=100;k>0;k--);
}

void star() //啟動
{
        lcd_xml(0x80);lcd_xsj("     welcome    ");
        delay(100);
        lcd_xml(0xc0);lcd_xsj(" 8 Way Responder");
        delay(80);
}

void led_num() //刷新倒計時
{
        lcd_xml(0x80);lcd_xsj(" Countdown :    ");
        lcd_xml(0x8d);lcd_xsj2(num[time/10]);
        lcd_xml(0x8e);lcd_xsj2(num[time%10]);
}

void reset()        //復位
{
        TR0=0;
        P1=0x0f;

        led_r=0;
        led_y=0;
        P2=0xff;
        model=0;
        time=10;
        led_num();
        lcd_xml(0xc0);lcd_xsj("   Not started  ");        
}

void Not_started()
{
        if(sjjia==0)
        {
                delay(10);
                if(sjjia==0)
                {
                        time++;
                        if(time==100) time=0;
                        led_num();
                }
        }
        if(sjjian==0)
        {
                delay(10);
                if(sjjian==0)
                {
                        time--;
                        if(time==0) time=99;
                        led_num();
                }
        }
        if(kaishi==0)
        {
                delay(10);
                if(kaishi==0)
                {
                        model=1;
                        TR0=1;
                        lcd_xml(0xc0);lcd_xsj(" Start Responder");
                        soud=1;delay(10);soud=0;
                }
        }
}

void anjian()
{

        if(P2 != 0xff)
        {
                delay(5);
                if(P2 != 0xff)
                {
                        temp=~P2;
                        model=3;
                        led_r=1;
                        soud=1;delay(10);soud=0;        
                        switch(temp)
                        {
                                case 0x01:num2=1;break;
                                case 0x02:num2=2;break;
                                case 0x04:num2=3;break;
                                case 0x08:num2=4;break;
                                case 0x10:num2=5;break;
                                case 0x20:num2=6;break;
                                case 0x40:num2=7;break;
                                case 0x80:num2=8;break;                        
                        }
                        lcd_xml(0xc0);lcd_xsj(" Competitor:   ");
                        lcd_xml(0xce);lcd_xsj2(num[num2]);

                        time=60;
                        P2=temp;
                }        
        }
}

void finish()
{
        if(!time)
        {
                led_y=1;
                lcd_xml(0xc0);lcd_xsj("      End       ");        
        }
}

void main()
{
        init();
        lcd_init();
        star();
        reset();
        while(1)
        {
                if(fuwei==0)        //復位鍵檢測
                {
                        delay(1);
                        if(fuwei==0)
                                reset();
                }
                switch(model)
                {
                        case 0:Not_started();break;
                        case 1:anjian();break;
                        case 2:finish();break;
                        case 3:break;
                        default : model=0;break;        
                }
        }
}

void timee() interrupt 1        //1s函數中斷
{
        unsigned char a;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        a++;        //是否滿1s
        if(a==24)
        {
                a=0;
                if(model==1 || model==3)
                {
                        time--;
                        led_num();
                        if(time==0)
                        {
                                model=2;
                                soud=1;delay(20);soud=0;
                        }
                }
        }
}

全部資料51hei下載地址:
電子綜合設計.7z (811.36 KB, 下載次數: 161)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:890070 發表于 2021-10-18 10:54 | 只看該作者
剛好需要 很棒
回復

使用道具 舉報

板凳
ID:977459 發表于 2021-11-23 13:23 | 只看該作者
有顯示得分的程序嗎?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青99| 一区免费看 | www.99re| 污视频免费在线观看 | 久久国产精品久久久久久久久久 | 伊人一区| 中文字幕一区二区在线观看 | 精品在线一区二区三区 | 另类亚洲视频 | 日韩一区二区三区在线视频 | 久久五月婷 | 国产精品一区二区在线 | av网站免费在线观看 | 午夜一区| 精品国产免费人成在线观看 | 成人午夜激情 | 一区二区在线不卡 | 草久视频 | 久久免费视频观看 | 成人国产一区二区三区精品麻豆 | 国产一区二区三区日韩 | 成人欧美一区二区三区黑人孕妇 | 日日碰狠狠躁久久躁婷婷 | 一级黄色毛片免费 | 亚洲毛片在线观看 | 男女激情网站免费 | 欧美一区二区三区日韩 | 午夜视频在线免费观看 | 国产精品久久久久久久久久久久午夜片 | 欧美一级黄色片 | 蜜桃av一区二区三区 | 在线欧美一区二区 | 日本a视频| 成年人视频在线免费观看 | 亚洲精品乱码久久久久v最新版 | 国产精品视频久久 | 91视频中文 | 男人天堂99| 日韩在线国产精品 | 麻豆一区二区三区精品视频 | 免费看的av|