基于51单片机的6路抢答器(3)

2019-01-12 16:32

原程序

#include #define uint unsigned int #define uchar unsigned char

/*-----------------------------------------------------------

共阳极0-9的数码管段码

------------------------------------------------------------*/ unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xc0};

/*----------------------------------------------------------- 变量定义

------------------------------------------------------------*/ sbit start=P3^6; sbit reset=P3^7; sbit key1=P1^0; sbit key2=P1^1; sbit key3=P1^2; sbit key4=P1^3; sbit key5=P1^4; sbit key6=P1^5; sbit key7=P1^6; sbit key8=P1^7; sbit jia=P3^4; sbit jian=P3^5;

bit action = 0;

uchar second=10,a[7]={0}; uchar timer0_count = 0;

uchar number=0;

8

3.2uchar number_display = 0; uchar k;

/*----------------------------------------------------------- 延时函数

------------------------------------------------------------*/ void delay(uint z) { uint x,y; for(x=z;x>0;x--)

for(y=120;y>0;y--);

}

/*----------------------------------------------------------- 显示函数

------------------------------------------------------------*/ void display(uchar number,uchar second) {

P2 = 0x01;

P0 = table[second]; delay(1);

P2 = 0x02; P0 = table[number]; delay(1);

P2 = 0x04; P0 = table[a[0]]; delay(1);

P2 = 0x08;

P0 = table[a[1]];

9

delay(1);

P2 = 0x10;

P0 = table[a[2]]; delay(1);

P2 = 0x20; P0 = table[a[3]]; delay(1);

P2 = 0x40; P0 = table[a[4]]; delay(1);

P2 = 0x80; P0 = table[a[5]]; delay(1);

}

/*----------------------------------------------------------- 抢答开始按键检测函数

------------------------------------------------------------*/ void start_keyscan() {

void fengling(); while(start == 0) {

key7=0; display(number_display,second); if(start == 1)

{

10

key7=1; action = 1; TR0 = 1;

} }

}

/*----------------------------------------------------------- 抢答者按键检测函数

------------------------------------------------------------*/ uchar key_scan8() { if(key1 == 0) { delay(8); if(key1 == 0) { number = 1;

number_display = number;

}

}

if(key2 == 0) { delay(8); if(key2 == 0) { number = 2;

number_display = number;

}

11

}

if(key3 == 0) { delay(8); if(key3 == 0) { number = 3;

number_display = number;

}

}

if(key4 == 0) { delay(8); if(key4 == 0) { number = 4;

number_display = number;

}

}

if(key5 == 0) { delay(8); if(key5 == 0) { number = 5;

number_display = number;

}

12


基于51单片机的6路抢答器(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:张朝辉毕业设计论文 - 图文

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

马上注册会员

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