欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机课程设计抢答器.docx

    • 资源ID:4889909       资源大小:454.21KB        全文页数:15页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机课程设计抢答器.docx

    1、单片机课程设计抢答器目 录1 前言 12 正文 12.1 抢答器的概述及制作要求 12.1.1 抢答器的概述 12.1.2 设计任务和要求 12.1.3 涉及知识点 12.2 单片机芯片的选择及模块性能分析 22.2.1 单片机芯片的选择 22.2.2 模块性能分析 22.3 电路设计 22.3.1 电路原理图 22.3.2 显示电路的设计 32.3.3 选手按键电路的设计 32.3.4 主持人按键电路的设计 42.4 系统程序设计 42.4.1 抢答器流程图 42.4.2 中断程序 52.4.3 主程序 52.5 仿真演练 73 致谢 94 参考文献 9前言 在知识竞赛中,特别是在做抢答题时

    2、,在抢答的过程中,为了更加确切的知道哪一组选手或哪一位选手先抢答到题,必须要有一个系统来完成这个任务。如果在实际的抢答中直接靠人的视觉或者听觉是很难判断出哪一组或哪一位选手先抢到题的。利用单片机编程来设计抢答器,可以使以上问题变得简单,容易解决,即使两组选手的抢答时间值相差几微妙,也能轻松的分辨出哪一组或哪一个选手先抢答到题的。本文主要介绍抢答器的工作原理和设计,以及他的实际用途。本系统采用89C51单片机作为整个控制核心。控制系统的三个模块为:显示模块、存储模块、抢答开关模块。该系统通过开关电路四个按键输入抢答信号;利用一个数码管来完成显示的功能;用按键来让选手进行抢答,经过单片机的处理后,

    3、在数码管上显示出是哪一组先抢答到题的,从而实现整个抢答过程。正文2.1 抢答器的概述及制作要求2.1.1 抢答器的概述随着我国经济和文化的高速发展,在很多公开竞争场合要求有公正的竞争裁判,比如科技竞赛、拍卖交易等,因此出现了抢答器这一高科技工具。抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较单一,特别是当抢答的路数太多时,实现起来很困难。在目前的市场上,普通抢答器要几百块钱,价格比较昂贵。因此我们设计了以单片机为核心的智能抢答器,不仅保留了原始抢答器的基本功能,同时又增加一些实用的功能,并简化了其电路结构。这样制作出来的抢答器电路简单、成本较低、操作方便、灵敏可靠、具有较高的实

    4、用推广价值。2.1.2 设计任务和要求 基于AT89C51单片机设计制作一个抢答器,具体要求如下:(1) 设计一个智力竞赛抢答器,可以同时供8名选手参加比赛,编号为18,各用一个按钮。(2) 给主持人设置一个控制开关,来控制系统的清零和抢答的开始。(3) 抢答器具有数据锁存功能、显示功能。抢答开始后,如果有选手按动抢答按钮,立即锁存编号,并在BCD数码管上显示选手的编号。此外,还要封锁输入电路,禁止其他选手抢答,最先抢答的选手的编号一直保持到主持人将系统清零为止。2.1.3 涉及知识点 本项目需要掌握和了解如下知识点:(1) +5V电源原理(2) 单片机复位电路工作原理(3) 按键电路的设计(

    5、4) 数码管特性及使用(5) AT89C51单片机功能及引脚排布(6) 单片机汇编语言级程序设计2.2 单片机芯片的选择及模块性能分析2.2.1 单片机芯片的选择 本次课设使用的是Atmel公司推出的AT89C51芯片,它是一种低功效、高性能的CMOS8位微控制器,具有8K可编程Flash存储器【1】。有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,2个16位可编程定时计数器,2个全双工串行通信口,片上Flash允许程序存储器在系统可编程,亦适用于常规编程器【2】。其将通用的.微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成

    6、本【3】。2.2.2 模块性能分析 模块主要分为AT89C51芯片、电源电路、主持人按键、选手按键和数码管显示等部分,下面对这几部分进行介绍:(1) 主持人按键使用一个常用按钮和一个电阻组成主持人按键的输入电路。按钮为自复式常开按钮开关,一般情况下输入端为高电平,当主持人按下按键时,输入低电平,系统将清零,抢答将重新开始。(2) 选手按键利用8个常开按钮开关和8个电阻组成抢答器的输入电路。按钮为自复式常开按钮开关,分别作为8位抢答按钮,一般情况下锁存器的输入端为高电平,当有选手按下按键时,输入低电平,数码管显示器上立即显示相应的选手编号。(3) 数码管显示BCD数码管只有4个引脚,要想显示数字

    7、编号,必须先对接收到的信号进行处理。我们将通过编程直接使用BCD数码管,以达到简化电路,节省成本的目的。2.3 电路设计2.3.1 电路原理图 根据以上的分析,我们设计出基于AT89C51单片机的抢答器电路原理图,工作原理为:电源电路为单片机提供标准+5V电源;单片机作为主控制器,根据输入信号对系统进行响应的控制;选手按下响应的按键后,提交输入信号给系统;数码管显示最先按下按键的选手的编号,直到主持人清零;主持人按下清零按键,数码管清零,系统重新开始进行抢答。 根据抢答器的基本功能,可以设计出如下的单片机外围电路:图2-3-1.1 总体设计框图图2-3-1.2 总体设计2.3.2 显示电路的设

    8、计 显示电路用了一个四段BCD数码管,它是共阴极的,由高电平点亮。可以直接接收AT89C51单片机传送的信号。图2-3-2 显示电路2.3.3 选手按键电路的设计 选手按键只要向系统提交一个按下的信息就够了,设计并不复杂,硬件电路简单。抢答器的选手按键输入电路如下:图2-3-3 选手按键电路2.3.4 主持人按键电路的设计 主持人按键只要向系统提交一个按下的信息就够了,设计并不复杂,硬件电路简单。抢答器的主持人按键输入电路如下:图2-3-4 主持人按键电路2.4 系统程序设计2.4.1 抢答器流程图 流程图是使用图形表示算法思路的一种极好的表示方法,不论采用何种程序设计方法,程序总体结构确定后

    9、,一般以程序流程图的形式对其进行描述。总体框图中的各个子模块或各个子任务也应该结合具体的数学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用【4】。流程图如下:图2-4-1 抢答器主程序流程图2.4.2 中断程序 中断是指由于某种事件的发生,计算机暂停现行的程序,转去执行另一个程序,处理发生的事件,处理完毕后自动返回原来的程序继续运行【5】。 在抢答中,程序要等待选手或主持人按下按键才能继续运行,要完成这个功能有两种方法:1、查询方式;2、中断方式。使用单片机的中断系统需要编写代码对单片机进行设置,并且使用固定的接口,非常不方便。使用查询的方式不需要对单片机进行设置,只要在需

    10、要的地方编写程序代码就行,简单方便,对接口没有限制,可以使用单片机上任意的借口完成。这里我们使用查询的方式完成等待的过程,即设定查询某些固定接口,直到某个接口发生变化,系统继续执行下去,否则就一直查询下去。2.4.3 主程序我们设计的抢答器的程序采用的是汇编语言和C语言两种设计。首先我们用汇编语言进行设计,本次设计的主程序中包括LED显示程序以及按键控制子程序,程序设计如下:ORG 0000H ;设置初始地址位JMP MAIN ;跳转到主程序TABLE:DB 00H,01H,02H,03H,04H,05H,06H,07H,08H ;共阴极数码管显示代码表:012345678MAIN:MOV P

    11、2,#0FFH ;P2口设置为高电平,准备接收信号 MOV R4,#0 ;R4的位标志清零 MOV A,R4 ;R4位标志值送A寄存AGAIN:MOV DPTR,#TABLE ;设定共阴极数码管代码表的首地址 MOVC A,A+DPTR ;取出显示0的代码送寄存器A MOV P1,A ;将A的内容送P1口显示LOOP1:MOV A,P3 ;接收P3口的抢答信号 CPL A ;抢答信号求反 JZ LOOP1 ;如果没有抢答信号则再返回LOOP1,继续接收信号LOOP2:RRC A ;有抢答信号则逐次移动判断是哪一位抢答 INC R4 ;每移动一位,R4标志位加1 JNC LOOP2 ;没有遇到抢

    12、答信号则返回LOOP2继续移位 MOV A,R4 ;遇到抢答信号,把R4标志位的值送A MOVC A,A+DPTR ;将相应的数码管显示代码送A MOV P1,A ;将A的值送P1口显示LOOP3:JNB P2.0,MAIN ;查询主持人是否按下按键,按下则返回主程序,重新开始 SJMP LOOP3 ;主持人没有按下按键,返回继续查询,直到主持人按下为止 END ;程序结束 汇编语言编程完成以后,再进行C语言程序设计,完成的功能和汇编语言程序一样。具体程序如下:#include /设置头文件,内部定义了单片机内部的特殊 /功能寄存器和位寄存器unsigned char code SEG_TAB

    13、 =0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08; /定义显示用 /的数组0-8void main(void) /主程序 while(1) /死循环 P2=0x0ff; /设定初值,定义P2口为1111 1111H P1 = SEG_TAB 0 ; /设定初值,P1口显示数组中的第一个数据 for(P3=0x0ff;P3!=0x0ff;P3=P3) /外层循环,设定初值,定义P3口为 /1111 1111H,等待P3口接收按键动作 switch(P3) /如果P3口接收到信号,则判断是哪一位 /选手按下的按键 case 0xfe: P1 = SEG_

    14、TAB 1 ;break; /判断为1号选手,P1口显示数组第二个数据 case 0xfd: P1 = SEG_TAB 2 ;break; /判断为2号选手,P1口显示数组第三个数据 case 0xfb: P1 = SEG_TAB 3 ;break; /判断为3号选手,P1口显示数组第四个数据 case 0xf7: P1 = SEG_TAB 4 ;break; /判断为4号选手,P1口显示数组第五个数据 case 0xef: P1 = SEG_TAB 5 ;break; /判断为5号选手,P1口显示数组第六个数据 case 0xdf: P1 = SEG_TAB 6 ;break; /判断为6号

    15、选手,P1口显示数组第七个数据 case 0xbf: P1 = SEG_TAB 7 ;break; /判断为7号选手,P1口显示数组第八个数据 case 0x7f: P1 = SEG_TAB 8 ;break; /判断为8号选手,P1口显示数组第九个数据 default: break; /判断为其他信号 for(P2=0x0ff;P2=0xfe;P2=P2) /内层循环,等待接收P2口的按键动作 P3=0x0ff; /设定初值,定义P3口为1111 1111H /使得外层循环能继续进行 P2=0x0ff; /设定初值,定义P2口为1111 1111H /使得内层循环能继续进行 P1 = SEG

    16、_TAB 0 ; /设定初值,P1口显示数组中的第一个数据 2.5 仿真演练 电路设计与程序设计都已经完成,接下来需要先进行仿真,调试无误后才能连接实物。我们需要先使用Keil软件进行编程,产生HEX文件,之后使用Proteus 7 Professional来导入HEX文件,然后运行系统。(1) 系统开始图2-5.1 系统开始(2) 第一个选手按下抢答按键图2-5.2 第一个选手按下按键(3) 其他选手后按下抢答按键图2-5.3 其他选手按下按键(4) 主持人按下按键图2-5.4 主持人按下按键致谢我在这一次抢答器的设计中受益匪浅。通过对这一年所学知识的回顾,并充分发挥对所学知识的理解和对本次

    17、课程设计论文的思考及书面表达能力,最终完成了。这为自己今后进一步深化学习,积累了一定的宝贵的经验。撰写论文的过程也是对专业知识的学习过程,它使我运用已有的专业基础知识,对其进行设计,分析和解决一个理论问题或实际问题,把专业知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。 通过这次课设我发现,只有理论水平提高了,才能将课本上的知识与实践相结合,理论知识服务于实践教学,以增强自己的动手能力。这个实验十分有意义,我获得了很深刻的经验。通过这次课程设计,我知道了理论和实际的距离,也知道了理论和实际相结合的重要性,也从中得到了很多书本上无法得知的知识。 我们的学习不但要立足与书本,以解

    18、决理论和实际教学中的实际问题为目的,还要与实践相结合,通过自己动手来解决问题比只用脑子想更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。参考文献1李光飞,单片机课程设计实例指导M,北京航天航空大学出版社,2004:50542李朝青,单片机原理及接口技术(第3版) M,北京航天航空大学出版社,2002:32403胡伟,单片机C程序设计及应用实例M,人民邮电出版社,2003:75774冯育长,单片机系统设计与实例指导M,西安电子科技大学出版社,2007:45555郭培源,电子电路及电子器件M,高等教育出版社,2003:23326杨志忠,数字电子技术M,高等教育出版社,2002:4043


    注意事项

    本文(单片机课程设计抢答器.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开