基于单片机八路抢答器课程设计Word文件下载.docx
- 文档编号:6221526
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:22
- 大小:1.07MB
基于单片机八路抢答器课程设计Word文件下载.docx
《基于单片机八路抢答器课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机八路抢答器课程设计Word文件下载.docx(22页珍藏版)》请在冰点文库上搜索。
四.设计小组成员
五.指导老师
涂立(副教授)、李旎(讲师)
六.设计课题
基于单片机八路抢答器
七.基本思路与关键思路的解决
1.基本思路
(1)用key0~key7分别表示八个按键,与按键的编号相对应的号码为1~8。
用k1、k2表示两个独立按键,用来控制抢答的开始和系统清零。
抢答器具有数据锁存和显示的功能。
抢答开始后,若有抢答按键被按下,锁存器就锁存相应的编号,并在LED数码管上显示该编号,同时扬声器给出鸣叫声提示。
抢答实行优先锁存,优先选手的编号一直保持到支持人将系统清零为止。
如果在一定的时间内没人抢答,系统清零,表示抢答无效。
(2)实验步骤
1.打开入Keil软件后,建立一个新工程单击【Project】下拉菜单中的【Newproject...】选项,如图1所示:
图1建立新工程截图
2.选择工程要保存的路径,输入工程名。
然后单击【保存】按钮。
工程建立后,此工程名变为024.uvproj。
如图2所示:
图2保存工程截图
3.单击保存按钮后,会弹出一个对话框,要求用户选择单片机的型号,可以根据用户使用的单片机来选择。
KeilC51几乎支持所有的51内核的单片机,在这里选择Atmel的AT89C52,如下图3所示,选择后单击保存。
图3选择单片机型号截图
4.完成上一步骤后,窗口界面如图4所示:
图4添加单片机后的窗口界面截图
到此为止,还没有建立好一个完整的工程,虽然工程名有了,但工程当中还没有任何文件及代码,接下来添加文件及代码。
5.单击【File】菜单中的【New】菜单项,或单击界面上的快捷图标。
如下图5、6所示:
图5添加文件截图
图6添加文件后的窗口界面截图
此时光标在编辑窗口闪烁,可以输入用户的应用程序,但此时这个新建文件与刚才建立的工程还没有直接的联系,单击图标
,窗口界面如图7所示:
图7保存文件截图
6.回到编辑界面,单击【Target1】前面的“+“号,然后在【SourceGroup1】选项上单击右键,弹出如图8所示菜单。
然后选择【AddFilestoGroup‘SourceGroup1’】菜单项,对话框如图9所示:
图8将文件加入工程的菜单截图
图9选中文件后的对话框截图
选中【024.c】,单击【Add】按钮,再单击【Close】按钮,然后再单击【SourseGroup1】前面的“+“号,屏幕窗口如图10所示:
图10将文件加入工程后的屏幕截图
接着在编辑窗口编写然后编译调试。
如图11所示:
图11编译调试程序无误后界面截图
7.在编译调试程序无错误、无警告后,把文件转换成HEX文件。
点击【Preject】下拉菜单找到【OptionforTarget‘target1’】。
如图12所示:
图12转换hex文件1
8.单击【OptionforTarget‘target1’】,界面会出现如图13所示对话框。
在Eprom和Ram后面的框中填入相应的数据(也可不进行填写),然后单击Output选项出现如图14所示界面。
用鼠标左键单击
CreatHEXFi:
前面的方框,这时方框中会出现一个对号,如图15所示。
然后点击确定对话框就会消失,此时文件就转化成HEX文件。
图13转换hex文件2
图14转换hex文件3
图15转换hex文件4
9.用40针排线把DP-51PRO试验仪(如下图16)上的A1区J76接口与A2区J79接口相连,然后使用导线把A2区的J61接口与D1区的J52接口相连。
再用导线把A2区的J58的RXD,TXD与A2区的J53的KEY1,KEY2相连,最后用导线把A2区的J58的INTO与D4区的J8的任意一接口相连。
10.生成HEX文件后,然后按原理图连接线路,再到试验箱上进行实验。
打开DPFlash软件,会出现如图17所示窗口。
再在文件下拉菜单中单击装载,装载完成后,点击编程,就会出现如图18、19所示窗口。
完成后就可以在实验箱上进行相应的操作。
图17程序烧制图1
图18程序烧制图2
图19烧制完成图
2.关键问题及解决方法
如何检测有选手按下按键,并显示出来?
首先把P3口全部置1,然后再对P3口采样,将采样值与初值1进行与运算,然后将运算结果全部取反,如果最后结果不为0表明有选手按下按键。
然后通过对P3口的值进行循环右移,每移一次就加1(m加1,m的最终结果就是选手号),直到P3口的值为0时右移结束(至此解决了是哪位选手按下按键)。
显示通过发光二极管按一定的排序,通过单片机芯片将选手号转换为点亮相应数字所要亮的数码管的信息输到锁存器,然后再到发光二极管
八.算法及流程图
1.系统流程图如图20
图20系统流程图
2.原理电路图如图21
图21原理电路图
3.元件清单如表1
表1元件清单表
元件数量型号大小
PC机一台
40引脚单片机一个
单位数码管一个
74HC573(锁存器)一个
独立按键二个
矩阵键盘一组
电容三个10pf
电阻一个10k
排阻一个10k
晶振一个11.0592MHZ
九.调试过程中出现的问题及相应解决方法
1.调试时刻蜂鸣器未响,蜂鸣器坏了,换一个蜂鸣器,蜂鸣器正常发声。
情况正常时:
接上电源,发光二极管全部发光,蜂鸣器响。
十.课程设计心得体会
通过此次课程设计,我们受益甚多。
不仅让我们了解到团队力量的强大,而且让我们更深刻地认识到团队精神的重要性。
理论与实践相结合,让我们意识到知识的乐趣性。
从这次课程设计中,让我们懂得了什么是学以只用,只有真正理解所学的知识,才能正确运用。
人生最大的错误不是犯错误,而是在错误中一错再错。
在此次课程设计中,我们发现了自己的不足之处,最后在大家的共同努力下改正过来。
其实,要想学好单片机,只靠书本是完全不行的,只有高自己亲手去做实验,才能发现问题,才能学好。
一个人就算能力再强,若没有形成良好的团队意识,到头来也恐怕一事无成。
我非常庆幸自己有两个优秀的队友,在此次课程设计中,我组成员都尽职尽责。
十一.源程序
*******************************************************************************
//基于单片机的八路抢答器
//要求:
输入8路键信号,蜂鸣器发声,能显示所按键的代号,松开按键后系统复原。
#include<
reg52.h>
//52系列单片机头文件
intrins.h>
//包含函数所在的头文件
#defineuintunsignedint//宏定义
#defineucharunsignedchar
sbitkey0=P1^0;
//设置选手按键
sbitkey1=P1^1;
sbitkey2=P1^2;
sbitkey3=P1^3;
sbitkey4=P1^4;
sbitkey5=P1^5;
sbitkey6=P1^6;
sbitkey7=P1^7;
sbitbeep=P2^1;
//定义蜂鸣器端口
sbitk1=P2^2;
//总开始按键
sbitk2=P2^3;
//复位键,当一轮抢答完成时或一段时间无人抢答,按下此键
sbitdula=P2^6;
//申明U1锁存器的锁存端
uinti,j,k;
ucharnum,temp;
voiddisplay(uchar);
//声明显示号码函数
uintseek();
//声明搜索被按下的按键对应的号码的函数
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,0x7f};
//选用共阴极
voiddelayms(uintk)//延时程序,延时约k毫秒
{
for(i=k;
i>
0;
i--)
for(j=110;
j>
j--);
}
voidmain()
while
(1)
{
num=0;
while(num==0)
{
if(k1==0)//k1等于0表示按下了开始键
delayms(10);
//消抖
if(k1==0)//k1等于0表示按下了开始键
{
beep=1;
for(i=20;
i--)//蜂鸣器发声
beep=~beep;
if(num==0)//只显示第一个选手的号码(具有锁定功能)
num=seek();
//搜寻按下按键的选手
display(num);
//显示选手号
if(k2==0)//此时k2等于0表示无人抢答
num=1;
display(0);
}
}
}
if(k2==0)//此时k2等于0表示抢答完毕
}
uintseek()//搜寻第一个按下按键的选手号
P1=0xff;
temp=P1;
//读取P1口当前状态值赋给临时变量temp
temp=temp&
0xff;
//将temp与0xff进行与运算
if(temp!
=0xff)//说明有按键被按下
{//延时消抖操作
=0xff)
beep=1;
for(i=20;
temp=~temp;
for(i=8;
temp=_crol_(temp,1);
//搜索按下按键的选手号
if(temp==0)
break;
//提前结束此次循环
num++;
returnnum;
voiddisplay(uchar)//显示有权回答问题的选手号
dula=1;
//打开U1锁存器
P0=table[num];
//送入段选信号
dula=0;
//关闭U1锁存端
delayms(500);
参考文献
[1].张鑫,《单片机原理及运用》.电子工业出版社,2005
[2].程相波,卫安军,基于MCS-51单片机八路抢答器设计方法研究[J].北京工业职业技术学院学报,2007,
(2).
[3].马柯瀛,八路抢答器系统[J].华商,2007,(23).
[4].王冬梅,张建秋,基于单片机八路抢答器设计与实现.佳木斯大学学报,2009.
[5].张洪波,吴讯,卢洪武,应用单片机的八路抢答器设计.电子世界,2008.
[6].王文峰,数码显示八路抢答器的设计.井冈山学院学报,2000.
[7].康丽杰,康迪,基于单片机8路抢答器简单设计.信息系统工程,2010.
[8].丁文秋,八路抢答器。
电子制作,2001.
[9].赵宁,实用的集成电路八路抢答器.电子制作,2002.
[10].吴庆洲,对八路抢答器的几点修正.电子报,2003.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 八路 抢答 课程设计