ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:637.61KB ,
资源ID:24362080      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/24362080.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

1、数字抢答器 单片机课程设计1.课题简介1.1课题背景及意义单片机把我们带入了智能化的电子领域,许多繁琐的系统若由单片机进行设计,便能收到电路更简单、功能更齐全的良好效果。若把经典的电子系统当作一个僵死的电子系统,那么智能化的现代电子系统则是一个具有“生命”的电子系统。对于抢答器我们大家都知道那是用于选手做抢答题时用的,选手进行抢答,抢到题的选手来回答问题。抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。选手们都站在同一个起跑线上,体现了公平公正的原则。 本实验设计的数字抢答器由主体电路与扩展电路组成。优先编码电路、锁存器、译码电路将参赛队的输入信号在显示器上输出;用控制

2、电路和主持人开关启动报警电路,以上两部分组成主体电路。通过定时电路和译码电路将秒脉冲产生的信号在显示器上输出实现计时功能,构成扩展电路。经过布线、焊接、调试等工作后数字抢答器成形。更具有实用性。1.2相关原理论证制作抢答器可以用好多的方法,可以用PLC来实现,它的功能强大制作简单,并且外围的元件也很少;也可以用单片机来实现,他的制作也是比较简单;还可以用我们学过的EDA技术来制作;最后也可以用数字电路来实现,它的原理比较简单,集成块的价格也比较便宜且很容易购买,与我们学完的单片机原理联系紧密,能将我们所学知识用于实际,对巩固所学知识有重要意义,使总体方案易于实现。但由于专用电路芯片通常是厂家特

3、殊设计开发的,一般不易买到或价格较高,用其它方式设计的需要设计者具有相应的理论知识,并要通过仿真器,应用软件,计算机等辅助设备才能验证完成,不利于设计者的设计和制作,综上所述所以本方案用单片机来实现。而有些实际竞赛的场合,只要满足显示抢答有效和有效组别即可,故我打算用一片74HC373(8位数据锁存器)来实现此简易抢答器的功能,这是一个显示方式简单,价格低廉,经济实用的抢答器设计方案。在要求不高的场合,能完全符合要求。2.总体设计方案2.1本数字抢答器的组成本抢答器的电路主要有四部分组成:数字抢答电路、时序控制电路、报警电路以及可预置时间的定时电路。其中数字抢答部分有一个74DC373锁存器和

4、LED数码管显示器组成,可以将八位抢答者的按钮通过LED数码管显示器显示出他们最先抢答者的序号。而时序控制电路的功能是当参赛选手按动抢答器时,使扬声器发声,这时抢答电路和定时电路停止工作。而且设定的时间到达后若无人抢答,则报警电路工作。报警电路工作的条件是当设定时间到达后或者有人抢答时,报警电路被输入一个高电平,这时此电路工作。2.2数字抢答器主要功能抢答器原理:每个选手的座位前安装一只抢答按钮开关和一只信号灯。主持人的座位前安装一只复原按钮开关、一只蜂鸣器和一只抢答器工作状态指示灯。每当主持人口头发出允许抢答的号令之后,哪个队先按下座位上的按钮开关,该座位的信号灯就先被点亮,同时封锁其他按钮

5、开关的活动。并且熄灭主持人座位上的状态指示灯和发出 3 声类似于电话振铃的提示声,以“声明”此次抢答动作已经完成。在主持人确认后,按下复原按钮,状态指示灯重新点亮,并且同时发出“笛笛”声,为下一次的抢答作好准备。电路中的蜂鸣器 FM 是一只带有助音腔的压电陶瓷蜂鸣器,用于模拟发出报警声的功率放大器和喇叭。在 FM 发声的同时,灯 D6 也在发光。FM 可以看作是一个电容性负载,本身不能流过直流电流。发声的原理是,作用在两个电极极板的电位在发生变化时,陶瓷材料就发生弯曲,从而振动空气发出声音。FM和 4 只按钮开关 SWaSWd 以及 4 只电阻 RaRd 都是在演示板的基础上额外添加的。由于R

6、B端口内部具有上拉电阻,只要用软件设置其有效,即可省略在4 只端口引脚上外接上拉电阻。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示0。8路抢答器可以利用硬件电子元器件实现,但电路结构复杂,调试困难,涉及到的外围元件多,不便于安装,实验给实际操作带来很大的麻烦。我们利用单片机可以用很少元件实现相同功能,而且单片机性能稳定,可操作性强。可以只用P0口连接排阻(用作上拉电阻),完成驱动LED的功能,串接按键可以由选手自己控制抢答机会。利用单片机

