立即注冊(cè) 登錄
返回首頁(yè)

俁戈的個(gè)人空間

日志

單片機(jī)模擬八路搶答器

已有 1109 次閱讀2018-7-20 20:22 |個(gè)人分類:單片機(jī)

#include"reg52.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unisgned int

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

sbit k1=P1^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit k4=P1^3;
sbit k5=P1^4;
sbit k6=P1^5;
sbit k7=P1^6;
sbit k8=P1^7;

sbit beep=P3^7;

uchar code shu[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
uchar DisplayData[16];
uchar time=10,m;
bit j=0;

void delay(uchar i)
{
while(i--);
}

void init()
{
TMOD|=0x01;
TH0=0xfc;
TL0=0x18;
EA=1;
ET0=1;
TR0=1;
}

void DigDisplay()
{
uchar i;
for(i=0;i<8;i++)
{
switch(i) //位選,選擇點(diǎn)亮的數(shù)碼管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//顯示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//顯示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//顯示第2位
case(3):
LSA=1;LSB=1;LSC=0; break;//顯示第3位
case(4):
LSA=0;LSB=0;LSC=1; break;//顯示第4位
case(5):
LSA=1;LSB=0;LSC=1; break;//顯示第5位
case(6):
LSA=0;LSB=1;LSC=1; break;//顯示第6位
case(7):
LSA=1;LSB=1;LSC=1; break;//顯示第7位
}
P0=DisplayData[i];//發(fā)送段碼
delay(1); //間隔一段時(shí)間掃描
P0=0x00;//消隱
}
}


void main()
{
init();
while(1)
{
DigDisplay();
if(j==0)
{
if(!k1){j=1;delay(1000);if(!k1){while(!k1);m=1;}}
if(!k2){j=1;delay(1000);if(!k2){while(!k2);m=2;}}
if(!k3){j=1;delay(1000);if(!k3){while(!k3);m=3;}}
if(!k4){j=1;delay(1000);if(!k4){while(!k4);m=4;}}
if(!k5){j=1;delay(1000);if(!k5){while(!k5);m=5;}}
if(!k6){j=1;delay(1000);if(!k6){while(!k6);m=6;}}
if(!k7){j=1;delay(1000);if(!k7){while(!k7);m=7;}}
if(!k8){j=1;delay(1000);if(!k8){while(!k8);m=8;}}
}


if(j==1)
{
TR0=0;
DisplayData[0]=shu[m];
beep=~beep;
}

}
}

void t0() interrupt 1
{
static unsigned int i=0;
TH0=0xfc;
TL0=0x18;
i++;
if(i==1000)  //1s
{
i=0;
time--;
}
DisplayData[6]=shu[time/10];
DisplayData[7]=shu[time%10];

if(time==0)TR0=0;
}

路過

雞蛋

鮮花

握手

雷人

全部作者的其他最新日志

評(píng)論 (0 個(gè)評(píng)論)

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

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

返回頂部