您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页四人抢答器(C语言)

四人抢答器(C语言)

来源:意榕旅游网
g51.h>

#include

unsigned char code tab[15]={0xfc,0x60,0xda,0xf2,0x66,0xb6,

0xbe,0xe0,0xfe,0xf6};//段选

unsigned char key;

//存放键盘扫描结果

unsigned int a=0,b=0,ting=0,stop=1,bi; unsigned int e=0,f=0,g=0,h=0,we=0; void xian();

/* 键盘程序 延时程序 */ void dlms(void) {unsigned char i; for(i=100;i>0;i--);} delay(unsigned char x) {while(x--)dlms();} void dl0ms(unsigned char s) {unsigned int o,p; while(s--)

{for(o=0;o>2000;o++) for(p=0;p>1000;p++);} }

/* 键盘扫描程序 */ unsigned char kbscan(void) {unsigned scode ,recode; P1=0xf0;

if((P1&0xf0)!=0xf0) {delay(50);

if((P1&0xf0)!=0xf0) {delay(2); scode=0xfe;

while((scode&0x10)!=0) {P1=scode;

if((P1&0xf0)!=0xf0) {recode=(P1&0xf0)|0x0f; return ((~scode)+(~recode));} else scode=(scode<<1)|0x01;} }} return 0;}

/* 检测键盘代码程序 */ void pan() {switch(key)

{ case 0x81: ting=!ting,b=0,a=9;break; //倒记时 case 0x11: stop=0;break; // 停止

case 0x48: if((ting)&&(a>0)){b=4,ting=0,we=1;} break; case 0x44: if((ting)&&(a>0)){b=3,ting=0,we=1;} break; case 0x42: if((ting)&&(a>0)){ b=2,ting=0,we=1;}break; case 0x41: if((ting)&&(a>0)){b=1,ting=0,we=1;} break; case 0x28: if((we)&&(e<9)){e++;}; break; //各个 case 0x24: if((we)&&(f<9)){f++;}; break; //选手 case 0x22: if((we)&&(g<9)){g++;}; break; //加分 case 0x21: if((we)&&(h<9)){h++;}; break; } // } void jishi() {dl0ms(500);

if(a--==0){we=0,a=0;}dl0ms(500);} void xian() {unsigned char n; for(n=0;n<20;n++)

{P0=0x7f;P3=tab[a];delay(5);//P0位选,P3段选 P0=0xbf;P3=tab[b];delay(5); P0=0xf7;P3=tab[e];delay(5); P0=0xfb;P3=tab[f];delay(5); P0=0xfd;P3=tab[g];delay(5); P0=0xfe;P3=tab[h];delay(5);} }

void main() {while(stop) {if(kbscan())

{xian();

if(kbscan())key=kbscan(); while(kbscan()) xian();pan();}

if(ting){jishi(); dl0ms(500);} xian();dl0ms(500); } a=0,bi=e; if(biif(biif(bi{xian();}dl0ms(500); }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务