




已阅读5页,还剩19页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆理工大学课程设计题目 数字抢答器 二级学院 电子信息与自动化 专 业 自动化 班 级 108070101 学生1姓名 学号 学生2姓名 学号 学生3姓名 学号 指导教师 考核项目设计50分平时成绩20分答辩30分得分总分考核等级教师签名基于51单片机的6路抢答器摘 要此次设计提出了用at89s52单片机为核心控制元件,设计一个简易的抢答器,本方案以at89s52单片机作为主控核心,与晶振、数码管、蜂鸣器等构成六路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的六路抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用c51语言编程,使其实现一些基本的功能。本设计的系统实用性强、判断精确、操作简单、扩展功能强。它的功能实现是比赛开始,主持人读完题之后按下抢答键,声音提示,提示音结束后抢答倒计时开始,此时数码管开始进行10s的倒计时,直到有一个选手抢答,选手按下抢答键时有声音提示并在对应的数码管上显示出该选手的编号和抢答所剩的时间。如果在规定的10s时间内没有做出抢答,鸣笛提示本轮抢答结束,则此题作废,即开始重新一轮的抢答。下一轮抢答前先将时间归零,再按下抢答键即开始。抢答者回答正确后,主持人可按下加分键,对应于选手编号的数码管显示数字就增加(按下一次加一分,最高显示9分),反之,抢答者回答错误后,在该选手的得分数不为0时,主持人可按下减分键(按下一次减一分)。关键词:单片机、at89s52、抢答器 目录第一章 概述1第二章 各模块的选择和论证21. 方框图2 2.1抢答器显示模块选择22.2 控制器选择32.3 键盘选择32.4 时钟频率电路的设计42.5 复位电路的设计52.6 报警电路53. 系统硬件连接图64. 元器件清单6第三章 软件的设计63.1程序流程图73.2源程序8第四章 系统调试164.1 硬件调试问题分析174.2 软件调试问题分析17参考文献194第1章 概述 随着电子技术的发展,诸如智力竞赛、娱乐项目越来越多,这就需要一个能在人非常多的情况下争取到发言或演示的装置,抢答器就满足了这样的要求欧,近年来由于数字电子技术的发展,数字抢答器也应运而生,因为它设计简单,功能稳定的优点被广泛应用于各种竞赛项目。此次设计提出了用at89s52单片机为核心控制元件,设计一个简易的抢答器,本方案以at89s52单片机作为主控核心,与晶振、数码管、蜂鸣器等构成六路抢答器,利用了单片机的延时电路、按键复位电路、时钟电路、定时/中断等电路,设计的六路抢答器具有实时显示抢答选手的号码和抢答时间的特点,还有复位电路,使其再开始新的一轮的答题和比赛,同时还利用c51语言编程,使其实现抢答器的一些基本的功能。本设计的系统实用性强、判断精确、操作简单、扩展功能强。它的功能实现是比赛开始,主持人读完题之后按下抢答键,声音提示,提示音结束后抢答倒计时开始,此时数码管开始进行10s的倒计时,直到有一个选手抢答,选手按下抢答键时有声音提示并在对应的数码管上显示出该选手的编号和抢答所剩的时间。如果在规定的10s时间内没有做出抢答,鸣笛提示本轮抢答结束,则此题作废,即开始重新一轮的抢答。下一轮抢答前先将时间归零,再按下抢答键即开始。抢答者回答正确后,主持人可按下加分键,对应于选手编号的数码管显示数字就增加(按下一次加一分,最高显示9分),反之,抢答者回答错误后,在该选手的得分数不为0时,主持人可按下减分键(按下一次减一分)。 第二章 各模块的选择和论证1.方框图led显示模块按键扫描at89c52声音模块图2-0 功能模块图第一步按键扫描,at89c52接收到按键扫描的信息确定是否开始启动本轮抢答,当扫描键被按下,第二步at89c52启动声音模块,蜂鸣器发声一段时间停止发声,与此同时选手开始抢答,第三步at89c52启动led显示模块,显示抢答倒计时,和各选手的的分数,整个过程按键扫描一直执行,当有选手按下抢答键,按键扫描终止对选手按键的扫描,at89c52启动声音模块提示有选手按键,并将该选手的序号发送到led显示,第四步,按键扫描对加减分按键扫描,按键每按下一次对相应的选手对应的数码管上显示的分数加减一,直到抢答复位键的按下,开始新的一轮循环。当倒计时结束时选手仍然没有按键,at89c52启动声音模块,提示本轮抢答结束。2.1抢答器显示模块选择显示模块主要是显示抢答的时间,组别号码和选手得分情况。在使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用bcd编码显示数字,程序编译容易,资源占用较少。显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。在这里我们使用的是七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是:显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。4位8段数码管显示电路如下图所示。图 2-1 4位七段数码管显示电路图上图中数码管采用的是4位一体七段共阳数码管,其中ah段分别接到单片机的p0口,由单片机输出的p0口数据来决定段码值,位选码com1,com2,com3,com4,(com1,com2,com3,com4)分别接到单片机的p20,p21,p22 ,p23,(p24,p25,p26,p27)由单片机来决定当前该显示的是哪一位。在图中还有一个排阻,连接在p0口上,用作p0口的上拉电阻,保证p0口没有数据输出时候处于高电平状态。通过查表法,将其在数码管上显示出来,其中p0口为字型码输入端,p2口的8位为字选段输入段。在这里我们通过查表将字型码送给8段数码管显示的数字。2.2 控制器选择控制器主要用于对显示、抢答、声音、计分等模块进行控制。采用atmel公司的at89s51作为系统控制器的cpu方案。单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。2.3 键盘选择键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。本设计采用独立式键盘:键盘接口中使用多少根i/o线,键盘中就有几个按键,键盘接口使用了8根i/o口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图2-2。最简单的编码方式就是根据i/o输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,cpu可以通过直接读取i/o口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。独立式键盘的缺点是需要占用比较多的i/o口线,当单片机应用系统键盘中需要的按键比较少或i/o口线比较富余时,可以采用这样类型的键盘。 图2-2 独立式键盘2.4 时钟频率电路的设计单片机必须在时钟的驱动下才能工作。在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。时钟电路如下图所示。图 2-3 外部振荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在xtal2引脚产生幅度为3v左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容c1,c2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数。图中时钟频率为12mhz。2.5 复位电路的设计 单片机的第9脚rst为硬件复位端,只要将该端持续4个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如下所示:图2-4 按键复位电路2.6 报警电路 利用程序来控制单片机某个口线的“高”电平或“低”电平,接上蜂鸣器就能发出声音,若再利用延时程序控制“高”或“低”电平的持续时间,就能改变蜂鸣器鸣叫的时间。本文设计如下图所示。图中利用单片机的i/o端口p16,单片机通过设定该端口的高、低电平使蜂鸣器发声。 图 2-5 发声电路3. 系统硬件连接原理总图 图2-6 系统硬件连接原理图4. 元器件清单4位8段数码管 2只;at89s52芯片 1只;12m晶振 1只;30pf瓷片电容 2只;10uf电解电容 1只;电阻1k、200、2.2k 各一只;按键button 11只;三极管8550 1只;蜂鸣器 1只;排阻471、102 各一只; 74ls245 一只; 第三章 软件的设计3.1程序流程图开始设置定时器检测抢答开始键是否按下启动定时器、蜂鸣器 检测抢答键是否按下显示选手编号倒计时是否完成检测加分键是否按下检测减分键是否按下对应数码管加一对应数码管减一检测抢答复位键是否按下图3-03.2源程序 #include #define uint unsigned int#define uchar unsigned char/*-共阳极0-9的数码管段码-*/unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc0;/*- 变量定义-*/sbit start=p36;sbit reset=p37;sbit key1=p10;sbit key2=p11;sbit key3=p12;sbit key4=p13;sbit key5=p14;sbit key6=p15;sbit key7=p16;sbit key8=p17;sbit jia=p34;sbit jian=p35;bit action = 0;uchar second=10,a7=0;uchar timer0_count = 0;uchar number=0;uchar number_display = 0;uchar k;/*- 延时函数-*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=120;y0;y-);/*- 显示函数-*/void display(uchar number,uchar second)p2 = 0x01;p0 = tablesecond;delay(1);p2 = 0x02;p0 = tablenumber;delay(1);p2 = 0x04;p0 = tablea0;delay(1);p2 = 0x08;p0 = tablea1;delay(1);p2 = 0x10; p0 = tablea2;delay(1);p2 = 0x20;p0 = tablea3;delay(1);p2 = 0x40;p0 = tablea4;delay(1);p2 = 0x80;p0 = tablea5;delay(1);/*- 抢答开始按键检测函数-*/void start_keyscan() void fengling();while(start = 0) key7=0;display(number_display,second);if(start = 1) key7=1;action = 1;tr0 = 1;/*- 抢答者按键检测函数-*/uchar key_scan8()if(key1 = 0)delay(8);if(key1 = 0)number = 1;number_display = number;if(key2 = 0)delay(8);if(key2 = 0)number = 2;number_display = number;if(key3 = 0)delay(8);if(key3 = 0)number = 3;number_display = number;if(key4 = 0)delay(8);if(key4 = 0)number = 4;number_display = number;if(key5 = 0)delay(8);if(key5 = 0)number = 5;number_display = number;if(key6 = 0)delay(8);if(key6 = 0)number = 6;number_display = number;if(number_display != 0)return number_display;elsereturn 0;/*- 抢答复位函数-*/void reset_keyscan()if(reset = 0)delay(8);if(reset = 0)number_display = 0; second=10; /*- 主函数-*/void main()tmod=0x01;th0=(65536-50000)/256;tl0=(65536-50000)%256;ea=1;et0=1;tr0=0;p2=0x00;while(1) reset_keyscan();start_keyscan(); if(jia=0&anumber-10) delay(10); while (jian=0) display(number_display,second); anumber-1=anumber-1-1; while(action) while(!key_scan8() /无人抢答display(number_display,second);if(second = 0)second = 10;break;tr0 = 0;key7=0;delay(80); display(number_display,second); key7=1;action = 0;break;display(number_display,second); /*- 定时中断-*/void timer0() interrupt 1th0=(65536-50000)/256;tl0=(65536-50000)%256;timer0_count +;if(timer0_count = 20)second -;timer0_count = 0; if(second=0) key7=0; delay(60); key7=1; 第四章 系统调试系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产品。硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如错线、开路、短路等)。这种调试可单独模拟进行,也可通过开发装置由软件配合进行,硬件联机调试则必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原因并加以改正,直到运行结果正确为止。这时该 程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。在联调中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系统功能是否达到设计要求,是否达到预期的效果。本设计的调试方法:先仿真,达到预期效果,4.1 硬件调试问题分析数码管显示问题:本次设计的最终方案是采用数码管显示屏实现显示功能,最初数码管显示不正常,亮度不够。通过调试发现这是由于数码管的驱动电流不够,头一次增加了数码管驱动74ls245芯片在p0口,数码管依旧亮度不够,经分析,驱动应该加在数码管的位选信号上,再一次在p2口上加上74ls245芯片,数码管亮度正常。蜂鸣器异常启动问题:蜂鸣器的启动/关闭是通过单片机输出的控制信号来实现的,最初蜂鸣器始终不发出声音,经过仔细的检查原件及连接电路,找出了其不发声的原因,三级管用成了npn型的8050,改动芯片为pnp型的8550后,蜂鸣器发音正常。4.2 软件调试问题分析蜂鸣器发声异常:蜂鸣器要发出声音是通过单片机的p16输出低电平来实现,最初仿真的时候用的是喇叭,它是需要单片机提供一个具有一定频率的方波信号来发声,所以一直不会发出声音,修改程序后,解决了该问题。第五章 总结通过这次毕业设计,我才明白学习是一个长期积累的过程,在以后的工作、生活中都应该不断的学习,努力提高自己知识和综合素质。总之,不管学会的还是学不会的的确觉得困难比较多,真是万事开头难,不知道如何入手。最后终于做完了有种如释重负的感觉。此外,还得出一个结论:知识必须通过应用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年标准自然人借款合同模板
- 2025简化版房屋租赁合同
- 2025辽宁沈阳市浑南区森工林业集团有限公司招聘56人笔试参考题库附带答案详解
- 2025江苏南通市崇川区潜慧恒馨企业发展有限公司招聘100人笔试参考题库附带答案详解
- 2025山东祥泰商贸有限公司招聘7人笔试参考题库附带答案详解
- 金融基金考试试题及答案
- 采茶劳务合同协议书范本
- 合同变更书面协议书
- 洗井合同协议书图片
- 仓库储存合同协议书范本
- DL∕T 5622-2021 太阳能热发电厂储热系统设计规范
- 机械制造及其自动化专业毕业设计(1)解读
- 老年血液透析患者特点和安全性评估方案
- a10c疣猪飞行控制器中文说明书
- 食品卫生微生物学检验阪崎肠杆菌
- 专业分包招标文件范本
- (完整word版)桩位偏差验收记录表
- 电流滞环跟踪PWM(CHBPWM)控制技术的仿真
- 重介质旋流器单机检查
- 森林防火设计(武汉高德)演示
- Z3050型摇臂钻床电气控制线路主轴电动机控制原理
评论
0/150
提交评论