標(biāo)題:
單片機(jī)8路搶答器代碼與Proteus仿真圖
[打印本頁(yè)]
作者:
奔跑步
時(shí)間:
2021-3-14 18:26
標(biāo)題:
單片機(jī)8路搶答器代碼與Proteus仿真圖
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.png
(16.91 KB, 下載次數(shù): 56)
下載附件
2021-3-14 18:47 上傳
單片機(jī)源程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar code1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
sbit key1=P1^0; //定義按鍵的引腳
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
sbit key5=P1^4;
sbit key6=P1^5;
sbit key7=P1^6;
sbit key8=P1^7;
sbit keep=P3^6;
sbit key9=P3^2;
void delay(uint t) //延時(shí)程序
{
uint j;
for(;t>0;t--)
for(j=121;j>0;j--);
}
void display(uchar i)//數(shù)碼管顯示
{
switch(i) //用swicth語(yǔ)句來(lái)進(jìn)行掃描數(shù)碼管的引腳
{
case 0:P0=code1[0];break;
case 1:P0=code1[1];break;
case 2:P0=code1[2];break;
case 3:P0=code1[3];break;
case 4:P0=code1[4];break;
case 5:P0=code1[5];break;
case 6:P0=code1[6];break;
case 7:P0=code1[7];break;
case 8:P0=code1[8];break;
default:break;
}
}
void key() //鍵盤(pán)掃描,判斷哪個(gè)人搶答
{
uchar n; //接下來(lái)就用if語(yǔ)句來(lái)按鍵的掃描
n=0;
display(n);
keep=1;
if(key1==0)
{
delay(5);
if(key1==0)
{
n=1;
display(n);
while(1)
{
keep=0; //開(kāi)啟蜂鳴器
delay(10);
keep=1;
delay(10);
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=0;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key1);
delay(5);
}
if(key2==0)
{
delay(5);
if(key2==0)
{
n=2;
display(n);
while(1)
{
keep=0; //開(kāi)啟蜂鳴器
delay(10);
keep=1;
delay(10);
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=0;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key2);
delay(5);
}
if(key3==0)
{
delay(5);
if(key3==0)
{
n=3;
display(n);
while(1)
{
keep=0; //開(kāi)啟蜂鳴器
delay(10);
keep=1;
delay(500);
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=0;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key3);
delay(5);
}
if(key4==0)
{
delay(5);
if(key4==0)
{
n=4;
display(n);
while(1)
{
keep=0; //開(kāi)啟蜂鳴器
delay(10);
keep=1;
delay(10);
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=0;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key4);
delay(5);
}
if(key5==0)
{
delay(5);
if(key5==0)
{
n=5;
display(n);
while(1)
{
keep=0; //開(kāi)啟蜂鳴器
delay(10);
keep=1;
delay(10);
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=0;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key5);
delay(5);
}
if(key6==0)
{
delay(5);
if(key6==0)
{
n=6;
display(n);
while(1)
{
keep=0; //開(kāi)啟蜂鳴器
delay(10);
keep=1;
delay(10);
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=0;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key6);
delay(5);
}
if(key7==0)
{
delay(5);
if(key7==0)
{
n=7;
display(n);
while(1)
{
keep=0; //開(kāi)啟蜂鳴器
delay(10);
keep=1;
delay(10);
if(key9==0)
{
delay(5);
if(key9==0)
{
keep=1;
n=0;
display(n);
while(1)return;
}
while(!key9);
delay(5);
while(1);
}
}
}
while(!key7);
delay(5);
}
if(key8==0)
{
delay(5);
if(key8==0)
{
n=8;
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
8路搶答器.rar
(57.9 KB, 下載次數(shù): 42)
2021-3-14 18:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1