哈鲁咕噜
#include<>#defineuint unsigned int#defineuchar unsigned charsbitspeaker = P2^7; sbit key0 =P1^0; sbit key1 =P1^1;sbit key2 =P1^2; sbit key3 =P1^3;sbit key4 =P1^4; sbit key5 =P1^5;sbit key6 =P1^6; sbit key7 =P1^7; ucharled[8]={0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80};voiddelay_1ms(uint t){uchar m,n;for(m=t;m>0;m--)for(n=330;n>0;n--);}bitiskeyinput() //判断是否有按键闭合{if((P1 & 0xff) ==0xff ) //屏蔽高4位(列线),只检测低4位(行线)return 0; //没有键闭合,返回0elsereturn 1; //有键闭合,返回1}ucharkey_identify() //识别键号{uchar key;if( key0==0 )key=0;if(key1==0 )key=1;if( key2==0 )key=2;if( key3==0 )key=3;if( key4==0 )key=4;if( key5==0 )key=5;if( key6==0 )key=6;if( key7==0 )key=7;return key; //输出键号}voidkeyprocess(uchar keynum){uint i;P0 = led[keynum];i=500;while(i--){speaker = 0;delay_1ms(10);speaker = 1;}}void main(){uchar keynum;P0 = 0xFF; while(1){while (!iskeyinput() ); //如果没有键,则等待delay_1ms(10); //去除键抖动if(iskeyinput() ) //当前有按键,需要识别按键并且等待键盘松开{keynum= key_identify(); //识别键号keyprocess(keynum); while(1); //等待复位} }}
8路抢答器,这种题目,在百度上真是泛滥成灾了,随便一搜就能搜到一大堆,有仿真图和程序全部资料的。或者百度文库里也同样可以搜索到,还是毕业论文,更是详细。 下图是
网上有许多的,可找个适合你的
有一个绝对适合你论文的部分:2.实验原理 智力竞赛抢答器用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成, 采用单片机AT89C51,它是
留个方式 我做过的
进我空间有答案,这东西嘛,很义贼。