智能抢答器的设计与实现_第1页
智能抢答器的设计与实现_第2页
智能抢答器的设计与实现_第3页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计任务书学生姓名:专业班级:指导教师: 工作单位:信息工程学院题 目:智能抢答器的设计与实现初始条件:本设计既可以选用集成电路:74LSI48,74LS279,74LS48,74LSI92,NE555,74LS00, 74LSI21和其它器件等,实现八路定时抢答功能;又可以使用单片机系统构建多路数字定时抢答器。要求用蜂鸣器和光电二极管作声光报警器件,工作电源Vcc为+5V。要求完成的主要任务:(包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。2、技术要求:1 )可同时供8名选手(或代表队)参赛,其编号分别是0到7,各用一个抢答按钮,按钮的编号与选手的编号

2、相对应;给节目主持人设置一个控制开关,用来控制系统的清零(编号显示数码管灭灯)和抢答的开始。2)抢答器具有数据锁存和显示的功能。抢答开始后,若有选手按动抢答按钮,编号立即锁存,并在LED数码管上显示出选手的编号,同时扬声器给出音响提示。此外,要封锁输入电路,禁止其它选手抢答。优先抢答选手的编号一直保持到主持人将系统清零为止。3) 抢答器具有定时抢答的功能,且一次抢答的时间可以由主持人设定(如30秒)。当节目主持人启动“开始”键后,要求定时器立即进行减计时,并用显示器进行显示, 同时扬声器发出短暂的声响,声响持续时间0.5秒左右。4)参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示

3、器上显示选手的编号和抢答时刻的时间,并保持到主持人将系统清零为止。5)如果定时抢答的时间已到,却没有选手抢答时,本次抢答无效,系统进行短暂的报警,并封锁输入电路,禁止选手超时后抢答,定时显示器上显示00。3、查阅至少5篇参考文献。按武汉理工大学课程设计工作规范要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。时间安排:1、2014年_6-月_20-日,布置课设具体实施计划与课程设计报告格式的要求说明。2、2014年_6-月_24日至 2013年_6_月_23-日,方案选择和电路设计。3、2014年_6-月_24日至 2014年_6-月_26-日,电路调试和设计说明书撰写。4、 2014

4、年月_2乙日,上交课程设计成果及报告,同时进行答辩。指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要IA bstract II1原理电路的设计12单元电路设计及元件选择32. 1单片机最小系统32. 1. 1 时钟振荡电路4复位电路4芯片 52.2声光报警电路 72.3数码管显示电路 72.4矩阵键盘 83整体电路及工作原理103.1整体电路图 103.2工作原理 104程序设计1 14.1 Keil C51 软件介绍 114.2程序设计 125仿真分析1 35.1 proteus 仿真软件介绍 135.2仿真结果分析 146系统调试1 76.1系统调试的意义 176.2调试结果与

5、分析 176.3实物焊接 187总结与体会1 98参考文献20附录一21附录二22摘要本文设计了一种基于STC89C52单片机技术的八路数字抢答器。主体电路由抢答电路, 优先编码电路和锁存电路以及控制电路组成,扩展电路由报警电路和显示电路组成。文章 对抢答器的背景与现状、硬件设计、软件设计及其仿真都做了详细的介绍。本设计主要采用单片机控制,采用手动抢答的方式,有人抢答后,系统自动封锁其他 人的抢答按钮,使其不能再抢答,从而实现抢答功能。若有人在主持人按下开始按钮之前 或抢答时间结束之后按下抢答按钮,系统自动视其无效,抢答开始和抢答结束后蜂鸣器自 动报警,使抢答达到公平、公开的效果。关键词:单片

6、机、STC89C52、抢答器、LED显示AbstractThis paper describes the desig n of a eight digital resp on der based on STC89C52 sin gle chip. The main circuit is composed of answer circuit, priority coding circuit and a latch circuit and control circuit: expansion of the circuit is mainly composed of an alarm circuit

7、 and display circuit.Article on the Resp on der's backgro und and prese nt, hardware desig n, software desig n and simulation have made a detailed introduction.This desig n mai nly uses the MCU con trol, with manual an swer i n the way, some people an swer in, the system automatically block othe

