公司动态
当前位置:首页 > 公司动态 > 单片机实例分享,如何设计八路抢答器

单片机作为一种可编程设备,简化了电路设计,方便了逻辑设计。从那时起,它不再需要使用大量的电路作为硬件逻辑。打开任何功能稍微复杂的电子产品,你都可以看到单片机。学习单片机也有利于找工作,待遇也很好。今天,我将从实例共享的角度与您分享一个案例,并使用单片机实现一个回答器。

在电视节目中,经常看到知识竞赛、答案竞赛节目,如江苏电视台一站,答案可以准确、公平、直观、公平地显示答案号码,可以更好地促进玩家之间的竞争意识,营造紧张的答案氛围,增加节目的兴趣和装饰。

抢答器的设计框图

应答器应实现以下功能:应答功能、显示功能、倒计时功能和自锁功能。节目背景需要控制场地,并拥有应答器的绝对控制。功能要求如下:

开始和结束功能:只有按下开始按钮,现场玩家才能开始回答,否则回答事件不被视为无效;自锁和互锁功能:为保证回答的公平性,开始回答后,第一个回答视为有效回答,有效回答后其他回答视为无效;计时和设置功能:后台/主持人可以设置回答时间长短,以倒数秒显示,增强紧张气氛;显示和声音功能:用数字管显示倒计时秒,成功回答后显示回答者编号和剩余时间;

在设计中,按钮采用机械四腿按钮,按钮数量为10个;显示采用三位数字管实现,两位显示时间,一位显示玩家编号;蜂鸣器实现声音提示。核心设备采用51台单片机实现。其功能框图如下图所示。



1-抢答器功能框图

按键输入电路设计

该抢答器设计中共有10个按钮,其中8个用于用户抢答,代表1号-8.另外两个按钮是由主持人或后台控制的开始键和结束键。由于8路输入答案按钮具有互锁功能,只要有有效输入,其他答案就无效,该功能可以在程序中实现。为了方便程序设计,8输入和非门在这里实现,使用的型号为74LS30.非门有8个输入,1个输出,功能框图如下。



2-74LS30与非门框图

8个按键作为74LS30的输入,输出通过NPN三极管连接到51台单片机的外部中断0接口,以中断的方式检测关键功能。单片机的中断资源低电平有效。为了提高电路稳定性,在三极管的集电极上增加上拉电阻,以防止误操作。



3-按键输入电路设计

开始和结束两个按钮采用独立按钮设计,占用了两个单片机IO在程序中使用轮询程序。

数字管显示电路设计

显示部分采用数字管实现。根据设计要求,两个用于显示倒计时间,最大可显示99个;一个用于显示玩家编号,因此需要三个数字管。在设计中,采用共阳数字管实现。所谓共阳数字管,是指公共端连接高电平,段选管脚连接低电平后,相应的字段将被点亮。相反,公共端连接低电平,段选管脚连接高电平后,相应的字段将被点亮。数字管的实物图如下。



4-数字管实物图

数了8段选管脚外,还有公共端/位选引脚。如果使用三个独立的数字管,可能需要更多的单片机引脚资源。为了解决这个问题,本例设计采用74HC595作为数码管驱动。HC595是串入并出的移位寄存器,只需三个引脚就可以控制8个引脚的输出,也可以实现级联。所以74HC595通常用于数字管驱动和点阵屏幕。

三个数字管分为时间显示和编号显示两组,三个74HC595,两个级联用于控制时间显示的数字管,共6个单片机IO如下图所示,图所示。



5-数字管驱动电路

蜂鸣器发声电路设计

需求中提到了声音设计。当有效的关键事件发生时,蜂鸣器的声音作为提示。当倒计时进入5秒内没有按钮回答时,蜂鸣器每1秒发出一次声音,营造现场紧张的氛围,提高节目的观赏性和娱乐性,提高节目效果。本例选用蜂鸣器,如下图所示。



6-蜂鸣器驱动电路

