- 定义中断初始化函数,代码如下:
void init(void) { EX0=1; ET0=1; EX1=1; ET1=1; EA=1; }
- 定义9秒倒计时函数,用的是空跑延迟的方法,想用定时器的可以自己改,具体代码如下:
void countdown(){ int i; for(i=9;i>0;i-- ){ P1=~seg[i]; //用的共阳极数码管,数组用了共阴极的所以要非,用的延迟函数,没有用定时器 delay(1000); }
-
设置外部中断0的函数,因为外部中断0的优先级默认比1高,所以不设置优先级了,使用外部中断0来接裁判的复位开始按钮,实现裁判按下后开始9秒倒计时,然后外部中断1才能响应抢答,具体代码如下:
void int0() interrupt 0 { EA=0; EX1=1; num=0; countdown(); EA=1; }
- 八个选手都通过外部中断1来抢答,所以用了与门判断,实现1人抢答后别的选手按按钮无效,具体代码如下:
void int1() inte
8路抢答器,有裁判复位
最新推荐文章于 2024-04-25 12:25:04 发布