7、程序判断选手按键是否有效,但当选手违规抢答时,利用简单程序显示选手序号,启动蜂鸣器并不间断,告诉主持人有人违规操作,抢答无效。给出相应的延时,选手按正常的操作抢答,软件倒记时。如果有选手在规定的时间以前完成问题,主持人通过按键开始按钮来复位,开始新的问题作答,因为程序不是很大不需要扩展存储空间,选手按键跳入相应的子程序,回答倒记时。3.系统软件设计3.1部分软件设计3.1.1 主程序系统结构图软件系统结构图见图3-1:图3-1软件系统结构图回答时间调整程序;倒计时程序;正常抢答处理程序;犯规处理程序;显示及发声程序。3.1.2初始化程序MAIN: MOV R1,#10;初设抢答时间为10s M

8、OV R2,#10;初设答题时间为10s MOV TMOD,#11H;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;3.1.3键盘扫描程序流程图本系统的键盘采用独立式按键键盘程序流图见图3-2:图3-2键盘扫描程序流程图3.1.4抢答数码显示软件程序设计LED数码

9、管采用静态显示,显示器由9个共阳极数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。9个串/并移位寄存器芯片74LS164首尾相连了九位共阳极七段数码管,共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),其他管脚接段驱动电路输出端。数码管显示程序流程图见图3-3:图3-3数码显示程序流程3.1.5音乐音频输出程系流程图音乐音频输出由P3.7输出,见图3-4:图3-4音乐音频输出程系流程图3.2软件调试3.2.1编译、连接项目,形成目标文件把程序文件添加到项目文件中,并且程序文件已经建立好存盘后,就可以进行编译、连接,形成目标文

10、件。编译、连接用Project菜单下的Built Target命令(或快捷键F7),见图3-5和图3-6所示:图3-5 程序编译图3-6连接创建目标文件编译、连接时,如果程序有错,则编译不成功,并在下面的信息窗口给出相应的出错提示信息,以便用户进行修改,修改后再编译、连接,这个过程可能会重复多次。如果没有错误,则编译、连接成功,并且信息窗口给出提示信息。3.2.2运行调试观察结果当项目编译、连接成功后,就可以运行它来观察结果。运行调试过程:先用Debug菜单下的Start/Stop Debug Session命令,启动调试过程。用Debug菜单下的GO连续运行。用Debug菜单下的Stop R

11、unning命令停止运行。用View菜单调出各种输出窗口观察结果。系统软件运行结果见图3-7:图3-7系统软件运行结果4.系统仿真测试系统硬件及系统软件设计完成,经硬件和软件调试成功后,可以将系统软件和硬件结合起来调试,这里采用Proteus单片机仿真软件进行仿真。完成电路原理图设计后,将Keil软件调试产生的HEX文件添加到Proteus软件中,运行后,其仿真结果如下图4-1:图4-1系统仿真图5小结这次的课程设计收获颇多。由于是自由选择课题,在最初选择课题的时候就遇到一点问题,参考了一些资料,最终确立了智能抢答器这个课题。课题选定之后,就注重搜集相关的资料,网上也下载了不少资料,对自己所要

12、设计的智能抢答器有了初步的了解。我主要是负责软件方面的设计,编程方面,自己的基础不是很好,遇到了不少困难,借鉴了一些资料的相关程序,同时也回顾了单片机教科书上的内容,巩固了以前学习的知识,这一点也是这次比较大的收获。程序编完后,就开始了调试的过程,期间同样不可避免的遇到了一些问题,很多低级的错误都不应该,这点我尤其有体会,以后的编程中我会更加注意这个问题。最后就是用Proteus单片机仿真软件进行仿真,这部分由于前面的调试和检查,硬件和软件部分都接近预想的效果,这就导致软硬件综合仿真很顺利的完成。这次的课程设计过程困难多,但可以找到了最适合的方法解决问题,虽然最后实物没有达到预期的效果,不过还

13、是学到很多东西。同学合作更让我懂得了协作精神,对我以后的工作有很大作用。6.致谢经过将近两周的设计学习以及庄志红老师的热心帮助和全力支持,这次的课程设计可以比较圆满地完成。庄志红老师严谨的治学态度和热忱的工作作风令我十分钦佩,他的指导使我受益非浅。7.参考文献单片机原理及应用技术 范力旻 电子工业出版社 8051单片机彻底研究实习篇 林申茂编著 人民邮电出版社 单片机原理及接口技术实践教程 胡建编著 机械工业出版社 8.附录元器件清单序号名称代号型号数量1排阻R1-R7A 103J12电阻R81K13 电解电容C110uF14电容C2,C333PF25电阻R9,R10,R11,R12,R135

14、.1K56开关117USB接口18共阴数码管 4位ARK SR420361K 101119晶振11.059211089C52芯片STC 89C52RC111蜂鸣器BUZ1112三极管S85501部分功能仿真图1、 主持人按下开始抢答键后,进入抢答10S倒计时,显示仿真电路见图6-1:图5-12、主持人按下抢答开始键,若有选手进行抢答,显示其号码,并进入10秒倒计时的仿真电路图见图6-2:图5-2程序代码OK EQU 20H;抢答开始标志位 RING EQU 22H;响铃标志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T

15、0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#10;初设抢答时间为10s MOV R2,#10;初设答题时间为10s MOV TMOD,#11H;设置未定时器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高发声频率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允许四个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB

16、TR1 SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=查询程序=START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY;未开始抢答时候显示FFF JB P3.0,NEXT;ddddddd ACALL DELAY JB P3.0,NEXT;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 ACALL BARK;按键发声 MOV A,R1 MOV R6,A;送R1-R6,因为R1中保存了抢答时间 SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R7,#

17、01H ;读抢答键数据信号标志,这里表示只读一次有用信号 MOV R3,#0AH;抢答只显示计时,灭号数 AJMP COUNT;进入倒计时程序,查询有效抢答的程序在COUNT里面NEXT: JNB P1.0,FALSE1 JNB P1.1,FALSE2 JNB P1.2,FALSE3 JNB P1.3,FALSE4 JNB P1.4,FALSE5 JNB P1.5,FALSE6 JNB P1.6,FALSE7 JNB P1.7,FALSE8 AJMP START;=非法抢答处理程序=FALSE1: MOV R3,#01H AJMP ERRORFALSE2: MOV R3,#02H AJMP E

18、RRORFALSE3: MOV R3,#03H AJMP ERRORFALSE4: MOV R3,#04H AJMP ERRORFALSE5: MOV R3,#05H AJMP ERRORFALSE6: MOV R3,#06H AJMP ERRORFALSE7: MOV R3,#07H AJMP ERRORFALSE8: MOV R3,#08H AJMP ERROR;=INT0(抢答时间R1调整程序)=INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在两个时间LED上显示R1 JNB

19、 P3.4,INC0;P3.4为+1s键,如按下跳到INCO JNB P3.5,DEC0;P3.5为-1s键,如按下跳到DECO JNB P3.1,BACK0;P3.1为确定键,如按下跳到BACKO AJMP INT0SUBINC0: MOV A,R1 CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。 MOV R1,#00H ACALL DELAY1 AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1;如果R1为0, R1就置99, DEC R1 ACA

20、LL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI ;=INT1(回答时间R2调整程序)=INT1SUB:MOV A,R2 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P3.1,BACK1 AJMP INT1SUBINC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUB

21、ADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI ;=倒计时程序(抢答倒计时和回答倒计时都跳到改程序)=REPEAT: MOV A,R2 ;使用锦囊时重新计时 MOV R6,A CLR RING COUNT: MOV R0,#00H;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H;重置定时器RECOUNT:MOV A,R6

22、;R6保存了倒计时的时间,之前先将抢答时间或回答时间给R6 MOV B,#0AH DIV AB;除十分出个位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;个位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取个位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s会提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下运行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK;下面是1s的情况,响并显示号数并清R0,重新计 SETB RING MO

23、V A,R6 JZ QUIT;计时完毕 MOV R0,#00H DEC R6;一秒标志减1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下运行,否者跳到查停/显示 DEC R6;计时一秒R6自动减1 MOV R0,#00HCHECK: JNB P3.1,QUIT;如按下停止键退出 JNB OK,CHECKK ;只在回答倒计时才有效 AJMP NEXTTCHECKK: JNB P3.0,REPEAT ;判断是否使用锦囊NEXTT: ACALL DISPLAY JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(

24、这里起到锁抢答作用) AJMP RECOUNTACCOUT: MOV A,36H JNB ACC.0,TRUE1 JNB ACC.1,TRUE2 JNB ACC.2,TRUE3 JNB ACC.3,TRUE4 JNB ACC.4,TRUE5 JNB ACC.5,TRUE6 JNB ACC.6,TZ1 JNB ACC.7,TZ2 AJMP RECOUNTTZ1: JMP TRUE7TZ2: JMP TRUE8 QUIT: CLR OK;如果按下了停止键执行的程序 CLR RING AJMP START;=正常抢答处理程序=TRUE1: ACALL BARK MOV A,R2 MOV R6,A;抢

25、答时间R2送R6 MOV R3,#01H CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNTTRUE2: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#0

26、5H CLR OK AJMP COUNTTRUE6: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNTTRUE7: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#07H CLR OK AJMP COUNTTRUE8: ACALL BARK MOV A,R2 MOV R6,A MOV R3,#08H CLR OK AJMP COUNT;=犯规抢答程序=ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯规号数暂存与(34H)HERE: M

27、OV A,R0 CJNE A,#06H,FLASH;0.3s向下运行-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三灯全灭 AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1;下面是0.8s的情况,响并显示号数并清R0,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH MOV R4,#0BH;显示FF和号数 AJMP CHECK1CHECK1: JNB P3.1,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR

28、OK AJMP START;=显示程序=DISPLAY: MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出, MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY2 MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY2 MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY2 RETDAT1: DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1