我们做了一个七个人的四路抢答器课程设计 要求按下相应的按键 在串口上可以显示对应的数字选手编号 求大神指点

【Zigbee技术入门教程-号外】基于Z-Stack协议栈的抢答系统
广东职业技术学院 &欧浩源
一、引言& & 2017年全国职业院校技能大赛“物联网技术应用”赛项中任务三题2的“抢答器开发”是一个非常优秀的题目。本人对题目进行了适当的改造和完善,剔除了和技能大赛中特别设备高度相关的内容,使其成为一个通用的Zigbee无线组网技术应用入门学习的综合实训案例。不管是自我学习,还是专业教学,甚至是在技能大赛训练中,这个题目都适合使用。
二、硬件资源需求& & 要进行本“抢答系统”的实训案例,你需要5块具有无线数据通信能力的CC2530开发模块,其中一个板子有串口通信能力,另外的板子上至少有2个LED灯和1个按键,只要满足这些硬件资源即可开展该综合实训。
& & 本“抢答系统”实训案例中采用TI公司的2.5.1版Z-Stack协议栈,其在网络上随时随地都能下载到。在该版本Z-Stack协议栈的硬件驱动中支持了3个LED灯和1个按键,它们分别是:& & HAL_LED_1: & & &P1_0(即D3)& & HAL_LED_2: & & &P1_1(即D4)& & HAL_LED_3: & & &P1_3(即D6)& & HAL_KEY_SW_6: & P0_1(即SW2)& &&注:括号中为全国职业院校技能大赛中新大陆国赛设备对应的资源&& & 根据“抢答系统”案例的需求,对上面的指示灯和按键做了相应的定义:
& & HAL_LED_1: & & &数据接收灯& & HAL_LED_2: & & &抢答指示灯& & HAL_LED_3: & & &网络状态灯& & HAL_KEY_SW_6: & 操作键& & 在本“抢答系统”案例中只需要使用“数据接收灯”和“抢答指示灯”,“网络状态灯”被Z-Stack协议栈占用了,当无线组网成功后,该Zigbee开发板的这个灯会点亮,如果不亮,说明该Zigbee开发板组网失败。& & 在进行本实训案例开发的时候,您使用的CC2530开发模块上的端口定义最好和这个版本协议栈原有的一致,不然可要进行底层的移植工作了。
三、项目应用需求& & 在为“抢答系统”准备好的5块基于CC2530的Zigbee无线组网开发板中,根据功能需求,分为以下三类设备:& & 1块为显示节点,
& & 1块为主持人板,
& & 3块为抢答器板。& & 显示节点通过串口连接到电脑,在电脑端有一个“抢答器信息显示终端”的上位机软件。该上位机软件是一个接收并显示“抢答系统”运行状态和抢答结果信息的软件。实际上,你可以根据本实训案例的通信规约自行设计一个合适的上位机显示软件。在没有该上位机软件的情况下也是可以进行“抢答系统”实训案例的开发的,你可以打开“串口助手”这种能过接收串口数据的小软件,监测系统传送过来的原始数据,然后对照系统的通信规约,从而判断“抢答系统”的运行状态和抢答结果。“抢答器信息显示终端”的参考界面如下:
& & 在“抢答系统”的无线网络数据传输中,数据流以帧的形式进行交互,并遵循一个简单的通信规约。& & &1& 该数据帧有四个字节,其格式如下:& & 帧头&0xFA& & 命令域 & 参数域 & &帧尾&0xAF&& & &2& 主持人板复位指令:& & 帧头&0xFA& & 0xA0 & & &0x00 & & 帧尾&0xAF&& & &3& 抢搭器板抢答指令:& & 帧头&0xFA& & 0xB1 & 抢答板ID号 &帧尾&0xAF&& & &4& 主持人板确认指令:& & 帧头&0xFA& & 0xA1 & 抢答板ID号 &帧尾&0xAF&& & &5& 串口波特率为:9600& & &6& Zigbee的通道为:17& & &7& Zigbee的PAN ID为:0x2017& & &8& Zigbee通信方式:广播
& & 在协议栈“ZStack-CC.1a”中的适当的位置添加相应工程代码,实现抢答系统的如下功能:& &【步骤1】:所有的Zigbee开发板上电后,“抢答指示灯”闪烁3下,然后等待“网络状态灯”点亮,即全部Zigbee开发板组网成功,每个Zigbee开发版在成功接收到无数据帧的时候,“数据指示灯”快速闪烁2下。& &【步骤2】:单击主持人板的“操作键”时,主持人板及抢答器板的“抢答指示灯”均点亮,此时,显示节点的“抢答指示灯”熄灭,“抢答器信息显示终端”里显示“Ready!!!”,这时三个抢答器板可以开始抢答,在主持人板的“抢答指示灯”未亮之前,抢搭无效。
& &【步骤3】:当主持人板及抢答器板的“抢答指示灯”点亮后,单击抢答器板中的“操作键”可进行问题抢答。当有人抢答成功后,主持人板及所有的抢答器板的“抢答指示灯”熄灭,显示节点上的“抢答指示灯”点亮,“抢答器信息显示终端”里显示“X号抢答成功!”。此时,3块抢答器板再次抢答无效。
& &【步骤4】:重复步骤2、步骤3,完成下一题抢答。
四、项目设计概述& & 在我们下载的Z-Stack协议栈中有一个用户自定义任务SampleApp,本“抢答系统”案例将利用该协议栈的现有用户任务,将对其工程代码进行适当的添加和修改,以“抢答系统”的业务功能。& & 抢答系统中的5块Zigbee开发板分为三种设备类型:显示节点、主持人板和抢答器板。因此,需要设计三个不同的工程代码。实际上,这个三个不同工程中的代码,绝大部分是相同的。你可以用三个协议栈工程来实现,你也可以用一个协议栈工程,通过三个不同的任务代码文件来实现,你还可以用条件编译来对三个设备类型,编译三种不同的工程代码。对应入门的初学者来说,建议使用第一种办法。在本案例分析过程中,介绍的是第二种方法。& & 本抢答系统的设计关键在于,有一个系统的模型,有一个清晰的思路,有一个明确的方向,有一颗强大的内心。本项目案例的实现难点,不是设计程序,而是调试程序,而且还是多终端无线联调。& & 要完成实现“抢答系统”要求的功能,除了要求掌握CC2530底层硬件基础和Z-Stack协议栈基础操作之外,还需要你不但有程序设计的能力,还要有代码调试的经验,不但能把代码跑起来,还能有锁定BUG的办法
[注]:[题目详解及实现思路,可见!]
阅读(...) 评论()8路数字抢答器的VHDL程序
单片机&嵌入式
单片机应用
嵌入式操作系统
学习工具&教程
学习和开发单片机的必备工具
(有问必答)
(带你轻松入门)
电子元件&电路模块
当前位置: >>
>> 浏览文章
8路数字抢答器的VHDL程序
一、 设计任务与要求
1. 抢答器同时供8名选手或8个代表队比赛,分别用8个按钮S0 ~ S7表示。
2. 设置一个系统清除和抢答控制开关S,该开关由主持人控制。
3. 抢答器具有锁存与显示功能。即选手按动按钮,锁存相应的编号,并在LED数码管上显示,同时扬声器发出报警声响提示。选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。
4. 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。当主持人启动&开始&键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间0.5秒左右。
5. 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。
6. 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。
二、预习要求
1.复习编码器、十进制加/减计数器的工作原理。
2.设计可预置时间的定时电路。
3.分析与设计时序控制电路。
4. 画出定时抢答器的整机逻辑电路图
三、设计原理与参考电路
1.数字抢答器总体方框图
如图所示为总体方框图。其工作原理为:接通电源后,主持人将开关拨到&清除&状态,抢答器处于禁止状态,编号显示器灭灯,定时器显示设定时间;主持人将开关置?开始&状态,宣布&开始&抢答器工作。定时器倒计时,扬声器给出声响提示。选手在定时时间内抢答时,抢答器完成:优先判断、编号锁存、编号显示、扬声器提示。当一轮抢答之后,定时器停止、禁止二次抢答、定时器显示剩余时间。如果再次抢答必须由主持人再次操作&清除&和&开始&状态开关。
2.单元电路设计
(1) 抢答器电路
参考电路如图所示。该电路完成两个功能:一是分辨出选手按键的先后,并锁存优先抢答者的编号,同时译码显示电路显示编号;二是禁止其他选手按键操作无效。工作过程:开关S置于&清除&端时,RS触发器的 端均为0,4个触发器输出置0,使74LS148的 =0,使之处于工作状态。当开关S置于&开始&时,抢答器处于等待工作状态,当有选手将键按下时(如按下S5),74LS148的输出 经RS锁存后,1Q=1, =1,74LS48处于工作状态,4Q3Q2Q=101,经译码显示为&5&。此外,1Q=1,使74LS148 =1,处于禁止状态,封锁其他按键的输入。当按键松开即按下时,74LS148的 此时由于仍为1Q=1,使 =1,所以74LS148仍处于禁止状态,确保不会出二次按键时输入信号,保证了抢答者的优先性。如有再次抢答需由主持人将S开关重新置?清除&然后再进行下一轮抢答。74LS148为8线-3线优先编码器,表11、1为其功能表。
上面这个被多家网站和许多电子制作大赛组委会广泛使用的抢答器居然有严重的错误,就是没法锁存,或锁存后没法重启,造成这一错误的关键是主持人开关有个清零动作,这个清0动作要确保锁存器清0,而这个电路的缺陷是清零动作不能保证存储器一定清零,因为清零是利用基本RS触发器的置0功能,基本RS触发器的置 0功能要求R端一定为0,S端一定为1,这样才能确保清零,而上述电路主持人按下清0按钮后,不能确RS的状态一定为01,只能保证在主持人按下清零按键后R端为零,所以上述电路存在严重缺陷,以至于有些仿真软件不能仿真出正确的结果,改正的办法是将清零信号&非&以后,再和148的输出端&或&后接入基本RS触发器的S端。上述抢答器电路经修改后的VHDL程序如下:
74LS148的功能真值表:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY QDQ111 IS
&& PORT( START,D1,D2,D3,D4,D5,D6,D7,D8:IN STD_LOGIC;
&&&&&&& QO0,QO1,QO2,QO3,W1:OUT STD_LOGIC;
&&&&&&& XS:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END QDQ111;
ARCHITECTURE QDQ OF QDQ111& IS
& SIGNAL EI,EIO:STD_LOGIC;
& SIGNAL Q0,Q1,Y:STD_LOGIC_VECTOR(3 DOWNTO 0);
& SIGNAL QD3,QD2,QD1,QD0:STD_LOGIC;
& COMPONENT& RSd is
& port(Rd,Sd:in std_
&&&&&&&& Q:out std_logic);
& END COMPONENT;
&&&&& PROCESS(D1,D2,D3,D4,EI,START)&&&
&&&&&& BEGIN
&&&&&&&&&&& IF EI='0' then&&&&&&&&&&&&
&&&&&&&&&&&&&& IF D1='0' THEN Q0&= &1110&;EIO&='0';
&&&&&&&&&&&&&&&&&&& ELSIF D2='0' THEN Q0&=&1101&;EIO&='0';&&&&&&&&&&
&&&&&&&&&&&&&&&&&&& ELSIF D3='0' THEN Q0&=&1100&;EIO&='0';
&&&&&&&&&&&&&&&&&&& ELSIF D4='0' THEN Q0&=&1011&;EIO&='0';
&&&&&&&&&&&&&&&&&&& ELSIF D5='0' THEN Q0&=&1010&;EIO&='0';
&&&&&&&&&&&&&&&&&&& ELSIF D6='0' THEN Q0&=&1001&;EIO&='0';
&&&&&&&&&&&&&&&&&&& ELSIF D7='0' THEN Q0&=&1000&;EIO&='0';
&&&&&&&&&&&&&&&&&&& ELSIF D8='0' THEN Q0&=&0111&;EIO&='0';
&&&&&&&&&&&&&&&&&&& ELSE Q0&=&1111&;EIO&='1';
&&&&&&&&&&&&&& END IF;
&&&&&&&&&&& ELSE Q0&=&1111&;&&&&
&&&& END IF;&&&&&&&&&&&&&&&&
&&&&&& END PROCESS;
&&&&&&&&& U1:RSd PORT MAP(START,((NOT START)OR Q0(0)),QD0);
&&&&&&&&& U2:RSd PORT MAP(START,((NOT START)OR Q0(1)),QD1);
&&&&&&&&& U3:RSd PORT MAP(START,((NOT START)OR Q0(2)),QD2);
&&&&&&&&& U4:RSd PORT MAP(START,((NOT START)OR EIO),QD3);
&&&&&&&&& EI&=QD3;&&&&
&&&&& QO0&=QD0;QO1&=QD1;QO2&=QD2;QO3&=QD3;
&&&& --***********以上锁存,以下编码显示****************--
&&&& Y&=QD3&QD2&QD1&QD0;
&&&& PROCESS(Y)
&&&&&&&& BEGIN
&&&&&&&&&&& CASE Y IS
&&&&&&&&&&&&& WHEN &1111&=&XS&=&1001111&;
&&&&&&&&&&&&& WHEN &1110&=&XS&=&0010010&;
&&&&&&&&&&&&& WHEN &1101&=&XS&=&0000110&;
&&&&&&&&&&&&& WHEN &1100&=&XS&=&1001100&;
&&&&&&&&&&&&& WHEN &1011&=&XS&=&0100100&;
&&&&&&&&&&&&& WHEN &1010&=&XS&=&0100000&;
&&&&&&&&&&&&& WHEN &1001&=&XS&=&0001111&;
&&&&&&&&&&&&& WHEN &1000&=&XS&=&0000000&;
&&&&&&&&&&&&& WHEN OTHERS=&XS&=&0000001&;
&&&&&&&&&&& END CASE;
&&&&&&&&&& W1&='0';
&&&& END PROCESS;&&&&&&&&
END;&&&&&&&
*******************************************************************
上面程序还需编写一个基本RS触发器以便调用,即component调用语句
use ieee.std_logic_1164.
entity RSd is
& port(Rd,Sd:in std_
&&&&&&&& Q:out std_logic);
architecture ca of RSd is
& signal RS:std_logic_vector(1 downto 0);
& SIGNAL Q0,A,B:std_
&&& A&=NOT(Sd AND B);B&=NOT(Rd AND A);
***********************************************************************
由节目主持人根据抢答题的难易程度,设定一次抢答的时间,通过预置时间电路对计数器进行预置,计数器的时钟脉冲由秒脉冲电路提供。可预置时间的电路选用十进制同步加减计数器74LS192进行设计,具体电路如上图所示。
(3)报警电路
由555定时器和三极管构成的报警电路如图11、4所示。其中555构成多谐振荡器,振荡频率fo=1.43/[(RI+2R2)C],其输出信号经三极管推动扬声器。PR为控制信号,当PR为高电平时,多谐振荡器工作,反之,电路停振。
4)时序控制电路
时序控制电路是抢答器设计的关键,它要完成以下三项功能:
①主持人将控制开关拨到&开始&位置时,扬声器发声,抢答电路和定时电路进人正常抢答工作状态。
②当参赛选手按动抢答键时,扬声器发声,抢答电路和定时电路停止工作。
③当设定的抢答时间到,无人抢答时,扬声器发声,同时抢答电路和定时电路停止工作。
根据上面的功能要求,设计的时序控制电路如上图所示。图中,门G1 的作用是控制时钟信号CP的放行与禁止,门G2的作用是控制74LS148的输人使能端 。图11、4的工作原理是:主持人控制开关从&清除&位置拨到&开始&位置时,来自于图11、2中的74LS279的输出 1Q=0,经G3反相, A=1,则时钟信号CP能够加到74LS192的CPD时钟输入端,定时电路进行递减计时。同时,在定时时间未到时,则&定时到信号&为 1,门G2的输出 =0,使 74LS148处于正常工作状态,从而实现功能①的要求。当选手在定时时间内按动抢答键时,1Q=1,经 G3反相, A=0,封锁 CP信号,定时器处于保持工作状态;同时,门G2的输出 =1,74LS148处于禁止工作状态,从而实现功能②的要求。当定时时间到时,则&定时到信号&为0, =1,74LS148处于禁止工作状态,禁止选手进行抢答。同时, 门G1处于关门状态,封锁 CP信号,使定时电路保持00状态不变,从而实现功能③的要求。集成单稳触发器74LS121用于控制报警电路及发声的时间,其工作原理请读者自行分析。
四、实验仪器设备
1. 数字实验箱。
2. 集成电路74LS148 1片,74LS279 1片,74LS48 3片,74LS192 2片,NE555 2片,74LS00 1片,74LS121 1片。
3. 电阻 510&O 2只,1K&O 9只,4.7k&O l只,5.1k&O l只,100k&O l只,10k&O 1只, 15k&O 1只, 68k&O l只。
4. 电容 0.1uF 1只,10uf 2只,100uf 1只。
5. 三极管 3DG12 1只。
6. 其它:发光二极管2只,共阴极显示器3只。 五、实验内容及方法1.组装调试抢答器电路。
2.设计可预置时间的定时电路,并进行组装和调试。当输人1Hz的时钟脉冲信号时,要求电路能进行减计时,当减计时到零时,能输出低电平有效的定时时间到信号。
3.组装调试报警电路。
4.完成定时抢答器的联调,注意各部分电路之间的时序配合关系。然后检查电路各部分的功能,使其满足设计要求。
抢答器PLD程序
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY QDQ IS
&& PORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
&&&&&&& CP,CR,Start:IN STD_LOGIC;
&&&&&& A,B,C,DD,E,F,G,BP:OUT STD_LOGIC);
ARCHITECTURE QDQ OF QDQ& IS
& SIGNAL CLK,DDD:STD_LOGIC;
& SIGNAL Y:STD_LOGIC_VECTOR(3 DOWNTO 0);
& SIGNAL DO,YS:STD_LOGIC_VECTOR(7 DOWNTO 0);
& COMPONENT QDLED7 is
& PORT(DATA:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
&&&&&& a,b,c,d,e,f,g:out std_logic);
& END& COMPONENT;
&& PROCESS(CP,CLK,CR,DO,start)&&&
&&& BEGIN&&
IF &Start='1'&& then& &&&&&&&&&&
&&& IF CLK'EVENT AND CLK='1' THEN
&&&&&& DO&=D;&&&&&&&&&&
&&& END IF;
&&& IF CR='0' THEN DO&=&&;
&&& END IF;
&&& IF DO=&& THEN DDD&='1';
&&&&&&& ELSE DDD&='0';
&&&& END IF;
&& END PROCESS;
&&&& CLK&=CP AND DDD;
&&&& YS&=DO;
&&&&& PROCESS(YS)
&&&&&& BEGIN
&&&&&&&& CASE YS IS
&&&&&&&&&&&&&&& WHEN && =&Y&=&0001&;
&&&&&&&&&&&&&&& WHEN && =&Y&=&0010&;
&&&&&&&&&&&&&&& WHEN && =&Y&=&0011&;
&&&&&&&&&&&&&&& WHEN && =&Y&=&0100&;
&&&&&&&&&&&&&&& WHEN && =&Y&=&0101&;
&&&&&&&&&&&&&&& WHEN && =&Y&=&0110&;
&&&&&&&&&&&&&&& WHEN && =&Y&=&0111&;
&&&&&&&&&&&&&&& WHEN && =&Y&=&1000&;
&&&&&&&&&&&&&&& WHEN OTHERS =&Y&=&0000&;
&&&&&&&& END CASE;
&&&&& END PROCESS;
& UU:QDLED7 PORT MAP(Y,A,B,C,DD,E,F,G);--组数显示
& BP&=NOT DDD;&&&&& --驱动发声装置工作信号输出
八位锁存器:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY SUOCQ IS
&& PORT(D:IN STD_LOGIC_VECTOR(7 DOWNTO 0);
&&&&&&& CP,CR:IN STD_LOGIC;
&&&&&&& Yout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END SUOCQ;
ARCHITECTURE QDQ OF SUOCQ& IS
& SIGNAL CLK,DDD:STD_LOGIC;
& SIGNAL DO:STD_LOGIC_VECTOR(7 DOWNTO 0);
&& PROCESS(CP,CLK,CR,DO)&&&
&&& BEGIN&&&&&&&&&&&&&
&&& IF CLK'EVENT AND CLK='1' THEN
&&&&&& DO&=D;&&&&&&&&&&
&&& END IF;
&&& IF CR='0' THEN DO&=&&;
&&& END IF;
&&& IF DO=&& THEN DDD&='1';
&&&&&&& ELSE DDD&='0';
&&&& END IF;
&& END PROCESS;
&&&& CLK&=CP AND DDD;
&&&& Yout&=DO;
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网 51hei.com , All Rights Reserved基于51单片机的
6路抢答器_图文_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
基于51单片机的
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩39页未读,
定制HR最喜欢的简历
你可能喜欢1688.com,阿里巴巴打造的全球最大的采购批发平台
1688/淘宝会员(仅限会员名)请在此登录
cbulogin.center.eu13Server is OK豆丁微信公众号
君,已阅读到文档的结尾了呢~~
七路抢答器,七段数码管引脚图,七路抢答器电路原理图,七路竞答器,六路抢答器,六路抢答器设计,抢答器哪个牌子好,8路抢答器,电脑抢答器,知识竞赛抢答器
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
七路抢答器
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='http://www.docin.com/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 用微信做抢答器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信