8、r people's an swer in the butt on, so that it can not an swer in order to achieve Resp on der feature. If one host press the start butt on before press ing the an swer in the butt on or after the an swer time, the system automatically view them as in valid to an swer in a fair, ope n effect. At

9、the beg inning and ending of the an swer the alarm bell resp on ded automatic.Keywords: single-chip Microcomputer、STC89C52、the Answering Race、LED display1原理电路的设计根据任务要求将电路分为来两部分,一部分电路完成基本的抢答功能,即开始抢答后, 当选手按动抢答器按钮时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。 另一部分电路完成定时抢答及报警功能。比赛开始时,接通电源,抢答器处于禁止工作状态,编号显示器灭灯,定时显示器上 显示设

10、定时间,主持人可改变设定时间。当节目主持人宣布“抢答开始”,同时将控制开关拨到“开始”位置,抢答器处于工作状态,定时器开始倒计时。若定时时间到,却没有 选手抢答时,系统报警,并封锁输入电路,禁止选手超时后抢答。若选手在定时时间内按 动抢答按钮时,抢答器要完成以下四项工作:1.优先编码器电路立即分辨出抢答者的编号, 并由锁存器进行锁存,然后由译码显示电路显示编号;2.扬声器发出短暂声响,提醒节目主持人注意;3.控制电路要对输入编码电路进行封锁, 避免其他选手再次进行抢答;4. 控制电路要使定时器停止工作,时间显示器上显示剩余的抢答时间,并保持到主持人将系 统清零为止。当选手将问题回答完毕时,主持

11、人操作控制开关,使系统回复到禁止工作状 态,以便进行下一轮抢答。根据以上思路,我设计了如下两种方案。方案一:图1-1方案一系统框图方案一所示抢答器的工作过程:主持人按动开始抢答的开关后,最先抢答的选手的电 平信号先经过优先编码器,再依次经过数据锁存器,此时已经限制了其他选手的抢答,信号再经过译码器和七段数码显示器,将最先抢答的该选手的编号显示出来,并同时产生报警信号,到此完成的是抢答功能;如果没有人抢答,30秒减计数器减到00时也会发出报警信号,这是完成计时功能。图1-2方案二系统框图主控制器选择由AT89C52芯片构成的单片机最小系统,用矩阵键盘作为八位选手的抢 答按键以及主持人的控制按键,

