#include #define uint unsigned int #define uchar unsigned char ucharaa,bb,temp, nshi,nge,tshi, tge,num,key,time,i,j,timeq,timeh,time1,time2; sbitdula=P2^6; sbitwela=P2^7; sbitspk=P2^3; uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x40}; void delay(uint z); voidinit(); voidinit_(); ucharkeyscan(); void display (ucharnshi,ucharnge,uchartshi,uchartge); uchar translate(ucharnum,uchar time );//号数时间显示转换 void main() { init(); loop: init_(); /**********************************************************************/ while(1) { if(keyscan()==11)//抢答部分 1 { while(1) { num=keyscan(); if(num<=10) { TR0=1; while(1) { if(bb==20) { bb=0; timeq--; } if(timeq==5) spk=0; if(timeq==0) { spk=1; TR0=0; } translate(num,timeq); display(nshi,nge,tshi, tge); /***********************************************************************/ if(keyscan()==11) //回答部分 { TR0=1; while(1) { if(bb==20) { bb=0; timeh--; } if(timeh==5) spk=0; 2 if(timeh==0) { spk=1; TR0=0; } translate(num,timeh); display(nshi,nge,tshi, tge); if(keyscan()==12) { spk=1; goto loop; } } } if(keyscan()==12) { spk=1; goto loop; } } } } } /****************************************************************************/ if(keyscan()>0) //违规判断 { num=keyscan(); if(keyscan()<=10) { while(1) { translate(num,0); display(nshi,nge,tshi,tge); spk=0; if(keyscan()==12) { spk=1; goto loop; } } } } 3 /******************************************************************/ if(keyscan()==13) // 调时部分 { keyscan(); time1++; translate(0,time1); for(i=2;i>0;i--) for(j=110;j>0;j--) { display(nshi,nge,tshi,tge); if(keyscan()==12) { spk=1; goto loop; } } } if(keyscan()==14) { keyscan(); time1--; translate(0,time1); for(i=2;i>0;i--) for(j=110;j>0;j--) { display(nshi,nge,tshi,tge); if(keyscan()==12) { spk=1; goto loop; } } } if(keyscan()==15) { keyscan(); time2++; translate(0,time2); for(i=2;i>0;i--) for(j=110;j>0;j--) { display(nshi,nge,tshi,tge); 4 if(keyscan()==12) { spk=1; goto loop; } } } if(keyscan()==16) { keyscan(); time2--; translate(0,time2); for(i=2;i>0;i--) for(j=110;j>0;j--) { display(nshi,nge,tshi,tge); if(keyscan()==12) { spk=1; goto loop; } } } } } /*************************************************************/ void delay(uint z)//延时函数 { uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /****************************************/ void init()//初始化1 { aa=20; temp=0; time1=20; time2=30; bb=0; TMOD=0x01; 5 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; } /********************************************************/ void init_() //初始化2 { dula=1; P0=0x3f; dula=0; P0=0; wela=1; P0=0xf0; wela=0; timeh=time2; timeq=time1; } /*************************************************/ void timer0() interrupt 1//定时器T0模式1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; bb++; } /***************************************************/ uchar translate(ucharnum,uchar time)//显示转换 { nshi=num/10; nge=num%10; tshi=time/10; tge=time%10; return (nshi,nge,tshi,tge); } /***********************************************************/ 6 void display(ucharnshi,ucharnge,uchartshi,uchartge)//显示函数 { dula=1; P0=table[nshi]; dula=0; P0=0xff; wela=1; P0=0xfe; wela=0; delay(1); dula=1; P0=table[nge]; dula=0; P0=0xff; wela=1; P0=0xfd; wela=0; delay(1); dula=1; P0=table[tshi]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(1); dula=1; P0=table[tge]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(1); } /************************************************************/ ucharkeyscan() //键盘扫描函数 7 { P3=0xfe; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(5); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xee:key=1; break; case 0xde:key=2; break; case 0xbe:key=3; break; case 0x7e:key=4; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } } } P3=0xfd; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(5); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { 8 } case 0xed:key=5; break; case 0xdd:key=6; break; case 0xbd:key=7; break; case 0x7d:key=8; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } } P3=0xfb; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(5); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xeb:key=9; break; case 0xdb:key=10; break; case 0xbb:key=11; break; case 0x7b:key=12; break; } while(temp!=0xf0) { temp=P3; 9 temp=temp&0xf0; } } } P3=0xf7; temp=P3; temp=temp&0xf0; while(temp!=0xf0) { delay(5); temp=P3; temp=temp&0xf0; while(temp!=0xf0) { temp=P3; switch(temp) { case 0xe7:key=13; break; case 0xd7:key=14; break; case 0xb7:key=15; break; case 0x77: key=16; break; } while(temp!=0xf0) { temp=P3; temp=temp&0xf0; } } } return key; } /*************************************************************************/ 10 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务