课程设计(论文)题目课程设计(论文)任务 题目:八路数字抢答器控制要求:(1) 抢答器可以供8名选手或8组参赛队使用,分别用8个按钮S0----S8表示。(2) 设置一个系统清除和抢答控制开关S,该开关由主持人控制。(3) 抢答器具有锁存与显示功能。即1人按后,其他电路被封锁,七段显示器上显示答题人号码,一次抢答的时间由主持人设定(如30秒)。(4) .如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。控制器由AC220V供电。主要设计内容: 硬件电路设计:1. CPU最小系统设计(包括CPU选择,晶振电路,复位电路)2. 开关接口电路以及声音电路设计3. 显示电路及电源设计软件设计:1.编程程序流程图2.程序清单编写工作计划:第1天 课程设计任务下达第2天 资料收集第3天 总体设计方案的确定第4天 CPU最小系统设计 第5天 开关接口电路以及声音电路设计第6天 显示电路及电源设计 第7天 确定程序流程图第8天 软件编写第9天 设计说明书完成指导教师评语 指导教师签字: 年 月 日总成绩 平时表现:20% 答辩:20% 设计内容质量:60% 目 录第1章 课程设计的方案 概述 系统组成总体结构 4第2章 课程设计内容 单片机最小系统设计 功能电路设计 软件流程图设计 系统硬件电路原理图设计 5第3章 课程设计总结 6参考文献 6第1章 课程设计的方案 概述题目的意义: 现在,有很多时候都需要竞争,而最激烈最残酷的竞争可能就是现场答题方式的比赛.而且这种比赛现正越来越多,无论是在选拔人才,社会娱乐等等很多场合都应用这种比赛方式。而这种现场式的比赛方式一个最大的要求及时实时性,比如抢答,限时答题等等如果都用裁判去完成计时,判断等工作,不但效率低,而且还不可避免的会有人为引起的误差和错误,这样会违背比赛的公平公正性。 在这样一种情况下就需要开发一种避免人为因素的机器,让比赛变得即高效,又绝对公平。应用场合:系统功能介绍: 系统组成总体结构为完成上述系统功能,选择和设计八路抢答器电路组成系统,其系统组成框图如图所示。 图 系统总体框图第2章 课程设计内容 单片机最小系统设计1.单片机选择本设计CPU选择AT89C51单片机,AT89C51 单片机采用双列直插封装(DIP),有40 个引脚。与MCS—51 系列单片机的指令和引脚设置兼容。其主要特征如下:8 位CPU ,内置4K 字节可重复编程Flash,可重复擦写1000 次,完全定态操作:0Hz~24Hz,可输出时钟信号,128B 的片内数据存储器,32 根可编程I/O 线,2个16 位定时/计数器,中断系统有6 个中断源,可编为两个优先级。一个全双工可编程串行通道,具有两种节能模式:闲置模式和掉电模式P0、P1、P2、P3 口作为普通I/O 口使用时都是准双向口结构。另外,I/O 口的端口自动识别功能,保证了无论是P1 口(低8 位地址)P2 口(高8位地址)的总线复用,还是P3 口的功能复用,内部资源自动选择而不需要用指令进行状态选择。振荡器特性:XTAL1 和XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。2.时钟电路设计时钟控制电路是抢答器设计的关键,它要完成以下功能:a.主持人将控制开关拨到"开始"位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。 b.当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作3.复位电路设计单片机的复位是靠外电路来实现的,在正常运行情况下,只要RST 引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果RST 引脚上持续为高电平,单片机就处于循环复位状态。可见复位的时间和充电的时间有关,充电时间越长复位时间越长,增大电容或增大电阻都可以增加复位时间。为了保证系统可靠复位,在设计复位电路时,一般使RESET 引脚保持10ms 以上的高电平,单片机就能实现复位。本设计采用手动复位方式,电路如图 。 功能电路设计1.电源电路设计电源电路采用三端集成线性稳压集成块,L7805CV,因为它的外围电路比较简单,并且工作比较稳定,很适合74系列的集成块。它的稳压精度为2%,工作电流,封装为TO-220(A),工作温度也很不错,并且具有过温保护和短路保护,最大输入电压为35V,能对电路的长时间工作有很大的保障。如图 2.晶振电路设计单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。AT89C51 单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl(X1)和XTAL(X2)分别是此放大电器的输入端和输出端。该反向放大器可配置为内部振荡。在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式。由于采用内部振荡方式时,电路简单,所得的时钟信号比较稳定,本设计采用内部振荡方式,其电路如图:3.报警电路设计报警电路用于报警,当遇到报警信号时,发出警报。一般喇叭是一种电感性图报警电路图。8951驱动喇叭的信号为各种频率的脉冲。因此,最简单的喇叭驱动方式就是利用达林顿晶体管,或者以两个常用的小晶体管连接成达林顿架势。在右图中电阻R为限流电阻,在此利用晶体管的高电流增益,以达到电路快速饱和的目的。不过,如果要由P0输出到此电路,还需要连接一个10K的上拉电阻。选手在设定的时间内抢答时,实现:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次*作"清除"和"开始"状态开关。图面是数字抢答器的报警电路图。其中555构成多谐振荡器,振荡频率fo=1.43/〔(RI+2R2)C〕,其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。 软件流程图设计软件功能、作用说明,流程图设计 1、主程序流程图2、主程序清单OK EQU 20H;抢答开始标志位RING EQU 22H;响铃标志位ORG 0000HAJMP MAINORG 0003HAJMP INT0SUBORG 000BHAJMP T0INTORG 0013HAJMP INT1SUBORG 001BHAJMP T1INTORG 0040HMAIN: MOV R1,#30;初设抢答时间为30sMOV R2,#60;初设答题时间为60sMOV TMOD,#11H;设置未定时器/模式1MOV TH0,#0F0HMOV TL0,#0FFH;越高发声频率越高,越尖MOV TH1,#3CHMOV TL1,#0B0H;50ms为一次溢出中断SETB EASETB ET0SETB ET1SETB EX0SETB EX1;允许四个中断,T0/T1/INT0/INT1CLR OKCLR RINGSETB TR1SETB TR0;一开始就运行定时器,以开始显示FFF.如果想重新计数,重置TH1/TL1就可以了;=====查询程序=====START: MOV R5,#0BHMOV R4,#0BHMOV R3,#0BHACALL DISPLAY;未开始抢答时候显示FFFJB ;dddddddACALL DELAYJB ;去抖动,如果"开始键"按下就向下执行,否者跳到非法抢答查询ACALL BARK;按键发声MOV A,R1MOV R6,A;送R1->R6,因为R1中保存了抢答时间SETB OK;抢答标志位,用于COUNT只程序中判断是否查询抢答MOV R7,#01H ;读抢答键数据信号标志,这里表示只读一次有用信号MOV R3,#0AH;抢答只显示计时,灭号数AJMP COUNT;进入倒计时程序,"查询有效抢答的程序"在COUNT里面NEXT: JNB START;=====非法抢答处理程序=====FALSE1: MOV R3,#01HAJMP ERRORFALSE2: MOV R3,#02HAJMP ERRORFALSE3: MOV R3,#03HAJMP ERRORFALSE4: MOV R3,#04HAJMP ERRORFALSE5: MOV R3,#05HAJMP ERRORFALSE6: MOV R3,#06HAJMP ERRORFALSE7: MOV R3,#07HAJMP ERRORFALSE8: MOV R3,#08HAJMP ERROR;=====INT0(抢答时间R1调整程序)=====INT0SUB:MOV A,R1MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAY;先在两个时间LED上显示R1JNB ;为+1s键,如按下跳到INCOJNB ;为-1s键,如按下跳到DECOJNB ;为确定键,如按下跳到BACKOAJMP INT0SUBINC0: MOV A,R1CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99,R1就置0,重新加起。MOV R1,#00HACALL DELAY1AJMP INT0SUBADD0: INC R1ACALL DELAY1AJMP INT0SUBDEC0: MOV A,R1JZ SETR1;如果R1为0, R1就置99,DEC R1ACALL DELAY1AJMP INT0SUBSETR1: MOV R1,#63HACALL DELAY1AJMP INT0SUBBACK0: RETI;=====INT1(回答时间R2调整程序)=====INT1SUB:MOV A,R2MOV B,#0AHDIV ABMOV R5,AMOV R4,BMOV R3,#0AHACALL DISPLAYJNB INT1SUBINC1: MOV A,R2CJNE A,#63H,ADD1MOV R2,#00HACALL DELAY1AJMP INT1SUBADD1: INC R2ACALL DELAY1AJMP INT1SUBDEC1: MOV A,R2JZ SETR2DEC R2ACALL DELAY1AJMP INT1SUBSETR2: MOV R2,#63HACALL DELAY1AJMP INT1SUBBACK1: RETI;=====正常抢答处理程序=====TRUE1: ACALL BARKMOV A,R2MOV R6,A;抢答时间R2送R6MOV R3,#01HCLR OK;因为答题的计时不再查询抢答,所以就锁了抢答AJMP COUNTTRUE2:ACALL BARKMOV A,R2MOV R6,AMOV R3,#02HCLR OKAJMP COUNTTRUE3:ACALL BARKMOV A,R2MOV R6,AMOV R3,#03HCLR OKAJMP COUNTTRUE4:ACALL BARKMOV A,R2MOV R6,AMOV R3,#04HCLR OKAJMP COUNTTRUE5:ACALL BARKMOV A,R2MOV R6,AMOV R3,#05HCLR OKAJMP COUNTTRUE6: ACALL BARKMOV A,R2MOV R6,AMOV R3,#06HCLR OKAJMP COUNTTRUE7:ACALL BARKMOV A,R2MOV R6,AMOV R3,#07HCLR OKAJMP COUNTTRUE8:ACALL BARKMOV A,R2MOV R6,AMOV R3,#08HCLR OKAJMP COUNT;=====犯规抢答程序=====ERROR: MOV R0,#00HMOV TH1,#3CHMOV TL1,#0B0HMOV 34H,R3;犯规号数暂存与(34H)HERE: MOV A,R0CJNE A,#06H,FLASH;向下运行->灭并停响CLR RINGMOV R3,#0AHMOV R4,#0AHMOV R5,#0AH;三灯全灭AJMP CHECK1FLASH: CJNE A,#0CH,CHECK1;下面是的情况,响并显示号数并清R0,重新计SETB RINGMOV R0,#00HMOV R3,34H;取回号数MOV R5,#0BHMOV R4,#0BH;显示FF和号数AJMP CHECK1CHECK1: JNB DISPLAYAJMP HEREQUIT1: CLR RINGCLR OKAJMP START;=====发声程序=====BARK: SETB RINGACALL DELAY1ACALL DELAY1CLR RING;按键发声RET;=====TO溢出中断(响铃程序)=====T0INT: MOV TH0,#0ECHMOV TL0,#0FFHJNB RING,OUT;CPL ;RING标志位为1时候口不短取反使喇叭发出一定频率的声音OUT: RETI;=====T1溢出中断(计时程序)=====T1INT: MOV TH1,#3CHMOV TL1,#0B0HINC R0RETIEND 系统硬件电路原理图设计系统硬件电路原理图如图2. 所示。 图2.第3章 课程设计总结此课程的课程设计实际是作为电气工程及其自动化专业学生学习完《单片机原理及接口技术》课程后,进行的一次全面的综合训练,其目的在于加深对单片机技术基础理论和基本知识的理解,掌握运用单片机技术基础合理论知识设计一些简单的基本应用电路的方法。虽说整个课设过程很辛苦,可是我们从中找到了乐趣、接触了实践,以前不是特别明白的地方也通过实践弄懂了。总的来说,这次课程设计使我 感受到了理论与实践相结合的目的及其重要意义,不但使我对所掌握的单片机技术基础知识有了更深刻的认识,还提高了我的动手查阅资料的能力而且还锻炼了自己的独立思考能力。设计思路是最重要的,只要你的设计思路是成功的,那你的设计已经成功了一半。因此我们应该在设计前做好充分的准备,像查找详细的资料,为我们设计的成功打下坚实的基础。设计简洁、易懂 、不超出我的能力范围的内容不涉及,这写想法在我没设计此电路之前就已经有拉考虑,但是做完之后在失真度方面还是有那么一点欠缺,做为一名刚学习完《单片机原理及接口技术》的我来说有一定的难度,但是这对于我掌握,理解学习过的知识有很大的帮助,对于思维 、逻辑及其理论知识的运用等多方面有了更加进一步的掌握,在做课设的过程中我查阅了很多老师的参考书通过参考及运用自己所掌握的知识完成了此次的设计,在这里我也感谢所有给予我关心帮助的老师和同学,希望以后有更多的机会来锻炼自己的综合素质,为以后的学习、生活打下良好的基础,在这次课设中也暴露了自己的一些缺点,基础知识不够扎实,我会在以后的日子里加以改正,来提高自己综合能力。 总之,这次实验过程中我受益匪浅,在摸索我和我的搭档实现了课题所要求的结果。培养了我的设计思维,增加了动手操作的能力。更让我体会到实现电路功能喜悦。