48-正版+基于单片机的无线八路抢答器设计(5)

2019-04-21 23:16

基于单片机的八路抢答器 21

3.2 程序代码

3.2.1 主程序 void main() {

init();

if(k==0) //主持人按下开始键 {

Timer(); delay(10); while(!k); while(1) {

dis(); m=0; n=0;

if(second==10){beep=1;delay(500);beep=0;} if(second==0) {

TR0=0;n=1; if(k==0)

{beep=1;delay(500);beep=0;second=29;TR0=1;m=1;} } if(n==0) {

if(k1==0) {delay(5);if(k1==0);while(!k1);t=1;} else if(k2==0) {delay(5);if(k2==0);while(!k2);t=2;} else if(k3==0) {delay(5);if(k3==0);while(!k2);t=3;} else if(k4==0) {delay(5);if(k4==0);while(!k2);t=4;} else if(k5==0) {delay(5);if(k5==0);while(!k2);t=5;} else if(k6==0) {delay(5);if(k6==0);while(!k2);t=6;} else if(k7==0) {delay(5);if(k7==0);while(!k2);t=7;} else if(k8==0) {delay(5);if(k8==0);while(!k2);t=8;} else if(k==0) {delay(5);if(k==0);while(!k);t=0;i=0;second=29;beep=1;delay(500);beep=0;TR0=1;}

} while(t) {

if(m==0) //开关,保证程序只执行一次 {

switch(t) {

case 1: {

基于单片机的八路抢答器 22

TR0=0;i=1;second=0;beep=1;delay(500);beep=0;

a1=0;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break; } case 2: {

TR0=0;i=2;second=0;beep=1;delay(500);beep=0;

a2=0;a1=1;a3=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break; } case 3: {

TR0=0;i=3;second=0;beep=1;delay(500);beep=0;

a3=0;a1=1;a2=1;a4=1;a5=1;a6=1;a7=1;a8=1;m=1;break; } case 4: {

TR0=0;i=4;second=0;beep=1;delay(500);beep=0;

a4=0;a1=1;a2=1;a3=1;a5=1;a6=1;a7=1;a8=1;m=1;break; } case 5: {

TR0=0;i=5;second=0;beep=1;delay(500);beep=0;

a5=0;a1=1;a2=1;a3=1;a4=1;a6=1;a7=1;a8=1;m=1;break; } case 6: {

TR0=0;i=6;second=0;beep=1;delay(500);beep=0;

a6=0;a1=1;a2=1;a3=1;a4=1;a5=1;a7=1;a8=1;m=1;break; } case 7: {

TR0=0;i=7;second=0;beep=1;delay(500);beep=0;

a7=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a8=1;m=1;break; } case 8: {

TR0=0;i=8;second=0;beep=1;delay(500);beep=0;

基于单片机的八路抢答器 23

a8=0;a1=1;a2=1;a3=1;a4=1;a5=1;a6=1;a7=1;m=1;break; } } }

if(a1==0) //选手1的分数 { second=score1; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score1+=1;if(score1==99)score1=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score1-=1;if(score1==0)score1=60;} dis(); }

else if(a2==0)

{ second=score2; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score2+=1;if(score2==99)score2=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score2-=1;if(score2==0)score2=60;}

dis(); }

else if(a3==0)

{ second=score3; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score3+=1;if(score3==99)score3=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score3-=1;if(score3==0)score3=60;}

second=score3; dis(); }

else if(a4==0)

基于单片机的八路抢答器 24

{

second=score4; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score4+=1;if(score4==99)score4=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score4-=1;if(score4==0)score4=60;}

second=score4; dis(); }

else if(a5==0) {

second=score5; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score5+=1;if(score5==99)score5=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score5-=1;if(score5==0)score5=60;}

second=score5; dis(); }

else if(a6==0) {

second=score6; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score6+=1;if(score6==99)score6=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score6-=1;if(score6==0)score6=60;}

second=score6; dis(); }

else if(a7==0) {

second=score7;

基于单片机的八路抢答器 25

dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score7+=1;if(score7==99)score7=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score7-=1;if(score7==0)score7=60;}

second=score7; dis(); }

else if(a8==0) {

second=score8; dis();

if(m1==0)

{delay(5);if(m1==0);while(!m1);beep=1;delay(100);beep=0;score8+=1;if(score8==99)score8=60;} else if(m2==0) {delay(5);if(m2==0);while(!m2);beep=1;delay(100);beep=0;score8-=1;if(score8==0)score8=60;}

second=score8; dis(); }

if(k==0){i=0;t=0;second=29;beep=1;delay(500);beep=0;TR0=1;} while(!k);

} } } }

3.2.2 定时器子程序 void Timer() {

TMOD|=0x01;

TH0=0xd8; //初值55536,计数10000次,每次1US,总计10ms TL0=0xf0;

IE=0x82; //这里是中断优先级控制EA=1(开总中断),ET0=1(定时器0允许中断),这里用定时器0来定时 TR0=1; }


48-正版+基于单片机的无线八路抢答器设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:好大学在线《法与社会》习题答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: