引言
电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。
电子智能抢答器分别用两片单片机控制,分别为计分器和抢答器。计分器的工作原理是采用最小系统,用4x4键盘来输入是选手需要加减进行分数的加减输入。主板上的6个数码显示,加几分的数,按确定键后分数值从串口P3.0,P3.1传到计分器显示模块上再通过数码管驱动模块显示。抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。采用串行静态显示组号。
1 单片机的应用技术 单片机由硬件系统与软件系统组成。硬件系统是指构成微机系统的实体与装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。其中运算器和控制器一般做在一个集成芯片上,统称中央处理单元(Central Processing Unit),简称CPU,是微机的核心部件。CPU配上存放程序和数据的存储器、输入/输出(Input/Output,简称I/O)接口电路以及外部设备即构成单片机的硬件系统。软件系统是微机系统所使用的各种程序的总称,人们通过它对微机进行控制并与微机系统进行信息交换,使微机按照人的意图完成预定的任务。软件系统与硬件系统共同构成完整的单片微型计算机系统,两者相辅相成,缺一不可。
2 系统设计要点
系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,以达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码
- 3 -
设计等;最后是对软件进行调试、测试,达到所需功能要求。
在系统设计中设计方法的选用是系统设计能否成功的关键。硬件电路是采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使所设计的系统既经济又高性能。硬件电路设计还包括输入输出接口设计,画出详细电路图,标出芯片的型号、器件参数值,根据电路图在仿真机上进行调试,发现设计不当及时修改,最终达到设计目的。软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系列单片机,因此使用Keil C语言进行开发。此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,达到设计功能要求。 2.1 抢答器的硬件设计要求
抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S1~S8表示。设置一个系统清除和抢答控制按扭,该按扭由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
2.2 计分器系统的软件流程
- 4 -
开始 初始化 为1全部统一加减分 检测P3.7状态 为0单组加减分 扫描键盘S1~S8是那一个组要加分,并组号显示在主板上(六个数码管) 加分按键S14 减分按键S15 加分按键S12 减分按键S13 键盘录入分值,并显示在主板上(六个数码管) 键盘录入分值,并显示在主板上(六个数码管) 确定S16 P1.7输入一个单次脉冲,并保持高电平(锁存数据由P3.0 P3.1串口输出显示分数) 2.3 计分器的硬件设计要求
图1
加减计分有三位显示,用串行通信口,显示分数,用4*4阵列式键盘进行同时加减和单组加分。 2.4 人机交互程序设计
系统的人机交互程序设计,主要是解决按键的扫描与信息的显示,让操作者
- 5 -
能够灵活地控制系统工作。键盘用来输入指令,发光数码管用来显示单片机的状态,这是一个比较简单的人机交互形式。 2.4.1计分器系统的软件键盘扫描程序流程图
本系统的键盘采用的是4×4矩阵式键盘,矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。一个4×4的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。
矩阵式键盘中,行、列线分别连接到按键开关的两端,在进行键盘扫描时,首先把矩阵键盘列线的第一根线置高,然后分别再检测矩阵键盘行线是否有高电平的信号,如果有信号,那么就证明这根行线与第一根列线相交处的按键被按下了,单片机就读入这个键值。如果所有的四根行线都没有信号,那么就把第一根列线置低,把第二根列线置高,再一次检测行线有没有信号,然后依次类推。 由于键盘扫描的速度很快,而人按键总会持续一定的时间,因此只要单片机处在等待输入的状态,这个键盘扫描程序基本上不会错过任何一个按键信号。由于一般人按键会有抖动,抖动信号造成键盘扫描时会出现一些错误的信号,要不就是扫描不进数据,要不就是重复输入很多次数据,因此需要有一个消除抖动的程序。让单片机不响应一些相关的抖动信号,而只响应一次确实存在的按键信号。消抖动程序是这样实现的,当检测到一个脉冲信号时,并不立即认为是一次按键,而是延时一段时间以后再进行检测,如果三次检测都有信号,那么就认为有一次按键动作发生了。延时的选择非常重要,太快了,起不到消除抖动的效果,太慢了又让键盘太不灵活,错过较多的按键信号。键盘扫描程序的流程图如图2所示。
- 6 -
开 始将上一根列线置低将下一根列线置高初始化依次扫描行线将第一根列线置高NN依次扫描行线有信号吗YN延时一次是第四根列线吗Y将第四根列线置低N返回一个值有信号吗Y延时一次有信号吗YN再延时一次有信号吗Y再延时一次有信号吗YN返回对应键值N有信号吗Y返回对应键值
键盘扫描程序流程图2
2.5 抢答器系统软件的流程图
抢答组数可以在八组以内任意使用,其流程如图3
- 7 -