鉴于大家对计算机论文十分关注,我们编辑小组在此为大家搜集整理了“免费电子智能抢答器(单片机)(一)”一文,供大家参考学习!
摘 要
随着电子技术的飞速发展,基于单片机的控制系统已广泛应用于工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于单片机的照明控制系统的普及与应用奠定了坚实的基础。
电子智能抢答计分器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。抢答组数可以在八组以内任意使用,本系统设计为模块形式采用九针插头进行连接,系统工作原理本系统采用AT89S51单片机作为核心。控制系统的五个模块分别为:单片机最小系统(六位并行数码显示、4*4矩阵式键盘)、显示模块、显示驱动模块、抢答开关模块、音乐音频输出模块。
关键词:单片机;矩阵式键盘;显示;驱动;抢答
引言
电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。
电子智能抢答器分别用两片单片机控制,分别为计分器和抢答器。计分器的工作原理是采用最小系统,用4x4键盘来输入是选手需要加减进行分数的加减输入。主板上的6个数码显示,加几分的数,按确定键后分数值从串口P3.0,P3.1传到计分器显示模块上再通过数码管驱动模块显示。抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。采用串行静态显示组号。
1 单片机的应用技术
单片机由硬件系统与软件系统组成。硬件系统是指构成微机系统的实体与装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。其中运算器和控制器一般做在一个集成芯片上,统称中央处理单元(Central Processing Unit),简称CPU,是微机的核心部件。CPU配上存放程序和数据的存储器、输入/输出(Input/Output,简称I/O)接口电路以及外部设备即构成单片机的硬件系统。软件系统是微机系统所使用的各种程序的总称,人们通过它对微机进行控制并与微机系统进行信息交换,使微机按照人的意图完成预定的任务。软件系统与硬件系统共同构成完整的单片微型计算机系统,两者相辅相成,缺一不可。
2 系统设计要点
系统设计主要包括硬件和软件两大部分,依据控制系统的工作原理和技术性能,将硬件和软件分开设计。硬件设计部分包括电路原理图、合理选择元器件、绘制线路图,然后对硬件进行调试、测试,以达到设计要求。软件设计部分,首先在总体设计中完成系统总框图和各模块的功能设计,拟定详细的工作计划;然后进行具体设计,包括各模块的流程图,选择合适的编程语言和工具,进行代码设计等;最后是对软件进行调试、测试,达到所需功能要求。
在系统设计中设计方法的选用是系统设计能否成功的关键。硬件电路是采用结构化系统设计方法,该方法保证设计电路的标准化、模块化。硬件电路的设计最重要的选择用于控制的单片机,并确定与之配套的外围芯片,使所设计的系统既经济又高性能。硬件电路设计还包括输入输出接口设计,画出详细电路图,标出芯片的型号、器件参数值,根据电路图在仿真机上进行调试,发现设计不当及时修改,最终达到设计目的。软件设计的方法与开发环境的选取有着直接的关系,本系统由于是采用51系列单片机,因此使用Keil C语言进行开发。此编程工具相比汇编语言具有结构化、适用范围大、可移植性好等特点。本系统软件设计采用模块化系统设计方法,先编写各个功能模块子程序,然后进行组合与调整,经过调试后,达到设计功能要求。
2.1 抢答器的硬件设计要求
抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S1~S8表示。设置一个系统清除和抢答控制按扭,该按扭由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
2.2 计分器系统的软件流程
附:单片机程序
计分器显示程序(附1)
//抢答器加减记分显示程序2
DBUF EQU 30H ;三位显示缓冲区首址
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN: MOV SP,#60H
ACALL KEYSCAN ;调用键盘扫描子程序判断是加分或减分
CJNE A,#0EH,NEXT2 ;不是加分键,则转移判断是减分键?
NEXT1: ACALL KEYSZ ;是加分键,调用键盘设置子程序
ACALL DISPLAY ;调用串口静态显示子程序
SJMP MAIN
NEXT2: CJNE A,#0FH,MAIN ;都不是,则转MAIN
AJMP NEXT1 ;是减分键,调用键盘设置子程序
ORG 0100H
KEYSZ: PUSH PSW ;键盘设置子程序
PUSH ACC
SETB RS1
MOV R0,#DBUF ;R0指向显示缓冲区首地址
MOV R7,#3 ;设置键盘输入位数
L1: CLR RS1
ACALL KEYSCAN ;调用键盘扫描子程序取按下键的键号
SETB RS1
CJNE A,#0AH,L2 ;键入数合法性检测(是否大于9)
L2: JNC L1 ;大于9,重新键入