第一篇:EDA4人搶答器設(shè)計(jì)報(bào)告
四人搶答器
一、設(shè)計(jì)任務(wù):
l、設(shè)計(jì)用于競(jìng)賽的四人搶答器,功能如下:(1)有多路搶答器,臺(tái)數(shù)為四;
(2)具有搶答開(kāi)始后20秒倒計(jì)時(shí),20秒倒計(jì)時(shí)后無(wú)人搶答顯示超時(shí),并報(bào)警;(3)能顯示超前搶答臺(tái)號(hào)并顯示犯規(guī)警報(bào);(4)能顯示各路得分,并具有加、減分功能;
2、系統(tǒng)復(fù)位后進(jìn)入搶答狀態(tài),當(dāng)有一路搶答鍵按下時(shí),該路搶答信號(hào)將其余各路搶答封鎖,同時(shí)鈴聲響,直至該路按鍵松開(kāi),顯示牌顯示該路搶答臺(tái)號(hào)。
3、用VHDL語(yǔ)言設(shè)計(jì)符合上述功能要求的四人搶答器,并用層次設(shè)計(jì)方法設(shè)計(jì)該電路
二、設(shè)計(jì)思路:
將該任務(wù)分成三個(gè)模塊進(jìn)行設(shè)計(jì),分別為:搶答器鑒別模塊、搶答器計(jì)時(shí)模塊、搶答器記分模塊,最后是撰寫(xiě)頂層文件。
1、搶答器鑒別模塊:
在這個(gè)模塊中主要實(shí)現(xiàn)搶答過(guò)程中的搶答功能,并能對(duì)超前搶答進(jìn)行警告,還能記錄無(wú)論是正常搶答還是朝前搶答者的臺(tái)號(hào),并且能實(shí)現(xiàn)當(dāng)有一路搶答按鍵按下時(shí),該路搶答信號(hào)將其余個(gè)綠搶答封鎖的功能。其中有四個(gè)搶答信號(hào)a、b、c、d;搶答使能信號(hào)en;搶答狀態(tài)顯示信號(hào)states;警報(bào)時(shí)鐘信號(hào)clk2;系統(tǒng)復(fù)位信號(hào)rst;超前警報(bào)信號(hào)ring。
2、搶答器計(jì)時(shí)模塊:
在這個(gè)模塊中主要實(shí)現(xiàn)搶答過(guò)程中的計(jì)時(shí)功能,在有搶答開(kāi)始后進(jìn)行20秒的倒計(jì)時(shí),并且在20秒倒計(jì)時(shí)后無(wú)人搶答顯示超時(shí)并報(bào)警。其中有搶答時(shí)鐘信號(hào)clk;系統(tǒng)復(fù)位信號(hào)rst;搶答使能信號(hào)en;搶答狀態(tài)顯示信號(hào)states;無(wú)人搶答警報(bào)信號(hào)warn;計(jì)時(shí)中止信號(hào)stop;計(jì)時(shí)十位個(gè)位信號(hào)tb,ta。
3、搶答器記分模塊:
在這個(gè)模塊中主要是給四個(gè)搶答信號(hào)記分,并給每個(gè)搶答信號(hào)預(yù)置5分,當(dāng)搶答并答對(duì)時(shí)加1分,答錯(cuò)減1分,沒(méi)有獲得搶答保持不變。其中有搶答時(shí)鐘信號(hào)clk;系統(tǒng)復(fù)位信號(hào)rst;搶答使能信號(hào)en;搶答狀態(tài)顯示信號(hào)states;記分加減信號(hào)add(add=‘1’時(shí)為加,add=‘0’時(shí)為減);四個(gè)信號(hào)的得分顯示信號(hào)a_out,b_out,c_out,d_out。
4、頂層文件:
在這個(gè)模塊中是對(duì)前三個(gè)模塊的綜合編寫(xiě)的頂層文件。
三、具體實(shí)施:
1、本設(shè)計(jì)的實(shí)現(xiàn)電路圖:
2、本設(shè)計(jì)的源程序:
library ieee;--搶答鑒別模塊 use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb is
port(clk2,en,rst:in std_logic;
a,b,c,d:in std_logic;
ring:out std_logic;
states:out downto 0));end qdjb;architecture one of qdjb is signal sinor,ringf,tmp:std_logic;signal cnt:std_logic_vector(5 downto 0);begin sinor<=a or b or c or d;p1:process(a,rst,b,c,d,tmp)
begin
if rst='1' then
tmp<='1';states<=“0000”;
elsif tmp='1' then
if a='1' then
states<=“0001”;tmp<='0';
elsif b='1' then
states<=“0010”;tmp<='0';
elsif c='1' then
states<=“0011”;tmp<='0';
elsif d='1' then
states<=“0100”;tmp<='0';
else tmp<='1';states<=“0000”;
end if;
end if;end process p1;p2rocess(clk2,en,rst,cnt)
begin
if rst='1' then
cnt<=“000000”;ringf<='0';
elsif clk2'event and clk2='1' then
if en='0' and sinor='1' then
if cnt<“111111” then
ringf<=not ringf;cnt<=cnt+1;
else ringf<='0';
end if;
end if;
end if;end process p3;ring<=ringf;end one;
library ieee;--搶答器計(jì)時(shí)模塊 use ieee.std_logic_1164.all;std_logic_vector(3 use ieee.std_logic_unsigned.all;entity js is
port(clk,rst,en,stop:in std_logic;
warn:buffer std_logic;
ta,tb:buffer std_logic_vector(3 downto 0));end js;architecture one of js is signal co:std_logic;begin p1:process(clk,rst,en,stop,ta)
begin
if rst='1' or stop='1' then
ta<=“0000”;
elsif clk'event and clk='1' then
co<='0';
if en='1' then
if ta=“0000” then
ta<=“1001”;co<='1';
else ta<=ta-1;
end if;
end if;
end if;end process p1;p2:process(co,rst,en,stop,tb)
begin
if rst='1' or stop='1' then
tb<=“0010”;
elsif co'event and co='1' then
if en='1' then
if tb=“0000” then tb<=“0010”;
else tb<=tb-1;
end if;
end if;
end if;end process p2;p3:process(rst,ta,tb)
begin
if rst='1' then
warn<='0';
elsif ta=“0000” and tb=“0000” then
warn<='1';
else warn<='0';
end if;end process p3;end one;
library ieee;--搶答器記分模塊 use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jf is
port(clk,rst,en,add:in std_logic;
states:in std_logic_vector(3 downto 0);
a_out,b_out,c_out,d_out:buffer std_logic_vector(3 downto 0));end jf;
architecture one of jf is begin
p2:process(clk,rst,add,states,a_out,b_out,c_out,d_out)
begin
if(rst='1')then
a_out<=“0101”;b_out<=“0101”;c_out<=“0101”;d_out<=“0101”;
elsif en='1'then
if clk'event and clk='1' then
case states is
when “0001”=>
if add='1' then
if a_out=“1111” then
a_out<=“0000”;
else a_out<=a_out+1;
end if;
elsif add='0' then
if a_out=“0000” then
a_out<=“0000”;
else a_out<=a_out-1;
end if;
end if;
when “0010”=>
if add='1' then
if b_out=“1111” then
b_out<=“0000”;
else b_out<=b_out+1;
end if;
elsif add='0' then
if b_out=“0000” then
b_out<=“0000”;
else b_out<=b_out-1;
end if;
end if;
when “0011”=>
if add='1' then
if c_out=“1111” then
c_out<=“0000”;
else c_out<=c_out+1;
end if;
elsif add='0' then
if c_out=“0000” then
c_out<=“0000”;
else c_out<=c_out-1;
end if;
end if;
when “0100”=>
if add='1' then
if d_out=“1111” then
d_out<=“0000”;
else d_out<=d_out+1;
end if;
elsif add='0' then
if d_out=“0000” then
d_out<=“0000”;
else d_out<=d_out-1;
end if;
end if;
when others=>
a_out<=a_out;b_out<=b_out;c_out<=c_out;d_out<=d_out;
end case;
end if;
end if;
end process p2;end one;
library ieee;--搶答器頂層文件 use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qiangda is
port(clk,clk2,en,a,b,c,d,add,stop,rst:in std_logic;
ring,alarm:out std_logic;
ta,tb:buffer std_logic_vector(3 downto 0);
states:buffer std_logic_vector(3 downto 0);
a_out,b_out,c_out,d_out:buffer std_logic_vector(3 downto 0));end qiangda;
architecture bhv of qiangda is component qdjb is
port(clk2,en,rst:in std_logic;
a,b,c,d:in std_logic;
ring:out std_logic;
states:out std_logic_vector(3
downto 0));end component;component js is
port(clk,rst,en,stop:in std_logic;
warn:buffer std_logic;
ta,tb:buffer std_logic_vector(3 downto 0));end component;
component jf is
port(clk,rst,en,add:in std_logic;
states:in downto 0);
a_out,b_out,c_out,d_out:buffer std_logic_vector(3 downto 0));end component;signal cnt:std_logic_vector(3 downto 0);std_logic_vector(3
begin
u1:qdjb port map(clk2,en,rst,a,b,c,d,ring,states);u2:js port map(clk,rst,en,stop,alarm,ta,tb);u3:jf;end bhv;
port
map(clk,rst,en,add,states,a_out,b_out,c_out,d_out)
四、結(jié)果分析:
(一)、軟件分析:
1、搶答器鑒別模塊:
編譯報(bào)告:
仿真結(jié)果:
2、搶答器計(jì)時(shí)模塊:
編譯報(bào)告:
仿真結(jié)果:
3、搶答器記分模塊:
編譯報(bào)告:
仿真結(jié)果:
4、搶答器頂層模塊:
編譯報(bào)告:
仿真結(jié)果:
頂層文件的RTL級(jí):
管腳鎖定圖:
(二)、硬件分析:
五、參考文獻(xiàn):
第二篇:FPGA搶答器設(shè)計(jì)報(bào)告
Vb開(kāi)辦上海電力學(xué)院
課程設(shè)計(jì)報(bào)告
信息工程系
搶答器設(shè)計(jì)報(bào)告
一、設(shè)計(jì)目的:
本課程的授課對(duì)象是電子科學(xué)與技術(shù)專(zhuān)業(yè)本科生,是電子類(lèi)專(zhuān)業(yè)的一門(mén)重要的實(shí)踐課程,是理論與實(shí)踐相結(jié)合的重要環(huán)節(jié)。
本課程有助于培養(yǎng)學(xué)生的數(shù)字電路設(shè)計(jì)方法、掌握模塊劃分、工程設(shè)計(jì)思想與電路調(diào)試能力,為以后從事各種電路設(shè)計(jì)、制作與調(diào)試工作打下堅(jiān)實(shí)的基礎(chǔ)
二、實(shí)驗(yàn)器材和工具軟件:
PC機(jī)一臺(tái)、QuartusII軟件、DE2板。
三、設(shè)計(jì)內(nèi)容:
(1)搶答器可容納四組12位選手,每組設(shè)置三個(gè)搶答按鈕供選手使
用。
(2)電路具有第一搶答信號(hào)的鑒別和鎖存功能。在主持人將系統(tǒng)復(fù)位并發(fā)出搶答指令后,蜂鳴器提示搶答開(kāi)始,時(shí)顯示器顯示初始時(shí)間并開(kāi)始倒計(jì)時(shí),若參賽選手按搶答按鈕,則該組指示燈亮并用組別顯示器顯示選手的組別,同時(shí)蜂鳴器發(fā)出“嘀嘟”的雙音頻聲。此時(shí),電路具備自鎖功能,使其它搶答按鈕不起作用。
(3)如果無(wú)人搶答,計(jì)時(shí)器倒計(jì)時(shí)到零,蜂鳴器有搶答失敗提示,主持人可以按復(fù)位鍵,開(kāi)始新一輪的搶答。
(4)設(shè)置犯規(guī)功能。選手在主持人按開(kāi)始鍵之前搶答,則認(rèn)為犯規(guī),犯規(guī)指示燈亮和顯示出犯規(guī)組號(hào),且蜂鳴器報(bào)警,主持人可以終止搶答執(zhí)行相應(yīng)懲罰。
(5)搶答器設(shè)置搶答時(shí)間選擇功能。為適應(yīng)多種搶答需要,系統(tǒng)設(shè)有10秒、15秒、20秒和3O秒四種搶答時(shí)間選擇功能。
四、設(shè)計(jì)具體步驟:
首先把系統(tǒng)劃分為組別判斷電路模塊groupslct,犯規(guī)判別與搶答信號(hào)判別電路模塊fgqd,分頻電路模塊fpq1,倒計(jì)時(shí)控制電路模塊djs,顯示時(shí)間譯碼電路模塊num_7seg模塊,組別顯示模塊showgroup模塊這六個(gè)模塊,各模塊設(shè)計(jì)完成后,用電路原理圖方法將各模塊連接構(gòu)成系統(tǒng)。
各模塊功能及代碼:
1、組別判別模塊
(1)功能:可容納四組12位選手,每組設(shè)置三個(gè)搶答按鈕供選手使用。若參賽選手按搶答按鈕,則輸出選手的組別。此時(shí),電路具
signal rst : std_logic;begin
h<=“0000” when(a=“000” and b=“000” and c=“000” and d=“000”)else
“0001” when(a/=“000” and b=“000” and c=“000” and d=“000”)else
“0010” when(a=“000” and b/=“000” and c=“000” and d=“000”)else
“0100” when(a=“000” and b=“000” and c/=“000” and d=“000”)else
“1000” when(a=“000” and b=“000” and c=“000” and d/=“000”)else
“0000”;process
begin
wait on clock until rising_edge(clock);
if clr='1' then
rst<='1';
g<=“0000”;
end if;
if h/=“0000” then
if rst='1' then
g<=h;
rst<='0';
end if;
end if;
end process;
end behave_groupslct;
2、犯規(guī)判別與搶答信號(hào)判別模塊
(1)功能:若參賽選手在主持人按開(kāi)始鍵之后按搶答按鈕,則使該組指示燈亮并輸出選手的組別,同時(shí)蜂鳴器發(fā)出響聲。
選手在主持人按開(kāi)始鍵之前搶答,則認(rèn)為犯規(guī),犯規(guī)指示燈亮并輸出犯規(guī)組號(hào),且蜂鳴器報(bào)警。
(2)原理:c[3..0]接組別判別模塊的g[3..0],即此時(shí)c為按鍵組別的信息。go接主持人的“開(kāi)始”按鍵。由于無(wú)論是在正常情況還是犯規(guī)情況下按下按鍵,都必須顯示按鍵的組別且蜂鳴器響,所以將c的值給hex以輸出按鍵組別,且在有按鍵按下(c/=“0000”)時(shí)輸出fm為‘1’,否則為‘0’。若在開(kāi)始之前有按鍵按下時(shí),即go='0'且c/=“0000”,輸出ledfg為‘1’,否則為‘0’。若在開(kāi)始之后有按鍵按下,將c的值給led,使該組指示燈亮,開(kāi)始之前l(fā)ed輸出“0000”。
(3)程序代碼:
library ieee;
use ieee.std_logic_1164.all;
entity fgqd is port(c:in std_logic_vector(3 downto 0);
go:in std_logic;
hex:out std_logic_vector(3 downto 0);
led:out std_logic_vector(3 downto 0);
ledfg,fm:out std_logic);
end fgqd;
architecture behave_fgqd of fgqd is begin);end djs;
architecture behave_djs of djs is begin
process(clock,aclr,s)
begin
if(aclr='1')then
if(s=“00”)then
q<=“01010”;
elsif(s=“01”)then
q<=“01111”;
elsif(s=“10”)then
q<=“10100”;
else
q<=“11110”;
end if;
else
if rising_edge(clock)then
if en='1' then
q<=q-1;
if(q=“00000” and grpsl=“0000”)then
time0<='1';
else
time0<='0';
end if;
end if;
end if;
end if;
end process;end behave_djs;
4、分頻器模塊
(1)功能:實(shí)現(xiàn)50MHz—1Hz的分頻,為倒計(jì)時(shí)模塊提供時(shí)鐘。
(2)程序代碼
library ieee;
use ieee.std_logic_1164.all;
entity fpq1 is port(clkin :in std_logic;
clkout:out std_logic);end fpq1;
architecture behave_fpq1 of fpq1 is constant N: Integer:=24999999;signal Counter:Integer RANGE 0 TO N;signal Clk: Std_Logic;begin
process(clkin)
begin
if rising_edge(clkin)then--每計(jì)到N個(gè)(0~n-1)上升沿,輸出信號(hào)翻轉(zhuǎn)一次
if Counter=N then
Counter<=0;
Clk<=NOT Clk;
else
Counter<= Counter+1;
end if;
end if;
end process;clkout<= Clk;end behave_fpq1;
5、時(shí)間顯示譯碼器
(1)功能:將時(shí)間信息在7段數(shù)碼管上顯示。
(2)程序代碼
library ieee;
use ieee.std_logic_1164.all;
entity num_7seg is port(c:in std_logic_vector(4 downto 0);
hex:out std_logic_vector(13 downto 0));
end num_7seg;
architecture behave_num_7seg of num_7seg is begin
with c(4 downto 0)select
hex<= “10000001000000” when “00000” ,--“0”
“10000001111001” when “00001” ,--“1”
“10000000100100” when “00010” ,--“2”
“10000000110000” when “00011” ,--“3”
“10000000011001” when “00100” ,--“4”
“10000000010010” when “00101” ,--“5”
“10000000000010” when “00110” ,--“6”
“10000001111000” when “00111” ,--“7”
“10000000000000” when “01000” ,--“8”
“10000000010000” when “01001” ,--“9”
“11110011000000” when “01010” ,--“10”
“11110011111001” when “01011” ,--“11”
“11110010100100” when “01100” ,--“12”
“11110010110000” when “01101” ,--“13”
“11110010011001” when “01110” ,--“14”
“11110010010010” when “01111” ,--“15”
“11110010000010” when “10000” ,--“16”
“11110011111000” when “10001” ,--“17”
“11110010000000” when “10010” ,--“18”
“11110010010000” when “10011” ,--“19”
“01001001000000” when “10100” ,--“20”
“01001001111001” when “10101” ,--“21”
“01001000100100” when “10110” ,--“22”
“01001000110000” when “10111” ,--“23”
“01001000011001” when “11000” ,--“24”
“01001000010010” when “11001” ,--“25”
“01001000000010” when “11010” ,--“26”
“01001001111000” when “11011” ,--“27”
來(lái)。然后就是將選出的組別鎖存。將按下按鍵的組別賦給一內(nèi)部信號(hào)“h”(沒(méi)有按鍵按下時(shí)h=“0000”),當(dāng)復(fù)位鍵按下時(shí)(clr=‘1’)輸出g=“0000”并且將另一內(nèi)部信號(hào)rst置1。當(dāng)復(fù)位后(rst=‘1’)有按鍵按下時(shí)將h的值給輸出信號(hào)g,并且將標(biāo)志信號(hào)rst清零。這樣就實(shí)現(xiàn)最快按鍵組別鎖存功能。
六、心得體會(huì)
通過(guò)此次設(shè)計(jì),我掌握了數(shù)字電路的設(shè)計(jì)方法,尤其是模塊劃分、工程設(shè)計(jì)思想與電路調(diào)試能力,都有了一定的提高。為以后從事各種電路設(shè)計(jì)、制作與調(diào)試工作打下堅(jiān)實(shí)的基礎(chǔ)。
第三篇:74LS148四路搶答器設(shè)計(jì)報(bào)告
目錄
1.設(shè)計(jì)任務(wù)和要求…………………………………….3 2.設(shè)計(jì)方案…………………………………………….3 2.1 設(shè)計(jì)思路………………………………………3 2.2 設(shè)計(jì)原理………………………………………4 2.3 實(shí)現(xiàn)功能………………………………………4 3.硬件設(shè)計(jì)…………………………………………….5 3.1 各功能電路連線(xiàn)圖……………………………5 3.2 框圖和說(shuō)明……………………………………6 4.軟件設(shè)計(jì)…………………………………………….7 5.小結(jié)………………………………………………….8 6.參考文獻(xiàn)…………………………………………….9
設(shè)計(jì)任務(wù)與要求
1.1 可同時(shí)供四名選手參賽,其編號(hào)分別是1-4,各用一個(gè)搶答按鈕,按鈕的編號(hào)和選手的編號(hào)相對(duì)應(yīng),給節(jié)目主持人設(shè)置一控制開(kāi)關(guān),用于控制系統(tǒng)的清零(編號(hào)顯示數(shù)碼管滅燈)搶答的開(kāi)始。
1.2
搶答器具有數(shù)據(jù)鎖存和顯示的功能,搶答開(kāi)始后,若有選手按搶答按鈕,其編號(hào)立即所存,并在數(shù)碼管上顯示該選手的編號(hào),同時(shí)封鎖輸入電路,禁止其他選手搶答。優(yōu)先搶答選手的編號(hào)一直保持到主持人主持人將系統(tǒng)清零為止。設(shè)計(jì)方案 2.1 設(shè)計(jì)思路 2.1.1 在給定
5V直流電源電壓的條件下設(shè)計(jì)一個(gè)可以容納四組參賽者的搶答器,每組設(shè)定一個(gè)搶答按鈕供參賽者使用。
2.1.2 設(shè)置一個(gè)系統(tǒng)清零和搶答控制開(kāi)關(guān)K(該開(kāi)關(guān)由主持人控制),當(dāng)開(kāi)關(guān)K被按下時(shí),搶答開(kāi)始(允許搶答),打開(kāi)后搶答電路清零。
2.1.3 搶答器具有一個(gè)搶答信號(hào)的鑒別、鎖存及顯示功能。即有搶答信號(hào)輸入(參賽者的開(kāi)關(guān)中任意一個(gè)開(kāi)關(guān)被按下)時(shí),鎖存相應(yīng)的編號(hào),并在LED數(shù)碼管上顯示出來(lái),同時(shí)揚(yáng)聲器發(fā)生聲響。此時(shí)再按其他任何一個(gè)搶答器開(kāi)關(guān)均無(wú)效,優(yōu)先搶答選手的編號(hào)一直保持不變,直到主持人將系統(tǒng)清除為止。
2.1.4 開(kāi)關(guān)K按下后,系統(tǒng)清零,由主持人發(fā)令,開(kāi)始搶答。2.2 設(shè)計(jì)原理
2.2.1原理圖
2.2.2 設(shè)計(jì)原理
接通電源后,主持人將開(kāi)關(guān)撥到“清除”狀態(tài),搶答器處于禁止?fàn)顟B(tài),編號(hào)顯示器滅燈,定時(shí)器顯示設(shè)定時(shí)間;主持人將開(kāi)關(guān)置“開(kāi)始“狀態(tài),宣布”開(kāi)始“搶答器工作。選手在搶答時(shí),搶答器完成:優(yōu)先判斷、編號(hào)鎖存、編號(hào)顯示、亮燈提示。如果再次搶答必須由主持人再次操作”清除“和”開(kāi)始"狀態(tài)開(kāi)關(guān)。
2.3 實(shí)現(xiàn)功能
一是選手按搶答按鈕,其編號(hào)立即所存,并在數(shù)碼管上顯示該選手的編號(hào)。二是封鎖輸入電路,禁止其他選手搶答。
三是優(yōu)先搶答選手的編號(hào)一直保持到主持人主持人將系統(tǒng)清零為止。硬件設(shè)計(jì)
3.1本課程設(shè)計(jì),需要用集成電路:
74LS148,74LS279,74LS48和五個(gè)開(kāi)關(guān)及其他元件,3.2各功能電路接線(xiàn)圖
電路連線(xiàn)圖
3.2 框圖和說(shuō)明
3.2.1 元器件
74LS48管腳圖
74LS148真值表
74LS148功能介紹
在優(yōu)先編碼器電路中,允許同時(shí)輸入兩個(gè)以上編碼信號(hào)。不過(guò)在設(shè)計(jì)優(yōu)先編 碼器時(shí),已經(jīng)將所有的輸入信號(hào)按優(yōu)先順序排了隊(duì)。在同時(shí)存在兩個(gè)或兩個(gè)以上輸入信號(hào)時(shí),優(yōu)先編碼器只按優(yōu)先級(jí)高的輸入信號(hào)編碼,優(yōu)先級(jí)低的信號(hào)則不起作用。74148是一個(gè)八線(xiàn)-三線(xiàn)優(yōu)先級(jí)編碼器。3.2.3 說(shuō)明:
當(dāng)主持人控制開(kāi)關(guān)S按下時(shí),RS觸發(fā)器的R端均為“0”,4個(gè)觸發(fā)器輸出1Q-4Q全部為零,同時(shí)74LS148的選通輸入端EI=0,使之處于工作狀態(tài),此時(shí)鎖存電路不工作。當(dāng)主持人將開(kāi)關(guān)“S”抬起時(shí),優(yōu)先編碼器處于工作狀態(tài),即搶答器處于等待工 5 作狀態(tài),等待信號(hào)輸入端信號(hào)輸入,當(dāng)有選手按下時(shí),比如“S0”按下時(shí),74LS148的輸出Y2Y1Y0=000, 經(jīng)RS鎖存后,BI=1,74LS279處于工作狀態(tài),4Q3Q2Q=A2A1A0=000,經(jīng)74LS48譯碼后,顯示器顯示“0”.軟件設(shè)計(jì)
4.1 優(yōu)先編碼器工作原理
74LS148工作原理:該編碼器有8個(gè)信號(hào)輸入端,3個(gè)二進(jìn)制碼輸出端。此外,電路還設(shè)置了輸入使能端EI,輸出使能端EO和優(yōu)先編碼工作狀態(tài)標(biāo)志GS。當(dāng)EI=0時(shí),編碼器工作;而當(dāng)EI=1時(shí),則不論8個(gè)輸入端為何種狀態(tài),3個(gè)輸出端均為高電平,且優(yōu)先標(biāo)志端和輸出使能端均為高電平,編碼器處于非工作狀態(tài)。這種情況被稱(chēng)為輸入低電平有效,輸出也為低電來(lái)有效的情況。當(dāng)EI為0,且至少有一個(gè)輸入端有編碼請(qǐng)求信號(hào)(邏輯0)時(shí),優(yōu)先編碼工作狀態(tài)標(biāo)志GS為0。表明編碼器處于工作狀態(tài),否則為1。由功能表可知,在8個(gè)輸入端均無(wú)低電平輸入信號(hào)和只有輸入0端(優(yōu)先級(jí)別最低位)有低電平輸入時(shí),A2A1A0均為111,出現(xiàn)了輸入條件不同而輸出代碼相同的情況,這可由GS的狀態(tài)加以區(qū)別,當(dāng)GS=1時(shí),表示8個(gè)輸入端均無(wú)低電平輸入,此時(shí)A2A1A0=111為非編碼輸出;GS=0時(shí),A2A1A0=111表示響應(yīng)輸入0端為低電平時(shí)的輸出代碼(編碼輸出)。EO只有在EI為0,且所有輸入端都為1時(shí),輸出為0,它可與另一片同樣器件的EI連接,以便組成更多輸入端的優(yōu)先編碼器。從功能表不難看出,輸入優(yōu)先級(jí)別的次為7,6,??,0。輸入有效信號(hào)為低電平,當(dāng)某一輸入端有低電平輸入,且比它優(yōu)先級(jí)別高的輸入端無(wú)低電平輸入時(shí),輸出端才輸出相對(duì)應(yīng)的輸入端的代碼。小結(jié)
本學(xué)期第十五周我們進(jìn)行了電子技術(shù)課程設(shè)計(jì),我們用一周的時(shí)間進(jìn)行了資料查找和實(shí)體設(shè)計(jì),然后認(rèn)真寫(xiě)了設(shè)計(jì)說(shuō)明。
本電路由鎖存器,編碼器,數(shù)碼管等構(gòu)成,實(shí)現(xiàn)各項(xiàng)鎖存,清零等功能??偨Y(jié)如下: 優(yōu)點(diǎn):電路功能原理清晰,各項(xiàng)功能均達(dá)到了要求,顯示準(zhǔn)確,反 應(yīng)靈敏,無(wú)競(jìng)爭(zhēng)冒險(xiǎn)現(xiàn)象,基本滿(mǎn)足了普通競(jìng)賽的搶答要求。缺點(diǎn):如果長(zhǎng)按住按鈕不放,主持人清零后將能獲得搶答權(quán)。改進(jìn):可以更改促發(fā)器的類(lèi)型,如使用jk觸發(fā)器代替,則長(zhǎng)按無(wú)效,或者在搶答端添加一個(gè)發(fā)光二極管,當(dāng)有人作弊,二極管就會(huì)亮,從而阻止選手長(zhǎng)按按鈕的缺陷。心得體會(huì):通過(guò)這次課程設(shè)計(jì),我對(duì)于74L系列有了更深的了解,知道功能表后,一切芯片都能得心應(yīng)手。而且,知道了搶答器的設(shè)計(jì)方法,以后可以設(shè)計(jì)任何多人搶答器。同時(shí)實(shí)物的制作也提升了我的動(dòng)手能力,實(shí)踐能力得到了一定的鍛煉。在摸索該如何設(shè)計(jì)電路使之實(shí)現(xiàn)所需功能的過(guò)程中,培養(yǎng)了我的設(shè)計(jì)思維,增強(qiáng)了動(dòng)手能力。在改進(jìn)電路的過(guò)程中,同學(xué)們共同探討,最后的電路已經(jīng)比初期設(shè)計(jì)有了很大提高。在讓我體會(huì)到了設(shè)計(jì)電路的艱辛的同時(shí),更讓我體會(huì)到成功的喜悅和快樂(lè),加深了我對(duì)設(shè)計(jì)方面的興趣。理論與實(shí)踐得到了很好的結(jié)合。參考文獻(xiàn)
1.童師白,華成英.模擬電子技術(shù)基礎(chǔ),第三版.北京:高等教育版社,2001 2.閻石.數(shù)字電子技術(shù)基礎(chǔ),第四版.北京:高等教育版社,1998 3.呂思忠,《數(shù)子電路實(shí)驗(yàn)與課程設(shè)計(jì)》 哈爾濱工業(yè)大學(xué)出版社 4.鄭家龍,《集成電子技術(shù)基礎(chǔ)教程》 高等教育出版社 5.高吉祥《電子技術(shù)基礎(chǔ)實(shí)驗(yàn)與課程設(shè)計(jì)》 電子工業(yè)出版社 6.《數(shù)字電路應(yīng)用300例》 中國(guó)電力出版社
第四篇:DIY八路搶答器設(shè)計(jì)報(bào)告總結(jié)
課程設(shè)計(jì)報(bào)告
一、課題名稱(chēng)
設(shè)計(jì)題目
八路搶答器設(shè)計(jì)
I
數(shù)字八路搶答器
二、設(shè)計(jì)任務(wù)
1、設(shè)計(jì)一個(gè)八路搶答器,要求具有搶答功能,電路基本要求內(nèi)含蜂鳴器、顯示器等;
2、畫(huà)出搶答器的電路原理圖,分析各部分電路的工作原理;
3、.搶答組數(shù)分為八組,序號(hào)分別為S0 ~ S7,優(yōu)先搶答者按動(dòng)本組按鍵,組號(hào)立即在LED顯示器上顯示,同時(shí)封鎖住其他組的按鍵信號(hào)。
4、系統(tǒng)設(shè)置外部清除鍵,按動(dòng)清除鍵,LED顯示器自動(dòng)清零滅燈。
三、技術(shù)指標(biāo)
1、設(shè)計(jì)8組參賽的搶答器,每組設(shè)置一個(gè)搶答按鈕.2、電路具有第一搶答信號(hào)鑒別與鎖存功能,搶答成功后,顯示組別,發(fā)出聲音.四、設(shè)計(jì)報(bào)告
根據(jù)要求撰寫(xiě)設(shè)計(jì)報(bào)告
II
一、任務(wù)分析
二、設(shè)計(jì)方案
三、電路設(shè)計(jì)
四、實(shí)物圖
五、調(diào)試
《八路搶答器設(shè)計(jì)》
一、任務(wù)分析
八路搶答器功能描述如下:
1、涵蓋搶答自鎖、燈光指示、暫停復(fù)位、電子音樂(lè)報(bào)聲等功能
2、工作模式:手控
3、面板上設(shè)有組號(hào),顯示清晰,同步顯示,互不干擾。
4、積木式結(jié)構(gòu),1—8組任意連接。
5、具有搶答聲音提示。共用的喇叭中發(fā)出優(yōu)美的電子音樂(lè)聲
搶答器工作流程描述
選手搶答-> 發(fā)出聲響、顯示組號(hào)-> 搶答聲訊-> 主持人復(fù)位
1.搶答器同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S1 ~ S8 2.設(shè)置一個(gè)系統(tǒng)清除和搶答控制開(kāi)關(guān)S,該開(kāi)關(guān)由主持人控制。
3.搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)的編號(hào),并在LED數(shù)碼管上顯示,同時(shí)揚(yáng)聲器發(fā)出報(bào)警聲響提示。選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。
搶答器硬件描述
該電路由直流穩(wěn)壓電源、搶答器、LED數(shù)碼管組成。
搶答器電路主要由各路的搶答器按鍵、開(kāi)關(guān)二極管、晶閘管、發(fā)光二極管及一個(gè)三極管和揚(yáng)聲器B1 組
成LED數(shù)碼管的每一筆劃都是對(duì)應(yīng)一個(gè)字母表示 DP是小數(shù)點(diǎn).CD4511是一個(gè)用于驅(qū)動(dòng)共陰極 LED(數(shù)碼管)顯示器的 BCD 碼—七段碼譯碼器,特點(diǎn):具有BCD轉(zhuǎn)換、消隱和鎖存控制、七段譯碼及驅(qū)動(dòng)功能的CMOS電路能提供較大的拉電流。可直接驅(qū)動(dòng)LED顯示器
其中CD4511 各管腳功能如下:
BI:4腳是消隱輸入控制端,當(dāng)BI=0 時(shí),不管其它輸入端狀態(tài)是怎么樣的,七段數(shù)碼管都會(huì)處于消隱也就是不顯示的狀態(tài)。
LE:鎖定控制端,當(dāng)LE=0時(shí),允許譯碼輸出。LE=1時(shí)譯碼器是鎖定保持狀態(tài),譯碼器輸出被保持在LE=0時(shí)的數(shù)值。
LT:3腳是測(cè)試信號(hào)的輸入端,當(dāng)BI=1,LT=0 時(shí),譯碼輸出全為1,不管輸入 DCBA 狀態(tài)如何,七段均發(fā)亮全部顯示。它主要用來(lái)檢測(cè)數(shù)7段碼管是否有物理?yè)p壞。
A1、A2、A3、A4、為8421BCD碼輸入端。
a、b、c、d、e、f、g:為譯碼輸出端,輸出為高電平1有效。
二、設(shè)計(jì)方案
1、設(shè)計(jì)目的
在電視和學(xué)校中我們會(huì)經(jīng)??吹揭恍┲橇尨鸬墓?jié)目,如果要是讓搶答者用舉手等方法,主持人很容易誤判,會(huì)造成搶答的不公平,比賽中為了準(zhǔn)確、公正、直觀地判斷出第一搶答者,所設(shè)計(jì)的搶答器通常由數(shù)碼顯示、燈光、音響等多種手段指示出第一搶答者。為了使這種不公平不發(fā)生,只有靠電子產(chǎn)品的高準(zhǔn)確性來(lái)保障搶答的公平性。
2、方案
方案一:采用數(shù)字電路
定時(shí)搶答器的總體框圖如圖所示,它由主體電路和擴(kuò)展電路兩部分組成。主體電路完成基本的搶答功能,即開(kāi)始搶答后,當(dāng)選手按動(dòng)搶答鍵時(shí),能顯示選手的編號(hào),同時(shí)能封鎖輸入電路,禁止其他選手搶答。擴(kuò)展電路完成定時(shí)搶答的功能。
定時(shí)搶答器的工作過(guò)程是:接通電源時(shí),節(jié)目主持人將開(kāi)關(guān)置于“清除”位置,搶答器處于禁止工作狀態(tài),編號(hào)顯示器滅燈,當(dāng)節(jié)目主持人宣布“搶答開(kāi)始”,同時(shí)將控制開(kāi)關(guān)撥到“開(kāi)始”位置,揚(yáng)聲器給出聲響提示,搶答器處于工作狀態(tài)。搶答器要完成以下四項(xiàng)工作:
①優(yōu)先編碼電路立即分辨出搶答者的編號(hào),并由鎖存器進(jìn)行鎖存,然后由譯碼顯示電路顯示編號(hào);
②揚(yáng)聲器發(fā)出短暫聲響,提醒節(jié)目主持人注意;
③控制電路要對(duì)輸入編碼電路進(jìn)行封鎖,避免其他選手再次進(jìn)行搶答;
④控制電路要保持到主持人將系統(tǒng)清零為止。當(dāng)選手將問(wèn)題回答完畢,主持人操作控制開(kāi)關(guān),使系統(tǒng)回復(fù)到禁止工作狀態(tài),以便進(jìn)行下一輪搶答。
方案二:采用單片機(jī)
當(dāng)主持人宣布搶答開(kāi)始的時(shí)候,按下開(kāi)始按鈕,此時(shí)電路進(jìn)入搶答狀態(tài),選手的輸入采用了掃描式的輸入,之后把相應(yīng)的信息送往單片機(jī),再由單片機(jī)輸出到顯示輸出電路中。此時(shí)有人第一按下相應(yīng)的搶答按鈕,經(jīng)過(guò)單片機(jī)的控制選擇,在八段顯示器上顯示相應(yīng)的號(hào)碼,并鎖存,同時(shí)禁止其他按鈕的輸入。
方案三〈采用PLC 當(dāng)主持人打開(kāi)啟動(dòng)開(kāi)關(guān)后,在設(shè)定時(shí)間TO 內(nèi),如果某組搶先按下?lián)尨鸢粹o,則驅(qū)動(dòng)音效電路①發(fā)出聲響,指示燈LI亮,并且在8段數(shù)碼管顯示器上顯示出搶答成功的組號(hào),此時(shí)電路實(shí)現(xiàn)互鎖,其他組再按下?lián)尨鸢粹o為無(wú)效;如果在時(shí)間TO內(nèi),無(wú)人應(yīng)答,則驅(qū)動(dòng)音效電路②發(fā)出聲響,指示燈L2亮,表示搶答者均放棄該題;在搶答成功后,主持人打開(kāi)限時(shí)開(kāi)關(guān)SW2,啟動(dòng)計(jì)時(shí)器,在設(shè)定的時(shí)間TI 內(nèi)回答有效,當(dāng)?shù)竭_(dá)設(shè)定時(shí)間TI時(shí),驅(qū)動(dòng)音效電路③,指示燈L3亮,表示答題時(shí)間到。
3、方案選擇 通過(guò)上面的方案比較,數(shù)字電路的制作方案比較容易實(shí)現(xiàn),并且在原理方面也是比較簡(jiǎn)單,所以我選擇采用第一種方案來(lái)完成搶答器電路。
4、設(shè)計(jì)系統(tǒng)功能 基本功能:
(1)同時(shí)供8名選手比賽,分別用8個(gè)按鈕S0 ~ S7表示。
(2)設(shè)置一個(gè)系統(tǒng)清除和搶答控制開(kāi)關(guān)S,該開(kāi)關(guān)由主持人控制。
(3)搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)的編號(hào),揚(yáng)聲器發(fā)出聲響提示,并在七段數(shù)碼管上顯示選手號(hào)碼。選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。
三、電路設(shè)計(jì)
四、實(shí)物圖
五、調(diào)試
在調(diào)試中出現(xiàn)了一個(gè)問(wèn)題,就是CD4511不能鎖存,最后在吧R15那個(gè)電阻直接取消了就成功了
第五篇:4路搶答器設(shè)計(jì)程序
#include
unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,//0~f顯示表
0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};unsigned char code table0[]={0xf1,0xf2,0xf4,0xf8};
//P2口位選
unsigned char code table2[]={0xef,0xdf,0xbf,0x7f};
//P3口送行信號(hào) unsigned char display[]={0,0,0,0};//顯示位 void sw1();
//子函數(shù)申明 void sw2();void sw3();void sw4();void xianshi();void init();unsigned char temp,num2,x,x1,x2,a,count;
//變量聲明 int num,num1;unsigned char key;unsigned char i,j;sbit P3_4=P3^4;sbit P3_5=P3^5;sbit P3_6=P3^6;sbit P3_7=P3^7;sbit k1=P1^0;
//位申明(時(shí)間加)sbit k2=P1^1;
//位申明(時(shí)間減)sbit k3=P1^2;
//位申明(開(kāi)始)sbit k4=P1^3;
//位申明(復(fù)位)sbit sp=P1^4;
//蜂鳴器 sbit l1=P1^5;
//LED顯示 sbit l2=P1^6;
//LED顯示
void delay(unsigned char z)
//延時(shí)1ms子函數(shù) {
unsigned char x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);}
void init()
//初始化子函數(shù) { a=0;TMOD=0x01;
//定時(shí)器T0工作方式設(shè)定
TH0=(65536-10000)/256;//裝初值
TL0=(65536-10000)%256;EA=1;
//開(kāi)定時(shí)器T0 ET0=1;
if(k1==0)
//判斷時(shí)間加K1是否按下
{
delay(5);
//延時(shí)躲過(guò)抖動(dòng)
if(k1==0)
//再次確認(rèn)是否按下K1
{
num++;
//時(shí)間自加1
if(num==99)
//如果時(shí)間num=99,清零num
{
num=0;
}
num2=num;
//將num值賦值給num2
while(k1==0);//等待K1松手
}
}
if(k2==0)
//判斷時(shí)間減K2是否按下
{
delay(5);
//延時(shí)躲過(guò)抖動(dòng)
if(k2==0)
//再次確認(rèn)是否按下K2
{
num--;
//時(shí)間自減1
if(num==-1)//如果時(shí)間num=-1,賦值num=99
{
num=99;
}
num2=num;//將num值賦值給num2
while(k2==0);//等待K2松手
}
}
if(k3==0)
//判斷開(kāi)始按鈕K3是否按下
{
delay(5);
//延時(shí)躲過(guò)抖動(dòng)
if(k3==0)//再次確認(rèn)是否按下K3
{
x++;
//自加1
if(x==2)//假如x=2,清零x
{
x=0;
}
}
} }
void keyboad()
//按鍵檢測(cè)子函數(shù) { while(1)
{
P3=0xff;
//讀引腳前需寫(xiě)入高電平
P3_4=0;
//置第一行線(xiàn)為低
temp=P3;
//P3口信息送入temp中
temp=temp & 0x0f;//屏蔽高四位,保留低四位
if(temp!=0x0f)//判斷:假如列線(xiàn)有不為高的時(shí)候,執(zhí)行if循環(huán)體
{
delay(5);//延時(shí)躲過(guò)抖動(dòng)
temp=P3;
temp=temp & 0x0f;
if(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;//判斷是哪個(gè)鍵按下
switch(temp)
{
case 0x0e: //第一行第四個(gè)按下
{delay(5);num1=4;l2=0;xianshi();} //第一行第一個(gè)鍵按下
break;
case 0x0d:
//第一行第三個(gè)按下
{delay(5);num1=3;l2=0;xianshi();}
break;
case 0x0b:
//第一行第二個(gè)按下
{delay(5);num1=2;l2=0;xianshi();}
break;
case 0x07: //第一行第一個(gè)按下
{delay(5);num1=1;l2=0;xianshi();} break;//第一行第一個(gè)鍵按下
}
}
}
P3=0xff;
P3_5=0;
temp=P3;
temp=temp & 0x0f;
if(temp!=0x0f)
{
delay(5);//延時(shí)躲過(guò)抖動(dòng)
temp=P3;
temp=temp & 0x0f;
if(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
{delay(5);num1=8;l2=0;xianshi();} break;
case 0x0d:
{delay(5);num1=7;l2=0;xianshi();} break;
case 0x0b:
{delay(5);num1=6;l2=0;xianshi();} break;
case 0x07:
{delay(5);num1=5;l2=0;xianshi();} break;
}
}
}
P3=0xff;
P3_6=0;
temp=P3;
temp=temp & 0x0f;
if(temp!=0x0f)
{
delay(5);//延時(shí)躲過(guò)抖動(dòng)
temp=P3;
temp=temp & 0x0f;
if(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
{delay(5);num1=12;l2=0;xianshi();} break;
case 0x0d:
{delay(5);num1=11;l2=0;xianshi();} break;
case 0x0b:
{delay(5);num1=10;l2=0;xianshi();} break;
case 0x07:
{delay(5);num1=9;l2=0;xianshi();} break;
//第二行第四個(gè)鍵按下//第二行第三個(gè)鍵按下//第二行第二個(gè)鍵按下//第二行第一個(gè)鍵按下//第三行第四個(gè)鍵按下//第三行第三個(gè)鍵按下//第三行第二個(gè)鍵按下//第三行第一個(gè)鍵按下
}
}
}
P3=0xff;
P3_7=0;
temp=P3;
temp=temp & 0x0f;
if(temp!=0x0f)
{
delay(5);//延時(shí)躲過(guò)抖動(dòng)
temp=P3;
temp=temp & 0x0f;
if(temp!=0x0f)
{
temp=P3;
temp=temp & 0x0f;
switch(temp)
{
case 0x0e:
{delay(5);num1=16;l2=0;xianshi();} break;
case 0x0d:
{delay(5);num1=15;l2=0;xianshi();} break;
case 0x0b:
{delay(5);num1=14;l2=0;xianshi();} break;
case 0x07:
{delay(5);num1=13;l2=0;xianshi();} break;
}
temp=P3;
P0=table[key];
}
}
} }
void xianshi(){
TR0=0;
//停止定時(shí)計(jì)數(shù)
num=0;
//倒計(jì)時(shí)num清零
sp=1;
//成功搶答,蜂鳴器叫
delay(100);
//延時(shí)一段時(shí)間
sp=0;
//關(guān)蜂鳴器
//第四行第四個(gè)鍵按下//第四行第三個(gè)鍵按下//第四行第二個(gè)鍵按下//第四行第一個(gè)鍵按下
while(1)
{
for(a=0;a<4;a++)//顯示部分位選
{
delay(5);
P2=table0[a];
P0=table[display[a]];
}
display[0]=num/10;
//倒計(jì)時(shí)顯示0
display[1]=num%10;
display[2]=num1/10;
//顯示搶答者號(hào)
display[3]=num1%10;
if(k4==0)
//判斷復(fù)位鍵K4是否按下
{
num=num2;
//num2值賦值給num
num1=0;
//清零搶答者號(hào)顯示
TR0=1;
//啟動(dòng)定時(shí)器TO
l1=1;
//D1,D2關(guān)閉
l2=1;
return;
}
} }
void main()
//主函數(shù) {
l1=1;
//D1,D2關(guān)閉
l2=1;
sp=0;//初始化蜂鳴器
x=0;
num=num2=30;
//賦初值
while(1)
{
if(x==1)
//開(kāi)始鍵按下
{
delay(5);
TR0=1;
//啟動(dòng)定時(shí)
while(1)
{
keyboad();//調(diào)用按鍵檢測(cè)子函數(shù)
if(k4==0)//判斷復(fù)位鍵是否按下
{
l1=1;//D1,D2關(guān)閉
l2=1;
delay(5);
num=num2;//倒計(jì)時(shí)時(shí)間30秒賦值給num
TR0=1;//啟動(dòng)定時(shí)器T0
}
}
}
else
//開(kāi)始鍵沒(méi)有按下
{
for(a=0;a<4;a++)
//顯示部分位選
{
delay(5);
P2=table0[a];
P0=table[display[a]];
}
display[0]=num/10;//倒計(jì)時(shí)顯示0
display[1]=num%10;
display[2]=num1/10;
//顯示搶答者號(hào)
display[3]=num1%10;
init();
//初始化
}
} }
void time0()interrupt 1 //定時(shí)器T0中斷 {
TH0=(65536-10000)/256;
//重裝初值
TL0=(65536-10000)%256;count++;
//中斷次數(shù)記錄
if(k4==0)
//復(fù)位鍵K4檢測(cè)
{
num=num2;
TR0=1;
num1=0;
return;
}
for(a=0;a<4;a++)
{
delay(10);
P2=table0[a];
P0=table[display[a]];
} display[0]=num/10;
//倒計(jì)時(shí)顯示0
display[1]=num%10;
display[2]=num1/10;//顯示搶答者號(hào)
display[3]=num1%10;
if(count==100)
//1秒定時(shí)是否已到
{
count=0;
//清零記錄
num--;
//顯示倒計(jì)時(shí)自減一
if(num<6)
//倒計(jì)時(shí)倒數(shù)6秒,D2亮,蜂鳴器報(bào)警
{
l1=~l1;
sp=1;
delay(100);
sp=0;
if(num==0)
//倒計(jì)時(shí)為0,D2亮,蜂鳴器報(bào)警
{
l1=0;
sp=1;delay(200);sp=0;
delay(100);
sp=1;delay(200);sp=0;
delay(100);
sp=1;delay(200);sp=0;
}
if(num==0)
{
while(1)
{
xianshi();
//調(diào)用延時(shí)子函數(shù)
if(k4==0)//假如復(fù)位鍵按下
{
l1=1;
//D1,D2滅
l2=1;
num=num2;//30秒倒計(jì)時(shí)賦值給num
TR0=1;//啟動(dòng)定時(shí)器T0
return;
}
}
}
} } x2++;if(x2==4){
x2=0;} P3=table2[x2];
//分別給行線(xiàn)送低電?