基于单片机实现的4路抢答器设计内容摘要:

ei2=P1^1。 sbit Been=P1^2。 sbit AN1=P3^3。 sbit AN2=P3^4。 sbit AN3=P3^5。 sbit AN4=P3^6。 sbit AN5=P3^7。 sbit D1=P1^3。 sbit D2=P1^4。 sbit D3=P1^5。 sbit D4=P1^6。 sbit D5=P1^7。 unchar table[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f}。 int i,num=9,num1=0,t,t1,Person=0,flag=0,flag1=0,flag2=0,kz=0。 void delay(unint z) { unint x,y。 for(x=z。 x0。 x) for(y=55。 y0。 y)。 } void All_Init(void) //定时器的初始化 { 河 北 工 程 大 学 科 信 学 院 6 TMOD=0x01。 TH0=(655361000)/256。 TL0=(655361000)%256。 TR0=1。 EA=1。 ET0=1。 } void Display(int x,int y) //数码管显示 { wei1=0。 P2=table[x]。 //显示选手 delay(20)。 wei1=1。 wei2=0。 P2=table[y]。 //显示倒计时 delay(20)。 wei2=1。 } void Deal_Number(void) //数据处理 { int ge。 ge=num。 Display(Person,ge)。 河 北 工 程 大 学 科 信 学 院 7 } void AnJian(void) //按键检测 { /**************选手按键 *****************/ if(flag1==1) { if(AN1==0) { delay(15)。 if(AN1==0) { while(!AN1)。 Person=1。 TR0=0。 TR1=1。 flag=0。 flag1=0。 flag2=1。 D1=0。 D5=0。 } } if(AN2==0) { delay(15)。 河 北 工 程 大 学 科 信 学 院 8 if(AN2==0) { while(!AN2)。 Person=2。 TR0=0。 TR1=1。 flag=0。 flag1=0。 flag2=1。 D2=0。 D5=0。 } } if(AN3==0) { delay(15)。 if(AN3==0) { while(。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。