标题:
大神们,想知道程序为什么无法实现六路抢答器的功能,谢谢
[打印本页]
作者:
77777770
时间:
2023-12-20 14:40
标题:
大神们,想知道程序为什么无法实现六路抢答器的功能,谢谢
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar duan[]={0x06,0x5B,0x4F,0x66,0x6D,0x7D};
uchar wei[]={0x80,0x40,0x20,0x10,0x08,0x04};
uchar flag=1;
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit k5=P3^4;
sbit k6=P3^5;
sbit fuwei=P3^6;
sbit beep=P2^0;
void Delay7ms()
{
unsigned char i, j;
i = 82;
j = 179;
do
{
while (--j);
} while (--i);
}
void delay(uint i)
{
while(i--);
}
void PaoMa()
{
uint i,j;
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(flag==0)break;
P0=~wei[j];
P1=duan[i];
delay(10000);
}
}
}
void SMG_XS(uint i)
{
uchar j,m=10;
for(j=0;j<3;j++)
{
while(m--)
{
beep=1;
delay(10);
beep=0;
delay(10);
}
P1=duan[i];
P0=0x03;
delay(60000);
}
for(j=0;j<6;j++)
{
while(m--)
{
beep=1;
delay(10);
beep=0;
delay(10);
}
P0=0xff;
delay(50000);
P1=duan[i];
P0=~wei[i];
delay(50000);
}
}
void int0()
{
TMOD=0X01;
TH0=-50000/256;
TL0=-50000%256;
ET0=1;
TR0=1;
EA=1;
}
void int0_zd() interrupt 1
{
TH0=-50000/256;
TL0=-50000%256;
if(fuwei==0)
{Delay7ms();
if(fuwei==0)
{
flag=1;
while(!fuwei);
}
}
if(flag==1)
{
if(k1==0)
{Delay7ms();
if(k1==0)
{
flag=0;
SMG_XS(0);
while(!k1);
}
}
if(k2==0)
{Delay7ms();
if(k2==0)
{
SMG_XS(1);
flag=0;
}
}
if(k3==0)
{Delay7ms();
if(k3==0)
{
SMG_XS(2);
flag=0;
}
}
if(k4==0)
{Delay7ms();
if(k4==0)
{
SMG_XS(3);
flag=0;
}
}
if(k5==0)
{Delay7ms();
if(k5==0)
{
SMG_XS(4);
flag=0;
}
}
if(k6==0)
{Delay7ms();
if(k6==0)
{
SMG_XS(5);
flag=0;
}
}
}
}
void main()
{
int0();
while(1)
{
if(flag==1)
{
PaoMa();
}
}
}
复制代码
作者:
lkc8210
时间:
2023-12-20 15:01
没报错吗?
2023-12-20_150027.png
(5.8 KB, 下载次数: 55)
下载附件
2023-12-20 15:01 上传
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1