资源描述:
《东北大学秦皇岛分校电子信息系》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、东北大学秦皇岛分校电子信息系单片机课程设计抢答显示器专业名称通信工程班级学号学生姓名指导教师高军设计时间7课程设计任务书专业:通信工程学号:4090813学生姓名(签名):设计题目:抢答显示器一、设计实验条件KeiluVision2,proteus7professional仿真软件二、设计程序和实现功能抢答显示器由8个独立按键组成,可以按要求搭配不同颜色LED彩灯。选手从1到8号,大屏幕显示七段数码管。选手抢答成功彩灯亮起,屏幕中显示选手的号码。三、设计报告的内容1.设计主体51单片机2独立按键子程序(1)独立式键盘结构独立式键盘
2、的按键相互独立,每个按键接一根I/O口线,一根I/O口线上的按键工作状态不会影响其它I/O口线的工作状态。因此,通过检测I/O口线的电平状态,即可判断键盘上哪个键被按下。7(2)延迟可以消去抖动在第一次检测到有键按下时,执行一段延时10ms的子程序,之后,再次检测该键的电平状态,如果该键电平仍保持闭合状态电平,则确认为真正有键按下。否则,认为无键按下;同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而可消除抖动的影响。73七段数码管显示LED显示器中的发光二极管共有两种连接方法:(a)共阳极接法:各发光二极管的阳极连接在一
3、起,接到数码管的位控端(公共端),再接+5V;各发光二极管的阴极分别连接到数码管的段控端(a~g、dp)。(b)共阴极接法:各发光二极管的阴极连接在一起,接到数码管的位控端(公共端),再接地;各发光二极管的阳极分别连接到数码管的段控端(a~g、dp)。、四、设计的原理1.电路原理图:72程序流程图:延迟子程序主函数3、程序如下:#include#defineucharunsignedchar;#defineuintunsignedint;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,
4、0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管数据表ucharcodeledtable[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};7//发光二极管数据表uchari,j,z,temp,num;voiddelay(z)//延时子程序{for(j=z;j>0;j--)for(i=110;i>0;i--);}voidmain(){P0=0x00;//灭数码管P1=0xff;//P1口置位while(1){temp=P1;//P1口的状态送给变量temptemp=te
5、mp&0xff;//与全1做与运算,看是否有键按下while(temp!=0xff)//如果有键按下则进入循环{delay(5);//消除抖动temp=P1;//再次读入P1口的状态temp=temp&0xff;while(temp!=0xff)//再次判断是否有键按下{temp=P1;//读回P1的按键情况switch(temp){case0xfe:num=0;//第一个键按下break;case0xfd:num=1;break;case0xfb:num=2;break;case0xf7:num=3;break;case0xef
6、:num=4;break;case0xdf:num=5;break;case0xbf:num=6;break;case0x7f:num=7;//第八个键按下7break;}while(temp!=0xff)//松手检测{temp=P1;temp=temp&0xff;}P0=table[num+1];//数码管显示P3=ledtable[num];//发光二极管点亮delay(500);}}}}4.实验仿真结果:7四.总结经历过三天多的专研,终于调出了结果。感到无比的开心。从课设中学到了好多好多。主要了解了独立键盘的设计和控制彩灯的
7、电路、以及掌握了七段数码管的显示。期间本来想用汇编语言调试但是编出的程序果断说不支持数据类型,导致我无从下手修改,所以图书馆借书和从网上自己学习了下单片机的C语言程序。期间也是经历了很多错误,很多障碍。总之我学到了很多,也充分认识到了自己的不足。7