标题:
单片机八位抢答器,请大家帮忙看看程序哪里有错误?
[打印本页]
作者:
24和8
时间:
2020-12-29 09:56
标题:
单片机八位抢答器,请大家帮忙看看程序哪里有错误?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
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 k_1=P3^0;//主持人开始/结束按钮
sbit k_2=P3^1;//按下系统清零
sbit song=P3^7;//蜂鸣器
uint biaozhi;
unsigned char led[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//数码管0-9段码
void delay(uint t)//输入数据延时
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<600;j++);
}
void disp(uint a,uint b)//输入数字显示内容(十位,个位) 时间用途
{
P2=0xfe;
P0=led[a];
p2=0xfd;
P0=led[b];
delay(1000);
}
void disp2(uint a,uint b,uint c)//输入数字显示内容(十位,个位) 号牌用途
{
uint a,b,c;
P2=0xfc;
P0=led[a];
p2=0xfb;
P0=led[b];
delay(c*1000);
}
void clear()
{
p2=0xf0;
p0=led[0];
}
void keys() //抢答程序
{ /*处于允许抢答状态,且有人按下抢答按钮 抢答之后显示数值,改变标志终止抢答*/
//暂时未接蜂鸣器
if(k1==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,1,1000);}
if(k2==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,2,1000);}
if(k3==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,3,1000);}
if(k4==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,4,1000);}
if(k5==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,5,1000);}
if(k6==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,6,1000);}
if(k7==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(0,7,1000);}
if(k8==0&&k1==0){song=0;delay(1);biaozhi=1;disp2(,8,1000);}
}
void time60()//60秒倒计时程序
{
uint a=5,b=9;
for(a>=0;a--){
for(b<0;b--)
disp(1,a);
disp(2,b);
delay(1000);
}
}
void ea()//显示开机界面
{
unsigned char ci=0;
while(ci<200)//循环200次(持续一段时间)
{
P2=0xfe; //位选1
P0=0x77; //显示A
delay(5);
P2=0xfd; //位选2
P0=0x79; //显示E
delay(5);
ci++;
}
}
void main(){
uint d=10;
ea();
if(K1==0)//主持人按下开始
{
for(d>0;d--)
{
disp(1,d);//10秒倒计时
key();//选手抢答
if(biaozhi==1)
{
if (k2==0)//如果按下清零按钮.系统清零
{
clear();
}
time60();
}//如果选手抢答,抢答成功进入60秒倒计时
else if(biaozhi!=1)
{
ea();
}
}
}
复制代码
//请问哪儿出错了啊
作者:
麦麦123
时间:
2020-12-29 12:22
最好进行单步调试,这样更容易看出来哦
作者:
songxia8013
时间:
2020-12-29 22:28
这样是看不出来的,可以根据仿真或实物的现象去找错误点!
作者:
fightfit
时间:
2020-12-30 11:09
你这有电路图或者仿真图吗?最好发一下,看看你都用了哪些引脚,有没有进行设置。我这也有一份程序 ,要是需要我可以发给你。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1