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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3519|回復: 2
收起左側

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

[復制鏈接]
ID:701488 發表于 2020-3-3 12:01 | 顯示全部樓層 |閱讀模式
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif
51hei圖片20200303115638.png
使用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圖片20200303120220.png
全部資料51hei下載地址:
電子綜合設計.7z (811.36 KB, 下載次數: 161)

評分

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

查看全部評分

回復

使用道具 舉報

無效樓層,該帖已經被刪除
ID:890070 發表于 2021-10-18 10:54 | 顯示全部樓層
剛好需要 很棒
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
ID:977459 發表于 2021-11-23 13:23 | 顯示全部樓層
有顯示得分的程序嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久高潮国产精品视 | 成人美女免费网站视频 | 欧美日韩久久久久 | 麻豆久久久久久 | 中文字幕一二三区 | 一区二区三区免费看 | 欧美中文| 亚洲精品欧洲 | 精品无码久久久久国产 | 国产三级精品三级在线观看四季网 | 久久国产精品视频观看 | 在线观看久草 | 欧美一区2区三区3区公司 | 91视频麻豆 | 免费午夜视频 | 看羞羞视频免费 | 久久久久久久久国产 | 免费看爱爱视频 | 欧美一级二级视频 | 热久色| 国产电影一区二区在线观看 | 精品无码久久久久国产 | 日本三级电影免费 | 在线观看国产精品一区二区 | 一区二区三区四区免费视频 | 亚洲一区 中文字幕 | 韩日av片 | av天天看| 成人高清在线视频 | 亚洲精品一区二区三区蜜桃久 | 国产成人免费视频网站高清观看视频 | 黄色毛片在线播放 | 成人18亚洲xxoo| 国产精品久久亚洲7777 | 精品亚洲一区二区三区 | 欧产日产国产精品国产 | 日韩色在线 | 午夜激情影院 | 精品国产一区二区在线 | 国产精品视频网 | 亚洲欧美在线免费观看 |