基于Proteus的八路抢答器仿真设计.docx
《基于Proteus的八路抢答器仿真设计.docx》由会员分享,可在线阅读,更多相关《基于Proteus的八路抢答器仿真设计.docx(11页珍藏版)》请在冰点文库上搜索。
基于Proteus的八路抢答器仿真设计
八路抢答器课程设计
一、抢答器设计功能分析
1.1数字抢答器的概述
对于抢答器我们大家来说都不陌生,它是用于很多竞赛场合,真正实现先抢先答,让最先抢到题的选手来回答问题。
抢答器不仅考验选手的反应速度同时也要求选手具备足够的知识面和一定的勇气。
选手们都站在同一个起跑线上,体现了公平公正的原则。
1.2设计任务与要求
基本设计要求:
a、一个总开关控制整个抢答器的启动或断电;
b、抢答开始前,8盏LED灯全灭,数码管不显示数字;
c、按下开始控制按键,抢答数码管倒数3s开始(从2开始),数码管数到0则抢答开始;
d、8个按键作为抢答按键,哪一按键首先按下,相对应的LED灯则亮起来,其余7盏则不亮,代表抢答成功,数码管则会显示出抢答成功者的编号;
e、重新开始控制按键按下,则重新开始抢答。
二、所用器件及介绍
2.1所用器件:
STC89C52RC单片机、8个按键、1个开始控制按键、1个重新开始控制按键、一个总开关、8盏LED灯、一位数码管
2.2主要器件介绍:
2.2.1单片机STC89C52RC:
具有低电压供电和体积小等特点,四个端口只需要两个口就能满足系统的设计要求,很适合便携式产品的设计使用系统。
STC89C52RC是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52RC为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
主要功能特性如下:
1.增强型8051单片机,6时钟/机器周期和12时钟/机器周期可以任意选择,指令代码完全兼容传统8051。
2.工作电压:
5.5V-3.3V(5V单片机)/3.8-2.0V(3V单片机)
3.工作频率范围:
0-40MHz,相当于普通8051的0-80MHz,实际工作频率可达48MHz
4.拥护应用程序空间为8K字节
5.片上集成512字节RAM
6.通用I/O口(32个),复位后P1/P2/P3/P4是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为I/O口用时,需要加上拉电阻。
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RXD/P3.0,TXD/P3.1)直接下载用户程序,数秒即可完成一片。
8.具有EEPROM功能
9.具有看门狗功能
10.共3个16位定时器/计数器。
即定时器T0,T1,T2
11.外部中断4路,下降沿中断或低电平触发电路,PowerDown,模式可由外部中断低电平触发中断方式唤醒。
12.通用异步串行口(UART),还可用定时器软件实现多个UART。
13.工作温度范围:
-40°-+85°
14.PDIP封装
主要特点:
STC89C52RC单片机主要特点在于它工作的最小系统比较简单,在最小系统中包括复位电路和外部震荡电路。
工作频率在0MHz-40MHz,外接不同频率的晶振可以得到不同运算速度,可以轻松满足一般自动控制系统的需求。
不足之处在于STC89C52RC只是8位单片机,并且STC89C52RC的I/O口输出电流较小,但是对于一般控制系统是可以满足的。
本设计采用的是22.1184MHz的晶振,一个机械周期为0.5us。
2.2.2七段数码管
LED显示器是由发光二极管显示字段的显示器件。
由图可知它由8个发光二极管构成,通过不同的组合可用来显示0~9、A~F及小数点“.”等字符。
图中DP表示小数点,COM表示公共端。
数码管通常有共阴极和共阳极两种型号。
共阴数管的发光二极管阴极必须接低电平,当某一发光二极管的阳极连到高电平时,此发光二极管点亮;共阳极数码管的发光二极管是阳极并接到高电平,须点亮的发光二极管阴极接低电平即可。
显然,要显示某字形就应使此字形的相应字段点亮,实际就是送一个用不同电平组合代表的数据到数码管。
三、仿真软件protues介绍
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。
是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。
在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。
Proteus 与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。
因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。
对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。
四、系统程序流程
系统程序流程
五、仿真分析
测试数据及结果如下:
总开关按下情况下,开始按键按下,数码管显示倒数三秒,仿真电路如图:
图5.1显示倒数三秒
抢答倒计时完后,若有选手进行抢答,显示其号码,并让选手对应的led灯亮,显示仿真电路如图:
图5.2显示抢答选手组号并亮灯
六、设计心得
这次课程设计一周的时间,不多不少。
这次八路抢答器的课程设计我们小组运用了单片机的知识来进行设计,简单易操作。
我就说说我是如何准备这次的设计。
首先我们小组确定要做八路抢答器后,我们就总体上构思抢答器设计时要用到那部分的知识,刚开始我们都没有一个设计的概念,不知道从何下手,后来我们去图书馆借阅资料,在网上查询相关的模板,终于对八路抢答器的设计有了一个基本的了解,然后我们就开始确定了一个大致的思路。
因为要运用单片机的知识,所以我就先把那部分的知识看过一次,然后有一个框架。
于是我们进行了分工,一部分人负责画电路图,一部分人查阅相关资料,还有人负责编程序,仿真等等。
整个过程虽然有所分工,但是小组内都是相互讨论一起完成。
这次我们运用了Proteus仿真软件,一开始我不会用这个软件,后来由于课程设计的需要,于是就装了它,并且在同学们的一起交流下画好了电路仿真图,在画电路图的过程中,发现它跟我们之前学习的PROTEL电路软件相似,但是这个能够对编好的程序进行仿真,比焊接实体方便得多。
总体上看,这次做课程设计收获很大,除了要对基本知识掌握,还要会灵活运用,编好的程序在仿真时如果发现错误,还要进行调试,在调试中发现变编程的问题。
做设计要细心,思路要清晰。
要对软件熟练掌握,由于对课本掌握不够,时间也挺紧,所以选做抢答器,有些地方还是匆忙完成的。
通过此次课程设计,我们受益甚多。
不仅让我们了解到团队力量的强大,而且让我们更深刻地认识到团队精神的重要性。
从这次课程设计中,让我们懂得了什么是学以致用,只有真正理解所学的知识,才能正确运用。
最大的感触就是电子设计非常神奇,平时我们在电视节目上看到的抢答器系统原理就是这样来的,小时候觉得很神奇,现在看来自己和同学们也能一起完成它的设计,有点成就感。
在此次课程设计中,我们也发现了自己的不足之处,最后在大家的共同努力下改正过来。
在此次课程设计中,我组成员都尽职尽责
参考文献资料
[1]李朝青.单片机原理及接口技术(修订版)。
北京:
北京航空航天大学出版社,1998
[2]李广弟.单片机基础.北京:
北京航空航天大学出版社,1992
[3]何立民.单片机应用技术大全.北京:
北京航空航天大学出版社,1994
[4]张毅刚.单片机原理及接口技术.哈尔滨:
哈尔滨工业大学出版社,1990
[5]谭浩强.单片机课程设计.北京:
清华大学出版社,1989
[6]余发山编著.《单片机原理机机及应用技术》.徐州:
中国矿业大学出版社
[7]张淑清娄万录等主编.《单片微机计算机接口技术及其应用》.科学出版社
[8]霄主编.《微型计算机原理及应用》.中国矿业大学出版社
附录:
程序清单
ORG0000H
SJMPSTART
ORG0030H
MOVP2,#0FFH
MOVP0,#0FFH
START:
JBP3.7,START
JBP3.5,START
MOVP0,#0FFH
MOVP2,#0B0H
LCALLDELAY_1
MOVP2,#0A4H
LCALLDELAY_1
MOVP2,#0F9H
LCALLDELAY_1
MOVP2,#0FFH
MAIN:
JNBP1.0,KEY1
JNBP1.1,KEY2
JNBP1.2,KEY3
JNBP1.3,KEY4
JNBP1.4,KEY5
JNBP1.5,KEY6
JNBP1.6,KEY7
JNBP1.7,KEY8
SJMPMAIN
KEY1:
MOVP0,#0FEH
MOVP2,#0F9H
LCALLDELAY
KEY2:
MOVP0,#0FDH
MOVP2,#0A4H
LCALLDELAY
KEY3:
MOVP0,#0FBH
MOVP2,#0B0H
LCALLDELAY
KEY4:
MOVP0,#0F7H
MOVP2,#99H
LCALLDELAY
KEY5:
MOVP0,#0EFH
MOVP2,#092H
LCALLDELAY
KEY6:
MOVP0,#0DFH
MOVP2,#082H
LCALLDELAY
KEY7:
MOVP0,#0BFH
MOVP2,#0F8H
LCALLDELAY
KEY8:
MOVP0,#7FH
MOVP2,#80H
LCALLDELAY
DELAY:
MOVR0,#5
DL2:
MOVR1,#0FFH
DL1:
MOVR2,#0FFH
DJNZR2,$
DJNZR1,DL1
DJNZR0,DL2
LJMPSTART
DELAY_1:
MOVR3,#6
DL4:
MOVR4,#0FFH
DL3:
MOVR5,#0FFH
DJNZR5,$
DJNZR4,DL3
DJNZR3,DL4
RET
END