第八组 刘程 四路抢答器Word格式.docx
《第八组 刘程 四路抢答器Word格式.docx》由会员分享,可在线阅读,更多相关《第八组 刘程 四路抢答器Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
第三章硬件设计11
3.1系统的结构框图及元件清单11
3.252单片机的引脚功能及介绍15
3.3系统组成部分…………………………………………………………17
3.4本章小结18
第四章软件设计19
4.1流程图20
4.2本章小结20
总结21
第五章调试…………………………………………………………………21
参考文献22
致谢22
附录
第一章绪论
1.1课题背景
近年来随着科技的飞速发展,单片机、PLC的应用不断深入,同时带动传统的控制技术的不断更新,可编程控制器由于其优良的控制性能,极高的可靠性,在各行各业中的应用日益广泛普及。
当今社会,抢答器朝着数字化、智能化的方向发展,这必然提高了抢答器的成本。
鉴于现在小规模的知识竞赛越来越多,操作简单,经济适用的小型抢答器必将大有市场。
而本文设计的抢答器,电路简单,操作简单,经济实用,灵敏可靠,具有较高的推广价值。
对于抢答器其广泛应用于电视台、技术竞赛及文娱活动时作抢答之用,为参赛选手提供了一个公平竞争的平台,也增添了娱乐性、刺激性,一定程度上丰富了人们的业余生活,随即成为了各单位开展素质教育、精神文明、娱乐活动的必备产品。
二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。
不过,这种电脑,通常是指个人计算机,简称PC机。
它由主机、键盘、显示器等组成。
还有一类计算机,大多数人却不怎么熟悉。
这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。
顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。
因为它体积小,通常都藏在被控机械的“肚子”里。
它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。
现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。
各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词--“智能型”。
1.2抢答器的意义
本系统采用单片机作为整个控制核心。
控制系统的四个模块为:
显示模块、存储模块、语音模块、抢答开关模块。
该系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能,用按键来让选手进行抢答,在数码管上显示哪一组先答题的,从而实现整个抢答过程。
本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。
系统工作原理本系统采用89C52单片机作为核心。
控制系统的四个模块分别为:
存储模块、显示模块、语音模块、抢答开关模块。
该抢答器系统通过开关电路四个按键输入抢答信号,利用一个数码管来完成显示功能。
工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,单片机控制的智能抢答器设计。
1.3抢答器的应用
随着我国经济和文化事业的发展,在很多公开竞争场合要求有公正的竞争裁决,诸如证券、股票交易及各种智力竞赛等,因此出现了抢答器。
抢答器一般是由很多电路组成的,线路复杂,可靠性不高,功能也比较简单,特别是当抢答路数很多时,实现起来就更为困难。
因此我们设计了以单片机为核心的新型智能的抢答器,在保留原始抢答器的基本功能的同时又增加了数码管显示电路实现了其它功能。
抢答器又称为第一信号鉴别器,其主要应用于各种知识竞赛、文艺活动等场合。
1.4本章小结
本章主要介绍了抢答器的背景和意义,单片机是非常重要的角色,在抢答器系统设计中具有重要意义。
本章也概括的阐述了本设计的主要内容和及其应用。
第二章系统总体设计
2.1系统的总体设计图
图2.1总体设计图
2.2AT89C52
AT89S52引脚图2.2DIP封装
AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0不具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动
AT89S52引脚图PLCC封装
4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
2.3本章小结
本章主要进行的系统的总体设计图和方案的论证,系统的总体设计主要对单片介绍。
蜂鸣器的介绍,本章还进行方案的论证,主要对单片机的选择进行比较,了解单片机性能及蜂鸣器作用。
第三章硬件设计
硬件设计有如下功能
(4)设定答题时间限制,比如30s,超过规定的时间视为无效
3.1系统的结构框图及元件清单
图3-1硬件系统框图
表3.1元件清单
序号
物品名称
规格型号
数量
备注
1
万用板
150*90mm
2
stc89c52
3
数码管
四位
4
三极管8550
5
电阻
4.7k
6
1k
12
7
电容
10uF
8
30pF
9
晶振
12MHz
10
二极管
11
复位按钮
蜂鸣器
3.252单片机的引脚功能及介绍
AT89S52具有PDIP、PLCC、TQFP3种封装形式以适用于不同的使用场合。
各封装引脚定义如图1.2所示。
图3.2AT89S52引脚图
下面简单介绍AT89S52各引脚的功能,更多信息请查阅Atmel公司的技术文档。
VCC:
电源。
GND:
地。
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用做高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在Flash编程时,P0口也用来接收指令字节;
在程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TT
逻辑电平。
当对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
当作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作为定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如表1-1所示。
在Flash编程和校验时,P1口接收低8位地址字节。
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TT
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问
表3.3P1口部分管脚的第二功能
外部程序存储器或用16位地址读取外部数据存储器(如执行MOVX@DPTR)时,P2口送出高8位地址。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TT
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口也作为AT89S52特殊功能(第二功能)使用,如表1-2所示。
在Flash编程和校验时,P3口也接收一些控制信号。
表3.4P3口部分管脚的第二功能
RST:
复位输入。
在晶振工作时,RST脚持续两个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
在DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)在访问外部程序存储器时,锁存低8位地址的输出脉冲。
在Flash编程时,此引脚(PROG)也用做编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在Flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.3 系统组成部分
3.3.1时钟振荡电路
图3.3.1时钟振荡电路
3.3.2显示电路
图3.3.2显示电路
3.3.3报警电路
图3.3.3报警电路
3.3.4复位电路
图3.3.4复位电路
3.4本章小结
本章主要介绍系统的结构框图,使问题简单化,使其更好的实现系统的功能,其次介绍单片机89c52的个引脚及其功能,有利于对系统各部件的深度了解,有利于硬件搭接,保证实验的成功率,达到良好的效果。
第四章软件设计
系统的软件设计也是工具系统功能的设计。
单片机软件的设计主要包括执行软件(完成各种实质性功能)的设计和监控软件的设计。
单片机的软件设计通常要考虑以下几个方面的问题:
(1)根据软件功能要求,将系统软件划分为若干个相对独立的部分,设计出合理的总体结构,使软件开发清晰、简洁和流程合理;
(2)培养良好的编程风格,如考虑结构化程序设计、实行模块化、子程序化。
既便于调试、链接,又便于移植和修改;
(3)建立正确的数学模型,通过仿真提高系统的性能,并选取合适的参数;
(4)绘制程序流程图;
(5)合理分配系统资源;
(6)为程序加入注释,提高可读性,实施软件工程;
(7)注意软件的抗干扰设计,提高系统的可靠性。
4.1流程图
流程图是使用图形表示算法的思路是一种极好的方法,不论采用何种程序设计方法,程序总体结构确定后,一般以程序流程图的形式对其进行描述。
总体框图中的各个子模块或各个子任务也应该结合具体的教学模型和算法画出较详细的程序流程图,供后面编写具体程序和阅读程序使用。
流程图是由一些图框和流程线组成的,其中图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。
流程图的基本结构为顺序结构,分支结构(又称选择结构),循环结构。
为便于识别,绘制流程图的习惯做法是:
方框表示:
要执行的处理(Process)
平行四边型表示:
代表资料输入(Input)
不规则图形代表资料输出(Output)或报表输出(Print)
菱形表示:
决策或判断(例如:
If...Then...Else)
N
YYN
Y
YN
N
。
4.2本章小结
本章详细的介绍了基于89c52单片机的软件设计,根据系统的功能,及制作时间安排等,本章从设计思路、软件系统框图出发,先介绍整体的思路后,再逐一分析各模块的程序算法,最终编写出满足任务需求的程序。
第五章调试
系统调试包括硬件调试和软件调试,而且两者是密不可分的。
我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;
软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。
硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。
这种调试可单独模拟进行,也可通过开发装置由软件配合进行,硬件联机调试则必须在系统软件的配合下进行。
软件调试一般包括分块调试和联机调试两个阶段。
程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;
也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。
这时该程序功能块已调试完毕,可去掉附加程序段。
其它程序功能块可按此法进行调试。
程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。
从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。
在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。
在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。
系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。
参考文献
[1]《c程序与设计语言》揣锦华等西安电子科技大学出版社
[2]《电子线路回归PROTEL实用教程》潘永雄等西安电子科技大学出版社
[3]《单片机系统设计及工程应用》雷思孝等西安电子科技大学出版社
结论
经过近一个月的努力,在老师和同学的商讨和帮助下,我较好的完成了设计任务,通过此次课程设计,我重新认识到了自学的重要性,以及学以致用的道理。
我查阅了大量的资料,通过此次的抢答器的设计,让我重新拾起了以前所学习的电子知识,及我觉得此次设计让我更加巩固了所学的知识并在设计的过程中学会了与时俱进,克服了编程的枯燥感,让我受益匪浅。
而现在,我们在学习单片机这门课程,我们应该好好地记笔记,课下好好地做练习题,再加上课外的拓展才能把C程序设计灵活的运用到单片机程序的设计上。
在单片机这门课程的学习上,我们还应该知道一种常用的仿真软件protel软件,可以让你我们更为清晰的掌握STC89C51/52系列的实际应用上的设计。
在今后的学习过程中,应该多到图书馆看一些专业方面的书籍,以丰富自己的知识。
这次课设也使我加深了对单片机及接口技术的理解和应用,由于知识水平的局限,设计中可能会存在着一些不足,我真诚地接受指导老师和队员的帮助。
致谢
首先衷心地感谢我的导师老师。
本文从选题到完成,从理论上的探讨到实际问题的解决,无处不饱含着导师的心血。
导师的悉心指导和建议给了我极大的帮助和支持,使我受益匪浅,此外还要感谢我的组员及在过程中给予我帮助的同学。
在此论文完成之际,谨向张导师及同学们致以深深的谢意和崇高的敬意。
”。
主程序
#include<
reg51.h>
intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitrst=P3^7;
sbitspeaker=P3^6;
//报警
sbitstart=P3^4;
ucharcount=0;
//用于产生1秒的时间
uchardsy_time=0x3c;
//用于显示抢答时间
uchardsy_buffer[]={0,0,0};
//显示缓冲
ucharcodeleddata[]=//共阴数码管的段码
{
0x3F,//"
0"
0x06,//"
1"
0x5B,//"
2"
0x4F,//"
3"
0x66,//"
4"
};
ucharcodestate[]=//抢答时的4种按键情况
{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
//
//延时
voidDelayMS(uintms)
{
uchart;
while(ms--)
for(t=0;
t<
120;
t++);
}
voidspeak(void)
uchari=10;
while(i--)
{
speaker=~speaker;
DelayMS
(2);
}}
//主程序
voidmain()
{//初始化
uchari,m=0x04;
P0=0xff;
P1=0x00;
P2=0x00;
P3=0xb3;
TMOD=0x01;
//选择工作方式
TH0=0x3c;
//定时器T0初始值的高八位
TL0=0xaf;
//定时器T0初始值的低八位
IE=0x43;
//开总中断,定时器中断,外部中断0
while
(1)
{
if(rst==0)//