12、抢答显示选用四位共阳数码管,前两位作为剩余时间显示, 第三位为抢答选手编号,整个过程用 C语言程序来控制。方案一用译码器,加减计数器以及门电路等等实现多人抢答,原理清晰,但电路比较 复杂,所要使用的芯片较多,在进行实物制作时需要连接的线路非常多,容易出现错误; 而方案二只需要一个单片机系统,一个四位数码显示管和矩阵键盘,整体电路看起来非常 清晰,而且精确度高,故本次设计选用方案二。2单元电路设计及元件选择2.1单片机最小系统(iD图2-1 STC89C52单片机最小系统原理图由上图可以看出,单片机的最小系统电路由3部分组成:单片机、时钟震荡电路和复位电路,其中单片机的重要作用不言而喻,而时钟震

13、荡电路和复位电路也均是必不可少的 部分,下面分别介绍这三个部分。时钟振荡电路单片机必须在时钟的驱动下才能工作。 在单片机内部有一个时钟振荡电路, 只需要外 接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单兀,决定单片机的工作速 度。时钟电路如下图所示。SiOpF3OpF图2-2震荡电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路 中两个电容C1, C2的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。 单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制

14、逻辑单元的时钟信号 的周期称为时钟周期。其大小是时钟信号频率的倒数。图中时钟频率为12MHz。复位电路单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平即可实现 复位,复位后单片机的各状态都恢复到初始化状态,其电路图如下所示:图2-3复位电路复位电路的作用就是,当给单片机一个复位信号(一个一定时间的低电平)时程序便 从头开始执行。一般有两种复位方式:上电复位,在系统一上电时利用电容两端电压不能 突变的原理给系统一个短时的低电平;手动复位,同过按钮接通低电平给系统复位,如果 手按着一直不放,系统将一直复位,不能正常工作,因此手动复位容易产生一些错误。芯片本设计采用Atmel公司

15、生产的单片机STC89C52实现主要功能,AT89C51的引脚图如2-4所示:图2-4 STC89C52引脚图各引脚功能情况为(1) VCC :供电电压。(2) VSS:接地。(3) P0 口: P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电流。当P1 口的 管脚第一次写1时,被定义为高阻输入。(4) P1 口: P1 口是一个内部提供的上拉电阻的 8位双向I/O 口,P1 口缓冲器能接收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入,P1 口被外部下拉为低 电平时,将输出电流,这是由于内部上拉的缘故。(5) P2 口: P2 口为一个内部上拉电阻的8位

16、双向I/O 口,P2 口缓冲器可接收输出4TTL门电流,当P2 口被写“ 1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输 入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。在给出地址“T时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。(6) P3 口: P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出4个TTL门电 流。当P3 口写入“ 1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部 下拉为低电平,P3 口将输出电流(ILL )这是由于上拉的缘故。P3 口功能引脚简介:P3.0:RXD

17、(串行口输入)P3.1:TXD (串行口输出)P32INT0 (外部中断0)P3.3:INT1 (外部中断1)P34T0 (定时器0外部脉冲输入)P3.5:T1 (定时器1外部脉冲输入) P3.6:WR (外部数据存储器写选通)P3.7:RD (外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。(7) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(8)ALE/RPOG :当访问外部存储器时,地址锁存允许的输出电平由于锁存地址的地位字 节。(9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效

18、。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。(10)/EA/VPP :当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不 管是否有内部程序存储器。注意加密方式 1时,/EA将内部锁定为RESET;当/EA端保持 高电平时,此间内部程序存储器。(11)XTAL1 :反向振荡放大器的输入及内部时钟工作电路的输入。(XTAL2 :来自反向振荡器的输出。2.2声光报警电路图2-5声光报警电路声音的频谱范围约在几十到几千赫兹,若能利用程序来控制单片机某个口线的“高” 电平或低电平,则在该口线上就能产生一定频率的巨型波,接上喇叭就能发出一定频率的 声音,若再利

19、用延时程序控制“高”“低”电平的持续时间,就能改变输出频率,从而改变音调,使喇叭发出不同的声音。本次设计将蜂鸣器连单片机的P1.4 口,光电二极管连单片机的P1.7 口,再通过程序来控制报警电路工作。2.3数码管显示电路数码管显示电路的作用是显示抢答的时间,组别号码等。考虑有以下两种显示方案方案一:使用液晶屏显示时间。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像 稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。但由于 只需要显示时间和转向、相数这样的数字,信息量比较少,且由于液晶是以点阵的模式显 示各种符号,需要利用控制芯片创建字符库,编

20、程工作量大,控制器的资源占用较多,其 成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。方案二:在使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低) 温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。数码 显示是采用BCD编码显示数字,程序编译容易,资源占用较少。根据以上的论述,我选择采用方案二。显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。在这里我们使用的是七段数码管显示,通常在显示上 我们采用的方法一般包括两种:一种是静态显示,一种是动

21、态显示。其中静态显示的特点 是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是:显示稳定性 没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际 情况采用的是动态显示方法。2.4矩阵键盘键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分 为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。 在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的 类型很多,常用的有独立式键盘,行列式键盘等。方案一:独立式键盘键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O

22、 口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。 因此可以根据实际需要对键盘中的按键灵活的编码。最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称 按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O 口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按 键识别容易。独立式键盘的缺点是需要占用比较多的 I/O 口线,当单片机应用系统键盘中需要的按键比 较少或I/O 口线比较富余时,可以采用这样类型的键盘。方案二:行列式键盘行列式键盘是用N条I/O线作为行线,M条I/O线

23、作为列线组成的键盘,在行线和列线的 每个交叉点上。这种形式的键盘结构,能够有效的提高单片机系统中I/O的利用率,列线接P1.0P1.3行线接P1.4P1.7,行列适用于按键输入多的情况。CPU对键盘的扫描可以采用取程序控制的随机方式,即只有在CPU空闲是时才去扫描键盘,响应操作人员的键盘输入,即利用单片机内部定时器每隔一定时间对键盘扫描一次,这样控制方式,不管键盘上有无键闭合,CPU总是定时的关心键盘状态。在大多数情况下,CPU对键盘可能进行空扫描。为了提高 CPU的效率而又能及时响应键盘输入,可以采用中 断方式,既CPU平时不必扫描键盘,只要当键盘上有键盘闭合时就产生中断请求,向CPU申请中

24、断后,立即对键盘上有键盘进性扫描,识别闭合键,并做相应的处理图2-6行列式矩阵键盘3整体电路及工作原理3.1整体电路图D1iig、i133'LZZ> f*'pun0 'R2ragn.<iId” 1X7痢心pa 血flMra.DSra«F.wfW臥開rsfir/cP21*AE-rzA.11曰11P1CP1 111TVDSTTEF«3pajBTTFWT!P«j£rnAwrnPir3? m tip 壬nn if IWFDS B秤1»ll9hEP.图3-1八位抢答器整体电路图3.2工作原理系统软件由主程序和INTO中

25、断服务组成。主程序由验键,倒计时等功能子程序组成, 系统完成初始化后循环检查各个功能当用户使用某个功能时,按下相应的按键单片机进入 相应的功能处理。INTO中断服务程序完成抢答信号采样和识别处理。该智能抢答器以STC89C52单片机为控制核心,控制精度较高。其他外围电路包括报 警电路、LED显示电路、抢答按键、时间设置键等。该智能抢答器具有计时记忆功能,一 次时间设置完,复位后不需重新进行时间设定;通过按键扫描输出按键信息,并通过单片 机将它转化为在七段数码管上显示的字形符。单片机的P2 口为8组抢答按键的输入口,P0.0P0.6为数码管的段选口, P1.0P1.3为数码管的片选口。外部中断I

26、NTO和INT1分别 为抢答时间和回答时间的调整口,P2.4和P2.5分别实现时间调整时的加1和减1功能;P1.4 为报警电路的控制口。4程序设计4.1 Keil C51软件介绍Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows界面。 另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 Keil的优势。下面详细 介绍Keil C51开发系统各部分功能和使用。Keil C51单片机软件开发系统的整体结构:C51工具包的整体结构uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接

27、、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑 C或汇编源文件。然后分别由 C51及C51编译器编译生成目标文 件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)0ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51 或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直 接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项:(1) 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频 率的晶振。(2) 仿真器上的复

28、位按钮只复位仿真芯片,不复位目标系统。(3)仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM ;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿 真器仍可插入到扩展有外部 ROM (其CPU的/EA引脚接至低电平)的目标系统中 使用。优点:Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。 在开发大型软件时更能体现高级语言的优势。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学 易用。用过汇编语言后再使用 C来开发,体会更加深刻。4.2程序设计程序流程图如下:具体程序见附录一 5仿

29、真分析5.1 proteus仿真软件介绍Proteus软件是来自英国 Labcenter Electronics公司的EDA工具软件,Proteus软件除了其具有和其它EDA工具一样的原理布图,PCB自动或人工布线及电路仿真的功能外,其革 命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的 虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入 输出的效果,配合系统配置的虚拟仪器如示波器,逻辑分析仪等,您不需要别的,Proteus为 您建立了完备的电子设计开发环境!PROTEUS的ISIS是一款Labcenter出品的电路分析实物仿真系统,

30、可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。该软件的特点:1. 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。2. 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种 虚拟仪器,如示波器、逻辑分析仪、信号发生器等。3. 目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16 系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。4. 支持大量的存储器和外围芯片。总之该软件

31、是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真51、AVR、PIC。proteus与Keil联合仿真:为了尽快排查系统的软硬件错误,使整个单片机系统实现预期功能,最直接而有效的 方法是对系统进行软硬件联调,即Proteus与Keil联合仿真,先通过Keil C51编辑、修改、 编译源程序并生成 HEX单片机能识别的文件,然后再运行 Proteus将HEX文件与原理图 中的单片机系统进行仿真。5.2仿真结果分析首先在keil软件中将程序完成,进行编译无误,并生成 hex文件,为验证程序的可 行性,需要将程序导入proteus仿真图的STC89C52芯片中,观察仿真结果,以

32、下是我 对程序所要完成的功能的仿真分析。1、预置时间是30秒,主持人根据题目难度可对每一次抢答时间进行设定电2girtI1<|卄1|.U2 A曲HF UTE"<IWJ3巨13 n n r: 口宵 a 常1雕1STrzara 甘灯丘 FIZ1A13 吧a" P?a1A-O P Snhl J FZM/il* HyWFBA1E nF i J|FS-/T!-O Pi*UP15P3.4IT3 FJ5fri2PX1/TT3吃时 £劈w辺匸出a 4弋问7I .L L I JLb:M. -图5-1增加计时时间PH-档时 fcls*u:i? rr nu 3FTwiisF

33、O*AL'-5iF;序dP1M13rsjrti;忑朵忖N/'i".!?MCrMIYO:. “占亦 3T7TITFl* b'l IFZJfTBM別isnpiJ i图5-2减少计时时间2、当主持人按下抢答开关按键后,计时器立即进行减计时,同时可听到蜂鸣器发出短暂 的声响,发光二极管发光,此时八位选手可进行抢答,若有人抢答,减计时停止,蜂鸣器 再次报警,数码管显示剩余时间及选手编号。下图为 5号选手抢答之后的仿真显示。J.EIZTdISfur時 rD.3031Fnti'is-密曲NE |*;丄 2 3 I 亠<# ku':' 3-

34、9;3' YWu导 I抻油 .n 疋 uD* 孙 FrOurii T3rto-hir 左局申.'fcgyUiJB- 1TEy5T3Z B'sn j tLm 山h: ?m1UL_Jl IMCDl > liI-: jr - tEPi nJU2D:3 i4OM_ lEi T< .图5-3 5号选手抢答3、若无人抢答,倒计时结束后,数码管显示 00,蜂鸣器报警,同时八位选手抢答按键被 锁存,此后再有人抢答则无效,数码管始终显示 00。图5-4计时结束后无选手抢答4、抢答结束后或抢答过程中主持人可根据实际情况随时进行复位操作,复位后数码管显 示上一次抢答时间,蜂鸣器发

35、出短暂声响。图5-5复位后的仿真显示仿真结果分析:经过仔细调整,由仿真结果可看出,本次程序设计可满足八位智能抢 答器的所有功能要求,从理论上验证了程序的正确性。但是也存在一点小问题:主持人控 制按键有些不稳定,并且蜂鸣器报警声音较为奇怪,但在程序中未发现可能原因。总体来 说可以达到要求,但是理论需要实践去证明,还需要进行系统调试与分析。6系统调试6.1系统调试的意义系统调试包括硬件调试和软件调试,而且两者是密不可分的。我们设计好的硬件电路 和软件程序,只有经过联合调试,才能验证其正确性;软硬件的配人情况以及是否达到设 计任务的要求,也只有经过调试,才能发现问题并加以解决、完善,最终开发成实用产

36、品硬件调试分单元电路调试和联机调试,单元电路试验在硬件电路设计时已经进行,这 里的调试只是将其制成印刷电路板后试验电路是否正确,并排除一些加工工艺性错误(如 错线、开路、短路等)。这种调试可单独模拟进行,也可通过开发装置由软件配合进行, 硬件联机调试则必须在系统软件的配合下进行。软件调试一般包括分块调试和联机调试两个阶段。程序的分块调试一般在单片机开发装置 上进行,可根据所调程序功能块的入口参量初值编制一个特殊的程序段,并连同被调程序 功能块一起在开发装置上运行;也可配合对应硬件电路单独运行某程序功能块,然后检查 是否正确,如果执行结果与预想的不一致,可以通过单步运行或设置断点的方法,查出原

37、因并加以改正,直到运行结果正确为止。这时该程序功能块已调试完毕,可去掉附加程序段。其它程序功能块可按此法进行调试。程序联机调试就是将已调试好的各程序功能块 按总体结构联成一个完整程序,在所研制的硬件电路上运行。从而试验程序整体运行的完 整性、正确性和与硬件电路的配合情况。在联调中可能会有某些支路上的程序、功能块因 受条件制约而得不到相应的输入参数,这时,调试人员应创造条件进行模拟调试。在联调 中如发现硬件问题也应及时修正,直到单片机系统的软件、硬件全部调试成功为止。系统 调试完成后,还要进行一段时间的试运行,从而检验系统的稳定性和抗干扰能力,验证系 统功能是否达到设计要求,是否达到预期的效果。

38、6.2调试结果与分析硬件调试:由于本次设计采用的是单片机学习开发板,其内部已有部分集成工艺,实物焊 接较为简单,而且外围电路也较少,因此在硬件调试过程中未出现任何问题。软件调试:八位智能抢答器用单片机来设计所用元器件较少,大部分功能都是通过软件编 程来实现,因此软件调试是一个很重要的部分,调试试遇到以下两个问题:(1)按键消抖问题:在最初编写程序时,键盘控制部分按照常例加入了按键消抖程序。 在实际调试中,发现主持人控制按键出现反应不灵敏现象。这是因为在键盘控制程序中都 加入了消抖程序,而且在复位按键控制程序中加入了按键提示音程序。由于在调用提示音 子程序时,实际上已实现了一次时间的延时,因此再

39、加入按键消抖程序的延时后,致使延 时时间过长而出现按键反应不灵敏问题。通过调试发现提示音子程序本身所产生的延时已 能够满足按键消抖时间延迟的要求,因此在键盘控制程序中无需再加入专门的按键消抖程 序。在去除按键消抖程序后,按键控制灵敏度恢复正常。(2)蜂鸣器发音问题:蜂鸣器发音音调比较低,理论上,若能利用程序来控制单片机某 个口线的“高”电平或低电平,则在该口线上就能产生一定频率的巨型波,接上喇叭就能 发出一定频率的声音,若再利用延时程序控制“高”“低”电平的持续时间,就能改变输 出频率,从而改变音调,使喇叭发出不同的声音。但实际上,进行调试时引发其他各种问题,最终调整失败,便依旧选用之前的方案

40、。6.3实物焊接本次设计采用单片机最小系统来实现八位智能抢答器,主要电路包括单片机最小系 统、四位数码显示管和矩阵键盘。焊接成品如下图6-1图6-1八位智能抢答器实物图7总结与体会本次数字电子技术基础课程设计我选择了用单片机来实现八位智能抢答器,因为 曾经在实验课上已经成功用门电路完成抢答器的设计,而单片机又是我们即将要学习的新 知识,因此我决定借此机会提前学习单片机的知识。通过这次课程设计,我明白了学习是 一个长期积累的过程,绝对不是一蹴而就的,在今后的学习中一定要脚踏实地,才能真正 学到知识。万事开头难,一开始我对单片机一无所知,不知如何下手,但我觉得不能就这么放弃, 于是,我先查资料了解

41、了单片机最小系统的工作原理以及采用的芯片STC89C52的引脚图,然后参照我所使用的单片机开发板原理图,先完成了开发板的焊接。接下来就是最重要的程序设计,结果发现知识必须通过应用才能实现其价值。我曾经学习过C语言编程技术,但是有些东西以为学会了,真正到用的时候才发现是两回事,一些简单的功能都无法实现, 于是只好参考一些网上优秀的程序设计,并且请教别人最后勉强完成,结果在调试的时候 又出现各种意外,后来经人指导仔细排查错误,最终完成了这份自己比较满意的作品,有 一种如释重负的感觉。本次课程设计让我感觉到自己掌握的知识还是很少,而且学到理论知识也不能灵活的 运用,设计过程中我请教了很多人,也让我体

42、会到设计一个完整的方案需要一定的理论知 识为基础,这也提醒我今后要更加努力好好把知识学好。 与此同时,实践能力也同样重要, 只有实践才能检查我们学到的理论知识是否真正被掌握,本次的课程设计就是一个很好的 机会,让我认识到自己的很多不足,虽然花费了较多的时间,但是我也有很大的收获,不 仅提高了我的逻辑思维分析能力,也锻炼了我的动手能力,更重要的是让我对单片机最小 系统有了一定的了解,为今后单片机的学习打下了一些基础。在做课程设计的这段时间里里,可以说得是苦多于甜,但是可以学到很多很多的的东 西,不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 这毕竟第一次接触单片机,难

43、免会遇到过各种各样的问题,今后一定要提高自己的实际动 手能力和独立思考的能力。8参考文献1 电子线路设计实验测试.第二版,谢自美 主编2 电子技术基础课程设计.孙梅生等编著,高等教育出版社3 数字电子技术基础.伍时和 主编 清华大学出版社4 数字电子电路与逻辑设计.刘可文主编科学出版社5 51单片机C语言教程.郭天祥编著电子工业出版社附录1:元件清单元件名称型号数量单片机最小系统STC89C521四位共阳数码管LG3641BH1矩阵键盘1蜂鸣器1六反相器74HC041附录2:程序设计#ifndef _KEYSCAN_H_#defi ne _KEYSCAN_H_ typedef un sig n

44、ed int uint; typedef un sig ned char uchar;sbit LED仁 P1A0;sbit LED2=P1A1;sbit LED3=P"3;sbit BUZZ=P"4;sbit LED =P1A7;void delay( uint a);uchar keysca n( void);void Display(uchar Time_Number,uchar Play_Number); #en dif#i nclude <REG52.h>共阳共阴#in clude "keysca n.h"uchar tab=0xc

45、0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /uchar tab=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; uchar keysca n( void)uchar n;P2=0xfe; n=P2; n=P2&0 xf0;if(n !=0xf0)delay(10);P2=0xfe; n=P2; n=P2&0 xf0;if(n !=0xf0)switch( n)case(OxeO):retur n 13;break;case(OxdO):retur n 14;break;c

46、ase(0xb0):retur n 15;break;case(0x70):return 16;break;P2=0xfd; n=P2; n=P2&0 xf0;if(n !=0xf0)delay(20);P2=0xfd; n=P2; n=P2&0 xf0;if(n !=0xf0)switch( n)case(0xe0):retur n 9;break;case(0xd0):return 10;break;case(0xb0):retur n 11;break;case(0x70):return 12;break;P2=0xfb; n=P2; n=P2&0 xfO;if(

47、n !=OxfO)delay(20);P2=0xfb; n=P2; n=P2&0 xf0;if(n !=OxfO)switch( n)case(OxeO):retur n 5;break;case(OxdO):retur n 6;break;case(OxbO):retur n 7;break;case(0x70):retur n 8;break;P2=0xf7; n=P2; n=P2&0 xf0;if(n !=OxfO)delay(20);P2=0xf7; n=P2; n=P2&0 xf0;if(n !=OxfO)switch( n)case(OxeO):retur

48、n 1;break;case(OxdO):retur n 2;break;case(OxbO):retur n 3;break;case(0x70):retur n 4;break;void Display(uchar Time_Number,uchar Play_Number) - -uchar i,j;i=Time_Number/10;j=Time_Number%10;if(Play_Number>8)-LED1=0;LED2=1;LED3=1;P0=tabi;delay(10);LED1=1;LED2=1;LED3=1;LED1=1;LED2=0;LED3=1;P0=tabj;de

49、lay(10);LED1=1;LED2=1;LED3=1;if(Play_Number<=8)-LED1=1;LED2=1;LED3=0;P0=tabPlay_Number;delay(10);LED1=1;LED2=1;LED3=1;LED1=0;LED2=1;LED3=1;P0=tabi;delay(10);LED1=1;LED2=1;LED3=1;LED1=1;LED2=0;LED3=1;P0=tabj;delay(10);LED1=1;LED2=1;LED3=1;void delay( uint a) uint m,n;for(m=0;m<110;m+)for(n=0;n<a;n+);#in elude vintrin s.h>#i nclude <REG52.h>#in clude<s

温馨提示

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

评论

0/150

提交评论