基于51单片机的六路抢答器设计与制作内容摘要:
V 编程电压( Vpp)。 抢答器的优点及组成 在知识比赛中,特别是做抢答题目的时候 , 在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。 如果在抢答中,靠视觉是很难判断出哪组先答题。 利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。 本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。 系统工作原理本系统采用 AT89C51 单片机作为核心。 控制系统的四个模块分别为:存储模块、显示模块、语音模块、抢 答开关模块。 该抢答器系统通过开关电路 六 个按键输入抢答信号;利用存储程序 来完成软件的设计 ;利用一个数码管来完成显示功能。 工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,控制数码管和语音芯片工作。 在数码管上显示哪一组先答题,并通过语音系统读出第 N 组请答题,从而实现整个抢答过程。 温州科技职业学院信息技术系 电子信息工程技术专业毕业设计 10 第三章 系统总体方案的设计 硬件电路的设计 本设计分为硬件设计和软件设计 [5],这两者相互结合,不可分离;从时间上看,硬件设计的绝大部分工作量是在最初阶段,到后期往往还要做一些修改。 只要技术准备充分,硬件设计的大返工是比较少的,软件设计的任务贯彻始终,到中后期基本上都是软件设计任务,随着集成电路技术的飞速发展,各种功能很强的芯片不断出现,使硬件电路的集成度越来越高,硬件设计的工作量在整个项目中的所占的比重逐渐下降。 为使硬件电路设计尽可能合理,应注意以下几方面: (1) 尽可能采用功能强的芯片,以简化电路,功能强的芯片可以代替若干普通芯片,随着生产工艺的提高,新型芯片的的价格不断下降,并不一定比若干普通芯片价格的总和高。 (2) 留有设计余地。 在设计硬件电路时,要考虑到将来修改扩展的方便。 因为很少有一 锤定音的电路设计,如果现在不留余地,将来可能要为一点小小的修改或扩展而被迫进行全面返工。 (3) 程序空间,选用片内程序空间足够大的单片机,本设计采用 AT89C51 单片机。 (4) RAM 空间, AT89C51 内部 RAM 不多,当要增强软件数据处理功能时,往往觉得不足。 如果系统配置了外部 RAM,则建议多留一些空间。 如选用 8155 作 I/O 接口,就可以增强 256 字节 ,则应配置足够的 RAM,如 6264,62256 等。 随着软件设计水平的提高,往往只要改变或增加软件中的数据处理算法,就可以 使系统功能提高很多,而系统的硬件不必做任何更换就使系统升级换代。 只要在硬件电路设计初期考虑到这一点,就应该为系统将来升级留足够的 RAM 空间,哪怕多设计一个 RAM 的插座,暂不插芯片也好。 (5) I/O 端口:在样机研制出来后进行现场试用时,往往会发现一些被忽视的问题,而这些问题不是靠单纯的软件措施来解决的。 如有些新的信号需要采集,就必须增加输入检测端;有些物理量需要控制,就必须增加输出端。 如果在硬件电路设计就预留出一些 I/O 端口,虽然当时空着没用,那么用的时候就派上用场了。 总体原理图 温州科技职业学院信息技术系 电子信息工程技术专业毕业设计 11 S4 S3S9S5S7 S6 S2Y1R1C2C3C1abfcgdeD P YdpabfcgdeD P YdpabfcgdeD P YdpabfcgdeD P YdpA1B2C3D4E5F6G71 2 3 4D S 1R2 R3 R4 R 1 3 R 1 4 R 1 5 R 1 6S 10S 11P0.039P0.138P0.237P0.336P0.435P0.534P0.633P0.732P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728P3.010P3.111P3.212P3.313P3.414P3.515P3.616P3.717XTAL119XTAL218RST9/RSEN29ALE30/EA31P1.88P1.77P1.56P1.45P1.34P1.23P1.12P1.01U1+ 5VS 15S 14L S 1加一减一S8S1抢答时间调整回答时间调整开始结束1 2 3 4 5 6+ 5V 图 31系统原理图 为开始抢答 [9], 为停止, 为六路抢答输入,数码管段选 P0 口,位选 P2 口低 3 位,蜂鸣器输出为 口。 为时间加 1 调整, 为时间减 1 调整。 时钟频率电路的设计 单片机必须在时钟的驱动下才能工作 .在单片机内部有一个时钟振荡电路 ,只需要外接一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元 ,决定单片机的工作速度。 如图 32所示。 图 32为外部振荡源电路 温州科技职业学院信息技术系 电子信息工程技术专业毕业设计 12 一般选用石英晶体振荡器。 此电路在加电大约延迟 10ms 后振荡器起振 ,在 XTAL2引脚产生幅度为 3V 左右的正弦波时钟信号 ,其振荡频率主要由石英晶振的频率确定。 电路中两个电容 C1,C2 的作用有两个 :一是帮助振荡器起振。 二是对振荡器的频率进行微调。 C1,C2 的典型值为 30PF。 单片机在工作时 ,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。 其大小是时钟信号频率的倒数 ,常用 fosc 表示。 如时钟频率为 12MHz,即 fosc=12MHz,则时钟周期为 1/12181。 s。 复位电路的设计 单片机的第 9脚 RST为硬件复位端 ,只要将该端持续 4个机器周期的 高电平即可实现复位 ,复位后单片机的各状态都恢复到初始化状态,其电路图如图 33 所示。 图 33复位电路 值得注意的是 ,在设计当中使用到了硬件复位和软件复位两种功能 ,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值 ,而前面的功能介绍中提到了倒计时时间的记忆功能 ,该功能的实现的前提条件就是不能对单片机进行硬件复位 ,所以设定了软复位功能。 软复位实际上就是当程序执行完毕之后 ,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。 显示电路的设计 显示功能与硬件关系极大,当硬件固定后, 如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。 温州科技职业学院信息技术系 电子信息工程技术专业毕业设计 13 显示模块在系统软件中的安排 操作者主要设计从显示设备上获取微机系统的信息的,因此,操作者每操作一下,显示设备商都应该有一定的反应。 这说明,显示模块与操作有关,即监控程序是需要调用显示模块。 不同的操作需要显示不同的内容,这又说明各执行模块对显示模块的驱动方式是不同的。 另一方面,在操作者没有进行操作时,显示内容也是变化的,如显示现场各物理量的变化情况。 这时显示模块不是由操作者通过命令键来驱动,而是由各类自动执行的功能模块来驱动。 自 动执行的各类模块在安排在各种中断子程序中,这就是说,各种中断子程序也要调用显示模块。 如果监控安排在中断子程序中,两者的要求就统一了,问题比较好解决,如果监控程序安排在主程序中,在监控程序调用显示模块的过程中发生了中断,中断子程序也调用显示模块,这时就容易出问题。 一种比较妥善的办法是只让一处调用显示模块,其他各处均不得直接调用显示模块,但有权申请显示。 这就要设置一个显示申请标志,当某模块需要显示时,将申请标志置位,同时设定有关显示内容(或指针)。 由于一处调用显示模块,故不会发生冲突。 为了使显示模块能及时反应系 统需要,应将显示模块安排在一个重复执行的循环(如监控循环或时钟中断子程序)中。 当监控程序(键盘解释程序)安排在时钟中断子程序中时,处理比较方 便,只要在监控程序的汇合处调用显示模块就可以了。 例如用 DISP 作显示申请标志,就可以这样安排显示模块的调用,即 DISP BIT ;显示申请标志 SKEYEND: JNB DISP,RETI0 ;有显示申请否。 LCALL DISPLAY ;调用显 示模块,更新显示内容 CLR DISP ;清除申请 RETI ;中断返回 KEYEND 为键盘解释程序的最后汇集点,这时如果发现有显示申请,就进行集中操作,更新显示内容,否则就跳过这一步。 这里将显示功能集中到一起,作为一个功能模块,就要求它的功能全面,能根据系统软件提供的信息自动完成显示内容的查找,变换和输出驱动。 这样设计使得各功能模块都不必考虑显示问题,只要给出一个简单的 信息(如显示格式编码)甚至不用再提供额外信息,直接利用当前状态变量和软件标志就可以完成所需的显示要求。 如果编写这样一个集中显示模块有困难,也可以将显示模块编小一些,只完成显示温州科技职业学院信息技术系 电子信息工程技术专业毕业设计 14 缓冲区的内容输出到显示器件上的工作。 这时各功能模块在提出显示申请时,还需要将显示内容按需要的格式送入显示缓冲区中。 这样分而治之比较容易编程,但要小心出现显示混乱。 例如后台程序需要调用显示,将有关信息送入到现实缓冲区进行显示;中断返回后,后台程序继续送完后半部分显示内容,但前半部分内容已经变了,这样就出现了显示错误。 解决的办法是,在申请 显示前,先检查是否已经有显示申请,如果有,就不再申请,等待下次机会;如果没有,则先申请标志位,再将显示内容送入显示缓冲区。 这时就不必担心其他前台模块来打扰了,就可以得到一次完整的显示机会。 在这里我们使用的是七段数码管显示 , 通常在显示 [6]上我们采用的方法一般包括两种 : 一种是静态显示,一种是动态显示。 其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。 在本设计中根据实际情况采用的是动态显示方法。 并通过查表法 ,将其在数码管上显示出来,其中 P0 口为字型码输入端, P2 口低 3位为字选段输入端。 在这里我们通过查表将字型码送给 7 段数码管显示的数字,如图34 所示。 MOV A,R5 MOVC A,@A+DPTR ;查字型码 MOV P2,01H ;送位选码 MOV P0,A ;送字型码 ACALL DELAY ;调延时,去闪烁 图 34共阴极数码管 在七段数码管显示中 可分为共阳极和共阴极两种类型极。 以共阴为例,要想 a 段亮,温州科技职业学院信息技术系 电子信息工程技术专业毕业设计 15 向 a 段送 1 就是,返之送 0,共阳刚好相反。 键盘扫描电路的设计 键盘是人与微机系统打交道的主要设备。 关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也提供了相应的键盘扫描程序。 站在系统监控软件设计的立场上来看,仅仅完成键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要妥善解决,否则,人们在操作键盘就容易引起误操作和操作失控现象。 在单片机应用中键盘用得最多的形式是独立键盘及矩阵键盘。 如图35所示。 图 35独立键盘 它们各有自己的特点 , 其中独立键盘硬件电路简单 , 而且在程序设计上也不复杂 ,一般用在对硬件电路要求不高的简单电路中 ; 矩阵键盘与独立。基于51单片机的六路抢答器设计与制作
相关推荐
P31P 0. 732P 0. 633P 0. 534P 0. 435P 0. 336P 0. 237P 0. 138P 0. 039V C C40GND20A T 89 C 5 16VB A T T E R Y1234D11 N 40 0 2D21 N 40 0 2N P N 1T R A N S 1A C 2 20 V1 00 u FV i n1V o ut3GND2L M 7 80 51
容易知道,当连接的线数越多,节省的 IO口效率就越明显。 不过矩阵键盘的识别原理比一般的独立按键识别原理要复杂一些,最常用的识别方法就是“高低电平翻转法”。 以 4*4矩阵键盘为例,当列线通过上拉电阻接电源正极,并将行线接到单片机的 IO口上,而列线所接的 IO 口作为输入。 这样,当按键在断开状态下,它们的输入端都呈现为 1,代表没有按键按下去。 此时行线输出的是 0,当检测到有按键按下
页 共 33 页 图 1056 写操作时序 10. 8. 2. 4 1602LCD 的 RAM 地址映射及标准字库表 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图 1057是 1602的内部显示地址。 图 1057 1602LCD 内部显示地址
G2 引脚接地,然后以 A、 B、 C、 D 四脚为输入端,就会形成 16 种不同的输入状态,分别为0000~1111,然后使每种状态只控制一路输出,即会有 16 路输出。 如果一行 64 点全部点亮,则通过 74LS154 的电流将 达 640 mA,而实际上,74LS154 译码器提供不了足够的吸收电流来同时驱动 64 个 LED 同时点亮,因此,应在 74LS154 每一路输出端与 16
可以与 PC机组成测量仪器。 ( 4)数字化、智能化 微电子技术的进步,使仪器仪表产品与微处理器、 PC技术融合得更为紧密,其数字化、智能化程度不断提高。 尤其在仪器仪表的设计中采用了大量的超大规模集成( VLSI)的新器件,表面贴装技术( SMT) 、多层线路板印刷、圆片规模集成( WSI)和多芯片模块( MCM)等新工艺以及CAD,CAM,CAPP,CAT 等计算机辅助手段,使多媒体
,会产生一些临时的运算结果,这些结果需要临时存放在一个地方,这个地方就是数据寄存器。 89C51单片机具有四个存储器空间 : (1)片内程序存储器,即单片机芯片内置的存储空间; (2)片外程序存储器,即当单片机芯片内置的存储空间不够使用时,我们需要外加的一个存储器芯片; (3)片内数据存储器,即单片机芯片内置的存储空间; (4)片外数据存储器,即当单片机芯片内置的存储空间不够使用时