单片机课程设计基于51单片机的八路竞赛抢答器的设计.docx
《单片机课程设计基于51单片机的八路竞赛抢答器的设计.docx》由会员分享,可在线阅读,更多相关《单片机课程设计基于51单片机的八路竞赛抢答器的设计.docx(16页珍藏版)》请在冰豆网上搜索。
单片机课程设计基于51单片机的八路竞赛抢答器的设计
信息工程课程设计报告书
课程名称单片机课程设计
课程设计总评成绩
学生姓名、学号
学生专业班级
指导教师姓名
课程设计起止日期2013/1/7——2013/1/18
课程设计任务书
学生姓名:
专业班级:
指导教师:
工作单位:
题目:
基于51单片机的八路竞赛抢答器的设计
初始条件:
1.运用所学的单片机原理与接口技术知识和数字电路知识;
2.51单片机应用开发系统一套;
3.PC机及相关应用软件;
要求完成的主要任务:
1.完成八路竞赛抢答器的设计和调试。
2.八路抢答,各用一个抢答按钮,并设一个按钮给主持人用来清零;抢答器具有数据锁存功能,并将所锁存的数据用数码管显示出来,并设抢答前可倒计时功能;
3.撰写课程设计说明书。
4.课程设计说明书要求:
引言、设计要求、系统结构、原理设计、各个模块的设计与实现、软件设计、调试过程、收获、体会及总结、参考文献、电路图和源程序。
说明书使用A4打印纸计算机打印或手写,用Protel等绘图软件绘制电子线路图纸。
时间安排:
第1天下达课程设计任务书和日程安排,根据任务书查找资料;
第2~3天完成方案论证,单片机系统的设计;
第4~6天参考有关文献,完成程序的编写;
第7~10天调试硬件系统和软件程序;
第11~12天结果分析整理、撰写课程设计报告,验收和答辩。
指导教师签名:
2012年12月29日
一、课程设计项目名称
基于51单片机的八路竞赛抢答器的设计
二、项目设计目的及技术要求
设计目的:
1.使学生复习、巩固所学过的理论与专业知识,并予以适当的深化。
2.强调理论联系实际、严肃认真、高度负责的工作态度,从事电路设计和进行分析调试。
3.进一步训练学生的基本技能(如:
搜集资料、整理思路、绘制电路原理图仿真图及PCB图、发现与分析问题、寻求解决问题的方案、撰写学术论文等)。
4.训练学生掌握计算机软件操作和单片机技术,运用计算机软件及相关专业知识等较好完成该项设计任务。
技术要求:
1.抢答器可同时供8名选手或8个代表队比赛,分别用8个按键S1~S8进行抢答。
2.具有非法抢答控制功能,并由主持人操纵,避免选手在主持人按“开始”前提前抢答,违反规则。
3.当主持人启动“开始抢答键”后,定时器进行减计时,在9S内无人抢答表示所有参赛选手或参赛队对本题弃权,抢答时间耗尽后禁止抢答。
4.抢答器具有锁存与显示功能。
即选手按下按键,锁存相应选手的参赛号码,并在LED数码管上显示。
选手抢答实行优先锁存,其他按键者将不能响应,以便公平地选择第一个抢答者。
5.倒计时期间,如果主持人想终止倒计时,可以按下“RST”按键,系统会自动进入准备状态。
三、项目设计方案论证(可行性方案、最佳方案、软件程序、硬件电路原理图和PCB图)
3.1引言
此次设计提出了用51系列单片机为核心控制元件,设计一个简易的抢答器,本方案以STC89C52单片机作为主控核心,与数码管、独立按键等构成八路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的八路抢答器具有倒计时和实时显示抢答选手的号码的特点,还有复位电路,使其再开始新的一轮的答题和比赛。
它的功能实现是比赛开始,主持人读完题之后按下总开关,倒计时开始,此时数码管开始进行9s的倒计时,是选手的抢答时间,直到有一选手抢答时,对应的会在数码管上显示出该选手的编号和抢答所用的时间,如果在规定的9s时间内没有做出抢答,则此题作废,即开始重新一轮的抢答。
3.2方案设计
抢答器的实现方式有种多样:
方案一:
通过纯电子器件搭建电路实现,如优先编码器,74HC573锁存器,555定时器译码器等。
方案二:
直接利用51单片机编程的特征,当选手按下按键后,直接用while
(1);循环
前者是通过纯电子器件实现没有软件参与,选手按下按键后采用74HC573锁存器将倒计时时间和选手编号锁存起来再显示。
调试简单,但是它不易于扩展和修改,而且电路结构复杂,调试困难电子,电子器件管脚很多,实际搭建起来费时费力,焊接很容易出错。
方案二中单片机体积小价格低,应用方便,稳定可靠。
单片机将很多任务交给了软件编程去实现,大大简化了外围硬件电路,使外围电路的实现简单方便。
由于单片机本身不具有软件编译测试的功能,我们需要借助其他软件编译,将编译好的程序“烧”入单片机内。
在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。
如果测试通过,电路仿真没有问题能完全实现功能的话就可以实际的做板子的焊接工作了。
我最终选择了方案二。
方案二总体方案设计
总体程序设计思路图为如图3.2所示。
图3.2总体电路设计框图
复位电路:
当一轮进行完时,由主持人按下,下一轮倒计时开始,复位电路接单片机RST引脚。
独立式按键键盘:
用于输入低电平,连接到P0口,由P0口检测电平的变化。
抢答器倒计时显示电路:
有两位数码管组成,一位显示9s倒计时,另一未显示成功抢答选手编号。
3.3硬件电路设计
3.3.1单片机最小系统
单片机最小系统主要用于对显示、抢答、计时等模块进行控制。
采用STC89C52作为系统控制器的CPU方案。
STC89C52单片机以其算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
3.3.1.1STC89C52单片机简单概述
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,2个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35MHz,6T/12T可选。
图3.3.1.1为STC89C52单片机的基本组成功能方块图。
由图可见,在这一块芯片上,集成了一台微型计算机的主要组成部分,其中包括CPU、存储器、可编程I/O口、定时器/计数器、串行口等,各部分通过内部总线相连。
下面介绍几个主要部分。
图3.3.1.1单片机结构框图
3.3.1.2STC89C52单片机管脚说明
图3.3.1.2STC89C52单片机管脚图
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写1时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址1时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入1后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流。
P3口也可作为AT89S51的一些特殊功能口:
P3口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2INT0(外部中断0)
P3.3INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6(外部数据存储器写选通)
P3.7(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/:
当访问外部存储器时,地址锁存允许端的输出电平用于锁存地址的地址字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
PSEN:
外部程序存储器的选通信号端。
在由外部程序存储器取指期间,每个机器周期两次PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/VPP:
当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
反向振荡器的输出。
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
3.3.2复位电路的设计
STC89C52单片机的复位输入引脚RST为单片机提供了初始化的手段,可以使程序从指定处开始执行,在单片机的时钟电路工作后,只要RST引脚上出现超过两个机器周期以上的高电平时,即可产生复位的操作.只要RST保持高电平,则单片机循环复位.只有当RST由高电平变低电平以后。
STC89C52单片机才从0000H地址开始执行程序。
本设计采用按键复位方式的复位电路。
当一轮进行完时,由主持人按下,下一轮倒计时开始,如图3.3.2所示。
图3.3.2复位控制电路
3.3.3键盘选择
键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。
键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。
在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。
本设计采用独立式键盘
键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