9路抢答器C语言程序
- 提问者网友:时间却是纷扰
- 2021-04-27 01:52
- 二级知识专家网友:duile
- 2021-04-27 03:12
#include<reg51.h>
sbit ST_RST=P3^7;
unsigned char seg[10]={0x3f,0x06,0x5b,0x4f,0x66, //01234 0x6d,0x7d,0x07,0x7f,0x6f}; //56789
main()
{
P2=0x40; //-
while(ST_RST==1); //没有开始抢答?
loop1:
switch(P1)
{ // 7654 3210
case 0xfe: P2=seg[1]; goto loop2;break; //第1人按下 1111 1110
case 0xfd: P2=seg[2]; goto loop2;break; //第2人按下 1111 1101
case 0xfb: P2=seg[3]; goto loop2;break; //第3人按下 1111 1011
case 0xf7: P2=seg[4]; goto loop2;break; //第4人按下 1111 0111
case 0xef: P2=seg[5]; goto loop2;break; //第5人按下 1110 1111
case 0xdf: P2=seg[6]; goto loop2;break; //第6人按下 1101 1111
case 0xbf: P2=seg[7]; goto loop2;break; //第7人按下 1011 1111
case 0x7f: P2=seg[8]; goto loop2;break; //第8人按下 0111 1111
default: P2=0x40; //-
}
goto loop1;
loop2:
if(ST_RST==0) goto loop1;//复位
goto loop2;
}
以上是我以前写的C语言,用在单片机上。