




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课 程 设 计 说 明 书课 程 设 计 说 明 书题目:基于 STM32 的四路抢答器学 院 : 年级专业: 学 号 : 学生:指导教师:第 2 页 共 33 页摘要在各种智力竞赛场合,抢答器是必不可少的最公正的用具。在我们各种竞赛中我们也经常能看到有抢答的环节,某些举办方采用让选手通过举答题板的方法判断选手的答题权,这在某种程度上会因为主持人的主观误断造成比赛的不公平性,而抢答器的应用就能避免这种弊端。今天随着科技的不断进步抢答器的制作也更加追求精益求精,人们摆脱了耗费很多元件仅来实现用指示灯和一些电路来实现简单的抢答功能,使第一个抢答的参赛者的编号能通过指示灯显示出来,避免不合理的现象发
2、生。但这种电路不易于扩展,而且当有更高要求时就无法实现,例如参赛人数的增加。随着数字电路的发展, 数字抢答器诞生了,它易于扩展,可靠性好,集成度高,而且费用低,功能更加多样, 是一种高效能的产品。而如今在市场上销售的抢答器大多采用可编程逻辑元器件,或利用单片机技术进行设计。本文实现了一个基于嵌入式STM32 单片机的 4 路抢答器系统设计,本系统设计主要分为硬件设 备和软件控制两大部分。外部硬件使用 STM32 单片机作为控制中心,用 4 个按键作为抢答输入,抢答开始后,抢答成功者的LED 灯标识为红色闪烁,并且显示各抢答输入的时间。关键词:智能抢答器,STM32,按键输入,数码管显示课 程
3、设 计 说 明 书目录第 5 页 共 33 页摘要2目录3第 1 章 绪论51.1 课题研究的相关背景51.2 选题的目的和意义51.3 课题研究的容51.4 国外研究现状61.5 抢答器目前存在的主要问题6第 2 章 抢答器的系统概述72.1 系统的主要功能72.2 抢答器的工作流程72.3 STM32 的功能及简介72.4 抢答器的优点及组成102.5 本章小结11第 3 章系统的硬件设计与开发113.1 系统硬件总体设计113.2 STM32 最小系统133.4 时钟频率电路的设计143.5 复位电路的设计153.6 数码管显示163.7 键盘电路的设计173.8 LED 电路183.9
4、 本章小结19第 4 章 系统的软件设计与开发194.4 主要程序分析214.5 本章小结30第 5 章总结与展望315.1总结315.2展望32致33参 考 文 献34第 1 章 绪论1.1 课题研究的相关背景抢答器是一种应用非常广泛的设备,在各种竞赛、抢答场合中,它能迅速、客观地分辨出最先获得发言权的选手。早期的抢答器只由几个三极管、可控硅、发光管等组成,能通过发光管的指示辩认出选手。现在大多数抢答器均使用单片机和数字集成电路,并增加了许多新功能,如选手显示、抢按前或抢按后的计时、选手得分显示等功能。本系统设计主要分为硬件设备和软件控制两大部分。外部硬件使用STM32 单片机作为控制中心,
5、用 4 个按键作为抢答输入,抢答开始后,抢答成功者的 LED 灯标识为红色闪烁,并且显示各抢答输入的时间。1.2 选题的目的和意义通过这次设计,掌握STM32 单片机的原理,了解简单多功能抢答器组成原理, 初步掌握多功能抢答器的调整及测试方法,提高动手能力和排除故障的能力。同时通过本课题设计与仿真进行调试,提高自己的动手能力,巩固已学的理论知识,建立单片机理论和实践的结合,了解多功能抢答器各单元电路之间的关系及相互影 响,从而能正确设计、应用各个单元电路。1.3 课题研究的容本系统采用模块化设计智能抢答器,在抢答比赛中广泛应用,各组分别有一个抢答按钮。抢答开始后,抢答成功者的 LED 灯标识为
6、红色闪烁,并且显示各抢答输入的时间。在通过研究并在设计验证后发现,采用单片机技术设计的抢答器与目前常用的抢答器相比,首先,电路连接简单,因为大多数功能单元都通过程序设计在单片机部,第二,工作性能可靠,抗干扰能力优于目前抢答器。所以本研究是一个实用的工程设计,具有创新性。课 程 设 计 说 明 书1.4 国外研究现状抢答器作为一种电子产品,早已广泛应用于各种智力和知识竞赛场合,但目前所使用的抢答器有的电路较复杂不便于制作,可靠性低,实现起来很困难;有的则用一些专用的集成块,而专用集成块的购买又很困难。为适应高校等多代表队单位活动的需要而设计一个多功能抢答器,这种抢答器具有电路简单,元件普通,易于
7、购买等优点,很好地解决了制作者制作困难和难于购买的问题。在国外已经开始了普遍的应用。1.5 抢答器目前存在的主要问题随着改革开放事业的不断深入,促使人们学科学、学技术、学知识的手段多种多样,抢答器作为一种工具,已广泛应用于各种智力和知识竞赛场合。但抢答器的使用频率校低,且有的要么制作复杂,要么可靠性低,减少兴致。作为一个单位若专购一台抢答器虽然在经济上可以承受,但每年使用的次数极少,往往因长期存放使(电子器件的)抢答器损坏,再购置的麻烦和及时性就会影响活动的开展。而且目前多数抢答器存在 3 个不足之处:第一,现场线路连接复杂。因为每个选手位于抢答现场的不同位置,每个选手与控制台之间要有长长的连
8、接线。选手越多,连接线就越多、越乱,这些连接线不仅影响了现场的美观,而且降低了抢答器的可靠性,增加了安装的难度,甚至影响了现场人员的走动。第二,电路复杂。因为单片机只完成处理、计时、数据运算等功能,其它功能如选手的识别、译码、计分显示等仍只能通过数字集成电路完成。采用单片机扫描技术识别选手抢按时,电路的延迟时间较大。第三,选手抢按成功,但出现没有抢答被记录的问题。第 7 页 共 33 页第2章抢答器的系统概述2.1 系统的主要功能本系统是借用单片机采用模块化设计的4 路抢答器,包括4 路抢答按纽、计时显示、抢答成功标识,各种相关显示调控功能等本系统采用模块化设计的四路抢答器,在抢答比赛中广泛应
9、用,各组分别有一个抢答按钮。一共有 4 个按键输入,分别对应 4 路选手的抢答按键。单片机是整个抢答器的核心,部电路设计用汇编语言编写。它完成了时间参数的设定,抢按的译码,保存;显示;输出,抢按及答题倒计时功能等。本设计中,有四个共阳的数码管,四个数码管。主持人按下复位键( RESET) 后开始抢答。抢答成功者的LED 灯标识为红色闪烁,并且显示各抢答输入的时间。2.2 抢答器的工作流程抢答器的基本工作原理:在抢答后,按键产生的下降沿,被中断的LINE线捕捉, 从而实现进入中断服务函数,进行LED闪烁,以及实现相应数码管的计时显示工作, 进而标识识别出抢答成功者的标号,进行相应的回答。2.3
10、STM32 的功能及简介现阶段,市场上低端产品处理器以 8 位单片机为主,例如广为人知的 C51 系列, 而高端则是以 32 位单片机为主,例如基于 ARM Cortex-M3 核的 STM32 系列,是专课 程 设 计 说 明 书门为要求高性能、低功耗、低成本的嵌入式系统设计的芯片。本系统是使用STM32 单片机,采用模块化设计的4 路抢答器,包括 4 路抢答按纽、计时显示、各种相关显示调控功能等。采用 STM32F103VET6 的 100 管脚的单片机,连接四路按键,四路LED,以及要显示四个独立的数码管,故需要比较多的 I/O 口.使用外部中断包含 16 个的边沿检测器,用于产生中断,
11、每个中断线都可以独立地配置它的触发事件 (上升沿或下降沿或双边沿),并能够单独地被屏蔽;有一个挂起寄存器维持所有中断请求的状态。 EXTI 可以检测到脉冲宽度小于部APB2 的时钟周期。多达112 个通用I/O 口连接到 16 个外部中断线,满足系统功能的需要。从性能、价格、实际需要,STM32F103VET6 较之 8 位 8051 单片机等,更为符合设计要求。图 2.4 STM32 单片机的部结构图ARM Cortex-M3 处理器是新一代的 32 位处理器,是一个高性能、低成本的开发平台,适用于微控制器、工业控制系统以及无线网络传感器等应用场合。其特点为:第 8 页 共 33 页课 程
12、设 计 说 明 书1. 性能丰富成本低。专门针对微控制处理器应用特点而开发的32 位MCU,具有高性能、低成本、易应用等特点。2. 低功耗。把睡眠模式与状态保留功能结合在一起,确保Cortex-M3 处理器既可提供低能耗,又不影响很高的运行性能。3. 可配置性强。Cortex-M3 处理器的NVIC 功能提高了设计的可配置性,提供了多达 240 个具有单独优先级、动态重设优先级功能和集成系统时钟的系统中断。4. 丰富的。功能和性能兼顾的良好组合,使基于Cortex-M3 的设备可以有效处理多个I/O 通道和协议标准。STM32 系列处理器先进的部结构:1. 哈佛结构。使其在处理器整数性能测试上
13、有着出色的表现, 可以达1.25DMIPS/MHz,而功耗仅为 0.19mW/MHz。2. Thumb-2 指令集以 16 位的代码密度带来了 32 位的性能。3. 置了快速的中断控制器,提供了优越的实时特性,中断的延迟时间降到只需6 个 CPU 周期,从低功率模式唤醒的时间也只需6 个 CPU 周期。4. 单周期惩罚指令和硬件除法指令。1.核:(ARM 32 位的 Cortex -M3 CPU)最高 72MHz 工作频率,在存储器的0 等待周期访问时可达 1.25DMips/MHz;单周期乘法和硬件除法。2.存储器:从256K 至 512K 字节的闪存程序存储器;高达64K 字节的SRAM;
14、带4 个片选的静态存储器控制器、支持CF 卡、SRAM、PSRAM、NOR 和 NAND 存储器;并行 LCD 接口,兼容 8080/6800 模式。3. 时钟、复位和电源管理:2.03.6V 供电和I/O 引脚;上电/断电复位(POR/PDR)、可编程点压监测器(PVD); 416MHz 晶体振荡器;嵌经出厂调校的 8MHz 的 RC 振荡器;嵌带校准的40kHz 的 RC 振荡器;带校准功能的32kHz RTC 振荡器。4. 低功耗 :睡眠、停机和待机模式;VBAT 为 RTC 和后备寄存器供电。5.3 个 12 位模数转换器 ,1s 转换时间 (多达 21 个输入通道 ):转换围:0 至
15、 3.6V;三倍采样和保持功能;温度传感器STM32 在嵌入式系统应用领域有着无可比拟的优势, 本系统应用的STM32F103ZET6 的增强型系列单片机的功能也十分强大。详细介绍如下:第 12 页共 33 页6.2 通道 12 位 D/A 转换器7. DMA(12 通道 DMA 控制器):支持的外设:定时器、ADC、DAC、SDIO、I2S、SPI、I2C 和 USART。8. 调试模式:串行单线调试(SWD) 和 JTAG 接口; Cortex-M3 嵌跟踪模块(ETM)。9. 多达 112 个快速I/O 端口:51/80/112 个多功能双向I/O 口,所有I/O 口可以映像到 16 个
16、外部中断;几乎所有端口均可容忍5V 信号。10. 多达 11 个定时器:多达 4 个 16 位定时器,个定时器有多达 4 个用于输入 捕获/输出比较/PWM 或脉冲计数的通道和增量编码器输入;2 个 16 位位带死区控制和急刹车,用于电机控制的PWM 高级控制定时器;2 个看门狗定时器(独立和窗口型的);系统时间定时器;24 位自减型计数器;2 个 16 位基本定时器用于驱动DAC。11. 多达 13 个通信接口:多达 2 个 I2C 接口(支持SM-Bus/PM-Bus);多达 5 个 USART 接口(支持ISO7816,LIN,Ir-DA 接口和调制解调控制);多达 3 个 SPI 接口
17、(18M 位/秒),2 个可复用为I2S 接口;CAN 接口(2.0B 主动);USB2.0 全速接口;SDIO 接口。12. CRC 计算单元,96 位的芯片唯一代码13.ECOPACK封装2.4 抢答器的优点及组成在知识比赛中,特别是做抢答题目的时候,在抢答过程中,为了知道哪一组或哪一位选手先答题,必须要设计一个系统来完成这个任务。如果在抢答中,靠视觉是很难判断出哪组先答题。利用单片机系统来设计抢答器,使以上问题得以解决, 即使两组的抢答时间相差几微秒,也可分辨出哪组优先答题。本文主要介绍了单片机抢答器设计及工作原理,以及它的实际用途。系统工作原理本系统采用STM32 单片机作为核心。控制
18、系统的四个模块分别为:存储模块、显示模块、计时模块、抢答开关模块。该抢答器系统通过四个个按键输入抢答信号;利用存储程序来完成软件的设计;利用四个4 位七段共阳数码管来完成显示功能。工作时,用按键通过开关电路输入各路的抢答信号,经单片机的处理,输出控制信号,控制四个七段数码管和喇叭工作。在数码管上显示哪一组先答题,从而实现整个抢答过程。2.5 本章小结本章主要讲述了抢答器的工作原理和本设计系统的工作流程。在说明工作原理的过程中,突出了电路的组成单元以及这些单元如何实现抢答功能;在说明系统的流程时,结合本设计的容,指出了参数设置的方法和意义。抢答正常流程的实现, 同时也说明了抢答器的优点和STM3
19、2 的功能及简介。第 3 章系统的硬件设计与开发3.1 系统硬件总体设计本章主要容是系统的硬件电路的实现,即现场检测设备的硬件电路设计,四路按键作为输入信号传给STM32 单片机,STM32 作为主控制芯片,四盏 LED 作为输出, 抢答成功者的LED 灯红色闪烁,四个独立数码管,分别显示各自的抢答时间,电源模块采用的 12V 的开关电源,再通过稳压芯片转换为所需5V 和 3.3V 电源输出。还需要 USB 转串口电路,JTAG 调试电路,晶振、BOOT 等外围电路。电源数管码显单片示JTAG复位STM324 位七 段晶振机=LED显示4 路抢答按键输入图 3.1 系统主要功能模块3.2 ST
20、M32 最小系统课 程 设 计 说 明 书采用 STM32F103VET6 最小系统,100 引脚,512 闪存,32 位 CPU,最高 72Mhz 工作频率,完全可满足本系统设计的需要。3.3 JTAG 电路JTAG(Joint Test Action Group,即联合测试行动小组)是一种国际标准的测试协议,主要应用于芯片的部测试,现在主流的 DSP、FPGA 芯片等都支持 JTAG 协议。标准的接口是 4 线制的,包括:TMS、TCK、TDI、TDO,分别代表模式选择、时钟设第 18 页共 33 页置、数据输入和数据输出。JTAG 的基本原理是在器件部定义一个TAP(Test Acces
21、s Port,即测试访问口)然后通过专门的调试工具对芯片部的节点进行测试。图 3.3STM32 的JTAG 调试接口电路3.4 时钟频率电路的设计单片机必须在时钟的驱动下才能工作。在单片机部有一个时钟振荡电路,只需要外接一个振荡源就能产生一定的时钟信号送到单片机部的各个单元,决定单片机的工作速度。时钟电路如图 5 所示。图 3.4 外部振荡源电路一般选用石英晶体振荡器。此电路在加电大约延迟10ms 后振荡器起振,在XTAL2 引脚产生幅度为 3V 左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。电路中两个电容 C1,C2 的作用有两个:一是帮助振荡器起振;二是对振荡器的频率进行微调。
22、C1,C2 的典型值为 30PF。单片机在工作时,由部振荡器产生或由外直接输入的送至部控制逻辑单元的时钟信号的周期称为时钟周期。其大小是时钟信号频率的倒数,常用 fosc表示。图中时钟频率为 12MHz,即f =12MHz,则机器周期为 1s.osc3.5 复位电路的设计单片机的第 9 脚 RST 为硬件复位端,只要将该端持续4 个机器周期的高电平即可实现复位,复位后单片机的各状态都恢复到初始化状态,其电路图如图6 所示:图 3.5 复位电路图 6 中由复位键以及电解电容C3、电阻R2 构成按键及上电复位电路。由于单片机是高电平复位,所以当复位键按下的时候,单片机的9 脚 RESET 管脚将处
23、于高电平,此时单片机就处于复位状态。当上电后,由于电容的缓慢充电,单片机的9 脚电压会逐步由高向低转化,经过一段时间后,单片机的9 脚处于稳定的低电平状态,此时单片机上电就复位完毕,系统程序从0000H 开始执行。值得注意的是,在设计当中使用到了硬件复位和软件复位这两种功能,由上面的硬件复位后的各状态可知寄存器及存储器的值都恢复到了初始值,而前面的功能介绍中提到了倒计时时间的记忆功能,该功能的实现的前提条件就是不能对单片机进行硬件复位,所以设定了软件复位功能。软件复位实际上就是当程序执行完毕之后,将程序指针通过一条跳转指令让它跳转到程序执行的起始地址。3.6 数码管显示显示功能与硬件关系极大,
24、当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。在这里我们使用的是四个独立七段数码管显示,通常在显示上我们采用的方法一般包括两种:一种是静态显示,一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。在本设计中根据实际情况采用的是动态显示方法。图 3.6 共阴极数码管图 2.6 中数码管采用的是4 个七段共阳数码管,其中选手A 数码管连接PB0-PB6 口,选手B 连接PB7-PB13,选手C 连接PC7-PC13,选手D 连接PC0-PC6 口
25、。3.7 键盘电路的设计键盘是人与单片机打交道的主要设备。关于键盘硬件电路的设计方法也可以在文献和书籍中找到,配合各种不同的硬件电路,这些书籍中一般也会提供相应的键盘程序,在单片机应用中键盘用得最多的形式是独立键盘和矩阵键盘。它们都有各自的特点,其中独立键盘的硬件电路简单,而且在程序设计上也不 复杂,一般都用在对硬件电路要求不高的简单电路中;矩阵键盘与独立键盘有很大 区别,首先在硬件电路上它要比独立键盘复杂很多,而且在程序算法上要比它烦琐, 而且在触点抖动按键同与断过程中可能会出现判断错误。应该采用软件去抖方法, 即延时重复扫描法,延时法的原理为:在检测到有按键被按下时,执行一个 10ms 左
26、右(具体时间应该视所使用的按键进行调整)的延时程序,再确认该键电平是否 仍保持闭合状态的电平,若仍保持闭合状态电平,则确认该键处于闭合状态;同理, 在检测到该键释放后,也应该采用相同的步骤进行确认,从而消除去抖的影响。在本文设计中采用了独立键盘的方式,本设计中有 4 个抢答按键输入,如图 3.7 所示。图 3.7 抢答按键在图 3.7 中 4 个抢答按键分别接入单片机的 PA0-PA3 端口,单片机通过读写PA0-PA7 的值来判断当前输入的是 4 个抢答按键中的哪一个,从而触发断,完成抢答成功者LED 显示及抢答时间显示。3.8 LED 电路各类 LED 发展非常迅速,已经成为各种照明标识常
27、用的显示元件,本系统采用IO 口直接连接的LED 驱动电路,如下图 3.8。在图 308 中 4 盏 LED 灯分别接入单片机的PA4-PA7 端口,单片机通过写 0 写 1, 进而控制LED 的亮灭与否。3.9 本章小结本章详细讲述了以STM32 为核心元件的抢答器的硬件电路具体设计过程,分析了具体电路。在设计过程中,实现抢答功能的是通过编写程序的方法集成在STM32 部。接着将程序下载到硬件电路中,配合周边的时钟电路,复位电路等,制作出符合设计要求的抢答器。课 程 设 计 说 明 书第4章系统的软件设计与开发4.1 系统总体设计本系统的软件设计采用模块化编程,由LED 显示,按键输入,数码
28、管,主函数构成,使用中断,在按键输入后,下降沿检测,进而进入中断函数,完成数码管, LED 的显示。程序编译环境为KEIL u-Vision5,主控制器采用 ARM cortex-M3 核的STM32,调试工具为J-Link 的 JTAG 仿真器,便于在线调试。4.2 STM32 开发调试环境介绍基于 ARM cortex-M3 核的STM32 微处理器得到越来越广泛的应用,所以开发工具也分为好多种,当下最流行的STM32 的开发工具为KEIL MDK 和 IAR EWARM,两种工具各有千秋,作下简要介绍。KEIL MDK 作为一个套件,包含了全套的软件模块,其中就包括 KEIL 公司的ID
29、E 环境“KEIL u-Vision”,KEIL u-Vision5 是它的第五个版本。而本文所使用的 RVMDK 全称是REAL VIEW MDK,是KEIL 公司专门用于嵌入式开发所使用的软件,REAL VIEW MDK 集成了包括 u-Vision5 的开发环境与REAL VIEW 编译器.另外一种开发工具IAREWARM,全称IAR Embedded Workbench for ARM,是 ISR System 公司为ARM 芯片开发的一个集成环境,IAR EWARM 中包含了一个全软件的模拟程序,使得用户甚至不需要任何硬件的支持就可以模拟各种ARM 核、中断甚至外部设备,使用方便且便
30、于操作,尤其适用于核的移植。调试工具J-Link 是SEGGER 公司为支持仿真核芯片推出的一款JTAG 仿真器, 适用于KEIL、IAR EWARM、REAL VIEW 等多种集成开发环境,特别适合开发基于ARM 的嵌入式系统。第 19 页 共 33 页课 程 设 计 说 明 书4.3 程序流程图在本设计中包括了以下主要的程序:主程序,LED,数码管,按键,中断服务函数,主流程图如 4.3 所示:图 4.3 程序设计流程图4.4 主要程序分析4.4.1 主程序分析#include main.h int main(void)第 20 页 共 33 页课 程 设 计 说 明 书LED_GPIO_
31、Config(); KEY_Config(); DIGITRON_GPIO_Config(); TimeCount(); NVIC_Config();while (1)程序分析:进入主函数后,进行LED 配置,按键配置,数码管配置,显示函数, 以及中断配置,随后进入while 死循环,等待中断响应。4.4.2 LED 函数分析#include led.hvoid LED_GPIO_Config(void)/*定义一个 GPIO_InitTypeDef 类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure;/*选择要控制的 GPIOA 引脚*/GPIO_Ini
32、tStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4| GPIO_Pin_5 |GPIO_Pin_6;/* 设 置 引 脚 模 式 为 通 用 推 挽 输 出 */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;/* 设 置 引 脚 速 率 为 50MHz */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;第 31 页共 33 页/* 调 用 库 函 数 , 初 始 化 GPIOA*/ GPIO_Init(GPIOA, &GPIO_InitStructure);
33、/* 关闭所有 led 灯 */GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5| GPIO_Pin_6);程序分析:进入LED_GPIO_Config 后,完成LED 相关引脚配置。4.4.3 按键配置函数#include key.hvoid KEY_Config(void)/GPIO 配置EXTI_InitTypeDef EXTI_InitStructure; GPIO_InitTypeDefGPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2
34、Periph_AFIO,ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure);/EXTI 配置GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0 | GPIO_PinSource1 | GPIO_PinSource2 | GPIO_PinSourc
35、e3 );/中断源EXTI_InitStructure.EXTI_Line=EXTI_Line0 | EXTI_Line1 | EXTI_Line2 | EXTI_Line3 ;/中断线路EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; /外部触发EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;/下降沿EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure);程序分析:完成KEY 相关引脚配置
36、,并设置相应的中断线,中断模式,触发方式,使能EXTI 的配置。4.4.4 NVIC 配置#include nvic.hvoid NVIC_Config(void)/ NVIC NVIC_InitTypeDef NVIC_InitStructure;/ 设 置 中 断 0 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure
37、.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;/设置中断 1NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;
38、/设置中断 2NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;/设置中断 3NVIC_InitStructure.NVIC_IRQChannel = EXTI3_IRQn; NVIC_InitStructure.NVIC_IRQChanne
39、lCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;NVIC_Init(&NVIC_InitStructure);程序分析:在NVIC 中,分别完成相应的中断1,2,3,4 中断分组,抢占优先级, 响应优先级的配置,由于是均等条件的抢答,故抢占及响应优先级均为同一等级。4.4.5 DIGITRON 函数#include digitron.hu8 table= 0xc0,0xf9,0xa4,0xb0,0x9
40、9,0x92,0x82,0xf8,0x80,0x90,;/ 共阳极0-9int FlagA=1,FlagB=1,FlagC=1,FlagD=1; u16 TIME=500;void delayms(u16 time); /延时 1ms void TimeCount(void);/计时void DIGITRON_GPIO_Config(void)/*定义一个 GPIO_InitTypeDef 类型的结构体*/ GPIO_InitTypeDef GPIO_InitStructure;/*开启 GPIOA 的外设时钟*/RCC_APB2PeriphClockCmd( RCC_APB2Periph_G
41、PIOB | RCC_APB2Periph_GPIOC, ENABLE);/* 选 择 要 控 制 的 GPIOB 引 脚 */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;/* 设 置 引 脚 模 式 为 通 用 推 挽 输 出 */ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;/* 设 置 引 脚 速 率 为 50MHz */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/* 调 用 库 函 数 , 初 始 化 GPIOA*/ GPIO_Ini
42、t(GPIOB, &GPIO_InitStructure);void TimeCount()u8 i=0,j=0,m=0,n=0;/选手Afor (;i10;i+)/0GPIO_ResetBits(GPIOB,GPIO_Pin_All); switch (i)case 0: GPIO_SetBits(GPIOB,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 |GPIO_Pin_5);delayms(TIME);break;case1:GPIO_SetBits(GPIOB,GPIO_Pin_1|GPIO_Pin_2)
43、;delayms(TIME);break;/1case 2: GPIO_SetBits(GPIOB,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_6);delayms(TIME); 2break;/case 3: GPIO_SetBits(GPIOB,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_6);delayms(TIME);break;/3case 4: GPIO_SetBits(GPIOB,GPIO_Pin_1 | GPIO_Pin_2 | GPIO_
44、Pin_5 | GPIO_Pin_6 );delayms(TIME);break;/4case 5: GPIO_SetBits(GPIOB,GPIO_Pin_0 | GPIO_Pin_2 | GPIO_Pin_3|GPIO_Pin_5|GPIO_Pin_6);delayms(TIME); 5break;/6case 6: GPIO_SetBits(GPIOB,GPIO_Pin_0 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 |GPIO_Pin_6);delayms(TIME);break;case 7: GPIO_SetBits(GP
45、IOB,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2);delayms(TIME);break;/7case 8: GPIO_SetBits(GPIOB,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5| GPIO_Pin_6);delayms(TIME);break;/8/9case 9: GPIO_SetBits(GPIOB,GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_5 |GPIO_
46、Pin_6);delayms(TIME);break;if(FlagA = 1)break;void delayms(u16 time) /延时 1msu16 i=0;while(time-)i=12000;while(i-);程序分析:在数码管函数中,采用 switch-case 语句进行数码管从 0-9 的显示, 每个数字显示 500ms,在响应中断后,跳出for 循环,从而实现抢答时间的显示。4.4.6 中断服务函数void EXTI0_IRQHandler(void)if (EXTI_GetITStatus(EXTI_Line0) != RESET) for(;i=repeat;i+)LED1(ON);Delay(100);LED1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年异环磷酰胺项目发展计划
- 设计权转让协议二零二五年
- 低价整屋改造合同标准文本
- 二零二五版酒店婚宴协议合同
- 免责招商合同样本
- 产品代加工合同合同样本
- 个人对公材料合同样本
- 公司扣押员工合同样本
- 桥梁加固施工方案
- 乐器销售合同样本
- 《思想道德与法治》 课件 第四章 明确价值要求 践行价值准则
- 船舶发展史课件
- 2022统计执法资格考试题库(含答案)
- 天然药物研究的回顾与展望课件
- 通信线路工程施工技术规范(新)
- Unit15-The-necklace-reading-公开课一等奖课件-高中英语
- 《贝叶斯统计》课程教学大纲
- Q∕GDW 10202-2021 国家电网有限公司应急指挥中心建设规范
- 审计实施方案模板格式
- (高清版)民用建筑修缮工程施工标准JGJ_T 112-2019
- 工程测量报价单
评论
0/150
提交评论