《六路抢答器设计》doc版.doc_第1页
《六路抢答器设计》doc版.doc_第2页
《六路抢答器设计》doc版.doc_第3页
《六路抢答器设计》doc版.doc_第4页
《六路抢答器设计》doc版.doc_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用课程设计报告题 目 六路抢答器的设计 姓 名 XXX、XX、XX 专业班级 11电子信息工程2班 指导教师 许长安 日 期 2013.12.20 目 录一、设计任务及要求1二、元器件清单及简介11、元器件清单12、AT89C52简介2三、设计原理及分析31、总原理图32、时钟频率电路43、显示电路44、抢答电路45、软件设计5四、设计中遇到的问题与改进6五、总结6六、参考文献6附录一:7一、设计任务及要求1、 设计一个六路抢答器;2、 系统设置复位按钮,按动后,重新开始抢答;3、 选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人按下复位键为止。抢答后显示优先抢答者序号,同时红LED亮。并且不出现其他抢答者的序号;4、 抢答器具有定时抢答功能,且一次抢答的时间有主持人设定,本抢答器的时间设定为20 秒,当主持人启动“开始”开关后,定时器开始减计时,同时绿LED亮;5、 设定的抢答时间内,选手可以抢答,这时定时器停止工作,显示器上显示选手的号码和抢答时间。并保持到主持人按复位键。二、元器件清单及简介1、元器件清单元器件清单如表2-1所示:AT89C521片12M晶振1个30pf普通电容2个10uf电解电容1个2K电阻1个10K排阻2个100电阻4个四角按键7个红LED1个绿LED1个四位共阴八段数码管1个表2-12、AT89C52简介AT89C52是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。12主要性能参数: 与MCS-51产品指令和引脚完全兼容 8k字节可重擦写Flash闪速存储器 1000次擦写周期 全静态操作:0Hz24MHz 三级加密程序存储器 2568字节内部RAM32个可编程IO口线 3个16位定时计数器 8个中断源可编程串行UART通道低功耗空闲和掉电模式功能特性概述: AT89C52提供以下标准功能:8k字节Flash闪速存储器,256字节内部RAM,32个IO口线,3个16位定时计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 AT89C52引脚图三、设计原理及分析该系统采用51系列单片机AT89C51作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。抢答器的工作原理是利用单片机的定时器T0、T1中断完成,其余状态循环调用显示子程序,用4个共阴极LED数码管来显示,用P0口作为数码管的八个段选,用P2口中的P2.0、P2.1、P2.2、作为4个数码管其中3个位选,P1口接6个按键,提供选手抢答,P3.0接按键实现复位功能。1、总原理图单片机实现抢答的电路图如图3-1所示:图3-12、时钟频率电路单片机必须在时钟的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工 作速度。一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为30PF。 单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用fosc表示。如时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12s。外部时钟电路如图3-2所示:图3-23、显示电路显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。4、抢答电路AT89C52的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.5轮流输出低电位,给每一个选手编号1至6,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。电路如图3-3所示:图3-35、软件设计为了能够达到抢答的公平、公正、因而在编开始抢答前的程序得先编写设定时间的程序,当时间设好了之后,程序开始打开定时中断开始倒计时,然后调用键盘扫描子程序,编写键盘扫描程序。当在扫描到有人按下了答题键,马上关闭T0、调用显示程序、封锁键盘。系统程序流程图四、设计中遇到的问题与改进1、 开始设计复位功能时选择的是上电复位,但是仿真过程中发现上电复位无法满足设计要求,所以后来选择软件复位复位的方式仿真中才满足了复位的要求;2、 在设计的过程中,要求在有人抢答后倒计时显示必须停止,开始时再抢答后会继续倒计时,后来在程序中加了一个处理程序将抢答那一刻的倒计时显示存储了起来,在显示抢答位数是,同时将保存的倒计时数显示出来。五、总结 开始时,对于单片机的课程设计我显得有些无从下手,通过对课本上的例题的参考,以及对网上的大量实例的研究,了解了课程设计大概的流程。实在话,让我自己亲手动手去做实在不能完成,只有通过书本和通过网络才可完成。经过为期一周的单片机课程设计,终于完成了六路路抢答器的设计,虽然没有交出一份完美的答卷,但还是收获良多。通过这次课程设计,使我更进一步地熟悉了单片机芯片的工作原理和其具体的使用方法。单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,这锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。还有了解了课程设计的一般步骤,和设计中应注意的问题。在这里我要感谢老师和同学对我的帮助,没有你们的帮助我也无法完成这次任务,谢谢!六、参考文献(1)单片机原理及应用 张毅刚 高等教育出版社,2010(2)单片机课程设计实例指导 李光飞 北京航天航空大学出版社,2004 (3)51单片机应用系统开发典型实例 戴 佳 中国电力出版社,2009(4)单片机原理与接口技术 吴亦峰 电子工业出版社,2005附录一: OK EQU 20H ;抢答开始标志位 DATA0 EQU 36H ;抢答按键口数据存放地址 ORG 0000H AJMP MAIN ORG 0003H AJMP INTT0 ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#20 ;初设抢答时间为20s MOV TMOD,#11H ;设置未定时器/模式1 MOV TH1,#3CH MOV TL1,#0B0H ;50ms为一次溢出中断 SETB EA SETB EX0 SETB ET1 CLR OK CLR P3.6 SETB P3.7 SETB TR1 SETB TR0;查询程序START: MOV DATA0,#0FFH ;初始化 MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY ; SETB EX0 ;开放INT0 MOV A,R1 MOV R6,A ;送R1-R6,因为R1中保存了抢答时间 SETB OK ;抢答标志位,用于COUNT只程序中判断是否查询抢答(在使用锦囊时用作判断是抢答倒计时还是回答倒计时) MOV R3,#0AH ;抢答只显示计时,灭号数 AJMP COUNT ;进入倒计时程序,查询有效抢答的程序在COUNT里面;倒计时程序COUNT: MOV R0,#00H ;重置定时器中断次数 MOV TH1,#3CH MOV TL1,#0B0H ;重置定时器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向下运行 AJMP CHECKFULL: CJNE A,#14H,CHECK ;下面是1s的情况,响并显示号数并清R0,重新计 MOV 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.0,QUIT ;如按下停止键退出 ACALL DISPLAY JB OK,ACCOUT ;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里起到锁抢答作用) AJMP RECOUNTACCOUT: MOV A,DATA0 JNB P1.0,TRUE1 JNB P1.1,TRUE2 JNB P1.2,TRUE3 JNB P1.3,TRUE4 JNB P1.4,TRUE5 JNB P1.5,TRUE6 AJMP RECOUNT QUIT: CLR OK ;如果按下了复位执行的程序 CLR P3.6 SETB P3.7 AJMP START;抢答程序TRUE1: MOV R3,#01H CLR OK SETB P3.6 CLR P3.7 ;因为答题的计时不再查询抢答,所以就锁了抢答 AJMP ERRORTRUE2: MOV R3,#02H CLR OK SETB P3.6 CLR P3.7 AJMP ERRORTRUE3: MOV R3,#03H CLR OK SETB P3.6 CLR P3.7 AJMP ERRORTRUE4: MOV R3,#04H CLR OK SETB P3.6 CLR P3.7 AJMP ERRORTRUE5: MOV R3,#05H CLR OK SETB P3.6 CLR P3.7 AJMP ERRORTRUE6: MOV R3,#06H CLR OK SETB P3.6 CLR P3.7 AJMP ERROR;抢答处理程序ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3 ;犯规号数暂存与(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH ;0.5s向下运行-灭并停响 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1 ;下面是1s的情况,响并显示号数并清R0,重新计 MOV R0,#00H MOV R3,34H ;取回号数 AJMP CHECK1CHECK1: JNB P3.0,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR OK AJMP START;显示程序DISPLAY: MOV DPTR,#DAT1 ;查表显示程序,利用P0口做段选码口输出/P2低三位做位选码输出, MOV A,R3 MOVC A,A+DPTR MOV P2,#0feH MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R5 MOVC A,A+DPTR MOV P2,#0fdH MOV P0,A ACALL DELAY MOV A,R4 MOVC A,A+DPTR MOV P2,#0fbH MOV P0,A ACALL DELAY RETDAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,00H ;灭,1,2,3,4,5,6,7,8,9,灭,灭DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,00H;延时(显

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论