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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4212|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

分享一下我的51單片機搶答器代碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:642928 發(fā)表于 2019-11-15 22:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 小米熊724 于 2019-11-15 23:05 編輯

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit key1=P1^0;sbit key2=P1^1;sbit key3=P1^2;sbit key4=P1^3;//選手1--4

sbit key5=P1^4;sbit key6=P1^5;sbit key7=P1^6;sbit key8=P1^7;//選手5--8

sbit d1=P0^0;sbit d2=P0^1;sbit d3=P0^2;sbit d4=P0^3;//選手指示燈1--4

sbit d5=P0^4;sbit d6=P0^5;sbit d7=P0^6;sbit d8=P0^7;    //        5--8

sbit alarm=P3^1;//蜂鳴器控制端

uchar code display[10]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84};//共陽 0---9

bit flag=0;//是否允許搶答標志,初始 【不允許】

bit flag1=1;//是否允許掃描按鍵標記,初始【允許】

uchar counter,time=10;//計數(shù)器,10s搶答倒計時

//==========================================================延時函數(shù)=================================================

void delay1m(uint k)

{

uint j;

while(k--)

for(j=0;j<121;j++);

}

//===========================================================定時器,外中斷初始化函數(shù)================================

void init_function()

{

TMOD=0x01;    //定時器T0,工作于方式1

TH0=(65535-50000)/256;    //定時50ms

TL0=(65535-50000)%256;   

TR0=0;    //啟動T0     

IT0=IT1=1;//外部中斷負跳變觸發(fā)

ET0=EX0=EX1=EA=1;//允許T0,外部中斷0,1中斷,開總中斷

}

//================================================T0中斷服務(wù)函數(shù) ====================================================

void time0() interrupt 1   

{

TH0=(65535-50000)/256;    //定時50ms

TL0=(65535-50000)%256 ;   

counter++;   

}

//===================================================響一聲=========================================================

void speak1()

{

alarm=1;

delay1m(300);

alarm=0;

}

//===================================================響兩聲=========================================================

void speak2()

{

alarm=1;

delay1m(200);

alarm=0;

delay1m(200);

alarm=1;

delay1m(200);

alarm=0;

}

void main()

{

delay1m(500);//延時檢測led,蜂鳴器

P0=0x00;alarm=0;//關(guān)led,蜂鳴器

init_function();//初始化函數(shù)

P2=display[0];//初始顯示 0

while(1)

{

while(flag1)

{

if(flag)//正常搶答

{

if    (!key1){flag1=0;TR0=0;speak1();P2=display[1];while(flag1==0){d1=1;delay1m(300);d1=0;delay1m(300);}}//顯示1,蜂鳴器叫,對應(yīng)的led亮

else if(!key2){flag1=0;TR0=0;speak1();P2=display[2];while(flag1==0){d2=1;delay1m(300);d2=0;delay1m(300);}}//顯示2,蜂鳴器叫

else if(!key3){flag1=0;TR0=0;speak1();P2=display[3];while(flag1==0){d3=1;delay1m(300);d3=0;delay1m(300);}}//顯示3,蜂鳴器叫

else if(!key4){flag1=0;TR0=0;speak1();P2=display[4];while(flag1==0){d4=1;delay1m(300);d4=0;delay1m(300);}}//顯示4,蜂鳴器叫

else if(!key5){flag1=0;TR0=0;speak1();P2=display[5];while(flag1==0){d5=1;delay1m(300);d5=0;delay1m(300);}}//顯示5,蜂鳴器叫

else if(!key6){flag1=0;TR0=0;speak1();P2=display[6];while(flag1==0){d6=1;delay1m(300);d6=0;delay1m(300);}}//顯示6,蜂鳴器叫

else if(!key7){flag1=0;TR0=0;speak1();P2=display[7];while(flag1==0){d7=1;delay1m(300);d7=0;delay1m(300);}}//顯示7,蜂鳴器叫

else if(!key8){flag1=0;TR0=0;speak1();P2=display[8];while(flag1==0){d8=1;delay1m(300);d8=0;delay1m(300);}}//顯示8,蜂鳴器叫

else

{

if(counter>=20)//1S時間到

{

counter=0;time--;

if(time==0)//10S到

{

TR0=0;P2=display[time];speak1();//顯示0

flag=0;//搶答的時間內(nèi)沒人搶答,必須等待重新開始

}

P2=display[time];

}

}

}

else//犯規(guī)搶答

{

if    (!key1){flag1=0;TR0=0;speak2();P2=display[1];while(flag1==0){d1=1;delay1m(100);d1=0;delay1m(100);}}//數(shù)碼管顯示1,蜂鳴器叫

else if(!key2){flag1=0;TR0=0;speak2();P2=display[2];while(flag1==0){d2=1;delay1m(100);d2=0;delay1m(100);}}//數(shù)碼管顯示2,蜂鳴器叫

else if(!key3){flag1=0;TR0=0;speak2();P2=display[3];while(flag1==0){d3=1;delay1m(100);d3=0;delay1m(100);}}//數(shù)碼管顯示3,蜂鳴器叫

else if(!key4){flag1=0;TR0=0;speak2();P2=display[4];while(flag1==0){d4=1;delay1m(100);d4=0;delay1m(100);}}//數(shù)碼管顯示4,蜂鳴器叫

else if(!key5){flag1=0;TR0=0;speak2();P2=display[5];while(flag1==0){d5=1;delay1m(100);d5=0;delay1m(100);}}//數(shù)碼管顯示5,蜂鳴器叫

else if(!key6){flag1=0;TR0=0;speak2();P2=display[6];while(flag1==0){d6=1;delay1m(100);d6=0;delay1m(100);}}//數(shù)碼管顯示6,蜂鳴器叫

else if(!key7){flag1=0;TR0=0;speak2();P2=display[7];while(flag1==0){d7=1;delay1m(100);d7=0;delay1m(100);}}//數(shù)碼管顯示7,蜂鳴器叫

else if(!key8){flag1=0;TR0=0;speak2();P2=display[8];while(flag1==0){d8=1;delay1m(100);d8=0;delay1m(100);}}//數(shù)碼管顯示8,蜂鳴器叫

}

}

}

}

