Le Code est un micro - ordinateur à puce unique à trois voies, niveau limité, avec ou sans explication détaillée

Questions et réponses du rseoc 2021-12-30 06:08:19 阅读数:127

le code est micro ordinateur

#include "public.h"
#include "display.h"
#include "led.h"
#include "button.h"
#include "speaker.h"
u8 count=0; //20- Oui.1s
u8 flag_player=0; //0:Aucun joueur n'appuie sur
u8 flag_sta=0; //1:Appuyez sur la touche démarrer
u8 time_use=0; //Temps écoulé
void int_init() //Minuterie0Initialisation
{
EA=1;
ET0=1;
TMOD=0X01;
TH0=15536/256;
TL0=15536%256;
}
void deal_key() //Fonction de traitement des clés
{
u8 key=0;
key=key_scan(0);
switch(key)
{
case KEYSTA_PRESS: //Appuyez sur la touche démarrer
{
flag_sta=!flag_sta;
break;
}
case KEY1_PRESS:
{
if(flag_player==0)
flag_player=1;
break;
}
case KEY2_PRESS:
{
if(flag_player==0)
flag_player=2;
break;
}
case KEY3_PRESS:
{
if(flag_player==0)
flag_player=3;
break;
}
}
}
void timer0() interrupt 1 //Minuterie0Gestionnaire d'interruption
{
TH0=15536/256;
TL0=15536%256;
count++;
if(count==20) //Plein.1s
{
count=0;
time_use++;
if(time_use==10) //C'est l'heure.
{
TR0=0;
flag_player=0;
time_use=0;
led1=1;led2=1;led3=1;
}
}
}
void main()
{
int_init();
while(1)
{
delay_10us(2000);
deal_key();
if(flag_sta==0&&flag_player!=0) // Quelqu'un a répondu
{
alarm(2000);
}
else if (flag_sta==1&&flag_player!=0) // Réponse normale
{
TR0=1;
display(10-time_use); //Afficher le temps restant
switch(flag_player)
{
case 1:
{
led1=0;
break;
}
case 2:
{
led2=0;
break;
}
case 3:
{
led1=0;
break;
}
default:
{

 } } }else if(flag_sta){ display(time_use);}

}

}




Adopter les réponses:

Il passedelay_10us(); Temps d'attente
deal_key() La fonction détermine quel bouton l'utilisateur appuie Et voilà.flag_player Affectation.
Et ensuite décider lequel flag_player,Prends ça.led Les lumières sont allumées. .


版权声明:本文为[Questions et réponses du rseoc]所创,转载请带上原文链接,感谢。 https://primo.wiki/2021/12/202112271450310568.html