因为单片机IO由于口驱动能力有限,采用三极管驱动,在此选择PNP三极管。当三极管驱动蜂鸣器时,它处于饱和状态。为了使三极管完全饱和,蜂鸣器连接到三极管的集电极上,初学者在设计电路时应注意。图中是单片机IO蜂鸣器通常在口输出低电时工作。

抢答器程序设计

该设计使用keil5作为编程环境,编程涉及数字管显示、按键检测/互锁、蜂鸣器声音、定时器等相关功能模块。程序设计的流程图如下。



7-程序设计流程图

程序的功能逻辑介绍如下。上电后显示数字管FFF字样,首先检查开始按钮是否按下。如果不按开始按钮,说明答案没有开始。如果按下开始按钮,答案启动,秒显示开始倒计时。当有人按下答案按钮时,蜂鸣器会发出声音,停止倒计时,并显示答案编号。整个答案事件结束,直到主持人/后台按下结束按钮,然后显示FFF。如果倒计时进入5秒,没有人回答,蜂鸣器每秒响一次,直到结束。

以上是程序逻辑设计和程序流程图解释,以下是各功能模块的程序设计。

首先介绍数字管的编程,然后编写程序,将提前定义数字管的字段表。根据共阳数字管和共阴数字管的不同,字段表也不同,但两者相辅相成。数字管可显示的字段表如下图所示。



8-数字管字段表

程序代码如下:

/*共阳数码管0-9数字字码表*/

uchar code seg_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x8e,0xff};

二是按键部分,中断实现抢答按钮,轮询实现开始/结束按钮,定义代码如下。

//定义应答按钮

** it KEY_1=P0^0; //1

** it KEY_2=P0^1; //2

** it KEY_3=P0^2; //3

** it KEY_4=P0^3; //4

** it KEY_5=P0^4; //5

** it KEY_6=P0^5; //6

** it KEY_7=P0^6; //6

** it KEY_8=P0^7; //6

//定义开始/结束按键

** it START = P2^4;

** it STOP = P2^5;

广告爱上单片机(第3版)DVD作者:杜阳京东

模拟电路的设计和验证

做板前先用Proteus仿真软件做了仿真。Proteus模拟支持51单片机,并且可以实现操作程序的功能编写程序并加载到Proteus可实现程序调试,Proteus还可以与Keil软件实现联调功能。模拟电路的设计如下图所示。



9-仿真电路-初始显示FFF字样

上电初期显示FFF前两个数字管代表倒计时,后一个数字管代表回答者的编号。按下开始按钮后,回答器开始工作,如下图所示。



10-抢答成功界面

上图显示,倒计时还有7秒,5号选手完成了有效的答案,直到主持人/后台按下并显示FFF,否则,界面将一直显示。

焊接调试抢答器

本设计采用万用板手工焊接,实现功能验证。最终实物图如下:



11-最后,实物图的正面

电源供电为DC5V,您可以使用电池盒或5V输出的手机充电器供电,导线走在了电路板正面,虽然丑了点,但是方便一点。电路板的反面如下图所示。



12-最后实物图背面

反面是通过焊锡连接实现的。由于功能不是很复杂,在程序完成后,功能在调试后几次完成,上述功能已经实现。还实现了按钮互锁的功能。下图为通电操作界面,表示5号回答者在倒计时28秒时成功回答,其他回答者的按钮无效。只有在按钮开始或结束时。



13-回答成功界面

虽然回答器的设计是一个非常简单的实践项目,但它涉及到单片机中最常用的外部电路,可以帮助初学者熟悉数字管、按钮和蜂鸣器的使用和控制方法。初学者可以熟悉单片机开发过程中使用的各种软件和产品开发过程。

这个电路PCB Layout,设计一个外壳已经成为一个很好的产品。还可以添加蓝牙模块或WiFi模块,实现电子屏的控制和显示,再把功能完善一下,就可以用在舞台上了。

基于STM32-WiFi智能汽车机器人开发实战_嵌入式-创客学院



m.gzhanyu014.b2b168.com