您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页十路抢答器

十路抢答器

来源:爱问旅游网


#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

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