八位竞赛抢答器的单片机课程设计

来源:米乐app体育下载 日期:2023-12-18 09:37:34

  通过本课程设计使学生进一步巩固《KeilC程序设计》的基本概念、理论、分析方法和实现方法;增强学生软件编程实现能力和解决实际问题的能力。

  1、熟悉所确定的题目从问题需求,数据结构,程序结构,难点及关键技术等方面做分析,形成系统的设计方案;

  第18周(12月26日-1月4日):布置设计任务,查资料,完成总体设计框架,完善设计内容,系统调试,验收答辩。

  单片机的出现方便了人们的生活,所以单片机的使用也使抢答器电路更简单和实用。但是传统抢答器具有以下问题有待解决:

  有的传统抢答器由数字电路组成,在使用现场会有多名选手或代表团参加比赛,所以会造成布线繁琐麻烦,现场不美观等问题;

  由于传统抢答器由电子元器件集成制作而成,所以会造成可靠性低,元器件集成工艺复杂,花费比较高等麻烦;

  3、由于传统抢答器由数字电路构成,所以会造成抢答时控制不精确,功能单一等缺陷。

  随着科学技术的发展和普及,各种各样的竞赛慢慢的变多, 其中抢答器的作用也就显而易见。因此设计一种更易于使用和区分度高的抢答器成了非常迫切的任务。 现在单片机已进入所有的领域,以其功耗小、智能化而著称。所以来利用单片机来设计抢答器便使以上问题得以解决。针对以上情况, 本课程通过Keilc软件编程,Protues软件仿线单片机为核心的八位抢答器,与晶振、数码管、蜂鸣器等通过外围接口实现的八路抢答器,利用单片机的延时电路、按键复位电路、时钟电路、定时器/计数器等,设计八路抢答器不仅仅具备实时显示选手的号码和抢答时间的功能,同时还利用汇编语言,使其实现复位,定时和报警功能。本次设计的系统实用性强,简单易操作,扩展功能强。1设计背景1.1课题背景

  各种知识竞赛、文娱活动的广泛开展,使抢答器成了必不可少的电子设备,它为参赛选手提供了公正、客观、快速的裁决,已逐渐发展成为一种成型的电子科技类产品,但市面上所售抢答器价格一般较贵且多为小规模集成电路构成,其性能单一,工作起来不够理想。本文介绍了通过Keilc软件编程,及Protues软件仿线单片机为核心的智能抢答器,它充分的利用了单片机系统的优点,具有结构相对比较简单、功能强大、可靠性好、成本较低的特点。它能根据不同的抢答输入信号,经过单片机的控制处理并产生不同的与输入信号相对应的输出信号,最后通过液晶显示屏显示对应的路数和答题时间等。

  本设计主要是介绍了单片机控制下的八路智能抢答器系统,详细的介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其基本功能和指标如下:

  (3)抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在数码管上显示选手号码。并且优先抢答选手的编号从始至终保持到主持人将系统清除为止。

  (5)当主持人启动“开始”键后,定时器进行减计时。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,定时显示器上显示00。

  该抢答器系统的硬件设计是以单片机为中心控制模块,采用模块化设计的八路抢答器,具有四个模块,分别为:按键输入模块、显示模块、时钟与复位模块、核心控制模块。

  按键输入模块共有10个按键,分为抢答按键和控制按键。抢答按键共有八个,分别为S0―S7,供抢答选手进行抢答使用,P1.0-P1.7口为八个按键抢答信号的输入口,低电平有效。控制按键有2个,分别为S8与S9,S8和S9分别为“清除/设置时间”和“开始键”, 其对应的I∕O接口分P2.0与P2.1

  时钟与复位模块包括时钟电路和复位电路,单片机的最小系统就是由时钟电路、复位电路、电源电路及单片机构成。单片机的时钟信号用来提供单片机片内各种操作的时间基准,单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。根据应用的要求,复位操作通常有两种基本形式:上电复位或开关复位。当5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。

  核心控制模块就是人们所谓的CPU,它是总系统的总控制部分,本系统的核心控制模块为51系列的单片机,只有我们通过软件程序的编写,并将程序写入单片机,该系统才会正确的工作。

  主控制器选择即为单片机的选择,单片机实际上就是把CPU、RAM、ROM、定时器/计数器、I/O接口电路等微型机的主要部件集成在一块芯片上,因此称之为单片机。

  AT89C51单片机主要有以下部件构成:八位微处理器CPU、振荡电路、总线控制部件、中断控制部件、片内Flash存储器、片内RAM、并行I/O接口、定时器和串行I/O接口。AT89C51单片机内部由CPU、4KB的FPEROM ,128B的RAM,两个16位的定时/计数器T0和T1,4个8位的I/O端P0、P1、P2、P3等组成。单片微机内部最核心的部分是CPU,CPU按其功能可分为运算器和控制器两部分。控制器由程序计数器PC、指令储存器、指令译码器、实时控制与条件转移逻辑电路等组成。它的功能是对来自存储器中的指令进行译码,通过实时控制电路,在规定的时刻发出各种操作所需的内部和外部的控制信号,使各部分协调工作,完成指令所规定的操作。运算器由算术逻辑器部件ALU、累加器ACC、暂存器、程序状态字寄存器PSW,BCD码运算调整电路等组成。为了更好的提高数据处理和位操作功能,片内增加了一个通用寄存器B和一些专用寄存器,还增加了位处理逻辑电路的功能。

  P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能用来外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE∕P:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。EA/VPP:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA/VPP将内部锁定为RESET;当EA/VPP端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。

  在单片机的应用系统中,显示器是最常见的输出设备,也是人机对话必不可少的部分。显示器按其显示形式分为分段式显示器、点阵式显示器和条图(光柱)式显示器。显示器可用于数字、符号、文字、图形和光柱显示。七段数码管显示器是单片机开发中常用的输出器件。它是由若干个发光二极管组成的,当发光二极管导通时,相应的一个点或一个笔画发亮。控制不同组合的二极管导通,就能显示出各种字符。 常用的LED显示屏有7段式和“米”字段之分,7字段单个数码管内共有八只发光二极管,7只为字段,可组成字形,第八个为小数点。故单个管有人称为7段数码管显示,也有人称为8段显示。7段数码显示管内部结构如图3-2所示。

  AT89C51单片机P1.0~P1.7端口分别与S0~S7按钮相连对应8个不同的选手的抢答按键。选手通过抢答按键进行抢答,单片机接收信号后内部做处理并在显示屏上显示选手编号。内部进行锁存。如图3-5所示。

  单片机必须在时钟的驱动下才能工作。AT89C51单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。无论何种形式,都需要外部附加电路,产生时钟脉冲。外部时钟方式是直接将外部的振荡脉冲通过XTALl或XTAL2接入单片机,外部时钟方式多用于多机系统,以便各个单片机能够同时工作。对外部震荡信号无特别的条件,但需保证脉冲宽度不小于20ns,且频率应低于单片机所支持的最高频率。内部时钟方式是利用单片机芯片内部的振荡器,通过在引脚XTALl和XTAL2两端跨接晶体振荡器,构成稳定的自激振荡器的方法,再由获得的自激振荡器发出稳定的脉冲,直接送入芯片内部的时钟电路的方式。跨接的晶体振荡器如果已经起振,则会向XTAL2引脚上输出一定幅值的正弦波。自激振荡器的频率取决于晶体振荡器的频率,常见的晶体振荡器频率有6MHz和12MHz。AT89C52单片机的时钟频率最高可为24Mz。本系统中采用的是内部时钟方式。时钟电路如图3-6所示。

  从时钟电路的示意图中能够正常的看到,单片机所跨接的晶体振荡器旁边还有两个电容器C8和C9。C8和C9被称为谐振电容,最大的作用有两点:一是可以促使单片机系统快速起振;二是C8、C9具有对频率进行微调作用,有利于单片机系统振荡频率的稳定,维持单片机的正常运行。谐振电容的容值选择,与所用的晶体振荡器的频率值有关。晶体振荡器的振荡频率越高,相应的谐振电容的容值也要提高。二者如果配合的好,能发挥谐振电容的非消极作用。反之,自激振荡器频率的稳定性将受一定的影响。经过大量的实际应用,晶体振荡器的频率与谐振电容的容值之间形成了一定的固定搭配。例如:当晶体振荡器的频率为12MHz时,谐振电容的容值一般为30pF左右。确定系统中晶体振荡器的频率,我认为与具体的应用有关。理论上当然希望单片机的运算速度越快越好,即晶体振荡器的频率越高越好。但是,在有些情况下,单片机的外围设备的速度无法匹配单片机的工作速度。为了节省本金,可以再一次进行选择振荡频率较低的晶体振荡器。基于这种考虑,本文中的晶体振荡频率设计为12MHz,谐振电容的容值选定为30pF。单片机在工作时,由内部振荡器产生或由外直接输入的送至内部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用T=1/fosc表示。图中时钟频率为12MHz,即fosc=12MHz,则时钟周期为1/12µs。此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作。在设计电路板时,晶体振荡器和谐振电容的位置应尽可能地靠近单片机的XTALl和XTAL2引脚 。

  使CPU进入初始状态,从0000H地址开始执行程序的过程叫系统复位。单片机本身不能自动进行复位,必须配合相应的外部复位电路才能实现。从实现系统复位的方法来看,系统复位可分为硬件复位和软件复位。硬件复位一定要通过CPU外部的硬件电路给CPU的RESET端加上足够时间的高电位才能实现。上电复位,人工按钮复位和硬件看门狗复位均为硬件复位。硬件复位后,各专用寄存器的状态均被初始化,且对片内通用寄存器的内容没影响。但是,硬件复位还能自动清除中断激活标志,使中断系统能战场工作,这样一个事实却容易为不少编码人员所忽视。软件复位就是用一系列指令来模拟硬件复位功能,最后通过转移指令使程序从0000H地址开始执行。对各专用寄存器的复位操作是容易的,也没有必要完全模拟,可结合实际需要去主程序初始化过程中完成。而对中断激活标志的清除工作常被遗忘,因为它没明确的位地址可供编程。有的编程人员用020000(LJMP 0000H)作为软件陷阱,认为直接转向0000H地址就完成了软件复位,就是这类错误的典型代表。软件复位是使用软件陷阱和软件看门狗后一定要进行的工作,这时程序出错完全有可能发生在中断子程序中,中断激活标志已置位,它将阻止同级中断响应。由于软件看门是高级中断,它将阻止说要中断响应,由此可见清除中断激活标志的重要性。单片机系统在启动运行时,首先完成的复位操作,即上电复位。其目的是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。复位很重要,单片机有多种复位方式。这里仅介绍上电复位和按键复位这两种常用的复位方式。上电复位常用的方法是使用电容器。利用电容器的充电特性达到满足接通电源后,单片机实现自动复位的要求。单片机的第9脚RST为硬件复位端,只要将该端持续4个机器周期的高电平就可以实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图3-7所示。

  在电路图中,电容的的大小是10uF,电阻的大小是10k。所以根据公式,可以算出电容充电到电源电压的0.7倍(3.5V),需要的时间是10K*10uF=0.1S。也就是说在电脑启动的0.1S内,电容两端的电压时在0-3.5V增加。这样一个时间段10K电阻两头的电压为从5-1.5V减少(串联电路各处电压之和为总电压)。所以在0.1S内,RST引脚所接收到的电压是5V-1.5V。在5V正常工作的52单片机中小于1.5V的电压信号为低电平信号,而大于1.5V的电压信号为高电平信号。所以在开机0.1S内,单片机系统自动复位(RST引脚接收到的高电平信号时间为0.1S左右)。在单片机启动0.1S后,电容C两端的电压持续充电为5V,这是时候10K电阻两头的电压接近于0V,RST处于低电平所以系统正常工作。当按键按下的时候,开关导通,这样一个时间段电容两端形成了一个回路,电容被短路,所以在按键按下的这样的一个过程中,电容开始释放之前充的电量。跟着时间的推移,电容的电压在0.1S内,从5V释放到变为了1.5V,甚至更小。根据串联电路电压为各处之和,这样一个时间段10K电阻两头的电压为3.5V,甚至更大,所以RST引脚又接收到高电平。单片机系统自动复位。复位电路的原理是单片机RST引脚接收到2uS以上的电平信号,只要保证电容的充放电时间大于2uS,就可以实现复位,所以电路中的电容值是能改变的。有必要注意一下的是,在设计当中使用到了硬件复位和软件复位两种功能,软复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。

  本设计主要是介绍了单片机控制下的8路竞赛抢答器系统,同时供8名选手或8个代表队比赛,分别用8个按钮S0~ S7表示。设置一个系统清楚和抢答控制开关S,该开关由主持人控制。抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在数码管上显示选手号码。并且优先抢答选手的编号从始至终保持到主持人将系统清除为止。抢答器具有定时抢答功能,且一次抢答的时间由主持人设定。(如本次试验设定为50s)当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。

  8位竞赛抢答器在正常工作的情况下,首先对控制管理系统进行初始化,接着进行键盘扫描,判断主持人是否按下了“开始抢答”按键,如果按键没有按下,则选手无法抢答;如果“开始抢答”按键按下则执行倒计时子程序和显示子程序,并调正常抢答处理子程序,如果。其中倒计时程序包括抢答倒计时和回答倒计时。涉及的程序框图如图4-1,4-2,4-3所示。

  定时器T1用于倒计时,每次中断为50ms,当计数标志为20时即为一秒,显示数字减一。其流程图如下:

  由于这次的课设我们最终选择了用AT89C51单片机来设计设计抢答器,很多东西都是临时学的,像Proteus仿真软件的使用以及keil软件的使用,还有各种硬件的选择和区分。我通过查资料和搜集有关的文献,学习使用各种软件及焊接电路板,培养了自学能力和动手能力。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过课程设计,我们学会了如何将学到的知识转化为自己的东西,并且由原先的被动的接受知识转换为主动的寻求知识,这能够说是学习方法上的一个很大的突破。

  对于单片机设计,其硬件电路是最简单的,主要是解决程序设计中的问题。而程序设计是一个很灵活的东西,它反映了你处理问题的逻辑思维和创造新兴事物的能力。它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是可以借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对单片机的结构很熟悉。因此能说单片机的设计是软件和硬件的结合,二者是密不可分的。通过这次课程设计我也发现了自己的很多不足之处。在设计过程中我发现了自己考虑问题很不全面,自己的专业相关知识掌握的很不牢固,所掌握的计算机应用软件还不够多,我希望自己的这些不足之处能在今后的学习中得到一定的改善。我的设计也还存在着一些缺陷,有待于在将来设计中进一步提升,在此恳请老师批评指正。这次设计也让我懂得细节决定成败,在以后的设计中我会严格吸取这次的教训,做的更好!

  #include//包含头文件,正常的情况不需要改动,头文件包含特殊功能寄存器的定义

  瑞萨推出面向图形显示应用和语音/视觉多模态AI应用的 全新RA8 MCU产品群

  瑞萨基于Arm® Cortex®-M85处理器的产品在优化图形显示功能的同时,为楼宇自动化、智能家居、消费及医疗应用带来超高性能和领先的安全性2 ...

  Microchip推出PIC18-Q24 系列单片机 为增强代码安全性设置新标准

  该系列单片机新增电压电平转换功能,有助于提高灵活性并降低系统成本从手机、汽车到智能恒温器和家用电器,慢慢的变多日常设备与云端相连。随 ...

  今天就分享一个读者问到的关于中断处理的问题。 很多人都知道STM32CubeMX这套工具的一个目的:减少开发者对STM32底层驱动的开发时间,把重 ...

  在万利STM32学习板的USB摇杆例程中,摇杆的按键处理并没有消抖处理,因此重新修改了摇杆的驱动,顺便还增加了两个按键以及摇杆中键下压的驱 ...

  STM32F103+ESP8266接入机智云 实现小型IOT智能家居项目

  前言最近有不少小伙伴私信留言,想要我推出一章可以通过APP进行远程控制并获取传感器信息的实验教程。说实话在嵌入式毕设里边,这算是中等 ...

  stm32mp1 Cortex M4开发篇2:通过GPIO点亮LED灯详解

  英特尔AI创新应用大赛真正开始启动,以AI PC促进生产力和娱乐体验飞跃

  SABIC举办第五届“点亮未来”可持续发展设计挑战赛暨上海工厂公众开放日

  芯华章双模硬件仿真系统在渡芯科技部署,助力渡芯科技加速大型高速互连芯片突破

  有奖直播 11月27日上午10:00 准时开启!富士通赋能汽车电子技术变革

  推陈出“芯“——TI 带你领略智能手机黑科技在线直播 预报名+看直播 好礼让你嗨翻全场!

  站点相关:综合资讯51单片机PIC单片机AVR单片机ARM单片机嵌入式系统汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程



上一篇:新能源中级挑选题
下一篇:主动挡车档位P R N D L介绍 具体的档位解说