《基于STM32的多路抢答器设计与制作_罗兆丰.docx》由会员分享,可在线阅读,更多相关《基于STM32的多路抢答器设计与制作_罗兆丰.docx(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要抢答不仅仅需要参与者,还需要裁判,而裁判的作用是整个过程中是最终要的,他是影响结果的一个很重要因素,在古代,裁判只能通过肉眼去判断谁先抢答,但是人的肉眼的能力是有限的,很难精准的得出正确的选择,如果出现相差不大的情况,裁判很容易就会错判,导致结果的错误而改变。而随着时代的不断变化,人们也想到很多去增加判断的精确度的方法,如敲锣,打鼓等都被应用到抢答中,这时候裁判的判断点又多了一个,但是这还不够精确,错判的几率相对来说还是有些大,而随着时代的变更发展,敲锣打鼓和肉眼已经不能够满足人们对于抢答精准的需求,随着发展,以按键配合二极管为主的抢答器就出现了,它从一开始的单路按键功能简单到多路按键功能
2、复杂,然后慢慢出现以单片机为核心的多路抢答器,再蜕变成从有线连接到无线连接的多路抢答器,从结构复杂功能简单到结构简单功能繁多,它一直在随着时代的发展而在不断改进中,人们对于抢答器的功能的要求增长越来越高,抢答器的更新换代也越来越快,它的功能和精准度也就变得越来越多。本文是基于STM32的多路抢答器的设计与制作,它支持多线路抢答,可以精确判断哪一路先完成抢答,人可以通过1602LCD液晶显示,LED灯,数码管看到哪一个是第一抢答者,抢答者面前的灯会亮起,LED显示屏会显示抢答者的信息,数码管会显示可回到倒计时,在裁判进行复位前全部抢答者不能进行操作; 当回答时间快要结束时,蜂鸣器会发出警告和LE
3、D灯的闪烁来提醒参赛者和裁判时间快结束了,当时间到达后,抢答者面前的灯将会熄灭,这时候裁判可通过按下复位键,让抢答者们可以重新操作,进行下一轮抢答。关键词:多路抢答器、STM32、1602液晶显示、LED灯、按键Abstract Responding not only requires participants, but also the referee, and the role of the referee is the final one in the whole process. He is a very important factor affecting the result. I
4、n ancient times, the referee can only judge who responded first by the naked eye, but the person The ability of the naked eye is limited, it is difficult to accurately draw the correct choice, if there is not much difference, the referee will easily misjudge, leading to wrong results and change. Wit
5、h the continuous changes of the times, people also think of many ways to increase the accuracy of judgments, such as knocking gongs, playing drums, etc., are applied to the answer. At this time, the referee has one more judgment point, but this is not accurate enough. The probability of misjudgment
6、is still relatively large, and with the development of the times, drumming and drumming and the naked eye have been unable to meet peoples demand for accurate answering. With the development, answering devices based on buttons and diodes are mainly used. Appeared, it was from the beginning of the si
7、ngle-channel key function is simple to multi-channel key function is complex, and then slowly appeared multi-channel answering device with the single-chip as the core, and then transformed into a multi-channel answering device from wired connection to wireless connection, from The structure is compl
8、icated and the function is simple to the structure is simple and has many functions. It has been constantly improving with the development of the times. The requirements for the function of the answering device are growing higher and higher, and the updating and updating of the answering device are
9、getting faster and faster. The functions and precision of the UPS become more and more.This article is based on the design and production of STM32 multi-channel answering device, it supports multi-line answering, you can accurately determine which way to complete the answering first, people can see
10、which one is the first responder through 1602LED LCD display, LED lights, digital , The light in front of the responder will light up, the LED display will show the information of the responder, the digital tube will show that it can return to the countdown, and all the responders cannot operate bef
11、ore the referee resets; A warning and a flashing LED light will be issued to remind the contestants and the referee that the time is almost over. When the time is up, the light in front of the responder will go out. At this time, the referee can press the reset button to allow the responders to re-o
12、perate For the next round of rush answers.Key words: Multi-channel answering device, STM32, 1602 LCD display, LED lights , buttons 目录1.绪论11.1多路抢答器的应用11.2多路抢答器的发展前景11.3多路抢答器的选题目的和意义21.4多路抢答器存在的问题22.总体设计方案32.1多路抢答器的基本系统设计32.2多路抢答器的主要功能32.3多路抢答器优点42.4多路抢答器的架构程序框图43.元器件选型和原理图设计53.1 元器件的选型53.2多路抢答器的原理图设计
13、54.系统焊接和调试154.1多路抢答器系统的焊接154.2多路抢答器系统的焊接调试155.软件165.1软件介绍165.2代码思路架构165.3代码编程175.4代码调试196.多路抢答器的调试206.1单路调试206.2多路调试206.3系统是否可以进行锁定和倒计时报警206.4系统是否可以通过按钮复原216.5系统的错误与解决方法217.项目总结22致谢2325广东东软学院本科毕业设计(论文)1. 绪论1.1多路抢答器的应用抢答的模式其实在古时候就已经出现,古人会通过抢答来作为竞赛,考试,决策,争夺等事情得到结果的一种重要方式,这个方式的实现就需要作为评判标准的一种工具,那就是抢答器。它
14、可以是会发出响声的物体,发出亮光的事物。因为竞赛,考试,决策,争夺等事情在整个历史中是无处不在的,所以抢答器就一直被使用着,它的形式也会跟着不断改变,直到现在,很多竞赛和娱乐活动都需要用到抢答器,小学,初中,高中,大学等校园抢答竞赛,电视上的综艺节目,知识普及节目等也会使用到抢答器,无论在生活,工作,我们都可以看到抢答器的身影,在问答类型的竞赛中,它可以让参赛者通过按下抢答器的按钮来抢夺优先回答权,并且让裁判或者主持人可以精确看到结果,在综艺中,很多电视节目也会安排抢答环节,通过抢答器进行抢答,抢人等给节目增加可观看度,它的使用方式可能比较单一,但是它涉及到的领域测非常的广阔。1.2多路抢答器
15、的发展前景随着时代的发展,人们对抢答器的需要越来越高,现代抢答器从只有几个按键,二极管等发展到现在的多路,以单片机为核心,拥有按键,二极管,数码管,显示器,计时器等功能,从有线抢答器到无线抢答器,功能在不断创新而它的质量也在不断创新。在这个数码飞速发展的时代,数码产品的更新换代会越来越快,多路抢答器也不例外,在这个飞速发展的洪流中,它会变得越来越精准,会变得越来越完善,使用寿命会越来越长,但是这不会影响它的需求和不断的突破,现在每一个竞拍和娱乐都离不开抢答器,有时候只是表现形式的不同,在往后,抢答器的需求不会减少,只会变得越来越多,因为人们对于工具的要求会越来越多,从而增长它的突破,它的成本会
16、变得越来越低,性价比会越来越强,它的需求覆盖全球,造价不高,无论是发达国家,发展中国家,贫困国家,都可以用得上,它还有很大的潜力值得我们去开发,只要这个社会上还会有需求,它就会存在。1.3多路抢答器的选题目的和意义通过这次设计增加自我对STM32单片机的了解和应用知识经验,在制作多路抢答器的过程中不断锻炼自己的设计思路和想法,让自我形成一个良好的设计习惯,增强自我学习能力,动手能力,思维习惯。巩固和复习大学4年所学到的知识,打好基础,利用自我基础去努力发展延伸。本章小结:本章主要讲述了多路抢答器的前身和诞生,它的身影已经融入了人们生活的社会中,密不可分,它在社会中的需求不断增长,更新换代一直在
17、持续,拥有良好的发展空间和稳定性,是一个稳定被需求,不被淘汰的发展方向;还有这个设计对自我的帮助。1.4多路抢答器存在的问题随着我国的改革开放越来越进步,发展越来越迅速,人们学习科学、技术、知识的手段也变得多样性,选择在不断增加,人们可以在众多选择中找到自己合适的方法,抢答器作为一种工具,已在各种智力和知识竞赛,甚至娱乐节目中都有它的身影,特别是竞技形式的比赛,缺少不了抢答器的使用,但抢答器的使用频率比较低,且有很多的抢答器制作比较复杂复杂,可靠性低,这些问题都会导致人们对抢答器失去兴趣。如果一个公司想要购买一台抢答器在经济实力上是可以承受,但是使用的次数很有限,一般抢答器都会因为长期存放或者
18、存放不当造成损坏,而再发现需要使用时就要再购置,这是时间,物品,金钱上的浪费,在现在的快速高效的社会中是不能够生存下去的。现在多数的抢答器都有几个缺点:第一是现场线路连接比较复杂,每个参赛者都很有可能在比赛现场的不同位置,这就需要把线布到不同的位置上,这时候线路就会变得很长,影响信号传输,如果参赛者变得更多,10个,20个,100个等,那么这个现在需要连接线就越多、越乱,而且很有可能会因为线长浪费掉大量的空间,而且在这个不美观的同时,抢答器的功能可能会因为线的长和乱收到影响造成无法正常工作的情况,显示和识别功能,如选手号码的识别、译码、计分显示等仍只能通过数字集成电路完成。运用单片机扫描技术识
19、别选手抢按号码时,电路的延迟时间会随着线的长度而变化,如果线越长,延迟就越长。第三,选手抢按成功,但出现没有抢答被记录的问题,因为线长的不同的差异,我们很有可能会因为延迟的问题造成先按的比后按的显示还要得慢,这就会失去了抢答器的价值,会降低人们对抢答器的需求。本章小结:讲述了多路抢答器的发展,应用和优缺点。2. 总体设计方案2.1多路抢答器的基本系统设计多路抢答器是基于STM32进行开发,其中分为几个模块:STM32F103C8T6最小系统模块,LED等模块,1602液晶显示器模块,数码管模块,按键模块。STM32F103C8T6最小系统模块是整个多路抢答器中最重要的,它负责给整个系统供电,运
20、算,信号的输出和输入;LED模块,数码管模块,1602液晶屏显示器模块的作用是让使用者可以更加直观的看到抢答的结果,按键模块是负责给抢答者和裁判对多路抢答器进行操作使用。2.2多路抢答器的主要功能多路抢答器的功能是为参赛者,裁判,观众提供更加精准,显而易见,公平的结果,多路抢答器一共由6个部组成,核心为STM32F103C8T6最小系统板,是整个系统的大脑,负责数据输出输入,计算等工作,LED模块分为两种LED等,绿色LED和红色LED,绿色LED一共有4个,分别代表四个参赛者,哪一个参赛者回答,代表他的灯就会亮起,4个灯不会同时亮起,因为抢答者是唯一的,红色的LED灯功能是为了提醒参赛者,裁
21、判,观众,回答时间已经结束。1602模块的功能是为了增加观赏性,当抢答者出现后,1602会显示抢答者的信息,当抢答者回答后裁判可通过按键让1602显示正确或者错误,数码管的功能是显示回到时间,进行倒计时,当时间结束后红色LED灯会启动,增加的关注性和乐趣。按键的功能是给参赛者用手操作按下按键进行抢答,裁判也可以通过按键操作1602和对抢答器进行复位。2.3多路抢答器优点多路抢答器可同时支持四个参赛者使用,裁判可以对抢答器进行操作,抢答显示效果明显,观众,参赛者和裁判很容易就可以分辨出哪一个是抢答者,并且具有一定的观赏性,本多路抢答器成本不高,但是功能比较完善,性价比良好,无论是比赛还是自我娱乐
22、,都是一个不错的选择。2.4多路抢答器的架构程序框图图2.4本章小结:本章主要讲述了多路抢答器的系统设计所用到的模块和概念,多路抢答器的每个模块发挥的作用,多路抢答器的优点,通过程序框图表现多路抢答器的系统架构。3. 元器件选型和原理图设计3.1 元器件的选型整个多路抢答器由STM32F103C8T6最小系统板,3.3V1602液晶显示,LED灯,按键组成。STM32F103C8T6最小系统板拥有变压模块,SWD调试编程接口,双排针,USB接口,USB转串口TTL,E2数据存储,OLED/TFT液晶接口。它可以满足整个多路抢答器的需求,是整个多路抢答器的核心模块。STM32F103C8T6拥有
23、3个USART口,两个SPI口,1个USBDevice口,13PWM口,2个I2C/SMBUS口,工作电压为2V3.6V,1个CAN接口,10X12bit的A/D口,CPU位数为32-Bit,CPU内核为ARM Cortex-M3,ROM尺寸为64KB,RAN大小为20KB,主频(MAX)为72MHz,ROM类型为FLASH,I/O口37口。STM32F103C8T6最小系统板可通过双排针连接其他元器件,连接比较方便,有利于布线美观,自带变压模块可以将5V转3.3V,直接通过连接电脑接口供电,SWD调试编程接口可通过电脑下载代码到MCU。1602液晶显示是一种工业字符型液晶,能够同时显示16x
24、02即32个字符,尺寸为80mmX36mm,内部有11条控制指令,可通过控制指令去调整1602的状态,而且小巧方便,价格便宜性价比比较高,液晶屏对比度可通过电位计进行调整。LED灯(绿色),价格便宜小巧,性价比高,灯光柔和,适合用于提示。LED灯(红色),价格便宜小巧,性价比高,灯光柔和,适合用于警告。按键使用了6x6x6的按键,用于参与者操作。3.2多路抢答器的原理图设计原理图设计软件:cadence16.6cadence16.6为一款多功能的软件,集原理图设计,焊盘设计,封装设计,PCB设计,修复软件于一身,设计可通过这个软件从开始到结束,不需要更换其他软件就可以完成设计,这个软件自由度比
25、较高,原理图器件,焊盘,封装全部都可以自己设计,不需要到网上需要别的库,软件比较注重细节,在设计的时候还可以从它的规则里面学到一些设计的知识,操作相对于其他软件来说会比较复杂,但是却有一种别样的方便。MCU STM32F103C8T6:图3.1图3.2PA13使用了SWDIO功能连接到SWD调试接口,用于连接仿真器进行调试或下载,是数据线。PA14使用了SWCLK功能连接到SWD调试接口,用于连接仿真器进行调试或下载,是时钟线。图3.3一般BOOT0和BOOT1跳线都跳到0。只是在下载的情况下:BOOT0=1,BOOT1=0,下载完成后,把BOOT0的跳线接回。图3.4VBAT,VDDA,VD
26、DA_1,VDD_2,VDD_3都为供电输入口,电压都为3.3V,都需要连接滤波电容进行滤波保护。VSSA,VSSA_1,VSSA_2,VSSA_3都是接地。1. VDD=2.0至3.6V:I/O和内部调节器的外部电源。 外部通过VDD引脚提供。2. VSSA,VDDA=2.0至3.6V:ADC、复位块、RC的外部模拟电源 而PLL(当使用ADC时,要施加到VDDA的最小电压为2.4V)。3. 必须分别将VDD和VSSA连接到VDD和VSS。4. 当VDD不存在时,VBAT=1.8至3.6V:用于RTC、外部时钟32k Hz振荡器和备份寄存器(通过电源开关)。5. 每个GPIO引脚都可以由软件
27、配置为输出(推挽或开漏)、输入(有或没有拉起或拉下)或外围备用功能。大多数GPIO引脚与数字或模拟替代功能共享。所有GPIO都是高电流的。 如果需要,可以按照特定的顺序锁定I/O的替代功能配置,以避免对I/O寄存器的虚假写入。 在APB2上的I/O,最高可达18MHz的切换速度。输入浮空:浮空就是逻辑器件与引脚即不接高电平,也不接低电平。上拉模式:把点位拉高,不确定的信号通过一个电阻嵌位在高电平。电阻同时起到限流的作用。下拉模式:把点位拉低,不确定的信号通过一个电阻嵌位在低电平。电阻同时起到限流的作用。模拟输入:数字输入是输入PCM数字信号,即0,1的二进制数字信号,通过数模转换,转换成模拟信
28、号。开漏输出:输出端相当于三极管的集电极,高电平状态需要上拉电阻,适合于做电流型的驱动,吸收电流的能力一般在20mA以内。开漏复用功能:第二功能时的配置,配置必须是复用功能输出模式,即推挽或开漏。推挽式输出:可以输出高,低电平,连接数字器件;推挽结构一般是指两个三级管分别受到互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由IC的电源决定。对于CL1和CL2,建议在5pF中使用高质量的陶瓷电容器。 选择15pF范围以满足晶体或共振器的要求。CL1和CL2,是通常是相同的尺寸。晶体制造商通常指定负载电容, 是CL1和CL2的串联组合。 负载电容CL有以下公式:CL=CL1CL2/(
29、CL1+CL2) 密码子是引脚电容和电路板或跟踪PCB相关的电容.一般来说, 在2PF和7PF之间。为了避免超过CL1和CL2的最大值(15pF),强烈建议 使用具有负载电容CL7PF的共振器。千万不要用带负载的共振器电容为12.5PF。 例如:如果你选择一个负载电容为CL=6PF的谐振器,而Cstray=2PF, 那么CL1=CL2=8PF。设计保护注意事项:1. 由设计保证,不能在生产中测试。2. 拉出是设计一个真正的电阻和可切换的PMOS串联,这个PMOS的贡献串联电阻必须最小(10%阶)。3. 复位网络保护设备免受寄生复位。4. 用户必须确保NRST引脚上的电平可以低于表38,否则设备
30、将不考虑重置。推荐NRST引脚保护在整个电路中设置了复位电路,复位电路的作用是用于把整个电路恢复到起始状态,放置CPU发生错误和意外情况,导致整个系统无法正常运行,它是每个电路中都必须存在的,而且它的组成非常简单,只需要电阻,电容和按键就可以完成,连接至MCU的NRST口即可。图3.51602液晶显示:图3.61到16脚分别连接GND,VCC3V3,接一个10K的电位计连VCC3V3,PB9,PB8,PB7,PB6,PB5,PB4,PB3,PA15,PA12,PA11,PA10,VCC3V3,GND。1602液晶显示一共16个引脚:第一脚我VSS脚,需要接电源地;第二脚为VDD脚,需要接3.3
31、V电源;第三脚为VL脚,它为液晶显示对比度的调整端口,接电源时对比度最弱,接地时对比度最高,通过连接一个10K的电位器进行调节,防止鬼影的产生。第四脚为RS脚,它是寄存器的选择脚,高电平时选择数据寄存器,低电平时选择指令寄存器。第五脚为R/W脚,它是可以进行读写信号线的操作,当高电平时会进行读的操作,低电平时会进行写的操作,如果RS和R/W都是低电平,那么写入指令和显示地址,如果RS为低电平,R/W为高电平时可以读信号,如果RS为高电平时而R/W为低电平,则会进行写入数据操作。第6脚为E端脚,它是使能端,当它从高电平跳到低电平时,液晶模块将执行命令。第7带14脚为数据脚,它们是为8位的双向数据
32、线。第15脚为被背光源的正极。第16脚为被光源的负极。1602拥有指令表:当D0为1时,RS,R/W,D7,D6,D5,D4,D3,D2,D1为0时,1602液晶显示将执行清显示操作。当D1为1,D0为*时,RS,R/W,D7,D6,D5,D4,D3,D2为0时,1602液晶显示将执行光标返回操作。当D2为1,D1为I/D,D0为S时,RS,R/W,D7,D6,D5,D4,D3为0时,1602液晶显示将执行置输入模式操作。当D3为1,D2为D,D1为C,D0为B时,RS,R/W,D7,D6,D5,D4,为0时,1602液晶显示将执行显示开或光控制操作。当D4为1,D3为S/C,D2为R/L,D
33、1为*,D0为*时,RS,R/W,D7,D6,D5为0时,1602液晶显示将执行光标或者字符移位操作。当D5为1,D4为DL,D3为N,D2为F,D1和D0为*时,RS,R/W,D7,D6为0时,1602液晶显示将执行置功能操作。当D6为1时,RS,R/W,D7为0,其他为字符发生存储器地址,1602液晶显示将执行置字符发生存储器地址操作。当D7为1时,RS,R/W为0,其他为显示数据存储器地址时,1602液晶显示将执行置数据存储器地址操作。当R/W为1,D7为BF,其他为计算器地址时,1602液晶显示将执行读忙标志或地址操作。当RS为1, R/W为0,其他为要写的数据内容时,1602液晶显示
34、将执行写数到CGRAM或DDRAM操作。当RS和R/W为1时,其他为读出数据内容时,1602液晶显示将执行从CGRAM或DDRAM读数操作。一共有七个LED灯,它们分别是电源指示灯,最小系统测试灯,代表选手1到选手4的显示灯,还有警报灯。图3.7一共有5个按键,分别是每个选手的抢答按键和裁判的复位按键,它们跟别连接MCU的PA0,PA1,PA2,PA3,PA4。图七本电路中还具有5V转3.3V芯片,在芯片的VIN端连接5V电源,通过两个104的陶瓷电容滤波,进入芯片,VOUT连接一个105,一个104的陶瓷电容进行滤波,给整个系统进行供电,NC脚连接一个223的陶瓷电容接地。VSS则直接接地,
35、CE脚在不使用功能时连接VIN。图3.8整个系统还具有两个20P的排针,用于连接MCU跟其他元件,还有BOOT0和BOOT1的选择双向排针,可以手动选择下载模式,USB口为下载口和供电口,用于代码下载和电源供电,连接电脑和5V转3.3V芯片。还有4脚的调试接口。分别连接SWO,SWCLK,VCC3V3,GND其中VCC3V3需要连接一个104的陶瓷电容进行滤波。图3.9本章小结:本章主要描述多路抢答器的元件选型的选择方向和每个部件或者模块在原理图中的功能描述,还有原理图连接理由。4. 系统焊接和调试4.1多路抢答器系统的焊接STM32F103C8T6最小系统板需要焊接两个20P的排针,用于连接
36、其他模块,1602液晶显示需要跟16脚排针焊接,并且和排针插座相连接,通过焊接固定在万用板上,按键,LED灯跟STM32最小系统板和1602液晶显示一样都通过焊接固定在万用板上,通过杜邦线连接整个电路,整个设计都集中在同一块万用板中。4.2多路抢答器系统的焊接调试焊接电路后测试是否可以正常烧录代码进去MCU,检测是否有短路,虚焊,确保每一个功能元件都可以正常使用, 并且通过简单的例程进行检测,一步一步进行排查。结果:出现虚焊和多焊。解决方法:拆件重新焊接。本章小结:本章主要讲述了整个多路抢答器的硬件焊接和测试。5. 软件5.1软件介绍多路抢答器设计软件:Window10,Keil uVisio
37、n5,STM32 ST-LINK Utility,STM32CubeIDE 1.2.0,Source Insight 4.0Window10是我的电脑的操作系统,优化很好,方面多界面切换操作,稳定。Keil uVision5是优化比较好的一款常用编程软件,这个软件在选定相应的芯片后会生成相应的库文件,可供使用者查看并帮助使用者编写代码,我通过这个软件进行代码修改。STM32 ST-LINK Utility为STM32芯片的下载软件,我们可以通过它把我们编辑好的代码下载到MCU里面。STM32CubeIDE 1.2.0为ST公司最新开发的一款开元软件,里面有所有ST公司产品的资料和代码库,这个软
38、件使用起来非常的方便,当我们选定产品后,相关的datasheet可以从软件中直接找到并下载,软件会自动生成HAL库、芯片引脚图、时钟图,使用者可以通过调整芯片引脚图和时钟图去改变引脚和时钟的定义和使用,如开漏输出,上拉,下拉等,当设置好后可以自动生成定义代码,使用者可以直接调用,不用重新定义,这个软件同时可以对芯片进行编程和下载,不需要再通过STM32 ST-LINK Utility去给单片机下载代码,可直接操作。Source Insight 4.0是一款很方便的代码编写软件,它可以跟STM32CubeIDE 1.2.0同步打开代码进行互通的修改,当使用者要寻找相关代码的位置时,Source
39、Insight 4.0可直接通过小窗口显示,不需要做任何的跳转。寻找库函数和对代码的修改会更加的迅速方便。5.2代码思路架构代码主要分为按键操作,LED灯的点亮和闪烁,1602液晶显示和进行倒计时的部分,在开始我们需要对按键,LED等,1602进行初始化,配置它们在硬件中所对应的管脚,通过循环,IF ELSE,SWITCH等将它们串联起来构成一个完整的功能设计代码,通过不断烧录检测调整代码的错误和偏差,一步一步实现设计的内容。5.3代码编程1602液晶显示:负责选手和比赛情况显示1602液晶显示一共有16字加2行,第一行的位置分别为00,01,02,03,04,05,06,07,08,09,0
40、A,0B,0C,0D,0E,0F,第二行为40,41,42,43,44,45,46,47,48,49,4A,4B,4C,4E,4F。如果我们想要使用,如第二行第一个字,并不是直接写入40H,而是写入01000000B+10000000B=11000000B在初始化中,我们也需要先设置1602液晶显示的显示模式,1602液晶显示字符是从左到右,自动往右移动,在我们每一次输入命令时都需要对它进行判定是否处于繁忙的状态。通过调节代码可以调整1602液晶显示的内容,再把代码加入到循环里面进行操作。while(1) LCD_Write_Com(0x80); delay(10); for(i=0;i12;
41、i+) LCD_Write_Data(tablei); delay(10); LCD_Write_Com(0xc0); delay(10); for(i=0;i13;i+) LCD_Write_Data(table1i); delay(10); 按键:MCU通过按键接收信号判断哪一个选手按下当检测到按键按下时,会循环里面的内容,如1602的显示变化,锁定功能,倒计时功能和警报功能。GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;/PA0GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /上拉输入GPIO_Init(GP
42、IOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;/PA1GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /上拉输入GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;/PA2GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /上拉输入GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_I
43、nitStructure.GPIO_Pin = GPIO_Pin_3;/PA3GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /上拉输入GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;/PA4GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; /上拉输入GPIO_Init(GPIOA, &GPIO_InitStructure);LED:用于增强显示效果在检测到按键按下后,每个选手所代表的灯将会亮起,当倒
44、计时快要结束后,警报灯将会进行闪烁报警。GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOC, &GPIO_InitStructure);5.4代码调试在确保硬件没有问题后,首先通过代码单独测试每一个模块的功能代码,观察设计功能是否跟预期一样,如果发现问题马上需要记录并且进行修改,再重新全部单独检测。第二是使用组合功能测试,烧录各种组合
45、的代码进行测试,每一种组合的功能运行是否达到预期效果,找出缺点进行修改。第三,测试整个设计的功能,在代码的帮助下是否正常运行,出现故障后需要寻找原因别切更改相关代码,知道测试没有任何问题。本章小结:本章主要讲述多路抢答器软件的主要代码功能是怎么实现的,还有代码的调试与思路架构的样子。6. 多路抢答器的调试6.1单路调试通过软件烧写结合硬件测试每一路的功能是否可以正常运行,每一路按下按键后,相对应的LED灯是否会亮起,1602是否可以显示相应的信息,在倒计时下,警报灯是否可以正常运行,通过观察和操作检测代码和硬件是否出现问题。检查发现部分线路出现无法响应,通过重新焊接调试解决。6.2多路调试通过
46、软件烧写结合硬件测试多路进行,检测按键是否发生冲突,无效反应等意外情况,按下按键后,不同的按键所相对应的LED灯是否会亮起,1602是否可以显示相应的信息,在倒计时下,警报灯是否可以正常运行,通过观察和操作检测代码和硬件是否出现问题。如果发现马上进行修改。检查发现出现冲突和多按键操作,通过修改按键部分代码修复。6.3系统是否可以进行锁定和倒计时报警设计理念是在抢答者出现后,除裁判外,其他抢答者不可以进行操作,多次操作按下不同的按键,在出现第一个抢答者后,其他按键按下是否会产生影响,其他功能是否正常实现,尽量多测试几个组合,确保漏检,通过观察和操作,软件和硬件结合检测锁定功能和倒计时报警功能是否
47、可以正常操作运行,得到真实的反馈。检查发现在第一个抢答者出现后无法进行锁定,通过检查代码并更改锁定标志修复。6.4系统是否可以通过按钮复原裁判拥有复位权,通过按钮裁判把整个作品重置,参赛者可以重新操作。从单路测试到多路测试,这个功能按键都需要正常工作,因为这是最高控制权,在功能里面有着相当重要的作用,通过操作和观察,软件和硬件结合检测该功能是否实现。检查发现无任何异常。6.5系统的错误与解决方法错误:多线程功能发生冲突。 解决方法:检查代码,对代码进行修改。错误:锁定功能失败。 解决方法:检查代码,对代码进行修改。错误:1602无法如期进行显示。 解决方法:检查代码,对1602部分代码进行修改。错误:按键无法进行操作。 解决方法:重新焊接。本章小结:本章主要讲述作品完成后对整个多路抢答器进行测试和演示成果,总结方案和经验,修改完善功能。7. 项目总结整个项目通过软件和硬件结果做出成品,硬件通过选型选择性价比合适的材料,本设计是利用STM32F103C8T6为核心进行设计,再通过按键,1602液晶显示,LED灯实现完善整个设计功能,把设计完善起来,在原理图设计中我采用了cadence这个软件,这是一款我在学校里面还
限制150内