版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、設(shè)計任務(wù)要求交通燈控制器:用于十字路口的交通燈控制器。實驗要求:1 東西方向各有一組紅,黃,綠燈用于指揮交通,紅,黃,綠的持續(xù)時間分別為25s,5s,20s。2 當(dāng)有緊急情況(如消防車)時,兩個方向均為紅燈亮,計時停止,當(dāng)特殊情況結(jié)束后,控制器恢復(fù)原來狀態(tài),正常工作。3 組數(shù)碼管,以倒計時方式顯示兩個方向允許通行或禁止通行的時間。二、設(shè)計思路及總體結(jié)構(gòu)框圖設(shè)計思路:1硬件:由設(shè)計任務(wù)要求可知,總體輸入電路有:(1)在開始計時之前的等待狀態(tài),復(fù)位鍵reset接低電位,接通電源后,首先要將它接高電位,表示計時開始。(2)當(dāng)按一下(on_off)鍵,表示緊急情況發(fā)生,兩個方向均為紅燈亮,計時停止
2、,當(dāng)再次按下(on_off)鍵時,控制器恢復(fù)原來狀態(tài),正常工作.輸出電路:(1)由于東西和南北方向都要顯示時間,因此需要4個數(shù)碼管,這樣在設(shè)計中就需要四條輸出線choose4,用來選通指定一個LED七段顯示數(shù)碼管。(2)顯示器的每一位都采用LED七段顯示數(shù)碼管進行顯示,每一個LED七段顯示數(shù)碼管都要有七條輸出線控制,一共使用4個七段數(shù)碼管,故輸出電路使用四個七位輸出信號:showtime1,showtime2,showtime3,showtime4。(3)東西和南北方向都有交通燈亮的情況,故輸出電路中要有兩個狀態(tài)控制信號state1,state2分別控制東西和南北的燈,每個方向上有4個燈(增加
3、了左、右轉(zhuǎn)彎顯示控制功能),所以state1,state2的類型應(yīng)該是4位數(shù)組型的。東西方向交通燈外部電路圖如下:State1State2Showtime1Showtime2Showtime3Showtime4Choose4 clk 4/ stas reset南北方向交通燈 on_off 4/7/7/7/7/ 4/2軟件:(1)在VHDL設(shè)計描述中,采用自頂向下的設(shè)計思路,該思路,首先要描述頂層的接口,上面的描述已經(jīng)規(guī)定了交通燈控制的輸入輸出信號:輸入信號:復(fù)位開關(guān)信號reset;緊急情況控制信號on_off;外部時鐘信號clk。輸出信號:LED七段顯示數(shù)碼管的選通信號choose4(3 do
4、wnto 0);LED七段顯示數(shù)碼管的輸出信號showtime1(6 downto 0),showntime2(6 downto 0),showtime3(6 downto 0),showtome4(6 downto 0);交通燈狀態(tài)控制信號state1(3 downto 0),state2(3 downto 0)。(2)在自頂向下的VHDL設(shè)計描述中,通常把整個設(shè)計的系統(tǒng)劃分為幾個模塊,然后采用結(jié)構(gòu)描述方式對整個系統(tǒng)進行描述。根據(jù)實驗設(shè)計的結(jié)構(gòu)功能,來確定使用哪些模塊以及這些模塊之間的關(guān)系.由于緊急情況控制信號是采用按鍵的輸入方式,其產(chǎn)生時刻和持續(xù)時間的長短是隨機不定的,且存在因開關(guān)簧片反彈
5、引起的電平抖動現(xiàn)象,因此必須在每個開關(guān)后面安排一個消抖和同步化電路模塊,以保證系統(tǒng)能捕捉到輸入脈沖,故需要有防抖動的模塊。由于外部時鐘信號clk的頻率為1MHz,而實際需要的內(nèi)部計時時鐘頻率為1Hz,提供給消抖同步電路的頻率為50Hz(滿足按鍵)和提供給產(chǎn)生選通信號電路的時鐘頻率為200Hz(滿足視覺暫留效應(yīng)).當(dāng)正常計時開始后,需要進行定時計數(shù)操作,由于東西和南北兩個方向上的時間顯示器是由兩個LED七段顯示數(shù)碼管組成的,因此需要產(chǎn)生兩個2位的計時信息:2個十位信號,2個個位信號,這個定時計數(shù)操作可以由一個定時計數(shù)器來完成,又因為交通燈的狀態(tài)變化是在計時為0的情況下才能進行的,因此需要一個計時
6、電路來產(chǎn)生使能信號,因此定時計數(shù)的功能就是用來產(chǎn)生2個2位計時信息和使能信號.另外還需要將時間顯示出來,為了節(jié)省資源,我采用了循環(huán)點亮LED七段顯示數(shù)碼管的方法來顯示計時輸出。通過信號choose4(3 downto 0)來對4個LED七段顯示數(shù)碼管進行選擇。由于不能使用7448自動譯碼集成電路,故在LED七段顯示數(shù)碼管顯示時間時,要把計時結(jié)果轉(zhuǎn)換為七段碼輸出到相應(yīng)的LED七段顯示數(shù)碼管上,因此還需要一個轉(zhuǎn)換電路。交通燈狀態(tài)控制也需要一個電路,當(dāng)有使能信號及無緊急情況下,交通燈狀態(tài)不發(fā)生變化,有緊急情況時,兩個方向上均為紅燈亮,緊急情況消除后,回到原來狀態(tài),無使能信號時,交通燈狀態(tài)不變.通過上
7、面的分析,不難得知可以把交通燈控制系統(tǒng)劃分為6個模塊:鍵輸入模塊,時鐘分頻模塊,計時模塊,選通模塊,顯示模塊,控制模塊。各個模塊之間的連接關(guān)系如下:計時模塊轉(zhuǎn)換模塊鍵輸入模塊reset showtimeon_off reset0 on_off0 clk1選通模塊時鐘分頻模塊選通模塊 timel,times clk2 clk0 choose4三、總體結(jié)構(gòu)框圖通電復(fù)位 No yes東西為紅,南北為綠,計時開始是否有緊急情況 Yes No計時到20s No 兩方向均為紅,計時停止 Yes東西為黃,南北為綠是否有緊急情況是否消除? No Yes Yes No計時到5s No Yes東西為紅,南北為綠是
8、否有緊急情況 Yes No計時到20s No Yes東西為紅,南北為黃是否有緊急情況 Yes計時到5s No Yes四、分塊電路設(shè)計.(1)鍵輸入模塊(keyin)輸入信號:緊急情況on_off;用來消除抖動的時鐘信號clk1,由時鐘分頻模塊提供。輸出信號:去抖后的提示信號on_off0.(2)時鐘分頻模塊(clk_div)輸入信號:外部時鐘信號clk;輸出信號:消除抖動的時鐘信號clk1;計時內(nèi)部時鐘信號clk2;產(chǎn)生選通信號的時鐘信號clk0.(3)計時模塊(time):輸入信號:定時計時時鐘clk2,由時鐘分頻模塊提供;去抖動后的提示信號on_off0;復(fù)位信號reset;狀態(tài)提示信號s
9、tate(1 downto 0);輸出信號:東西方向的十位信號eq1(3 downto 0);東西方向的個位信號eq0(3 downto 0);南北方向的十位信號sq1(3 downto 0);南北方向的個位信號sq0(3 downto 0);使能信號timel,times。(4)選通模塊(choose):輸入信號:選通時鐘信號clk0,由時鐘分頻模塊提供。輸出信號:選通信號choose4(3 downto 0)。(5)顯示模塊(display):輸入信號:計時的十位或個位信號;輸出信號:控制LED七段顯示數(shù)碼管的七位數(shù)組型信號。(6)控制模塊(keep):輸入信號:復(fù)位信號reset;去抖后
10、的緊急情況提示信號on_off0;定時計時時鐘信號clk2;使能信號timel,times;輸出信號:東西方向交通燈狀態(tài)控制信號state1(3 downto 0);南北方向交通燈狀態(tài)控制信號state2(3 downto 0);交通燈狀態(tài)提示信號state(1 downto 0).五、總體電路圖(圖形法).六、仿真波形狀態(tài)變化仿真圖:以下顯示選通信號的仿真波形七、源程序主模塊:-traffic module-library ieee;use ieee。std_logic_1164。all;use ieee.std_logic_arith.all;use ieee.std_logic_unsi
11、gned。all;entity tracfic is port(reset : in std_logic;-復(fù)位信號 clk : in std_logic;-外部時鐘信號 showtime1,showtime2,showtime3,showtime4: out std_logic_vector(6 downto 0);- 控制LED七段顯示數(shù)碼管的七位數(shù)組型信號 choose4 : out std_logic_vector(3 downto 0);-選通信號 on_off : in std_logic;-緊急情況控制信號 state1,state2 : out std_logic_vector
12、(3 downto 0));-交通燈狀態(tài)控制信號 end tracfic;architecture system of tracfic is-元件例化調(diào)用 component keyin-去抖動模塊 port(a,b:in std_logic; c :out std_logic); end component; component time-計時模塊 port(a,b,k:in std_logic; c:in std_logic_vector(1 downto 0); d,e,f,g:out std_logic_vector(3 downto 0); j,h:out std_logic); e
13、nd component; component choose -選通模塊 port(a:in std_logic; b:out std_logic_vector(3 downto 0)); end component; component display -顯示模塊 port(a:in std_logic_vector(3 downto 0); b:out std_logic_vector(6 downto 0); end component; component clk_div-時鐘分頻模塊 port(a:in std_logic; b,c,d:out std_logic); end com
14、ponent; component keep-狀態(tài)控制模塊 port(a,b,c,g,j:in std_logic; d,e:out std_logic_vector(3 downto 0); f:out std_logic_vector(1 downto 0)); end component; signal on_off0:std_logic; 緊急情況經(jīng)去抖后的輸出信號; signal state:std_logic_vector(1 downto 0); 控制計數(shù)器的狀態(tài)提示信號; signal clk0,clk1,clk2:std_logic; 時鐘分頻后的輸出信號; signal e
15、q0,sq0:std_logic_vector(3 downto 0); 南北和東西計數(shù)器的個位輸出; signal eq1,sq1:std_logic_vector(3 downto 0); 南北和東西計數(shù)器的十位輸出; signal timel,times:std_logic; 計數(shù)器對控制器的反饋信號;begin 用信號把各個模塊連起來; u1:keyin port map(clk1,on_off,on_off0); u3:time port map(clk2,on_off0,reset,state,eq0,eq1,sq0,sq1,timel,times); u4:choose port
16、 map(clk0,choose4); u5:display port map(eq0,showtime1); u6:display port map(eq1,showtime2); u7:display port map(sq0,showtime3); u8:display port map(sq1,showtime4); u9:keep port map(on_off0,timel,times,clk2,reset,state1,state2,state); u10:clk_div port map(clk,clk0,clk1,clk2); end system;去抖模塊:-keyin m
17、odule-library ieee;use ieee。std_logic_1164。all;entity keyin is port(A,B :in std_logic; C :out std_logic);end keyin;architecture keyin_arc of keyin is component kand2 port(A,B :in std_logic; C :out std_logic);end component; component kdf port(A,B :in std_logic; C,D :out std_logic);end component; comp
18、onent knand2 port(A,B :in std_logic; C :out std_logic);end component;signal TMP1,TMP2,TMP3,TMP4,TMP5,TMP6:std_logic;begin u0: knand2 port map(A,TMP1,TMP2); u1: knand2 port map(TMP2,TMP3,TMP1); U2: kdf port map(TMP2,B,TMP4,TMP3); U3: kdf port map(TMP4,B,TMP6,TMP5); u4: kand2 port map(TMP4,TMP5,C);end
19、 keyin_arc;library ieee;two inputs and gate descriptionuse ieee.std_logic_1164.all;entity kand2 is port(A,B :in std_logic; C :out std_logic);end kand2;architecture kand2_arc of kand2 isbegin C=A and B;end kand2_arc;-end of two inputs and gate descriptionlibrary ieee;two inputs and_not gate descripti
20、onuse ieee.std_logic_1164。all;entity knand2 is port(A,B :in std_logic; C :out std_logic);end knand2;architecture knand2_arc of knand2 isbegin C=not(A and B);end knand2_arc;-end of two inputs and_not gate descriptionlibrary ieee;-D trigger descriptionuse ieee。std_logic_1164。all;entity kdf is port(A,B
21、 :in std_logic; C,D :out std_logic);end kdf;architecture kdf_arc of kdf isbeginprocess(B)begin if(B'event and B='1')then C<=A;D=not A; end if; end process;end kdf_arc;選通模塊:該模塊是為節(jié)省資源而設(shè)的,實驗中有四個LED七段數(shù)碼管顯示計數(shù),點亮一個LED需電流550mA,同時點亮4個LED,CPLD可能無法負荷這樣的電流驅(qū)動,而且功率太大,散熱也是問題。同時這么做也容易造成電路被燒毀,因此需要逐個循
22、環(huán)點亮.又為使顯示結(jié)果持續(xù)不致閃爍抖動,只需每個掃描頻率超過人眼視覺暫留頻率24Hz以上,就能達到.選擇200Hz作為時鐘,分到4個數(shù)碼管,每個數(shù)碼管50Hz(大于24Hz),故不會有閃爍.library ieee;-choose module-use ieee.std_logic_1164.all;use ieee。std_logic_unsigned.all;entity choose is port(a:in std_logic; b:out std_logic_vector(3 downto 0));end choose;architecture choose_arc of choos
23、e issignal m :integer range 0 to 3;begin process(a) begin if(aevent and a='1')then if(m=3)then m<=0; else m=m+1; end if; end if; case m is when 0 =b=”0111" when 1 =b="1011”; when 2 =b<=”1101”; when 3 =b=”1110”; end case;end process;end choose_arc;分頻模塊:實驗中需要三個不同頻率的時鐘:消抖電路需要10H
24、z的時鐘,選通電路需要200Hz的時鐘,計時需要1Hz的時鐘。外部提供的時鐘的頻率為1MHz,故需要經(jīng)過分頻得到,但由于外部時鐘的頻率和我們所需要的時鐘的頻率相差太遠,一次分頻到底又占用太多的資源,所以我采用的是先對外部時鐘進行一定的分頻,再依次向下分,得到我們需要的時鐘,這樣可以節(jié)省很多資源。library ieee;-clk_div module-use ieee。std_logic_1164。all;entity clk_div is port(a:in std_logic;-外部時鐘信號 b:out std_logic;-頻率為200Hz的時鐘信號 c:out std_logic;-頻
25、率為10Hz的時鐘信號 d:out std_logic);-頻率為1Hz的時鐘信號end clk_div;architecture clk_div_arc of clk_div issignal clk_10k:std_logic;signal clk_200:std_logic;signal clk_10:std_logic;signal clk_1:std_logic;signal m:integer range 0 to 100;signal n:integer range 0 to 50;signal l:integer range 0 to 20;signal g:integer r
26、ange 0 to 10;beginp1: process(a)-先對外部時鐘進行100分頻,得到頻率為10KHz的時鐘信號 begin if(a'event and a=1)then if m=99 then m=0; else m=m+1; end if; if (m=49) then clk_10k<='0' else clk_10k='1; end if; end if;end process;p2:process(clk_10k)-對10KHz的時鐘信號再進行50分頻,得到200Hz的時鐘信號 begin if (clk_10kevent and
27、 clk_10k='1')then if n=49 then n=0; else n=n+1; end if; if n=24 then clk_200=0; else clk_200=1; end if; end if;end process;b<=clk_200;p3:process(clk_200)對200Hz的時鐘信號進行20分頻,得到10Hz的時鐘信號 begin if(clk_200event and clk_200='1)then if l=19 then l=0; else l=l+1; end if; if l=9 then clk_10=0;
28、else clk_10<=1; end if; end if;end process;c=clk_10;p4:process(clk_10)-對10Hz的時鐘信號進行10分頻,得到需要的1 Hz的時鐘信號 begin if (clk_10event and clk_10=1')then if g=9 then g=0; else g=g+1; end if; if g=4 then clk_1<='0' else clk_1=1; end if; end if ; end process;d=clk_1;end clk_div_arc;顯示模塊:-displ
29、ay modulelibrary ieee;use ieee。std_logic_1164。all;use ieee。std_logic_signed。all;use ieee。std_logic_unsigned。all;entity display is port(a:in std_logic_vector(3 downto 0);-輸入記數(shù)結(jié)果 b:out std_logic_vector(6 downto 0);-譯碼成七段數(shù)碼管的控制信號end display;architecture display_arc of display issignal a0:std_logic_vect
30、or(3 downto 0);beginprocess(a0)begin a0=a; case a0 is when ”0000” =b=”0111111"-以下是譯碼部分 when ”0001” =>b<=”0000110"; when "0010” =b=”1011011”; when ”0011" =>b="1001111”; when ”0100" =>b="1100110"; when ”0101" =b=”1101101"; when ”0110” =>
31、b<=”1111101"; when ”0111” =>b=”0000111”; when ”1000” =b=”1111111"; when ”1001” =b="1101111"; when others=>b=”ZZZZZZZ”; end case;end process;end display_arc;控制模塊:-keep module-library ieee;use ieee。std_logic_1164.all;entity keep is port( a,b,c,g,j : in std_logic; d,e : out
32、 std_logic_vector(3 downto 0); f : out std_logic_vector(1 downto 0);end keep;architecture keep_arc of keep istype state_type is (s0,s1,s2,s3,s4);signal current_state:state_type;signal new_state:state_type;beginnewstate_logic:process(current_state,b,a,g)variable m:integer range 0 to 3;begin if(g='
33、;0')then new_state<=s1;-通電后給交通燈狀態(tài)賦初值 else case current_state is when s1 =m:=0;if(b=1and j=0and a=0)then-當(dāng)計數(shù)到20s且無緊急情況時,交通燈跳至下一狀態(tài)new_state=s2;elsif(a=1)thennew_state<=s0;-有緊急情況時,交通燈變?yōu)榫o急狀態(tài)elsenew_state=s1;-計時未到的時候保持原狀態(tài)不變 end if; when s2 =>m:=1; if(b=1and j=1and a='0)thennew_state<=
34、s3;當(dāng)記數(shù)到5s且無緊急情況時,交通燈變?yōu)橄乱粻顟B(tài) elsif(a='1)thennew_state=s0;-有緊急情況時,交通燈變?yōu)榫o急狀態(tài) else new_state=s2; -計時未到的時候保持原狀態(tài)不變 end if; when s3 =>m:=2; if(j=1'and b=0and a='0)thennew_state=s4;-當(dāng)記數(shù)到20s且無緊急情況時,交通燈變?yōu)橄乱粻顟B(tài) elsif(a='1)thennew_state=s0;-有緊急情況時,交通燈變?yōu)榫o急狀態(tài) else new_state<=s3; -計時未到的時候保持原狀態(tài)不
35、變 end if; when s4 =m:=3; if(j='1and b=1and a=0')thennew_state<=s1;-當(dāng)記數(shù)到5s且無緊急情況時,交通燈變?yōu)橄乱粻顟B(tài) elsif(a='1)thennew_state<=s0;-有緊急情況時,交通燈變?yōu)榫o急狀態(tài) else new_state=s4; -計時未到的時候保持原狀態(tài)不變 end if; when s0=>if(a=0')then-緊急情況消除后,回到原來狀態(tài) case m iswhen 0 =new_state<=s1;when 1 =>new_state&l
36、t;=s2;when 2 =new_state=s3;when 3 =new_state=s4;end case; else new_state<=s0;end if; end case;end if;end process;state_register:process(c) begin if(cevent and c=1)thencurrent_state=new_state;-當(dāng)時鐘上升沿觸發(fā)時,交通燈狀態(tài)發(fā)生改變 end if;end process;output_logic:process(current_state)產(chǎn)生與交通燈狀態(tài)相對應(yīng)的提示信號,以控制計時模塊的不同狀態(tài)下的
37、不同賦植 begin case current_state iswhen s0 => d="0100”;e=”0100”; when s1 = d="0100”;e="1001”;f<=”00”; when s2 = d<="0100";e<=”0010”;f=”01”; when s3 = d=”1001";e<=”0100"f="10”; when s4 = d<=”0010”;e=”0100";f<="11”; end case;end proce
38、ss;end keep_arc;計時模塊:-time module-library ieee;use ieee.std_logic_1164。all;use ieee。std_logic_unsigned。all;entity time is port(a,b,k:in std_logic; c :in std_logic_vector(1 downto 0); d,e,f,g :out std_logic_vector(3 downto 0); j,h :out std_logic); end time;architecture time_arc of time is signal l,m,
39、n,p:std_logic_vector(3 downto 0); begin process(a,b,k) begin if(k='0')thenl<="0101”;m=”0010";n="0000”;p="0010”;通電后賦初值 else if(aevent and a='1)then if(b=1)thenl=l;m<=m;n=n;p=p;-有緊急情況時,計時停止 else if(n=”0001” and p="0000")thencase c is 當(dāng)東西方向倒計時到0時,重新賦值,并產(chǎn)生
40、使能信號控制交通燈的狀態(tài) when ”00" =n="0101"p=”0000”;j=1; when ”01"=>n="0101"p<=”0010”;j<='1; when ”11”=n=”0000"p=”0010”;j<=1; when "10"=>n=”0000"p<=”0010”;j=1; when others =>null; end case; elsej<='0;-計時未到0時,輸出使能信號為0 if(n=”0000”a
41、nd p/=”0000”)thenn<="1001";p=p-1;-當(dāng)各位倒計時到0,而十位沒到0時十位減一,個位賦9 else n=n1; -否則,各位減一end if; end if; if(l=”0001”and m=”0000")then-當(dāng)南北方向倒計時到0時,重新賦值,并產(chǎn)生使能信號控制交通燈的狀態(tài) case c is when ”00"=l="0000”;m<=”0010”;h<=1; when ”01”=>l=”0000”;m="0010"h<=1; when ”10"=l=”0101”;m=”000
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《威海節(jié)日習(xí)俗》課件
- 《室內(nèi)設(shè)計課件》課件
- 單位管理制度集合大合集人力資源管理篇
- 單位管理制度合并選集【員工管理篇】十篇
- 單位管理制度分享匯編員工管理篇
- 單位管理制度分享大全人員管理篇十篇
- 《審計與管理》課件
- 《客房優(yōu)化方案》課件
- 《診斷思路》課件
- (高頻選擇題50題)第2單元 社會主義制度的建立與社會主義建設(shè)的探索(解析版)
- 勞務(wù)派遣協(xié)議書(吉林省人力資源和社會保障廳制)
- 水庫移民安置檔案分類大綱與編號方案
- 醫(yī)院安全生產(chǎn)風(fēng)險分級管控和隱患排查治理雙體系
- GA 1802.2-2022生物安全領(lǐng)域反恐怖防范要求第2部分:病原微生物菌(毒)種保藏中心
- 企業(yè)EHS風(fēng)險管理基礎(chǔ)智慧樹知到答案章節(jié)測試2023年華東理工大學(xué)
- 健身俱樂部入場須知
- 《古蘭》中文譯文版
- 井下機電安裝安全教育培訓(xùn)試題及答案
- TZJXDC 002-2022 電動摩托車和電動輕便摩托車用閥控式鉛酸蓄電池
- GB/T 337.1-2002工業(yè)硝酸濃硝酸
- 《解放戰(zhàn)爭》(共48張PPT)
評論
0/150
提交評論