51单片机四路抢答器PROTEUS仿真报告(含C语言程序)

  • 格式:doc
  • 大小:235.91 KB
  • 文档页数:14

下载文档原格式

  / 14
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HEFEI UNIVERSITY

四路抢答器仿真设计

题目四路抢答器仿真设计

班级自动化(1)班

成员 YCT 11050310**

PT 11050310**

WW 11050310**

时间 2014.5.19

四路抢答器仿真设计

目录

一、前言 (1)

二、方案设计 (1)

三、理论分析 (2)

四、电路设计 (2)

1、晶体振荡器电路 (2)

2、复位电路 (3)

3、按键扫描部分 (3)

4、显示部分 (4)

五、软件模块 (6)

六、系统组装调试 (8)

七、总结 (8)

参考文献 (9)

附录 (10)

四路抢答器仿真设计

一、前言

本设计要求能够在主持人按下开始键后,四个参赛者开始抢按自己的按键,谁的按键先按下,谁面前的灯就会亮并且有相应的提示,当参赛者耗时太多时又会有相应的提示。根据设计的要求,本系统采用独立式按键,通过单片机不停的扫描按键来控制LED灯和蜂鸣器,并用定时器T0来定超时的时间,当超时的时候让蜂鸣器响。

二、方案设计

(1)、总体设计

方案一:采用可编程I/O口扩展芯片8255

8255作为单片机的扩展接口能实现很多功能,但是这个系统并不复杂,用8155会浪费很多的资源,而且8255要用P0和P2端口作为地址线对它进行读写,这样不仅浪费端口还使得编程变的复杂。从节省资源和简化编程的角度考虑,放弃了此方案。

方案二:直接采用AT89C52单片机

直接用单片机不仅编程被简化,还有效的利用了各个端口。8051单片机的资源完全够这个系统的要求。所以最终选择了此方案。

(2)、模块

方案一:采用4*4矩阵键盘

此种键盘是常用的按键扫描方法,但是本系统只需要六个按键,这样就会浪费十个,而且矩阵按键扫描要送数读数,对于编程很复杂,最终放弃了此方案。

方案二:采用独立式键盘

本系统只要六个按键就可以,用独立式键盘不仅节省端口还使编程变得简单。程序只要不停的读数检查就行。所以,最终选择此方案。

2、系统总体设计方案与实现框图

采用六个独立式的键盘作为按键输入,当在开始后有按键按下时,就会有对应于这个按键的灯亮并且蜂鸣器响一声,其它按键再按也无效。十秒之后如不清除,蜂鸣器就会一直响,提示已经到时间。框图如图1。

图1

三、理论分析

51单片机的端口上电是高电平,而且当外部没有输入时能自动的弹跳到高电平,所以通过按键所接端口的高低电平变化可以判断出哪个按键按下了。

图2

四、电路设计

1、晶体振荡器电路

晶体振荡器电路给数字钟提供一个频率稳定准确的12MHz 的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体荡器电路。本设计中的震荡电路如图3所示。

图3

2、复位电路

MCS-51单片机的复位是由外部的复位电路来实现的。上电复位电路是—种简单的复位电路,只要在RST复位引脚接一个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST 引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。电路如图4所示。

图4

3、按键扫描部分

单片机不停的扫描P1口的电平变化,当有按键按下时,对应的I/O口会跳变为低电平,单片机检测到后,经过处理将作出相应的显示。电路如图5所示

图5

4、显示部分

根据按键按下的情况LED作出相应的亮灭,蜂鸣器作出相应的反应。当主持人按键按下启动后,当第一组按下时,则灯D1亮,并蜂鸣器响一声,数码管开从0、8、7......0计时,到零后蜂鸣器响两声,提示选手作答时间结束。开始下一轮抢答,如图6、图7所示。

图6

图7

五、软件模块

本系统用了定时器0,下图为程序流程图。

图8

六、系统组装调试

在protues仿真界面中,选择系统所需的元器件,然后根据软件设计的内容把各元件与单片机对应的端口连接在一起,然后下载hex文件,运行后的结果如图9所示:

图9

七、总结

本次设计按照题目要求,基于单片机,利用较合适的控制算法,成功的实现了抢答器的基本功能。在这次仿真比赛中,我们也遇到了不少问题,特别是在模块化编程中经常编译通不过,但经过我们不断的调试和查询相关的资料,最终解决了问题,可以说通过这次的比赛,我们更加熟练的掌握模块化编程的技巧,同时也让我们体会到模块化编程的好处。同时,我们这次把51单片机中断功能也熟练的掌握了,我们发现当功能越多时,低速度单片机就有点繁忙了,所以我们打算学习速度快的单片机,如C8051、AVR.。在编程中,我们学会了一些编程技巧,同时我们也掌握了KEIL中编译常见错误的原因,为我们在以后编程中迅速排查错误打下了一定的基础。

参考文献

[1] 张毅刚主编. 单片机原理及应用.北京:高等教育出版,2004

[2] 求是科技编著. 单片机典型模块设计实例导航.第2版.北京:人民邮电出

版,2008

[3] 郭天祥编著.51单片机C语言教程.北京:电子工业出版社,2009

[4] 彭伟编著.单片机C语言程序设计实训100例.北京:电子工业出版社,2009

[5] 华中科技大学电子技术课程组编.康光华主编. 电子技术基础.模拟部分.

第2版.北京:高等教育出版,2006