//==========================================================外部中斷0中斷函數(shù),開始===================================

void extern_int0() interrupt 0

{

if(P2==display[0])//數(shù)碼管顯示0時開始鍵才響應(yīng)

{

flag=flag1=1;//允許搶答,允許響應(yīng)按鍵

time=10;

P0=0x00;//燈都滅掉

alarm=0;//關(guān)蜂鳴器

TR0=1;//倒計時,開定時器

}

}

//==========================================================外部中斷1中斷函數(shù),停止===================================

void extern_int1() interrupt 2

{

flag1=1;//允許搶答,

flag=0;// 不允許響應(yīng)按鍵

TR0=0;//關(guān)定時器

P0=0x00;//燈都滅掉

alarm=0;//關(guān)蜂鳴器

P2=display[0];//顯示0

}

daima.rar

27.9 KB, 下載次數(shù): 18, 下載積分: 黑幣 -5

直接在Keil里面使用

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

使用道具 舉報

沙發(fā)
ID:807168 發(fā)表于 2020-7-24 10:10 來自手機 | 只看該作者
程序不完整吧
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产麻豆一区二区三区 | 夜夜骑首页 | 99久久精品一区二区成人 | 欧美日韩国产三级 | 日本a∨精品中文字幕在线 亚洲91视频 | 国产日韩一区二区三区 | 黄a网站 | 亚洲精品永久免费 | 亚洲国产精品久久久久 | 国产高清性xxxxxxxx | 国产精品久久久一区二区三区 | 亚洲视频在线看 | 久久精品中文字幕 | 欧美日韩高清一区 | 欧美精品一区二区三区在线 | 一区二区成人 | 精品一区二区视频 | 欧美影院| 国产精品久久久久久久午夜片 | 成人综合一区二区 | 亚洲天堂精品久久 | 一区二区在线免费观看 | 四虎影院欧美 | 99久久精品一区二区成人 | 在线免费观看成年人视频 | 精品日韩一区 | 国产亚洲一区二区精品 | 狠狠的干 | 亚洲人精品午夜 | 狠狠色香婷婷久久亚洲精品 | 日韩久久精品视频 | 日韩精品在线免费观看 | 国产片一区二区三区 | 免费在线a视频 | 夜夜爽99久久国产综合精品女不卡 | 日本精品一区二区 | 亚洲网站在线观看 | 成人 在线 | 久久久久久一区 | 一区二区三区国产视频 | 日韩欧美亚洲 |