《2022年单片机六路抢答器C语言程序.pdf》由会员分享,可在线阅读,更多相关《2022年单片机六路抢答器C语言程序.pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机六路数显计时抢答器c 语言程序 #include #define uint unsigned int#define uchar unsigned charunsigned char code table=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90,0 xc0;sbit start=P36;sbit reset=P37;sbit key1=P10;sbit key2=P11; sbit key3=P12;sbit key4=P13;sbit key5=P14;sbit key6=P15;sbit key7=P16;
2、sbit key8=P17;sbit jia=P34;sbit jian=P35;bit action = 0;uchar second=10,a7=0;uchar timer0_count = 0;uchar number=0;uchar number_display = 0;uchar k;void delay(uint z)uint x,y;for(x=z;x0;x-)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 8 页 - - - - - - - - - - for(y=120;y0
3、;y-);void display(uchar number,uchar second) P2 = 0 x01;P0 = tablesecond; delay(1);P2 = 0 x02;P0 = tablenumber;delay(1);P2 = 0 x04;P0 = tablea0;delay(1);P2 = 0 x08;P0 = tablea1;delay(1);P2 = 0 x10; P0 = tablea2;delay(1);P2 = 0 x20;P0 = tablea3;delay(1);P2 = 0 x40;P0 = tablea4;delay(1);P2 = 0 x80;P0
4、= tablea5;delay(1); void start_keyscan()精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 8 页 - - - - - - - - - - void fengling();while(start = 0) key7=0;display(number_display,second);if(start = 1) key7=1;action = 1;TR0 = 1; uchar key_scan8()if(key1 = 0)delay(8);if(key1 = 0
5、)number = 1;number_display = number;if(key2 = 0)delay(8);if(key2 = 0)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 8 页 - - - - - - - - - - number = 2;number_display = number;if(key3 = 0)delay(8);if(key3 = 0)number = 3;number_display = number;if(key4 = 0)delay(8);if(key4
6、= 0)number = 4;number_display = number;if(key5 = 0)delay(8);if(key5 = 0)number = 5;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 8 页 - - - - - - - - - - number_display = number;if(key6 = 0)delay(8);if(key6 = 0)number = 6;number_display = number; if(number_display != 0) r
7、eturn number_display;elsereturn 0; void reset_keyscan()if(reset = 0)delay(8);if(reset = 0)number_display = 0; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 8 页 - - - - - - - - - - second=10; void main()TMOD=0 x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0
8、=0;P2=0 x00; while(1) reset_keyscan();start_keyscan(); if(jia=0&anumber-10) delay(10); while (jian=0)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 8 页 - - - - - - - - - - display(number_display,second);anumber-1=anumber-1-1; while(action) while(!key_scan8() display(numbe
9、r_display,second);if(second = 0)second = 10;break;TR0 = 0;key7=0;delay(80);display(number_display,second); key7=1;action = 0;break;display(number_display,second); void timer0() interrupt 1精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 8 页 - - - - - - - - - - TH0=(65536-50000)/256;TL0=(65536-50000)%256;timer0_count +;if(timer0_count = 20) second -;timer0_count = 0; if(second=0) key7=0; delay(60); key7=1; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 8 页 - - - - - - - - - -
限制150内