单片机电子抢答器报告_第1页
单片机电子抢答器报告_第2页
单片机电子抢答器报告_第3页
单片机电子抢答器报告_第4页
单片机电子抢答器报告_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、本科生课程论文(设计)智能抢答器设计专业一电气工程及其自动化班级10本科电气一班学生姓名联系方式2013 年 6 月课程设计任务书题目:智能抢答器设计一. 设计要求(1) 设计一个智力竞赛抢答器,可同时供8名选手获8个代表队参加比赛,分别 使用一个按钮,编号从07。(2) 设置一个控制开关,用來控制系统的清零和抢答开始。(3) 抢答器具有数据锁存功能、显示功能和声音提示功能。抢答开始后,有选手 按动抢答按钮,锁存对应编号,并在led数码管上显示选手的编号,同时灯亮r伴随声 音提示。同时锁存电路,禁止其他选手抢答,显示编号一直保持到系统清零。二. 主要功能模块智能抢答器系统主耍功能模块包括主控模

2、块、复位电路、电源电路、选手按键、 控制开关按钮,声音提示和数码显示等部分组成。根据具体情况选择合适型号的单片机, 蜂鸣器、数码管等硬件设备进行设计。三. 课程设计的要求1、课程设计的组织形式:将班级分成若干组,每组35人,口行分工完成一个题 日。2、课程设计流程:(1) 审题、查阅相关资料,确定系统总体方案;(2) 完成硬件设计,画出駛件设计原理图(包括设备模块选择、搭接线路、计算 参数等)四、时间安排:2012. 3.262012.4. 8收集资料,确定设计方案2012. 4. 92012. 5. 27系统设计2012. 5. 282012. 6. 10 撰写课程设计论文及提交指导教师签名

3、:年 月 日综合课程设计设计报告课程设计电子抢答器年级专业学号姓名成绩评语:完成口期:2013年5刀27 u1原理分析定时抢答器的总体框图如下图所示,它出单片机和外围电路两部分组成。显示模块(四位八段共阴数码管)单片机(主控制器)r图卜1:定时抢答器的总体框图主要完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编 号,同时能封锁输入电路,禁止其他选手抢答。扩展功能为定时抢答的功能。定时抢答器的工作过程是:1、接通电源时,抢答器处于复位状态,此时抢答器禁止工作,等待主持人按下开 始按钮。2、当主持人按下开始按钮后,开始10 (时间可以调整)秒准备倒计时,数码管显 示倒计时时间。

4、此时有选手抢答则为犯规,系统报警并显示犯规选手的编号。需耍主持 人按下复位键重新开始。而且每个选手都有一个使用锦囊的机会,锦囊是有60秒的求 助时间。3、准备倒计时结束后会进入10 (时间可以调整)秒抢答倒计吋阶段,此时选手可 以抢答,定时器倒计时,数码管显示倒计时时间,倒计时最后5秒会响铃提示。当倒计 时结朿,却没有选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。当选手在抢答时间内按动抢答键时,抢答器要完成以下四项工作:第一位选手 按卜抢答键后单片机立即分辨出抢答者的编号,然后由显示屯路显示编号;关闭键盘 扫面使其他选手的按键无效,避免其他选手再次进行抢答;使定时器停止t作,时间

5、显示器上清空。当选手将问题冋答完毕,主持人操作控制开关,使系统复位以便进行下 一轮抢答。2方案选择(撰写人)2.1芯片方案选择限于目前已有芯片,选at89c51 o at89c51有40个引脚,如图2-1所示。2345678910111213141516171819201p1.0vccp1.1p0.0p1.2p0.1p1.3p0.2p1.4p0.3p1.5p0.4p1.6p0.5p1.7p0.6rstp0.7rxd/p3.0ea-txd/p3.1aleint0/p3.21 psen-int1/p3.31p2.7t0/p3.4p2.6t1/p3.5p2.5wr-/p3.6p2.4rd-/p3.7

