51单片机电子抢答器课程设计.doc_第1页
51单片机电子抢答器课程设计.doc_第2页
51单片机电子抢答器课程设计.doc_第3页
51单片机电子抢答器课程设计.doc_第4页
51单片机电子抢答器课程设计.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

一、原理分析定时抢答器的总体框图如下图所示,它由单片机和外围电路两部分组成,如图所示。图1-1:定时抢答器的总体框图主要完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展功能为定时抢答的功能。定时抢答器的工作流程如下:1、接通电源时,抢答器处于复位状态,此时抢答器禁止工作,等待主持人按下开始按钮。2、当主持人按下开始按钮后,开始5秒准备倒计时,数码管显示倒计时时间。此时有选手抢答则为犯规,系统报警并显示犯规选手的编号。需要主持人按下复位键重新开始。3、准备倒计时结束后会进入15秒抢答倒计时阶段,此时选手可以抢答,定时器倒计时,数码管显示倒计时时间,倒计时最后5秒会响铃提示。当倒计时结束,却没有选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。当选手在抢答时间内按动抢答键时,抢答器要完成以下四项工作: 第一位选手按下抢答键后单片机立即分辨出抢答者的编号,然后由译码显示电路显示编号;关闭键盘扫面使其他选手的按键无效,避免其他选手再次进行抢答;使定时器停止工作,时间显示器上清空。当选手将问题回答完毕,主持人操作控制开关,使系统复位以便进行下一轮抢答。二、方案选择2.1芯片方案选择限于目前已有芯片,选AT89C51 。AT89C51有40个引脚,如图2-1所示。图2-1:AT89C51引脚图主要功能特性如下:与MCS-51 兼容4K字节可编程FLASH存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2.2抢答器显示模块数码管显示是采用BCD编码显示数字,程序编译容易,资源占用较少。采用8位共阴数码管显示。它是共阴极的由高电平点亮,如图2-2所示。图2-2:共阴极数码管引脚图2.3 电源方案的选择系统需要5V电源来驱动单片机AT89C51。利用电脑的USB接口可以提供5V电压来驱动单片机。2.4抢答器键盘的选择在一个单片机应用系统中,键盘和显示是系统中并不可少的输入输出设备,是控制系统与操作人员对话的窗口。常用的有独立式键盘,行列式键盘等。行列式键盘有节省I/O口的优点,但是电路比较复杂,识别要进行扫描。本设计采用行列式键盘,如图2-3所示。图2-3:行列式键盘电路图2.5 外部振荡电路外部振荡电路单片机必须在AT89C51的驱动下才能工作.在单片机内部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,外部振荡电路见图5所示。图2-4:外部振荡电路图一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。C1,C2的典型值为22PF。2.6 复位电路外部中断和内部中断并存,单片机有硬件复位端,只要输入持续4个机器周期的高电平即可实现复位。硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,应为本设计功能中有倒计时时间的记忆功能,所以不能对单片机进行硬件复位。只能用软复位。软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序初始位置。复位电路采用图2-5所示。图2-5:复位电路图复位电路主要由电解电容C3、电阻R1、按键S1组成。由于单片机是高电平复位,所以当复位键按下时候,单片机的9脚RESET管脚处于高电平,此时单片机处于复位状态。当上电后,由于电容的缓慢充电,单片机的9脚电压逐步由高向低转化,经过一段时间后,单片机的9脚处于稳定的低电平状态,此时单片机上电复位完毕,系统程序从0000H开始执行。2.7 发声电路蜂鸣器是众多电子产品中作为发声器件,其图形如图2-6所示。图2-6:蜂鸣器电路图三、电路原理图绘制及仿真3.1电路原理图(proteus、protel)图3-1:电路原理图(proteus)所用元件型号如下:51芯片:AT89C51锁存器:74HC573蜂鸣器:BUZZER按键:BUTTON数码管:7SEG-MPX6-CC晶振:CRYSTAL三极管:2N3702电阻:RES普通电容:CAP电解电容:CAO-ELECProtel绘制的原理图如图3-2。图3-2:电路原理图(Protel)3.2仿真(proteus)双击仿真图中的单片机AT89C51,将会出现如图3-3所示的单片机对话框窗口:在Program File中装载由KEIL生成的后缀名为.HEX的文件,点击仿真按钮即可进行仿真。图3-3:仿真装载文件图 主持人未按开始键8位选手抢答没任何反应。图3-4:未开始屏幕显示图 主持人按开始后5s思考时间。抢答还没开始,5s内不能抢答,若抢答视为犯规。图3-5:5S思考时间屏幕显示图 2号在抢答未开始抢答,屏幕显示出222表示犯规。图3-6:2号犯规屏幕显示图 已有选手抢答犯规,其他选手抢答无反应。 5s的思考时间过后,抢答开始,有15秒的抢答时间图3-7:15S抢答时间屏幕显示图 3号抢答成功,屏幕上显示出3号。图3-8:3号抢答成功屏幕显示图 已有选手抢答成功,其他选手抢答无反应。四、PCB图绘制本设计采用proteus绘制PCB图。4.1 PCB设计步骤4.1.1绘制原理图这是电路板设计的先期工作,主要是完成原理图的绘制(见图3-1),包括生成网络表。当然,有时也可直接进入PCB设计,不进行原理图的绘制。原来用于仿真的原理图需将信号源及测量仪表的接口连上适当的连接器。另外,要确保每一个元器件都带有封装。用Proteus绘制原理图时有的元器件没有封装,如按键,数码管。4.1.2规划电路板在绘制印制电路板之前,要对电路板有一个初步的规划,比如说电路板采用多大的物理尺寸,采用几层电路板(单面板、双面板或多层版),各元件采用何种封装形式及其安装位置等。这是确定电路板设计的框架,都可以从菜单栏system里进行设置。4.1.3设置参数设置参数主要是设置元件的布置参数、层参数、布线参数等。4.1.4装入网络表及元件封装网络表是原理图设计系统与印制电路板设置系统的接口,只有将网络表装入之后,才可能完成对电路板的自动布线。按Tools Netlist to ARES或者按钮就可以进行导入。元件的封装是元件的外形,对每个装入元件必须有相应的外形封装,才能保证电路板设计的顺利进行。本设计中完成的原理图中有按键,数码管系统未封装,需自行封装。(1)按键封装: 右击按键,图4-1 添加封装图4-2 选择封装图4-3 分配引脚图4-4 完成分配,保存。图4-5(2)数码管:数码管由于没有较匹配的封装,须自行绘制。 进入ARES professional,绘制元件边框图4-6 添加焊盘图4-7 保存元件封装图4-8 填写新封装名称,类别,类型,子类,然后保存。图4-9这样就可以从userpkg封装库里调用该新封装了。封装过程同按键。4.1.5元件布局元件布局可以采用自动布局和手工布局。一般自动布局后进行调整。图4-10元件调整后图4-114.1.6布线一般先进行自动布线,然后手工布线进行调整。最后成型图图4-12:pcb图3D预览图如下所示:图4-13:3D预览正面图图4-14:3D预览背面图4.1.7文件保存及输出完成电路板的布线后,保存完成的电路线路图文件。4.2 PCB设计的一般原则4.2.1布局 首先,要考虑PCB尺寸大小。PCB尺寸过大时,印制线条长,阻抗增加,抗噪声能力下降,成本也增加;过小,则散热不好,且邻近线条易受干扰。在确定PCB尺寸后再确定特殊元件的位置。最后,根据电路的功能单元,对电路的全部元器件进行布局。在确定特殊元件的位置时要遵守以下原则: (1)尽可能缩短高频元器件之间的连线,设法减少它们的分布参数和相互间的电磁干扰。易受干扰的元器件不能相互挨得太近,输入和输出元件应尽量远离。 (2)某些元器件或导线之间可能有较高的电位差,应加大它们之间的距离,以免放电引出意外短路。带高电压的元器件应尽量布置在调试时手不易触及的地方。 (3)重量超过15g的元器件、应当用支架加以固定,然后焊接。那些又大又重、发热量多的元器件,不宜装在印制板上,而应装在整机的机箱底板上,且应考虑散热问题。热敏元件应远离发热元件。 (4)对于电位器、可调电感线圈、可变电容器、微动开关等可调元件的布局应考虑整机的结构要求。若是机内调节,应放在印制板上方便于调节的地方;若是机外调节,其位置要与调节旋钮在机箱面板上的位置相适应。 (5)应留出印制扳定位孔及固定支架所占用的位置。 根据电路的功能单元,对电路的全部元器件进行布局时,要符合以下原则: (1)按照电路的流程安排各个功能电路单元的位置,使布局便于信号流通,并使信号尽可能保持一致的方向。 (2)以每个功能电路的核心元件为中心,围绕它来进行布局。元器件应均匀、整齐、紧凑地排列在PCB上尽量减少和缩短各元器件之间的引线和连接。 (3)在高频下工作的电路,要考虑元器件之间的分布参数。一般电路应尽可能使元器件平行排列。这样,不但美观而且装焊容易易于批量生产。 (4)位于电路板边缘的元器件,离电路板边缘一般不小于2mm。电路板的最佳形状为矩形。长宽比为3:2成4:3。电路板面尺寸大于200x150mm时应考虑电路板所受的机械强度。 4.2.2布线 (1)输入输出端用的导线应尽量避免相邻平行。最好加线间地线,以免发生反馈藕合。 (2)印制摄导线的最小宽度主要由导线与绝缘基扳间的粘附强度和流过它们的电流值决定。 当铜箔厚度为0.05mm、宽度为115mm时通过2A的电流,温度不会高于3,因此导线宽度为1.5mm可满足要求。对于集成电路,尤其是数字电路,通常选0.020.3mm导线宽度。当然,只要允许,还是尽可能用宽线尤其是电源线和地线。 导线的最小间距主要由最坏情况下的线间绝缘电阻和击穿电压决定。对于集成电路,尤其是数字电路,只要工艺允许,可使间距小至58mm。 (3)印制导线拐弯处一般取圆弧形,而直角或夹角在高频电路中会影响电气性能。此外,尽量避免使用大面积铜箔,否则长时间受热时,易发生铜箔膨胀和脱落现象。必须用大面积铜箔时,最好用栅格状。这样有利于排除铜箔与基板间粘合剂受热产生的挥发性气体。 4.2.3 焊盘 焊盘尺寸、焊盘的内孔尺寸必须从元件引线直径和公差尺寸以及镀锡层厚度、孔径公差、孔金属化电镀层厚度等方面考虑,通常情况下以金属引脚直径加上 0.2mm 作为焊盘的内孔直径。例如,电阻的金属引脚直径为 0.5mm,则焊盘孔直径为 0.7mm,而焊盘外径应该为焊盘孔径加1.2mm,最小应该为焊盘孔径加 1.0mm。 当焊盘直径为 1.5mm 时,为了增加焊盘的抗剥离强度,可采用方形焊盘。 对于孔直径小于 0.4mm 的焊盘,焊盘外径/焊盘孔直径=0.53。 对于孔直径大于 2mm 的焊盘,焊盘外径/焊盘孔直径=1.52。 设计焊盘时的注意事项如下: 1)焊盘孔边缘到电路板边缘的距离要大于 1mm,这样可以避免加工时导致焊盘缺损。 2)焊盘补泪滴,当与焊盘连接的铜膜线较细时,要将焊盘与铜膜线之间的连接设计成泪滴状,这样可以使焊盘不容易被剥离,而铜膜线与焊盘之间的连线不易断开。3)相邻的焊盘要避免有锐角。五、综合调试5.1软件调试各模块流程图:图5-1:总流程图图5-2:定时器中断流程图图5-3:按键扫描流程图图5-4:倒计时显示、选手编号显示模块流程源程序:见附录我们在调试过程中遇到的问题和对策:根据设计好的硬件电路,编写c语言程序,使之符合我们的设计要求。我们使用keil软件中输入源程序并编译程序,最终排除所有错误后创建目标文件生成hex文件。在源程序的编写过程中我们遇到以下的一些问题:倒计时不准的问题。由于本系统中采用的倒计时均使用单片机内部的定时器来实现,由于单片机的内部寄存器溢出速度很快,想要定时1S就需要多次调用定时器中断服务程序。考虑到中断服务程序中的其他代码运行所需要的时间,最终的定时时间可能会有些误差。可以对程序中的参数做一些调整使之更趋近于准确。对时间要求不严格也可以忽略。硬件资源分配的问题。我们的系统是建立在一块单片机的开发板上的,所以对于单片机的引脚分配我们不能自行调配。这给我们带来很多的不便,所以就需要在程序上进行调整配合已有的硬件电路。避开一些端口重用的问题。例如:我们的44行列式键盘占用了P3口,独立式键盘也占用了P3.4-P3.7。所以就要放弃使用独立式键盘而采用行列式键盘中的两个来作为“开始”和“复位”键和八路抢答的按键,并且不能使用外部中断源。通过键盘扫描的方法来读取按下的键值。数码显示的问题。在显示模块中锁存器会对显示的内容进行锁存,但是对于多位数的显示就要用扫描的方式来显示倒计时的十位与个位。这就会使得倒计时的显示时长难以控制,并且在扫描的过程中会占用cpu。为了解决这些矛盾我们在扫描的过程中同时进行安检扫描来时得有按键按下时打断时间的显示,转去显示按键按下后的结果。这样避免了显示时间的时候安检无效的问题,确保了安键的灵敏行。抢答成功后的屏蔽问题。为了确保在抢答的时候第一位选手抢答成功后,后续选手的抢答无效。就要的第一位同学抢答成功后,立即跳出循环不在进行键盘扫描程序的调用,然后显示选手编号。计时出错的问题。在倒计时的过程中有事侯会得不到我们预期的结果,显示错误的信息。我们在倒计时归零时要关闭定时器以及将time定义为无符号型以避免程序出错,提高程序的稳定性。对于其他的变量也要注意数据类型以及初始化方面的问题。5.2硬件调试由于本设计直接在单片机开发板上运行,所以硬件调试基本不用进行。若采用自己焊接的板子,硬件调试过程中应该有以下步骤: 检查电路在通电调试之前,必须认真检查电路连线是否有错误。对照电路图,按一定的顺序逐级对应检查。特别要注意检查电源是否接错,电源与地是否有短路,二极管方向和电解电容的极性是否接反,集成电路和晶体管的引脚是否接错,轻轻拔一拔元器件,观察焊点是否牢固,等等。 通电观察一定要调试好所需要的电源电压数值,并确定电路板电源端无短路现象后,才能给电路接通电源。电源一经接通,不要急于用仪器观测波形和数据,而是要观察是否有异常现象,如冒烟、异常气味、放电的声光、元器件发烫等。如果有,不要惊慌失措,而应立即关断电源,待排除故障后方可重新接通电源。然后,再测量每个集成块的电源引脚电压是否正常,以确信集成电路是否已通电工作。 静态调试先不加输入信号,测量各级直流工作电压和电流是否正常。直流电压的测试非常方便,可直接测量。而电流的测量就不太方便,通常采用两种方法来测量。若电路在印制电路板上留有测试用的中断点,可串入电流表直接测量出电流的数值,然后再用焊锡连接好。若没有测试孔,则可测量直流电压,再根据电阻值大小计算出直流电流。一般对晶体管和集成电路进行静态工作点调试。 动态调试加上输入信号,观测电路输出信号是否符合要求。也就是调整电路的交流通路元件,如电容、电感等,使电路相关点的交流信号的波形、幅度、频率等参数达到设计要求。若输入信号为周期性的变化信号,可用示波器观测输出信号。当采用分块调试时,除输入级采用外加输入信号外,其他各级的输入信号应采用前输出信号。对于模拟电路,观测输出波形是否符合要求。对于数字电路,观测输出信号波形、幅值、脉冲宽度、相位及动态逻辑关系是否符合要求。在数字电路调试中,常常希望让电路状态发生一次性变化,而不是周期性的变化。因此,输入信号应为单阶跃信号(又称开关信号),用以观察电路状态变化的逻辑关系。 指标测试电子电路经静态和动态调试正常之后,便可对课题要求的技术指标进行测量。测试并记录测试数据,对测试数据进行分析,最后作出测试结论,以确定电路的技术指标是否符合设计要求。如有不符,则应仔细检查问题所在,一般是对某些元件参数加以调整和改变。若仍达不到要求,则应对某部分电路进行修改,甚至要对整个电路重新加以修改。因此,要求在设计的全过程中,要认真、细致,考虑问题要更周全。尽管如此,出现局部返工也是难免的。最后调试结果实物图如图5-5至图5-9所示:图5-5:主持人复位图图5-6:思考倒计时图图5-7 :6号抢答犯规图图5-8:抢答倒计时图图5-9:3号抢答成六、源程序#include #include #define uchar unsigned char#define uint unsigned intuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;/共阴极数码管的0-9编码,第10位什么都不显示 uchar k1=0,k2; /开始复位键的定义uint time,num,cent0,biaoding;/倒计时时间 选手编号 其余为中间变量 sbit weixuan=P27; /位选开关sbit duanxuan=P26; /段选开关 sbit beep=P23; /蜂鸣器 0为

温馨提示

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

评论

0/150

提交评论