基于STC89C51的抢答器设计 - 图文(4)

2019-04-02 13:47

H3=1; }

void qushu()

{ shi=input/10; ge=input;

}

void keyscan()

{ if(RESET==0) { delay(200);

FUWEI();

n=1;

}

if(n)

if(START==0)

{ A=0;

delay(500); A=1; TR0=1; m=1;

n=0; }

if(n) { if(ADD==0) { delay(200); input++;

} if(DEC==0) {

delay(200); 菏泽学院本科微机原理与接口技术课程设计

//关三位数码管 //拆分任意两位数函数 //取整 //取余

//键盘扫描函数

//复位操作,无论何时,都可以复位,节省时间 //延时200毫秒,防止按键机械振动引起的误差 //系统复位

//复位后开启主持人其他权限

//n为1时,表示还没开始抢答,可以操作

//开始抢答 需要自锁

//报警500毫秒

//开定时器 //开启选手抢答权限

//自锁,有效防止在选手答题时主持人误操作

//调整时间函数,抢答前可操作

//防止按键抖动重复加一

//时间加一

15

基于AT89C51的智能抢答器的设计

{ }

input--;

//时间减一

} }

//主持人启动START按钮后,开始检查选手按钮

if(m)

}

if(P1!=0xFF) //如果有选手抢答,则找出他的编号 {

temp=P1;

m=0; //自锁,此后不再检测选手抢答键,直到主持人启动 START. switch(temp) { }

case 0xFE:bai=1; //一号选手答题 case 0xFD:bai=2; //二号选手答题 case 0xFB:bai=3;

//三号选手答题

break; break; break;

case 0xF7:bai=4; //四号选手答题 break; }

//关定时器,剩余时间不再减少,显示剩余时间

case 0xEF:bai=5; case 0xDF:bai=6;

//五号选手答题 //六号选手答题

break; break;

case 0xBF:bai=7; //七号选手答题 case 0x7F:bai=8;

//八号选手答题

break; break;

TR0=0;

//中断方式一服务程序

16

菏泽学院本科微机原理与接口技术课程设计

void timer() interrupt 1 { }

//延时函数,利用系统计算时间延时,不占用计时器 void delay( uint z) { }

uint x, y;

for(x=100;x>0;x--) for(y=z;y>0;y--); TH0=(65536-46080)/256; TL0=(65536-46080)%6; t++; if(t==20) { } { }

t=0; input--;

//如果没人回答,自动复位 //系统复位 //刷新显示

//然后把t清零重新再记20次 //减一秒

//每累加一次,判断是否到20. //如果到了20次,说明1秒时间到

//重装初值

if(input==0)

FUWEI(); Qushu ();

17


基于STC89C51的抢答器设计 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:TRIM FROM工程作业指导书(SML)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: