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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机的抢答器设计.docx

1、基于单片机的抢答器设计基于单片机的抢答器设计学号1251401243单片机课 程 设 计(2012级本科) 题 目: 基于单片机的抢答器设计 系(部)院: 物理与机电工程学院 专 业: 电气工程及其自动122班 作者姓名: 杨存恩 指导教师: 向根祥 职称: 副教授 完成日期: 2 0 1 5 年 6 月 28 日1 引言1.1 设计目的 现如今电视节目日益丰富其中的竞赛环节也越来越多,其中智力抢答器是不可或缺的器材。在本学期学习了单片机这门课之后,我觉得可以试着自己来实现抢答器的功能,令它能准确、公正、直观地判断出第一抢答者,并通过抢答器的数码管显示和蜂鸣器报警指出抢答组别。最终做出一种数字

2、式抢答器的设计方案,通过Proteus设计完成,利用keil2软件编辑程序,仿真验证,适用于多种竞赛场合。1.2 设计要求 设计一个用于智力竞赛的抢答器,其功能的实现是由单片机控制的,满足:(1)能容许2-6组进行抢答。(2)能显示抢答组号。(3)各组记分,并能记分显示。(4)比赛结束时,能发出报警声。2 设计方案在设计中采用的单片机是AT89C51,它主要负责控制各个部分协调工作。P1.0和P1.7由裁判控制,分别是抢答开始和停止键。P1.1P1.6是6组抢答的输入口,按下对应按钮即为抢答。P0口为数码管的段选口,位选口用的是P2口的低4位,外部中断0。外部中断1,P3.3用于控制有组答题完

3、成后结束计时。P3.4P3.5分别实现了分数的加一和减一。P3.6为蜂鸣器的控制口。外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。外部还接有蜂鸣器用来发出报警音。采用7SEG-MPX4-CC-BLUE显示,它是共阴极的由高电平点亮。系统仿真用到了Proteus软件,通过仿真可以显示所设计系统的功能,对于程序的调试等有很大的帮助。3 硬件设计3.1 电路原理图 电路原理图如图3.1所示。 图3.1 电路原理图3.2总体设计电路图整个系统分为:外部振荡电路、复位电路、 加减分电路及蜂鸣器报警电路、 抢答电路及裁判控制开始停止电路、数码管显示电路几个部分。

4、本设计的核心是单片机AT89C51。AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。3.2.1 振荡电路振荡电路使用外部振荡电路,由两个1nF的电容和一个晶体振荡、外部振荡电路。 图3.2.1

5、 晶振振荡电路3.2.2 复位电路外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值。因为本设计功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软复位。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序开始。图3.2.2 复位电路3.2.3 加减分电路及蜂鸣器报警电路P3.3接口的开关按下意味着答题结束,P3.4接口开关表示给抢答相应组加上一分,P3.5接口开关按下表示相应组减去一分。裁判示意开始抢答、有组抢答成功、违规抢答、最后5s倒计时都会触发蜂鸣器发

6、出警报。P3.6为蜂鸣器控制口。 图3.2.3 加减分电路及蜂鸣器报警电路3.2.4 抢答电路及裁判控制开始停止电路P1.0和P1.7由裁判控制,分别是抢答开始和停止键。P1.1-P1.6是6组抢答的输入口,按下按钮抢答。 图3.2.4 抢答电路及裁判控制开始停止电路3.2.5 数码管显示电路采用排阻RESPACK-8来做为上拉电阻,排阻一般应用在数字电路上,通常作为某个并行口的上拉或者下拉电阻用。排阻具有方向性,与色环电阻相比具有整齐、少占空间的优点,比用若干只固定电阻更方便。图3.2.5 排阻RESPACK-8 数码管7SEG-MPX4-CC-BLUE,它是共阴极的数码管 图3.2.6 数

7、码管7SEG-MPX4-CC-BLUE 4 仿真过程示意4.1 开始抢答 开始抢答时,数码管显示000。图4.1 开始抢答4.2 抢答倒计时 允许抢答后,开始倒计时从15s直到0s。在最后5s蜂鸣器会发出警报。 图4.2 抢答倒计时4.3 答题及答题倒计时 第四组抢答,答题时间有30s,在最后5s蜂鸣器会发出警报。 图4.3 第四组答题及答题倒计时4.4 违规抢答若还没有允许抢答就有人按下抢答器,那么蜂鸣器会发出警报,并显示是哪一组违规抢答。如图为第二组违规抢答。 图4.4 第二组违规抢答4.5 答题正确加分如图为第四组回答正确加一分 图4.5 第四组答题正确加一分4.6 答题错误减分如图为第

8、四组回答错误减一分 图4.6 第四组答题错误减一分4.7 抢答结束 抢答结束后电路复位,并记录各组抢答得分,待下次抢答得分累计。5 程序流程图图5.1 程序流程图6 课程设计总结在这次课程设计中,我们运用到了以前所学的专业课知识,如:汇编语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设

9、计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。 发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。参考文献1 周立功.夏宇闻.单

10、片机与CPLD综合应用技术M.北京:北京航空航天大学出版2 丁元杰.单片微机原理及应用M.北京:机械工业出版社.3 靳达编.单片机应用系统开发实例导航M.北京:人民邮电出版社. 4 李光飞.单片机课程设计实例指导M.北京:北京航空航天大学出版社.5 胡宴如.高频电子线路M.北京:高等教育出版社. 6 白驹珩.雷晓平.单片计算机及其应用M.成都:电子科技大学出版社. 7 李广弟.单片机基础M.北京:北京航空航天大学出版社. 8 沈美明.温冬婵.IBM汇编语言程序设计M.北京:清华大学出版社.9 彭传正.林春景.凌阳单片机原理与实践M.北京:北京航空航天大学出版社.10 李荣正.陈学军.PIC单片

11、机实践教程M.北京:北京航空航天大学出版社。附录:源程序清单 OK EQU 20H RING EQU 22H ORG 0000H AJMP MAIN ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN:MOV R1,#15;设置抢答倒计时时间15s MOV R2,#30;设置答题倒计时时间30s MOV TMOD,#11H;设置未定时器/工作方式1(16位计数器) MOV TH0,#0F0H; MOV TL0,#0FFH;越高发声频率越高,越尖(3.842ms) MOV TH1,#3CH;

12、 MOV TL1,#0B0H;50ms为一次溢出中断 SETB EA SETB ET0 SETB ET1 SETB EX1;允许3个中断,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;开始就运行定时器,初始显示888如果想重新计数,重置TH1/TL1 ;=查询程序=START: MOV R5,#00H MOV R4,#00H MOV R3,#00H ACALL DISPLAY;未开始抢答时候显示888 JB P1.0,NEXT ACALL DELAY JB P1.0,NEXT;去抖动,如果开始键按下就向下执行,否者跳到非法抢答查询 ACAL

13、L BARK;按键发声 MOV A,R1 MOV R6,A;送R1-R6,因为R1中保存了抢答时间 SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答 MOV R3,#0AH;抢答只显示计时,灭号数 AJMP COUNT;进入倒计时程序,查询有效抢答的程序在COUNT里面 NEXT:JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP START;=非法抢答处理程序= FALSE1: ACALL BARK;按键发声 MOV R3,#

14、01H AJMP ERROR FALSE2: ACALL BARK MOV R3,#02H AJMP ERROR FALSE3: ACALL BARK MOV R3,#03H AJMP ERROR FALSE4: ACALL BARK MOV R3,#04H AJMP ERROR FALSE5: ACALL BARK MOV R3,#05H AJMP ERROR FALSE6: ACALL BARK MOV R3,#06H AJMP ERROR;=INT1(答题对错加减分数程序)= INT1SUB:MOV R4,#0AH MOV R5,#0AH JNB P3.4,INC1 JNB P3.5,D

15、EC1 JNB P1.7,BACK1 ACALL DISPLAY AJMP INT1SUB MOV A,R3 SUBB A,#01H JZ XXY1 SUBB A,#02H JZ XXY2 SUBB A,#03H JZ XXY3 SUBB A,#04H JZ XXY4 SUBB A,#05H JZ XXY5 SUBB A,#06H JZ XXY6 XXY1:MOV R7,41H XXY2:MOV R7,42H XXY3:MOV R7,43H XXY4:MOV R7,44H XXY5:MOV R7,45H XXY6:MOV R7,46H INC1:INC R7 CJNE R3,#01H,L1 M