6、p2.3xtal2p2.2xtal1 .p2.1gndp2.0at89c513938373635343332313029282726252423222140图2-1: at89c51引脚图主要功能特性如下:与mcs-51兼容 4k字节可编程flash存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0hz-24mhz三级程序存储器锁定 128x8位内部ram 32可编程i/o线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉屯模式片内振荡器和时钟电路2. 2抢答器显示模块数码管显示是采用bcd编码显示数字,程序编译容易,资源占用较少。采用8位共 阴数码管显示。它是共

7、阴极的由髙电平点亮,如图2-2所示。图2-2:共阴极数码管引脚图2.3电源方案的选择系统需要5v电源来驱动单片机at89c51o利用电脑的usb接口可以提供5v电压来 驱动单片机。2.4抢答器键盘的选择在一个单片机应用系统中,键盘和显示是系统中并不可少的输入输出设备,是控制 系统与操作人员对话的窗口。常用的有独立式键盘,行列式键盘等。因为本实验简单用到的口少,为鞋程序简单,所以选用独立键盘。2.5外部振荡电路外部振荡屯路单片机必须在at89c51的驱动下才能工作.在单片机内部有一个时钟 振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单 元,外部振荡电路见图5所示。11

8、m 1-24mc222pcl22p图2-4:外部振荡电路图一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在xtal2 引脚产生幅度为3v左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。 电路中两个电容cl, c2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进 行微调。cl, c2的典型值为22pf。2.6复位电路外部屮断和内部屮断并存,单片机有硬件复位端,只要输入持续4个机器周期的髙 电平即可实现复位。硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值, 应为本设计功能屮有倒计时时间的记忆功能,所以不能对单片机进行便件复位。只能用 软复位。软复位实际

9、上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳 转到程序初始位置。复位电路采用图2-5所示。° s11< 11koc31ott图2-5:复位电路图复位电路主要由电解电容c3、电阻r1、按键s1组成。由于单片机是高电平复位,所以当复位键按下时候,单片机的9脚reset管脚处于高电平,此时单片机处于复位状态。当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上屯复位完毕,系统程序从0000h开始执行。2.7发声电路喇叭是众多电子产品屮作为发芦器件,其图形如图2-6所示。lst n:zu sound

10、er <text>'图2-6:蜂鸣器电路图3电路原理图绘制及仿真(撰写人:)3. 1 电路原理图(proteus、protei )m*th.7c1hfczsks wli's aitg rt0-.£ dcwru pmaid rlwd 二金 2 叫 rzd -53 5-.£ iwfd 8szk dhif-m nhirw hw-m wvknix 0.q g木mlbf丿mfr*4图3t:电路原理图(proteus) 所用元件型号如下: 51 芯片:at89c51喇叭:sounder按键:button数码管:7seg-mpx4-cc晶振:crystal电阻

11、:res普通电容:cap电解电容:cao-elecprotrus仿真图如图3-2。ar:?=ds*代匸图3-2:电路仿真图(protel)3. 2 仿真(proteus)双击仿真图中的单片机at89c51,将会出现如图3-3所示的单片机对话框窗口: 在program file中装载由ke1l生成的后缀名为.hex的文件,点击仿真按钮即可进行仿真。图3-3:仿真装载文件图 主持人未按开始键8位选手抢答没任何反应。f ff图3-4:未开始屏幕显示图 主持人按开始后。抢答还没开始,5s内不能抢答,若抢答视为犯规。ib图3-5: 5s思考时间屏幕显不图 2号在抢答未开始抢答,屏幕显示出222表示犯规。

12、图3-6: 2号犯规屏幕显示图 己有选手抢答犯规,其他选手抢答无反应。 抢答开始,有15秒的抢答时间 6号抢答成功,屏幕上显示出3号。i i图3-8: 3号抢答成功屏幕显示图 己有选手抢答成功,其他选手抢答无反应。 6号选手使用锦囊的显示。4.1软件调试4综合调试(撰写人:)各模块流程图:是兰只开/密除扌定时器o中断< 、图5-2:定时器中断流程图开始返回对应值图5-3:按键扫描流程图开始选中选手编号位显示编号锁存结束图4-4:倒计时显示、选手编号显示模块流程源程序:见附录我们在调试过程中遇到的问题和对策:根据设计好的硬件电路,编写汇编语言程序,使之符合我们的设计要求。我们使用 keil

13、软件中输入源程序并编译程序,最终排除所有错误后创建目标文件生成hex文件。 在源程序的编写过程屮我们遇到以下的一些问题: 倒计时不准的问题。由于本系统中采用的倒计时均使用单片机内部的定时器来实现,由于单片机的内部 寄存器溢出速度很快,想耍运时1s就需耍多次调用泄时器中断服务程序。考虑到中断 服务程序中的其他代码运行所需要的时间,最终的定时时间可能会有些误差。可以对程 序屮的参数做一些调整使之更趋近于准确。对时间要求不严格也可以忽略。 硬件资源分配的问题。我们的系统是建立在一块单片机的开发板上的,所以对于单片机的引脚分配我们不 能自行调配。但是因为木实验的引脚使用较少,所以我们就没有用到1|0扩

14、展。 数码显示的问题。在显示模块屮锁存黠会对显示的内容进行锁存,但是对于多位数的显示就要用扫描 的方式來显示倒计时的十位与个位。这就会使得倒计时的显示时长难以控制,并冃在扫 描的过程中会占用cpu。为了解决这些矛盾我们在扫描的过程中同时进行安检扫描来时 得有按键按下时打断时间的显示,转去显示按键按下后的结果。这样避免了显示时间的 时候安检无效的问题,确保了安键的灵敏行。 抢答成功后的屏蔽问题。为了确保在抢答的时候第一位选手抢答成功后,后续选手的抢答无效。就要的第一 位同学抢答成功后,立即跳出循环不在进行键盘扫描程序的调用,然后显示选手编号。 计时出错的问题。在倒计时的过程屮有事侯会得不到我们预

15、期的结果,显示错误的信息。我们在倒计 时归零时要关闭定时器以及将time定义为无符号型以避免程序出错,提高程序的稳定 性。对于其他的变量也要注意数据类型以及初始化方面的问题。由于本设计直接在仿真软件中上运行,所以磧件调试基本不用进行。若采用自己焊接的板子,硬件调试过程屮应该有以下步骤: 检查电路在通电调试之前,必须认真检查电路连线是否有错误。对照电路图,按一定的顺序 逐级对应检查。特别要注意检查电源是否接错,电源与地是否有短路,二极管方向和电解电容的极 性是否接反,集成电路和晶体管的引脚是否接错,轻轻拔一拔元器件,观察焊点是否牢 固,等等。 通电观察一定要调试好所需要的电源电压数值,并确泄电路

16、板电源端无短路现象后,才能给 电路接通电源。电源一经接通,不要急于用仪器观测波形和数据,而是要观察是否有异 常现象,如冒烟、异常气味、放电的声光、元黠件发烫等。如果有,不要惊慌失措,而 应立即关断电源,待排除故障后方可重新接通电源。然后,再测量每个集成块的电源引 脚电压是否正常,以确信集成电路是否己通电工作。 静态调试先不加输入信号,测量各级直流工作电压和电流是否正常。直流电压的测试非常方 便,可直接测量。而电流的测量就不太方便,通常采用两种方法来测量。若电路在卬制电路板上留有测试用的屮断点,可串入屯流表直接测量出电流的数值,然后再用焊锡连 接好。若没有测试孔,则可测量直流电压,再根据电阻值大

17、小计算出直流电流。一般对 晶体管和集成电路进行静态工作点调试。 动态调试加上输入信号,观测电路输出信号是否符合要求。也就是调整电路的交流通路元件, 如电容、电感等,使电路相关点的交流信号的波形、幅度、频率等参数达到设计要求。 若输入信号为周期性的变化信号,可用示波器观测输出信号。当采用分块调试时,除输 入级采用外加输入信号外,其他各级的输入信号应采用前输出信号。对于模拟电路,观 测输出波形是否符合要求。对丁数字电路,观测输出信号波形、幅值、脉冲宽度、相位 及动态逻辑关系是否符合要求。在数字电路调试中,常常希望让电路状态发生一次性变 化,而不是周期性的变化。因此,输入信号应为单阶跃信号(又称开关

18、信号),用以观察 电路状态变化的逻辑关系。 指标测试电子电路经静态和动态调试正常之后,便可对课题要求的技术指标进行测量。测试 并记录测试数据,对测试数据进行分析,最后作出测试结论,以确定电路的技术指标是 否符合设计要求。如有不符,则应仔细检查问题所在,一般是对某些元件参数加以调整 和改变。若仍达不到要求,则应对某部分电路进行修改,甚至要对整个电路重新加以修 改。因此,要求在设计的全过程中,要认真、细致,考虑问题要更周全。尽管如此,出 现局部返工也是难免的。5总结(撰写人:)在4周的课程设计后,在小组6名成员的共同努力下,最终完成了这次课程设计。 合作上,任务的分配较为合理。首先6名成员共同探讨

19、设计的大致流程,抢答器要实现 哪些主要功能等。接着就是分工,4名成员负责程序的编写与调试,2名成员负责原理 图仿真。但是i办作上进行得不是很顺利,比如程序的编写过程没有i办调好,基本上都是 各编各自的程序,没有把程序齐个功能模块进行分配,提髙编写程序的效率与进程。在电子抢答器的功能上,其基本功能:实现多路抢答,显示最终抢得答题机会的机 号,主持人能对抢答器进行控制启停,都一一实现。但是功能还有待完善以及进一步的 丰富,比如思考准备时间,抢答时间的控制和设定,答题时间的控制及实现等功能都有 待完善。在犯规信息的显示上做的也不够完美,这也是需要改进的地方通过此次的课程设计,让我们更进i步的巩固了单

20、片机的各种知识。我们的项口在 硬件部是基于开发板的无序过多调试,主耍的调试过程在与程序的调试部分。在编写调 试程序的过程中遇到了诸多的困难,首先在编写程序之前要对整个项目的程序在整体上 有所把握,要分清楚条理和模块,对模块的划分耍适度不可过细也不可太粗略。在程序 调试过程屮出现的bug要结合实际运行的现象对其进行分析,找出原因所在,逐步修改 程序直到问题解决为止。在总体上,程序的主要架构非常重要,从我们的这个仅有二三 百行的小程序中就可见一斑,可见在人型程序中就更要对程序的总体结构仔细斟酌。总之,通过这一次的课程设计,我们学到了很多知识,也对过去的所学有了跟深的 认识与理解,树立了对自己工作能

21、力的信心,对我们以后的学习和丁作打下了良好地基 础。附录:;抢答开始标志位;响铃标志位;抢答按键口数据存放地址源程序(撰写人:)ok equ 20hring equ 22hdatao equ 36horg 0000hajmp mainorg 0003hajmp inttoorg ooobhajmp tointorg oo1bhajmp hintorg 0040hmain:mov rl,#20mov r2, #30mov 38h, #60mov tmod,#11hmov tho, #ofoh;初设抢答时间为20s;初设答题时间为30s;启用锦囊时间从60s倒计时;设置未定时器/模式1mov tl

22、o, #offh;越高发声频率越高,越尖mov th1, #3chmov tl1, #oboh;50ms为一次溢出中断setb ea;允许二个中断,t0/t1setb etosetb et1clr 0kclr ringsetb trisetb tro开始就运行定时器,以开始显示fff.如果想重新计数,重置th1/tl1就可以了start:mov datao, ttoffhmov r5, #0bhmov r4, #obhmov r3, #obhacall displayjnb p3. 3, selsubojnb p3. 4, tz3jb p3. 0, nextacall delayjb p3.

23、0, next否者跳到非法抢答查询setb exoacall barkmov a, r1mov r6,asetb ok抢答倒计时还是回答倒计时mov r3, #oahajmp count序"在count里面;初始化;未开始抢答时候显示fff;倒计时调整;去抖动,如果开始键按下就向下执行,;开放into;按键发声;送r1->r6,因为r1中保存了抢答时间;抢答标志位,在使用锦囊时用作判断是;抢答只显示计时,灭号数;进入倒计时程序查询有效抢答的程next:jnbjnbjnbjnbjnbjnbpl. 0, false 1pl. 1, false2pl. 2, false3pl. 3,

24、 false4pl. 4, false5pl. 5, false6ajmp starttz1:ajmp false7tz2:ajmp false8tz3:ajmp selsub1false1: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:mo

25、v r3, #08hajmp errorselsubo: mov a, r1mov b, #oahdiv abmov r5, amov r4,bmov r3, #oahacall display;先在两个时间led上显示r1;p3. 5为+ls键,如按下跳到inco;p3. 6为-is键,如按下跳到deco;p3. 1为确定键,如按下跳到backo;如果不是99, r2加1,如果加到99, r1;如果r1为0, r1就置99,jnb p3. 1, backoajmp selsuboinco:mov a,r1cjne a, #63h, addo 就置0,重新加起。mov rl, #00hacal

26、l delay1ajmp selsuboaddo:inc r1acall delay1ajmp selsubodeco:mov a,r1jz setr1dec r1acall delay1ajmp selsubosetr1: mov r1,#63hacall delay1ajmp selsubobacko: ajmp startselsub1: mov a, r2mov b,#oahdiv abmov r5,amov r4,bmov r3,#0ahacall displayjnb p3. 1, back1ajmp selsub1inc1:mov a, r2cjne a, #63h, add1m

27、ov r2, #00hacall delay1ajmp selsub1add1:inc r2acall delay1ajmp selsub1deci:mov a, r2jzsetr2dec r2acall delay1ajmp selsub1setr2:mov r2, #63hacall delay1ajmp selsub1back1: ajmp startrepeat:mov 扎 38hmov r6,aclr ringcount:mov ro, #oohmov th1, #3chmov tl1, #obohrecount:mov a, r6时间或回答时间给r6mov b, #oah;使用锦囊

28、时重新计时;当倒计时进入最后5秒的时候,启用锦囊能消除蜂鸣;重置定时器中断次数;重置定时器;r6保存了倒计时的时间,之前先将抢答div abmov 30h,amov 31h,bmov r5, 30hmov r4, 31hmov a, r6;除十分出个位/十位;十位存于(30h);个位存于(31h);取十位;取个位subb a, #07hjnc largermov a, rocjne a, #oah, fullclr ringajmp checkfull: cjne a, #14h, check 重新计setb ringmov a, r6jz quitmov ro, #00hdec r6ajmp

29、 checklarger: mov a, rocjne a, #14h, checkdec r6mov ro, #00hcheck: jnb p3. 1,quit;如按下停止键退出;大于5s跳到larger,小于等于5s会提醒;is中0. 5s向下运行;下面是is的情况,响并显示号数并清ro,;计时完毕;一秒标志减1;如果is向下运行,否者跳到“停/显示;计时一秒r6自动减1jnb ok, checkk;只在回答倒计时才有效;判断是否使用锦囊ajmp nexttcheckk:jnb p3. 0, repeatjb ok,accout;如果是抢答倒计时,如是则查询抢答,否者跳过查询继续倒数(这里

30、 起到锁抢答作用)ajmp recountaccout:mov a, dataojnb acc. 0, true1jnb acc. 1, true2jnb acc. 2, true3jnb acc. 3, true4jnb acc. 4, true5jnb acc. 5, true6jnb acc. 6, tz7jnb acc. 7, tz8ajmp recounttz7: ajmp true7tz8: ajmp true8quit: clr ok;如果按下了"停止键执行的程序clr ringajmp starttrue1: acall barkmov a, r2mov r6, a;

31、抢答时间r2送r6mov r3,#01hclr ok;因为答题的计时不再查询抢答,所以就锁了抢答ajmp counttrue2:acall barkmov a, r2mov r6, aclr 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 oktrue8:acall barkmov a, r2mov r6, amov r3, #08hclr okajmp counterror:mov ro, #00hhere:mov th1, #3chmov tl1, #obohmov 34h,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论