八路抢答器设计单片机课程设计报告.docx
《八路抢答器设计单片机课程设计报告.docx》由会员分享,可在线阅读,更多相关《八路抢答器设计单片机课程设计报告.docx(24页珍藏版)》请在冰点文库上搜索。
八路抢答器设计单片机课程设计报告
课程设计说明书
课程名称:
《单片机技术》
设计题目:
八路抢答器设计
学院:
电子信息与电气工程学院
学生姓名:
学号:
专业班级:
指导教师:
2014年6月13日
课程设计任务书
设计题目
八路抢答器设计
学生姓名
所在学院
电子信息与电气工程学院
专业、年级、班
设计要求:
1.具有电源开关及指示灯,有复位按键;
2.P0.0—P0.6接一位数码管,用于显示抢答选手号码,P0.7经三极管驱动扬声器;
3.利用查询方式扩张8个外部中断源,P1口接八个开关按键,代表8个中断源,由74Ls09组成优先权选择电路,作为8个选手的按键;
4.P2口接8只发光二极管,作为选手抢答指示灯;
5.P3.3接开关K10,做主持人按键。
在任何情况下只有当主持人按键按下时,才允许选手抢答,否则禁止抢答,任何一位选手在主持人没有按下按键的情况下抢答,没有任何反映;
6.在允许强大状态小,若无抢答键按下,则八个抢答指示灯全灭;若有人抢答成功,蜂鸣器响一声,对应的位置编号指示灯闪烁5次,以示抢答成功;
7.当任一按键按下时,首先是时间优先,即最先按下按键者最先得到答题权;如果多位选手同时按下按键,则按位置优先原则,即7号位置优先级最高,0号位置优先级最低。
学生应完成的工作:
1、电路原理图的设计及proteus的仿真。
2、程序的编写与调试。
3、实物电路板的焊接与调试。
4、课程设计说明书的书写。
参考文献阅读:
[1]秦长海.张天鹏.翟亚芳.数字电子技术基础.北京:
北京大学出版社,2012.10
[2]徐晨.陈继红.王春明.徐慧微机原理及应用.北京:
高等教育出版社,2010.12
[3]谷树忠.刘文洲.姜航.AltiumDesigner教程.北京:
电子工业出版社,2011.11
[4]张毅刚.彭喜元.彭宇.单片机原理及应用.北京:
高等教育出版社,2012
工作计划:
6月3日课程设计任务书下达。
6月4日~6月5日电路原理图的设计与proteus仿真。
6月6日程序的编写与调试。
6月9日领取元器件和电路板。
6月10~6月12日电路板的焊接与调试。
6月13日书写课程设计报告
任务下达日期:
2014年6月3日
任务完成日期:
2014年6月13日
指导教师(签名):
学生(签名):
八路抢答器课程设计
摘要:
本设计是以八路抢答为基本理念。
考虑到依需设定限时回答的功能,利用AT89S52单片机及外围接口实现的抢答系统,利用单片机的定时器/计数器定时和计数的原理,将软、硬件有机地结合起来,使得系统能够正确地进行计时,同时使数码管能够正确地显示时间。
用开关做键盘输出,扬声器发生提示。
通过数码管来显示抢答选手的号码数,并由蜂鸣器发出抢答产生信号。
设计并制作电路原理图及用proteus软件仿真,实现抢答器功能。
关键词:
AT89S52;数码管;抢答器
1.设计背景....................................................1
1.1课题背景..................................................1
1.2课题意义..................................................1
2.设计方案....................................................1
2.1系统方案的选择............................................1
2.2数码管的显示方案选择......................................2
3.方案实施....................................................2
3.1系统结构..................................................2
3.2抢答器的工作原理..........................................3
3.3电路原理图................................................3
3.4模块电路图................................................4
3.5软件方案实施..............................................7
4.结果与结论..................................................11
4.1设计结果................................................11
4.2设计结论................................................11
5.收获与致谢..................................................11
6.参考文献....................................................12
7.附件........................................................12
1.设计背景
1.1课题背景
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未有的速度被单片机智能化控制所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说智能化控制与自动控制的核心就是单片机。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel性存技制造,与工业80C51产品指令和引脚完全兼容上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在片上拥有灵巧的位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
1.2课题意义
通过这次设计,掌握51单片机的原理,了解简单多功能抢答器组成原理,初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。
同时通过本课题设计与装配、调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影响,从而能正确设计、计算定时计数的各个单元电路。
初步掌握多功能抢答器的调整及测试方法。
提高动手能力和排除故障的能力。
2.设计方案
2.1系统方案的选择
方案一:
用以AT89S52为核心的单片机控制方案,通过相应的程序,并通过按键来进行电平识别,再由单片机输出相应的程序,并将相应数值通过数码来显示,运用这个方案来实现题目的要求,其硬件电路的设计简单,编程并不是很复杂,作品功能的调试只要稍微结合电路,修改一下相应程序即可。
方案二:
系统各部分采用中小规模集成数字电路,用机械开关按钮作为控制开关,完成抢答输入信号的触发。
该方案的特点是中小规模集成电路应用技术成熟,性能可靠,能方便地完成选手抢答的基本功能,但是由于系统功能要求较高,所以电路连接集成电路相对较多,而且过于复杂,并且制作过程工序比较烦琐,使用不太方便。
综合考虑选择方案一。
2.2数码管的显示方案选择
方案一:
采用静态显示,是指当数码管显示某一字符时七段数码管的对应段的发光二极管被选中,在这种显示方式下,每段LED都对应一个单片机口线,控制方式简单。
方案二:
采用动态显示,对于多位数码管显示时,每一位数码管轮流显示,当显示间隔时间较短时人眼就分辨不出是动态显示,而是每一位都是一直都在显示。
比较二者,静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下3显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。
其不足之处是在需要用于显示的数码管较多时占用硬件资源较多,每个LED数码管需要独占8条输出线。
随着显示器位数的增加,需要的I/O口线也将增加。
动态显示器的优点是节省硬件资源,成本较低,但是要保证显示器正常显示,CPU必需每隔一段时间执行一次显示子程序,占用CPU大量时间,降低了CPU的工作效率,同时显示亮度较静态显示器低。
通过以上分析,结合本课题只提供一位数码管,所以采用方案一。
3.方案实施
3.1系统结构
抢答器由计数器、寄存器、集成定时器和译码显示等组合、时序电路组成。
可分为抢答电路、定时电路、报警电路等几个部分。
AT89S52的RST口接上复位电路使电路具有手动复位功能,XTAL1与XTAL2接上晶振电路,给电路提供稳定的时钟频率;P0口低六位通过电阻接数码管显示,P0.7接PNP型三极管基极驱动蜂鸣器。
根据课程设计任务书的要求大概构思出硬件电路:
八位独立式键盘接单片机的P1口;数码管与单片机的P0口的低七位相连接,P0.7口语蜂鸣器相连接P2口接8只发光二极管,作为选手抢答信号灯。
系统框图如图3.1所示。
图3.1系统框图
3.2抢答器的工作原理
抢答器的工作原理是利用单片机的定时器T0、T1中断完成,其余状态循环调用显示子程序,用4个共阴极LED数码管来显示,用P0口作为数码管的八个段选,用P2口中的P2.0、P2.1、P2.2、作为4个数码管其中3个位选,P1口接8个按键,提供选手抢答,P3.0-P3.5四个接四个按键,提供开始、结束、答题时间调整、抢答时间调整,加1、减1调整之用。
设置主持人开关用于控制整个系统清0和抢答器有效开始控制的启动。
每按下一次复位键时,使锁存器的控制端为低电平,当开始抢答时,主持人按下开始键,数码管显示0,此时选手开始抢答,若按键开关1-8中任何一个都没按下,即对应锁存器的输入端均为高电平,则此时8个输出端均为高电平,对应的发光二极管均不点亮,表示抢答者正在准备状态。
当按键开关1-8中任何一个按下时,对应锁存器的输入端均为低电平,数码管显示该选手的号码,对应的LED灯闪烁5次,蜂鸣器发出声音,表示该选手抢答成功。
3.3电路原理图
抢答器的工作原理图如图3.2所示。
图3.2电路原理图
3.4模块电路图
3.4.1电源电路
单片机正常工作电压是+5V,采用L7805输出+5V工作电压,在上一级输入端,采用整流桥堆得到稳定的直流电源,连接到L7805的输入端。
电容的作用是滤除高频波,减少对单片机的危害。
总控开关S11闭合,系统上电,同时电源指示灯LED0发光。
电源模块原理图如图3.4.1所示。
图3.3电源电路图
3.4.2晶振电路
单片机内部有一个反相放大器,XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。
如图2-2所示。
加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中Y1为晶振,震荡产生的时钟频率主要由Y1确定。
电容C3,C4的作用有两个:
一是帮助振荡器起振,二是对振荡器的频率起微调作用。
晶振电路的设计如图3.4所示。
图3.4晶振电路图
3.4.3复位电路
外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平即可实现复位,硬件复位后的各状态可知寄存器以及存储器的值都恢复到了初始值,因为本设计中功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位,只能用软件复位,软件复位实际上就是当程序执行完之后,将程序通过一条跳转指令让它完成复位。
复位电路如图3.5所示。
图3.5复位电路图
3.4.4信号输入电路
AT89C51的P1口做一个为选手抢答的输入按键引脚,P1.0至P1.7轮流输出低电位,给每一个选手编号1至8,当选手按下按钮时,P1口个端口的电平变化从P1口输入,经单片机处理后从P0输出由数码管显示抢答者编号。
信号输入电路原理图如图3.6所示:
图3.6信号输入电路原理图
3.4.5优先级判断电路
课程设计任务书中要求,当任一按键按下时,首先是时间优先,即最先按下按键者最先得到答题权;如果多位选手同时按下按键,则按位置优先原则,即7号位置优先级最高,0号位置优先级最低。
系统采用四2输入与门74LS09作为基本组成电路。
优先级判断原理图如图3.7所示。
图3.7优先级判断电路原理图
3.4.6数码管显示电路
P0.0-P0.6口接一位数码管,用于显示抢答选手号。
该显示模块采用一位共阳数码管,当对单片机对应位的引脚输出低电平时,数码管相应段点亮。
数码管显示电路原理图如图3.8所示。
图3.8数码管显示电路图
3.4.7蜂鸣器电路
蜂鸣器的发声主要用于对有抢答时的报警信号,以提示主持人。
蜂鸣器的发声由三极管放大电压、电流来驱动,其中三极管的基极接单片机的P0.7口,以提供基集导通电流,从而经放大后达到蜂鸣器的发声电压、电流。
其电路图如图3.9所示。
图3.9蜂鸣器电路图
3.3.8LED灯显示电路
某一位抢答成功时,数码管静态显示选手号,同时,对应的位置编号指示灯闪烁5次,以示抢答成功,LED灯一端共接电源正极,低电平点亮驱动显示能力强。
一端接AT89S52的并行输出口P2,单片机采集到输入信号,识别出按下的按键,并跳向该按键的处理程序。
单片机P2口输出程序运行结果,点亮对应位置的LED灯。
如图3.10所示。
图3.10LED灯显示电路图
3.5软件方案实施
程序流程图如图3.11所示。
N
Y
N
Y
Y
N
图3.11程序流程图
1.外部中断1处理程序
该程序主要是用来处理主持人按键发出的抢答信号的显示和选手抢答按键的允许:
在主持人按下按键后,使数码管显示0以示意选手可以开始抢答,同时开外部中断0,即允许选手抢答中断。
同时,数
码管显示0就说明主持人已经按下按键,所以在这里没有调用键盘消抖延时程序。
流程图如图3.12所示:
N
图3.12外部中断1流程图
2.主要程序分析
本次设计的主要程序包括主持人按键处理程序,选手抢答处理程序,键盘消抖延时程序以及蜂鸣器发声时间和LED闪烁间隔时间程序,按键扫描程序流程图如图3.13所示。
图3.13按键流程图
4.结果与结论
4.1设计结果
本次课程设计的抢答器主要由AT89S52单片机、四个二输入与门74LS09、数码管、LED指示灯组成。
基于AT89S52的八路抢答器实现功能是:
实现主持人按下允许抢答按键后数码管显示0,并允许选手抢答;当有选手抢答时,其他选手再抢答无效;在有选手抢答后,数码管显示抢答选手号,对应选手抢答指示LED灯闪烁五次,同时蜂鸣器响一声。
当有两位以上选手同时抢答时,优先级由八号至一号一次降低。
当主持人再次按下按键后数码管显示0,又开始下一题的抢答。
在软硬件设计完全后,进行系统仿真,仿真成功。
依照硬件电路图焊接元器件,焊接完毕,接通电源后,系统并未工作,仔细调试还是未找到错误所在。
最后经过老师的帮助调试,抢答器还是基本上正常工作了。
4.2设计结论
目前,我们学过的都是单片机的理论知识,这些内容都是抽象的,而且还很难以理解。
单片机芯片的一些引脚及一些标记符也是很难记清的,所以比较难记忆、难学精。
通过这两周的课程设计,让我们更近一步了解了单片机的工作原理,也加深了对许多器件的进一步认识。
理论实践相结合,在学习时更容易记忆和认识。
因此,要多开一些实验的课程,通过实际操作结合理论知识,学的更好、更快,使知识点掌握的更加牢固更加深刻。
5.收获与致谢
通过这两周的课程设计,让我对抢答器的原理有了进一步的了解,也加深了对报警器、定时器、复位电路的认识。
设计中通过查阅资料,使我们对各元器件的工作原理有了更深的认识,也锻炼了我自己动手操作的能力。
在设计过程中遇到了很多的困难,但都在小组成员的团结协作下解决。
在我布线时,就要弄清线的粗细:
电源线0.8mm、其他的0.6mm。
还要看看各元器件的封装是否正确及元器件排版是否合理,尽量不要有跳线。
在这次实习中让我认识到了做什么事都要认真的、仔细的,在错误中寻找答案。
虽然在这期间遇到了不少困难,但是通过自己的思考,对知识的理解和小组成员的帮助下解决,这也为我们以后的工作奠定的基础,培养独立分析和解决问题的能力。
这次课程设计让我认识到了,学习不要只限于课本上的知识,要把它和实践相结合,才能更好的理解,我们学到知识在这次课程设计中得到了更好的体现,让我们对此有了更深的认识,课程设计不仅需要自己的动手能力,同时也需要同学的帮助,在这个过程中认识自己的不足,从中找到问题,以便更好的解决。
最后我要感谢吴欣慧老师的细心指导和热情的帮助,也要感谢我们小组成员的团结协作,最终完成了抢答器的设计。
同时我相信这10多天的努力给了我们带来了受益匪浅的知识,对我们以后的工作上也会有很大的帮助。
6.参考文献
[1]秦长海.张天鹏.翟亚芳.数字电子技术基础.北京:
北京大学出版社,2012.10
[2]徐晨.陈继红.王春明.徐慧微机原理及应用.北京:
高等教育出版社,2010.12
[3]谷树忠.刘文洲.姜航.AltiumDesigner教程.北京:
电子工业出版社,2011.11
[4]张毅刚.彭喜元.彭宇.单片机原理及应用.北京:
高等教育出版社,2012
7.附件
附件7.1电路原理图
附件7.2PCB布线图
附件7.3焊接实物图
附件7.4元器件清单
附件:
元器件清单
元器件名称
型号规格
数量
备注
晶振
11.0592MHz
1
单片机
AT89S52
1
电容
33pF
2
220uF
1
10uF
1
0.1uF
1
电阻
1kΩ
2
4.7kΩ
1
300Ω
8
四角按键
10
数码管
1
发光二极管
红色
1
绿色
8
三端稳压集成电路
LLM7805
1
整流桥
2W10
1
2输入四与门
74LS09
2
引脚底座
40
1
14
2
电源插针
2
三极管
NPN型
1
附件7.5系统程序
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitkey0=P3^3;
sbitkey1=P1^0;
sbitkey2=P1^1;
sbitkey3=P1^2;
sbitkey4=P1^3;
sbitkey5=P1^4;
sbitkey6=P1^5;
sbitkey7=P1^6;
sbitkey8=P1^7;
ucharcodetable[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
sbitbeep=P0^7;
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidled(chardat)
{
uchari;
for(i=0;i<5;i++)
{
P2=dat;
delay(500);
P2=0xff;
delay(500);
}
P2=0xff;
}
voidbeep1()
{
uchari;
for(i=0;i<100;i++)
{
beep=~beep;
delay
(2);
}
beep=0;
}
voiddisplay(ucharnum)
{
P0=table[num];
}
voidkeyscan()
{
if(key0==0)
{
delay(10);
EA=1;
EX0=1;
display(0);
}
}voidmain()
{
while
(1)
{keyscan();}
}voidexter0()interrupt0
{switch(P1)
{case0x7f:
beep1();
display(8);
led(0x7f);
EA=0;
break;
case0xbf:
beep1();
display(7);
led(0xbf);
EA=0;
break;
case0xdf:
beep1();
display(6);
led(0xdf);
EA=0;
break;
case0xef:
beep1();
display(5);
led(0xef);
EA=0;
break;
case0xf7:
beep1();
display(4);
led(0xf7);
EA=0;
break;
case0xfb:
beep1();
display(3);
led(0xfb);
EA=0;
break;
case0xfd:
beep1();
display
(2);
led(0xfd);
EA=0;
break;
case0xfe:
beep1();
display
(1);
led(0xfe);
EA=0;
break;
}
}
指导教师评语:
课程设计报告成绩:
,占总成绩比例:
30%
课程设计其它环节成绩:
环节名称:
考勤,成绩:
,占总成绩比例:
20%
环节名称:
综合,成绩:
,占总成绩比例:
50%
总成绩:
指导教师签字:
年月日
本次课程设计负责人意见:
负责人签字:
年月日
........忽略此处.......