895191569基于单片机控制的声光显示智力竞赛抢答器毕业设计

上传人:仙*** 文档编号:33890709 上传时间:2021-10-19 格式:DOC 页数:33 大小:443.50KB
返回 下载 相关 举报
895191569基于单片机控制的声光显示智力竞赛抢答器毕业设计_第1页
第1页 / 共33页
895191569基于单片机控制的声光显示智力竞赛抢答器毕业设计_第2页
第2页 / 共33页
895191569基于单片机控制的声光显示智力竞赛抢答器毕业设计_第3页
第3页 / 共33页
点击查看更多>>
资源描述
声光显示智力竞赛抢答器摘要:随着电子技术的飞速发展,基于单片机的控制系统已广泛应用于工业、农业、电力、电子、智能楼宇等行业,微型计算机作为嵌入式控制系统的主体与核心,代替了传统的控制系统的常规电子线路。同时楼宇智能化的发展与成熟,也为基于单片机的照明控制系统的普及与应用奠定了坚实的基础。 电子智能抢答计分器在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决,即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。抢答组数可以在八组以内任意使用,本系统设计为模块形式采用九针插头进行连接,系统工作原理本系统采用AT89S51单片机作为核心。控制系统的五个模块分别为:单片机最小系统(六位并行数码显示、4*4矩阵式键盘)、显示模块、显示驱动模块、抢答开关模块、音乐音频输出模块。关键词:单片机;矩阵式键盘;显示;驱动;抢答Abstract:With the rapid development of electronic technology, the control system based on SCM has been widely used in industry, agriculture, electricity, electronics, intelligent buildings, industry, micro-computers embedded control system as the main and core, instead of the traditional control System of conventional electronic circuits. At the same time the development of intelligent buildings and maturity, but also based on the lighting control system MCU and popularity of application laid a solid foundation. Points for electronic smart Qiangda Qiangda in the process, in order to know which group or which one player to answer, we must design a system to complete this task. If the Qiangda, rely on the visual is very difficult to determine which group to answer. SCM system used to design Qiangda, bringing the above problems are resolved, even if the two groups Qiangda the difference in time a few microseconds, which can also be distinguished group of priority answer. Qiangda group of eight can within the arbitrary use of the system designed to be modular form of a nine-pin plugs to connect the system working principle of the system used AT89S51 SCM as a core. Control system of the five modules are: MCU minimum system (six parallel digital display, 4 x 4 matrix keyboard), modules, display driver module, Qiangda switch modules, music, audio output module. Key words: SCM,modules, display driver module, Qiangda switch modules.目 录引言1第1章 单片机的应用技术 2第2章 系统设计要点 32.1 抢答器的硬件设计要求 32.2 计分器系统的软件流程 32.3 计分器的硬件设计要求 42.4 人机交互程序设计 42.4.1计分器系统的软件键盘扫描程序流程图52.5 抢答器系统软件的流程图62.6 抢答数码显示软件程序设计62.7 音乐音频输出程系流程图8第3章 各模块方案选择和论证93.1 抢答器显示模块93.2 控制器模块103.3 电源方案的选择103.4 枪答器键盘的选择103.5 计分器显示模块123.6 计分器键盘的选择133.7 模块的最终方案13第4章 电子智能抢答器系统的硬件电路设计 154.1 计分器的电路设计154.1.1 计分器系统的硬件电路154.1.2 计分显示模块174.2 抢答器的电路设计174.2.1抢答电路模块174.2.2抢答按键模块的设计18第5章 单片机干扰防护205.1 采用隔离技术205.2 正确的接地措施20结束语 22参考文献 23附录1:计分器显示程序24附录2:抢答器软件程序29引 言电子技术和微型计算机的迅速发展,促进微型计算机测量和控制技术的迅速发展和广泛应用,单片机(单片微型计算机)的应用已经渗透到国民经济的各个部门和领域,它起到了越来越重要的作用。单片微型计算机就是将中央处理单元、存储器、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。因此一块芯片就构成了一台计算机。它已成为工业控制领域、智能仪器仪表、尖端武器、日常生活中最广泛使用的计算机。电子智能抢答器分别用两片单片机控制,分别为计分器和抢答器。计分器的工作原理是采用最小系统,用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个按钮S1S8表示。设置一个系统清除和抢答控制按扭,该按扭由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。22 计分器系统的软件流程图1检测P3.7状态初始化开始扫描键盘S1S8是那一个组要加分,并组号显示在主板上(六个数码管)为0单组加减分为1全部统一加减分加分按键S14减分按键S15键盘录入分值,并显示在主板上(六个数码管)加分按键S12减分按键S13键盘录入分值,并显示在主板上(六个数码管)确定S16P1.7输入一个单次脉冲,并保持高电平(锁存数据由P3.0 P3.1串口输出显示分数)2.3 计分器的硬件设计要求加减计分有三位显示,用串行通信口,显示分数,用4*4阵列式键盘进行同时加减和单组加分。2.4 人机交互程序设计系统的人机交互程序设计,主要是解决按键的扫描与信息的显示,让操作者能够灵活地控制系统工作。键盘用来输入指令,发光数码管用来显示单片机的状态,这是一个比较简单的人机交互形式。2.4.1计分器系统的软件键盘扫描程序流程图本系统的键盘采用的是44矩阵式键盘,矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。一个44的行、列结构可以构成一个含有16个按键的键盘,显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多I/O口。矩阵式键盘中,行、列线分别连接到按键开关的两端,在进行键盘扫描时,首先把矩阵键盘列线的第一根线置高,然后分别再检测矩阵键盘行线是否有高电平的信号,如果有信号,那么就证明这根行线与第一根列线相交处的按键被按下了,单片机就读入这个键值。如果所有的四根行线都没有信号,那么就把第一根列线置低,把第二根列线置高,再一次检测行线有没有信号,然后依次类推。由于键盘扫描的速度很快,而人按键总会持续一定的时间,因此只要单片机处在等待输入的状态,这个键盘扫描程序基本上不会错过任何一个按键信号。由于一般人按键会有抖动,抖动信号造成键盘扫描时会出现一些错误的信号,要不就是扫描不进数据,要不就是重复输入很多次数据,因此需要有一个消除抖动的程序。让单片机不响应一些相关的抖动信号,而只响应一次确实存在的按键信号。消抖动程序是这样实现的,当检测到一个脉冲信号时,并不立即认为是一次按键,而是延时一段时间以后再进行检测,如果三次检测都有信号,那么就认为有一次按键动作发生了。延时的选择非常重要,太快了,起不到消除抖动的效果,太慢了又让键盘太不灵活,错过较多的按键信号。键盘扫描程序的流程图如图2所示。 键盘扫描程序流程图22.5 抢答器系统软件的流程图抢答组数可以在八组以内任意使用,其流程如图32.6 抢答数码显示软件程序设计采用静态显示,显示器由9个共阳极数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。9个串/并移位寄存器芯片74LS164首尾相连,了九位共阳极七段数码管,共阳极数码管的8个发关二极管的阳极(二极管正端)连接在一起,通常,公共阳极接高电平(一般接电源),七它管脚接段驱动电路输出端。当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字开始初始化显示组号 开音乐第一组第二组第三组第八组组否是是否否是是图3收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻,这里的限流电阻选为100。数码显示程序流程如图4。数码显示程序流程图42.7 音乐音频输出程系流程图音乐音频输出由P3.7输出,如图5 第3章 各模块方案选择和论证3.1 抢答器显示模块在步进电机控制过程中,系统需要对运行的时间和转向、相数做必要的显示。我们考虑有以下两种显示方案。方案一:使用液晶屏显示时间。液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影像稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强的特点。但由于只需要显示时间和转向、相数这样的数字,信息量比较少,且由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶显示芯片,不易维护。方案二:在使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度高,称量快,精确可靠,操作简单。数码显示是采用BCD编码显示数字,程序编译容易,资源占用较少。图6静态显示,电路图中所示。显示器由9个共阳极数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。9个串/并移位寄存器芯片74LS164首尾相连,每片的并行输出作为LED数码管的段码74LS164的引脚图如图6所示:74LS164为8位串入并出移位寄存器,1、2为串行输入端,Q0-Q7为并行输出端,CLK为移位时钟脉冲上升沿移入一位;MR为清零端,低电平时并行输出为零。根据以上的论述,采用方案二。3.2 控制器模块控制器主要用于各模块控制对显示、抢答、音乐、计分等。控制器的选择有以下两钟方案。方案一:采用FPGA(现场可编程门列阵)作为系统的控制器。FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集成在一块芯片上,减小了体积,提高了稳定性,并且可以应用EDA软件仿真、调试,易于进行功能扩展。FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。但由于本设计对数据处理的速度要求不高,FPGA的高速处理的优势得不到充分体现,并且由于其集成度高,使其成本偏高,同时由于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的工作。方案二:采用ATMEL公司的AT89C51作为系统控制器的CPU方案。单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。基于以上分析拟订方案二。3.3 电源方案的选择系统需要多个电源,AT89C51使用5V稳压电源,驱动芯片需要5-50V电压驱动,步进电机等需要12V稳压电源。方案一:采用升压型稳压电路。用两片MC34063芯片分别将3V的电池电压进行直流崭波调压,得到5V和12V的稳压输出。只需使用两节电池,既节省了电池,又减小系统体积重量但该电路供电电流小,供电时间短,无法使相对庞大的系统稳定运作。方案二:采用三端稳压集成7805与7812分别得到5V和12V的稳定电压。利用该方法方便简单,工作稳定可靠。综上所述,选择方案二,采用三端稳压器电路。3.4 枪答器键盘的选择键盘是单片机不可缺少的输入设备,是实现人机对话的纽带。键盘按结构形式可以分为非编码键盘和编码键盘,前者用软件方法产生键码,而后者则用硬件方法来产生键码。在单片机中使用的都是非编码键盘,因为非编码键盘结构简单,成本低廉,非编码键盘的类型很多,常用的有独立式键盘,行列式键盘等。方案一:独立式键盘键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了8根I/O口线,该键盘就有8个按键,这种类型的键盘,其按键比较少,且键盘中各按键的工作互不干扰。因此可以根据实际需要对键盘中的按键灵活的编码。如图7。 图7最简单的编码方式就是根据I/O输入口所直接反映的相应按键,按下的状态进行编码,称按键直接状态码,对于这样编码的独立式键盘,CPU可以通过直接读取I/O口的状态来获取按键的直接状态编码值,根据这个值直接进行按键识别,这样形式的键盘结构简单,按键识别容易。独立式键盘的缺点是需要占用比较多的I/O口线,当单片机应用系统键盘中需要的按键比较少或I/O口线比较富余时,可以采用这样类型的键盘。方案二:行列式键盘行列式键盘是用N条I/O线作为行线,M条I/O线作为列线组成的键盘,在行线和列线的每个交叉点上,设置一个按键中按键的个数是M*N个。这种形式的键盘结构,能够有效的提高单片机系统中I/O的利用率,列线接P1.0P1.3行线接P1.4P1.7,行列适用于按键输入多的情况。CPU对键盘的扫描可以采用取程序控制的随机方式,即只有在CPU空闲是时才去扫描键盘,响应操作人员的键盘输入,但CPU在执行应用程序的过程中,不能响应键盘输入,对键盘的扫描可以采用定时方式,即利用单片机内部定时器每隔一定时间对键盘扫描一次,这样控制方式,不管键盘上有无键闭合,CPU总是定时的关心键盘状态。图8在大多数情况下,CPU对键盘可能进行空扫描。为了提高CPU的效率而又能及时响应键盘输入,可以采用中断方式,既CPU平时不必扫描键盘,只要当键盘上有键盘闭合时就产生中断请求,向CPU申请中断后,立即对键盘上有键盘进性扫描,识别闭合键,并做相应的处理。根据以上的论述,采用方案一,在本系统中采用了独立式键盘,其按键比较少,且键盘中各个按键的工作互不干扰。如图8所示。3.5 计分器显示模块显示模块必须要显示三位数为一组,本系统设计为八组,共要显示27位数。采用静态显示,其方案如下:方案一:不带锁存方式。显示器由9个共阴极数码管组成。输入只有两个信号,它们是串行数据线DIN和移位信号CLK。9个串/并移位寄存器芯片74LS164首尾相连,74LS164为8位串入并出移位寄存器,1、2为串行输入端,Q0-Q7为并行输出端,CLK为移位时钟脉冲上升沿移入一位;MR为清零端,低电平时并行输出为零。实验证明在显示位数超出6位,数码管有闪烁的现象。方案二:带锁存方式。采用带有锁存功能的移位寄存器74LS595芯片,74595的数据端:QA-QH: 八位并行输出端,可以直接控制数码管的8个段。QH: 级联输出端。我将它接下一个595的SI端。SI: 串行数据输入端。74595的控制端说明:SRCLR(10脚): 低点平时将移位寄存器的数据清零。通常接Vcc。SRCK(11脚):上升沿时数据寄存器的数据移位。QA-QB-QC-.-QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于几十纳秒就行了。我通常都选微秒级)RCK(12脚):上升沿时移位寄存器的数据进入数据存储寄存器,下降沿时存储寄存器数据不变。(通常我将RCK置为低电平,) 当移位结束后,在RCK端产生一个正脉冲(5V时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。13脚: 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器。74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装,体积也小一些。74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。与164只有数据清零端相比,595还多有输出端时能/禁止控制端,可以使输出为高阻态。根据以上论证,采用方案二。3.6 计分器键盘的选择方案一:行列式键盘行列式键盘是用N条I/O线作为行线,M条I/O线作为列线组成的键盘,在行线和列线的每个交叉点上,设置一个按键中按键的个数是M*N个。这种形式的键盘结构,能够有效的提高单片机系统中I/O的利用率,列线接P1.0P1.3行线接P1.4P1.7,行列适用于按键输入多的情况。方案二:独立式键盘键盘接口中使用多少根I/O线,键盘中就有几个按键,键盘接口使用了16根I/O口线,需要占用比较多的I/O口线这种类型的键盘,根据以上论证,采用方案一。3.7 模块的最终方案主控制器模块:采用AT89C51单片几机控制抢答器显示模块:数码管显示电源方案的选择:采用三端稳压器电路枪答器键盘模块:独立式键盘计分器显示模块:采用带有锁存功能的移位寄存器74LS595芯片计分器键盘模块:行列式键盘第4章 电子智能抢答器系统的硬件电路设计4.1 计分器的电路设计主控制器采用AT89C51单片机作为微处理器,AT89C51是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash 存储单元。4.1.1计分器系统的硬件电路计分器的工作原理是采用最小系统,用4x4键盘来输入是选手需要加减进行分数的加减输入。主板上的6个数码显示,加几分的数,按确定键后分数值从串口p3.0,p3.1传到计分器显示模块上再通过数码管驱动模块显示。原理图如图9所示图9314.1.2计分显示模块 计分显示模块是采用74LS595移位寄存器。并带锁存功能,在数码显示不会闪。具有很好的观看效果。如图10图10 计分显示模块4.2 抢答器的电路设计4.2.1抢答电路模块抢答器的工作原理是采用单片机最小系统,用查询式键盘进行抢答。通过抢答按键模块,连接按键进行抢答。其工作原理为: 主持人按清零键后,选手可按键抢答,单片机锁存信号,屏蔽外界信号。串显示编号,并有丁冬声输出。抢答选手的编号一直保持到主持人将系统清除为止。抢答器原理如图11。图11 抢答器原理图4.2.2抢答按键模块的设计抢答按键模块的设计是通过利用光电耦合器,光电偶合器的输入/输出之间没有接触,能有效地防止输入端的电磁干扰以电藕合的方式进入应用系统,而且光电偶合器的输入阻抗很小,干扰源的内阻很大,所以能输入到光电偶合器的干扰电压很小。把单片机信号和按钮的信号隔开,采用+12V电源给单片机开关量的控制。其原理图如图12。图12 输入隔离电路第5章 单片机干扰防护单片机应用系统在实际工作过程中,难免会受到各种外部或内部的干扰,使系统发生异常情况。比如,因干扰使程序指针发生错误时,可能会将非操作码执行,造成程序执行的混乱(跑飞)或进入死循环,甚至可能会损坏元器件。干扰窜入应用系统的主要渠道有三条:通过电磁波辐射窜入系统的空间干扰;通过输入/输出通道窜入的通道干扰;电源的干扰。5.1 采用隔离技术对于供电系统的干扰,可以采用交流稳压器、不间断电源(UPS)、隔离变压器、底通虑波器等,以防止电源电压的波动和干扰噪声;在直流电源的抗干扰措施中,对应用系统中的不同等级的直流电源采取集成稳压块单独供电,以避免模块间的互相影响,使直流开关电源、DC-DC变换器以加强隔离提高电源稳定性等。在单片机应用系统的输入/输出通道中,普遍采用通道隔离技术来防止通道干扰。其中应用较多的是光电耦合器。光电耦合器的输入/输出之间没有接触,能有效地防止输入端的电磁干扰以电耦合的方式进入应用系统,而且光电耦合器的输入阻抗很小,干扰源的内阻很大,所以能输入到光电偶合器的干扰电压很小。5.2 正确的接地措施在低频电路中,因寄生电抗的影响不大,常采用一点接地,以减少地线造成的地环路。在单片机系统中,数字地和模拟地应分别接地,即使一个芯片上有两种地也要分别接地,然后再在一点处把两种分别连接起来。在研制印刷电路板时,对地线的分布、形状、长度和宽度等也有一定的要求,比如地线要呈辐射状,避免环行,地线要宽,连接旁路电容的地线不要太长等。单片机应用系统中的数字地、模拟地(低电平电路地)、大功率电气设备等强电设备的地(噪声地)、机壳或其他金属构件的屏蔽地应分开布置并在一点上和电源地相连。每个单元宜采用一个接地点,地线应尽量加粗以减少地线的阻抗。在采用屏蔽双绞线传递信号时,应将地与工作地连在一起。要注意只能在一个点接地,以免形成回路,在屏蔽体上产生较大的噪声。结束语通过这次毕业设计。我设计声光显示智能竞赛抢答器,采用了单片机技术、数字电子、模拟电子、制作电路板等相关技术。把在学校三年所学知识连成一串。理论联系实践,体现出大学生动手能力。通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过毕业论文,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。把握重点、攻克难关,学到用到、活学活用。在设计过程中由于时间仓促有很多地方难免存在不足之处。但在以后的工作中,我们会严格要求自己,追求完美。已注定我将在这里度过人生中最美丽的青春年华。提笔写下“结束语”,我才惊觉自己即将真正离开,人生亦从此展开新的画卷。尽管不舍,却更珍惜,因为我的生命中有那么多可爱的人值得感激。他们使我的大学生活充满了色彩,无论收获、遗憾,对我来说都是一笔宝贵的财富。三年的大学生活不知不觉中就要结束了,在这段难忘的生活中,有我许多美好的回忆。在这份大学的最后一页里,首先感谢党、感谢学院给我们提供这个能自我展示的平台,感谢我的指导教师鲁明旭老师,他从一开始的论文方向的选定,到最后的整篇文论的完成,都非常耐心的对我进行指导。给我提供了大量数据资料和建议,告诉我应该注意的细节问题,细心的给我指出错误,修改论文。我要感谢在我三年的学习中无私传授我知识的各位老师,是你们将自己宝贵的财富无私地奉献给了我们,让我们能在学业上有所成绩;是你们让我倍感教师职业的伟大,交给我们知识,又不忘教育我们如何做人!【参考文献】1 康华光,邹寿彬编.电子技术基础数字部分(第四版)M.北京:高等教育出版社,20052 谢自美编.电子线路设计实验测试 (第二版) M.上海:电子工业出版社,20013 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术M.北京:北京航空航天大学出版社,1999年4 陆坤,奚大顺,李之权等,电子设计技术M.成都:电子科技大学出版社1997年5 何立民.MCS-51系列单片机应用系统设计系统配置与接口技术M.北京:北京航空航天大学出版社,1999年5 胡学海.单片机原理及应用系统设计M.北京:京电子工业出版社,2005年6 林凌,李刚,丁茹,李小霞.新型单片机接口器件与技术M.西安:西安电子科技大学出版社,2005年 附 录 1计分器显示程序/抢答器加减记分显示程序2DBUFEQU30H;三位显示缓冲区首址ORG0000HAJMPMAINORG0030HMAIN:MOVSP,#60HACALLKEYSCAN;调用键盘扫描子程序判断是加分或减分CJNEA,#0EH,NEXT2;不是加分键,则转移判断是减分键?NEXT1:ACALLKEYSZ;是加分键,调用键盘设置子程序ACALLDISPLAY;调用串口静态显示子程序SJMPMAINNEXT2:CJNEA,#0FH,MAIN;都不是,则转MAINAJMPNEXT1;是减分键,调用键盘设置子程序ORG0100HKEYSZ:PUSHPSW;键盘设置子程序PUSHACCSETBRS1MOVR0,#DBUF;R0指向显示缓冲区首地址MOVR7,#3;设置键盘输入位数L1:CLRRS1ACALLKEYSCAN;调用键盘扫描子程序取按下键的键号SETBRS1CJNEA,#0AH,L2;键入数合法性检测(是否大于9)L2:JNCL1;大于9,重新键入MOVR0,A;键号送显示缓冲区INCR0DJNZR7,L1;3位数值输入完否?未完继续,否则返回POPACCPOPPSWCLRRS1RETKEYSCAN:MOVR3, #0F7H;扫描初值(P1.3=0)MOVR1,#00H;取码指针L3:MOVA,R3;开始扫描MOVP1,A;将扫描值输出至P1MOVA,P1;读入P1值,判断是否有键按下MOVR4,A;存入R4,以判断按键是否放开SETBC;C=1MOVR5,#04H;扫描P1.4P1.7L4:RLCA;将按键左移一位JNCKEYIN;判断C=0?有键按下则C=0,跳至KEYININCR1;C=1,则无键按下,将取码指针值加1DJNZR5,L4;4列扫描完毕了吗?MOVA,R3;扫描值载入SETBC;C=1RRCA;扫描下一行(P1.3P1.0)MOVR3,A;存回扫描寄存器JCL3;C=1?是则P1.0尚未扫描到SJMPKEYSCAN;C=0,则四行已扫描完毕KEYIN:MOVR7,#60;延时消除抖动D2:MOVR6,#248;DJNZR6,$;DJNZR7,D2;D3:MOVA,P1;延时后再读入P1值XRLA,R4;与上次读入值作比较JZD3;A=0,表示按键未放,等待按键释放MOVA,R1;按键已放开,取码指针载入累加器MOVDPTR,#TABLE;键盘码表首地址送DPTRMOVCA,A+DPTR;查键码RET;返回TABLE:DB00H,01H,02H,03H;键码安排表与键盘相同DB04H,05H,06H,07HDB08H,09H,0AH,0BHDB0CH,0DH,0EH,0FHORG0200HDISPLAY:MOVR0,#DBUF;串口静态显示子程序 MOVR2,#3;显示3位数码 MOVDPTR,#SEGTAB;DISP: MOVA,R0; MOVCA,A+DPTR;取字段码 MOVSCON,#0;置串口工作方式0 MOVSBUF,A;开始发送 JNBTI,$;等待发送完毕 CLRTI;发送完毕,标志位清零 INCR0;缓冲单元地址增1 DJNZR2,DISP;三位数码发送完否? RET;发送完毕,则返回SEGTAB: DB0FCH,60H,0DAH,0F2H ;0,1,2,3(共阳极字段码表) DB66H,0B6H, 0BEH,0E0H;4,5,6,7 DB0FEH,0F6H,0EEH,3EH;8,9,A,B DB9CH,7AH,9EH,8EH ;C,D,+,- ENDDBUFEQU30H;三位显示缓冲区首址ORG0000HAJMPMAINORG0030HMAIN:MOVSP,#60HACALLKEYSCAN;调用键盘扫描子程序判断是加分或减分CJNEA,#0EH,NEXT2;不是加分键,则转移判断是减分键?NEXT1:ACALLKEYSZ;是加分键,调用键盘设置子程序ACALLDISPLAY;调用串口静态显示子程序SJMPMAINNEXT2:CJNEA,#0FH,MAIN;都不是,则转MAINAJMPNEXT1;是减分键,调用键盘设置子程序ORG0100HKEYSZ:PUSHPSW;键盘设置子程序PUSHACCSETBRS1MOVR0,#DBUF;R0指向显示缓冲区首地址MOVR7,#3;设置键盘输入位数L1:CLRRS1ACALLKEYSCAN;调用键盘扫描子程序取按下键的键号SETBRS1CJNEA,#0AH,L2;键入数合法性检测(是否大于9)L2:JNCL1;大于9,重新键入MOVR0,A;键号送显示缓冲区INCR0DJNZR7,L1;3位数值输入完否?未完继续,否则返回POPACCPOPPSWCLRRS1RETKEYSCAN:MOVR3, #0F7H;扫描初值(P0.3=0)MOVR1,#00H;取码指针L3:MOVA,R3;开始扫描MOVP0,A;将扫描值输出至P1MOVA,P0;读入P1值,判断是否有键按下MOVR4,A;存入R4,以判断按键是否放开SETBC;C=1MOVR5,#04H;扫描P1.4P1.7L4:RLCA;将按键左移一位JNCKEYIN;判断C=0?有键按下则C=0,跳至KEYININCR1;C=1,则无键按下,将取码指针值加1DJNZR5,L4;4列扫描完毕了吗?MOVA,R3;扫描值载入SETBC;C=1RRCA;扫描下一行(P1.3P1.0)MOVR3,A;存回扫描寄存器JCL3;C=1?是则P1.0尚未扫描到SJMPKEYSCAN;C=0,则四行已扫描完毕KEYIN:MOVR7,#60;延时消除抖动D2:MOVR6,#248;DJNZR6,$;DJNZR7,D2;D3:MOVA,P0;延时后再读入P1值XRLA,R4;与上次读入值作比较JZD3;A=0,表示按键未放,等待按键释放MOVA,R1;按键已放开,取码指针载入累加器MOVDPTR,#TABLE;键盘码表首地址送DPTRMOVCA,A+DPTR;查键码RET;返回TABLE:DB00H,01H,02H,03H;键码安排表与键盘相同DB04H,05H,06H,07HDB08H,09H,0AH,0BHDB0CH,0DH,0EH,0FHORG0200HDISPLAY:MOVR0,#DBUF;串口静态显示子程序 MOVR2,#3;显示3位数码 MOVDPTR,#SEGTAB;DISP: MOVA,R0; MOVCA,A+DPTR;取字段码 MOVSCON,#0;置串口工作方式0 MOVSBUF,A;开始发送 JNBTI,$;等待发送完毕 CLRTI;发送完毕,标志位清零 INCR0;缓冲单元地址增1 DJNZR2,DISP;三位数码发送完否? RET;发送完毕,则返回SEGTAB: DB0FCH,60H,0DAH,0F2H ;0,1,2,3(共阳极字段码表) DB66H,0B6H, 0BEH,0E0H;4,5,6,7 DB0FEH,0F6H,0EEH,3EH;8,9,A,BDB9CH,7AH,9EH,8EH ;C,D,+,- END附 录 2抢答器软件程序:#include #define uchar unsigned char/共阴码/uchar code table=0x00,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe ; /*代码存储区(64KB)*/ /共阳码uchar code table=0x03,0x9f,0x25,0x0d,0x99,0xc2,0x41,0x1f,0x01,0xff ; void delay (void) /* delay 函数*/ uchar i,j; /*这个函数执行时间的延迟 */for (i=0;i20;i+)for(j=0;j0;time-)/*无键按下,则关显示*/ j=table0; SCON=0x00; SBUF=j; while(TI!=1);TI=0; else j=tablekey; /*取键值并显示*/ SCON=0x00; SBUF=j; while(TI!=1);TI=0; for(;)/*指示显示,并实现锁键功能*/ P1=temp; delay();
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!