16、OV 51H,R7 L1:CJNE R3,#02H,L2 MOV 52H,R7 L2:CJNE R3,#03H,L3 MOV 53H,R7 L3:CJNE R3,#04H,L4 MOV 54H,R7 L4:CJNE R3,#05H,L5 MOV 55H,R7 L5:CJNE R3,#06H,LL MOV 56H,R7 LL:ACALL DELAY1 AJMP INT1SUB DEC1:DEC R7 ACALL DELAY1 AJMP INT1SUB BACK1:RETI;=倒计时程序(抢答倒计时和回答倒计时都跳到该程序)= COUNT: MOV R0,#00H;重置定时器中断次数 MOV TH

17、1,#3CH; MOV TL1,#0B0H;重置定时器(53ms) RECOUNT:MOV A,R6;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 CHECK FULL:CJNE

18、 A,#14H,CHECK;下面时1s的情况,报警,显示号数并清R0,重新计数 SETB RING MOV A,R6 JZ QUIT;计时完毕 MOV R0,#00H DEC R6;一秒标志减1 AJMP CHECK LARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下运行,否则跳到查停/显示 DEC R6;计时一秒R6自动减1 MOV R0,#00H CHECK: JNB P1.7,QUIT;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUN

19、T ACCOUT:JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6 AJMP RECOUNT QUIT:CLR OK;如果按下了停止键执行的程序 CLR RING AJMP START;=正常抢答处理程序= TRUE1: ACALL BARK;按键发声 MOV A,R2 MOV R6,A;抢答时间R2送R6 MOV R3,#01H MOV R7,41H CLR OK;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP COUNT TRUE2:ACALL BARK;

20、 MOV A,R2 MOV R6,A MOV R3,#02H MOV R7,42H CLR OK AJMP COUNT TRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H MOV R7,43H CLR OK AJMP COUNT TRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H MOV R7,44H CLR OK AJMP COUNT TRUE5:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H MOV R7,45H CLR OK AJMP COUNT TRUE6:ACA

21、LL BARK; MOV A,R2 MOV R6,A MOV R3,#06H MOV R7,46H CLR OK AJMP COUNT ;=犯规抢答程序= ERROR:MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3;犯规号数暂存与(34H) HERE: MOV A,R0 CJNE A,#0AH,FLASH;0.5s向下运行-灭并停响 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三灯全灭 AJMP CHECK1 FLASH:CJNE A,#14H,CHECK1;下面系1s的情况,响并显示号数并清R0

22、,重新计 SETB RING MOV R0,#00H MOV R3,34H;取回号数 MOV R5,#0BH MOV R4,#0BH;显示FF和号数 AJMP CHECK1 CHECK1:JNB P1.7,QUIT1 ACALL DISPLAY AJMP HERE QUIT1: CLR RING CLR OK AJMP START;=显示程序= DISPLAY:MOV 41H,51H MOV 42H,52H MOV 43H,53H MOV 44H,54H MOV 45H,55H MOV 46H,56H MOV DPTR,#DAT1;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出

23、, MOV A,r5 MOVC A,A+DPTR MOV P2,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,r4 MOVC A,A+DPTR MOV P2,#02H MOV P0,A ACALL DELAY MOV A,r3 MOVC A,A+DPTR MOV P2,#04H MOV P0,A ACALL DELAY MOV A,R7 MOVC A,A+DPTR MOV P2,#08H MOV P0,A ACALL DELAY RET DAT1:DB 00H,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H

24、 ;灭,1,2,3,4,5,6,7,8,9,灭,F DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H ;第一个为零,其他与上相同,因为十位如果为零显示熄灭;=加减时间延时(起到不会按下就加N个数)= DELAY1: MOV 35H,#08H LOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET;=延时(显示和去抖动用到)= DELAY: MOV 32H,#12H LOOP: MOV 33H,#0AFH LOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET;=发声程序= BARK:

25、SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING;按键发声 RET;=TO溢出中断(响铃程序)= T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT; CPL P3.6;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音 OUT: RETI;=T1溢出中断(计时程序)= T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI ENDPLC程设计成绩评定表姓 名 杨存恩 学 号 1251401243专业班级 电气工程及其自动化122班 课程设计题目: 基于单片机的抢答器设计成绩评定依据:评 定 项 目评 分 成 绩1.设计方案可行性及其选优(20分)2.设计过程及结果(40分)3.平时成绩(态度认真、遵守纪律)(10分)4.设计报告的规范性、参考文献(不少于5篇)(10分)5.答辩(20分)总 分最终评定成绩(以优、良、中、及格、不及格评定) 指导教师签字: 年 月 日

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

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