版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
评阅老师分数数字系统课程设计班级信息工程1班组长组员1题目要求设计要求设计一个由甲、乙双方参赛的3人乒乓球游戏机。用6个LED排成一条直线,两边各代表参赛双方的位置,其中一只点亮的LED指示球的当前位置,点亮的LED依此从左到右,或从右到左,其移动的速度应能调节。在其他时候击球视为犯规,给对方加1分;都犯规,各自加1分;当“球”(点亮的那只LED)运动到某方的最后一位时,参赛者应能果断地按下位于自己一方的按钮开关,即表示启动球拍击球。若击中,则球向相反方向移动;若未击中,则对方得1分。设置自动记分电路,甲、乙双方各用2位数码管进行记分显示,每计满11分为1局。甲、乙双方可轮流发球有一个按钮,可以使系统初始化。2设计方案(或设计分析)2.1.1设计原理 状态机设置了7个状态,分别是“等待发球状态”(waitserve),“第一盏灯亮状态”(light1on),“第六盏灯亮状态”(light6on),“球向乙移动状态”(ballmove2),“球向甲移动状态”(ballmoveto1),“允许甲击球状态”(allow1hit),“允许乙击球状态”(allow2hit)。开始的时候处于“等待发球状态”,若甲发球则转移到“第一盏灯亮状态”,若乙发球则则转移到“第六盏灯亮状态”,具体以甲发球为例。若发球后乙没有提前击球(规定球移动到对方第一个发光二极管时允许击球),那么装体机从“第一盏灯亮”转移到“球向乙移动”。若在“球向乙移动状态”乙仍然没有提前击球,状态就转移到“允许乙击球状态”,在此状态下若乙击球了,那么状态就转移到“球向甲移动状态”。在“第一盏灯亮状态”,“球向乙移动状态”中,如果乙击球了,就算提前击球,这样甲得分,然后进入“等待发球状态”等待发球。“球向甲移动状态”之后的过程和前面的过程不过是甲乙角色的调换而已。各个状态间的转移控制要根据要求来改变转移的状态由于设计要求实现LED灯依此从左到右,或从右到左的移动,同时球拍击球。若击中,则球向相反方向移动,若未击中,则对方得1。用VHDL中的状态机来实现其功能将非常简便和明了。就其功能,若要实现记分,就得用到7段数码管,考虑到硬件要求,考虑用动态扫描技术来解决。动态扫描前要进行译码,即把记数得分的结果译码成七段码。在等待状态里,在发球的条件上加上发球权属于谁。要求甲、乙双方参赛,即用两个输入信号代表,重新开始时,要求所有的计数器都清零,且进入等待状态。总的来说,要完成乒乓球游戏机的设计,可以以状态机为控制核心,附加其它功能模块来实现。3模块实现分频模块这个模块主要是把开发板的50Mhz频率分频成1hz,这样可以使我们接下来的流水灯流动时间为1S。具体代码如下:PROCESS(clk) VARIABLEtime:integerRANGE0TO50000000; BEGIN IFrising_edge(clk)THEN time:=time+1; IF(time=25000000)THEN clk1<='1'; ELSIF(time=50000000)THEN clk1<='0'; time:=0; ENDIF; ENDIF; ENDPROCESS;接下来的流水的代码就开始使用clk1时钟。主程序状态机模块这个模块式主程序模块,也是最重要的模块。采用状态机单进程的方法,一共设置了7个状态,分别是“等待发球状态”(waitserve),“第一盏灯亮状态”(light1on),“第六盏灯亮状态”(light6on),“球向乙移动状态”(ballmove2),“球向甲移动状态”(ballmoveto1),“允许甲击球状态”(allow1hit),“允许乙击球状态”(allow2hit)。具体实现代码如下:process(clk1,reset)--clk作为敏感信号触发进程begin --进程开始 ifreset='0'then--异步置位 i<=0; count1<="00000"; count2<="00000"; elsif(rising_edge(clk1))then--当处于时钟inclock上升沿时 ifcount1="10101"orcount2="10101"then i<=0; count1<="00000";--count1和count2分别为甲、乙的得分 count2<="00000"; else--以下case语句是程序中最关键的状态机部分 casestateis whenwaitserve=>--进程处于等待发球状态 ifserve='0'then i<=1; state<=light1on; elsei<=6; state<=light6on; endif; whenlight1on=>--进程处于第一盏灯亮状态 i<=2; ifhit2_en='0'then i<=0; count1<=count1+1;--甲得一分 state<=waitserve; else state<=ballmoveto2; endif; whenlight6on=>--进程处于第八盏灯亮状态 i<=5; ifhit1_en='0'then i<=0; count2<=count2+1;--乙得一分 state<=waitserve; else state<=ballmoveto1; endif; whenballmoveto1=>--进程处于球向乙移动状态 ifhit1_en='0'then i<=0; count2<=count2+1; state<=waitserve; elsifi=2theni<=1; state<=allow1hit; elsei<=i-1; state<=ballmoveto1; endif; whenballmoveto2=>--进程处于球向乙移动状态 ifhit2_en='0'then i<=0; count1<=count1+1; state<=waitserve; elsifi=5theni<=6; state<=allow2hit; elsei<=i+1; state<=ballmoveto2; endif; whenallow1hit=>--进程处于允许甲击球状态 ifhit1_en='0'theni<=2; state<=ballmoveto2; elsecount2<=count2+1; i<=0; state<=waitserve; endif; whenallow2hit=>--进程处于允许乙击球状态 ifhit2_en='0'then i<=5; state<=ballmoveto1; else count1<=count1+1; i<=0; state<=waitserve; endif; endcase; endif; endif;endprocess;主程序模块包含了计数功能,用count1和count2分别代表甲、乙的分数。用了这两个计数,接下来就可以用来译码了。数码管译码模块这次采用的是共阳数码管,就是把主程序模块里面的计数count1和count2译成7段译码。具体代码如下:process(count1)-----显示甲得分数begin casecount1is when"00000"=>score11<="00000011";score12<="00000011";----数码管显示0 when"00001"=>score11<="00000011";score12<="10011111";----数码管显示1 when"00010"=>score11<="00000011";score12<="00100101";----数码管显示2 when"00011"=>score11<="00000011";score12<="00001101";----数码管显示3 when"00100"=>score11<="00000011";score12<="10011001";----数码管显示4 when"00101"=>score11<="00000011";score12<="01001001";----数码管显示5 when"00110"=>score11<="00000011";score12<="01000001";----数码管显示6 when"00111"=>score11<="00000011";score12<="00011111";----数码管显示7 when"01000"=>score11<="00000011";score12<="00000001";----数码管显示8 when"01001"=>score11<="00000011";score12<="00001001";----数码管显示9 when"01010"=>score11<="10011111";score12<="00000011";----数码管显示10 when"01011"=>score11<="10011111";score12<="10011111";----数码管显示11 whenothers=>score11<="00000011";score12<="00000011";----数码管显示0 endcase;endprocess;process(count2)-----显示乙得分数begin casecount2is when"00000"=>score21<="00000011";score22<="00000011"; when"00001"=>score21<="00000011";score22<="10011111"; when"00010"=>score21<="00000011";score22<="00100101"; when"00011"=>score21<="00000011";score22<="00001101"; when"00100"=>score21<="00000011";score22<="10011001"; when"00101"=>score21<="00000011";score22<="01001001"; when"00110"=>score21<="00000011";score22<="01000001"; when"00111"=>score21<="00000011";score22<="00011111"; when"01000"=>score21<="00000011";score22<="00000001"; when"01001"=>score21<="00000011";score22<="00001001"; when"01010"=>score21<="10011111";score22<="00000011";----数码管显示10 when"01011"=>score21<="10011111";score22<="10011111";----数码管显示11 whenothers=>score21<="00000011";score22<="00000011"; endcase;endprocess;其中score11和score12代表count1的十位数和个位数,score21和score22代表count2的十位数和个位数.按键消抖模块这个模块主要是当我们按下hit1、hit2、reset、serve四个键时要进行消抖,否则我们的开发板将感应不到。主要采用的是计数法消抖,我们让按键持续时间大于N个clk时钟周期时,计数器输出一个单脉冲,否则没有脉冲输出。如果按键开关抖动产生的毛刺宽度小于N个时钟周期,因而毛刺作用不可能使计数器有输出,防抖动目的得以实现。具体代码如下:process(clk)beginifrising_edge(clk)then hit1_en1<=hit1;endif;endprocess;process(clk)beginifrising_edge(clk)then hit1_en2<=hit1_en1;endif;endprocess;hit1_en3<=hit1_en1andnothit1_en2;process(clk)beginifrising_edge(clk)then ifhit1_en3='0'then num<=num+1; elsenum<=0; endif;endif;endprocess;process(clk)beginifrising_edge(clk)then ifnum=5000000then hit1_en<=hit1_en1; elsenull; endif;endif;endprocess;显示模块显示模块有流水灯显示和数码管动态显示两部分。流水灯是模拟乒乓球的轨迹,闪烁着的灯模拟球的位置,这部分比较简单:process(i) --进程处i信号控制发光二极管的亮暗begin ifreset='1'then caseiis when1=>light_r<="111110"; when2=>light_r<="111101"; when3=>light_r<="111011"; when4=>light_r<="110111"; when5=>light_r<="101111"; when6=>light_r<="011111"; whenothers=>light_r<="000000"; endcase; elselight_r<="000000"; endif;light<=light_r;endprocess;数码管显示动态模块比较复杂,有三条信号线,分别是stcp、shcp、ser_data线,其中shcp是移位时钟,stcp是并行输出时钟,ser_data是信号传输线。本质是16位串行输入,每当shcp上升沿到达时,输入一位数据,依次串行输入16位,最后当stcp上升沿到达时将所有数据一并输入,然后数码管则显示相应的数字。具体代码如下:process(clk)begin if(rising_edge(clk))then casemis --m从0到3分别表示选通第1到4个数码管 when0=> ifn=0then data(15downto8)<="11011111";--data的高8位是数码管选通段 data(7downto0)<=score21(7downto0);--data的低8位是记录比分 n<=n+1; elsifn=1then stcp<='0';--stcp是并行输出时钟 shcp<='0';--shcp是移位时钟 n<=n+1; ser_data<=data(0); else shcp<='1'; data<=data(0)&data(15downto1);--data右移一位 ifh=16then--h是移位次数 h<=h+1; elsifh=17then stcp<='1'; cnt1<=cnt1+1; ifcnt1=200000then m<=m+1; cnt1<=0; n<=0; h<=1; endif; else n<=n-1; h<=h+1; stcp<='0'; endif; endif; when1=> ifn=0then data(15downto8)<="11101111";--data的高8位是数码管选通段 data(7downto0)<=score22(7downto0);--data的低8位是记录比分 n<=n+1; elsifn=1then stcp<='0';--stcp是并行输出时钟 shcp<='0';--shcp是移位时钟 n<=n+1; ser_data<=data(0); else shcp<='1'; data<=data(0)&data(15downto1);--data右移一位 ifh=16then--h是移位次数 h<=h+1; elsifh=17then stcp<='1'; cnt1<=cnt1+1; ifcnt1=200000then m<=m+1; cnt1<=0; n<=0; h<=1; endif; else n<=n-1; h<=h+1; stcp<='0'; endif; endif; when2=> ifn=0then data(15downto8)<="11110111";--data的高8位是数码管选通段 data(7downto0)<=score11(7downto0);--data的低8位是记录比分 n<=n+1; elsifn=1then stcp<='0';--stcp是并行输出时钟 shcp<='0';--shcp是移位时钟 n<=n+1; ser_data<=data(0); else shcp<='1'; data<=data(0)&data(15downto1);--data右移一位 ifh=16then--h是移位次数 h<=h+1; elsifh=17then stcp<='1'; cnt1<=cnt1+1; ifcnt1=200000then h<=1; m<=m+1; cnt1<=0; n<=0; endif; else n<=n-1; h<=h+1; stcp<='0'; endif; endif; when3=> ifn=0then data(15downto8)<="11111011";--data的高8位是数码管选通段 data(7downto0)<=score12(7downto0);--data的低8位是记录比分 n<=n+1; elsifn=1then stcp<='0';--stcp是并行输出时钟 shcp<='0';--shcp是移位时钟 n<=n+1; ser_data<=data(0); else shcp<='1'; data<=data(0)&data(15downto1);--data右移一位 ifh=16then--h是移位次数 h<=h+1; elsifh=17then stcp<='1'; cnt1<=cnt1+1; ifcnt1=200000then h<=1; m<=0; cnt1<=0; n<=0; endif; else n<=n-1; h<=h+1; stcp<='0'; endif; endif; endcase; endif; endprocess;4仿真分析Serve按键是判断甲乙谁发球,serve=1,乙发球,serve=0,则甲发球如图是乙发球的情况:此时,i从6递减到1,light[1]到light[6]依次为0,led灯低电平有效,此时表示流水灯依次点亮。到了i=6时到了allow1hit,如果hit1此时不为1,那么light会变成全亮状态,即为全零,此时乙得一分。如图所示:或者提前按,也会失败,此时已得一分,即count2=1:接下来依次类推,当serve=0之后,即为甲开球,这时如果乙一直没有击球,那么甲开始得分,得分情况如图所示:但是如果有及时的让hit=1,那么流水灯会反方向的亮,表示击打成功,这时light[6]到light[0]依次为0,如图所示:所有代码如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.numeric_std.all;useieee.std_logic_unsigned.all;--引用必要的库函数和包集合--实体entitypingponggameis --实体名为pongponggameport(reset:instd_logic; clk:instd_logic; serve:instd_logic;--发球输入端口 hit1,hit2:instd_logic;--甲和乙的击球输入端口 light:outstd_logic_vector(1to6);--控制6个发光二极管的输出端口 stcp,shcp,ser_data:outstd_logic);endpingponggame;--状态机进程architecturebehavofpingponggameistypestate_typeis(waitserve,light1on,ballmoveto2,allow2hit,light6on,ballmoveto1,allow1hit);--一共7个状态signalstate:state_type;signali:integerrange0to6;--i是流水灯计数器signalcount1,count2:std_logic_vector(1to5);--count1,count2分别是甲、乙得分计数器signallight_r:std_logic_vector(1to6);signalhit1_en,hit1_en1,hit1_en2,hit1_en3:std_logic;--hit1按键消抖程序中用到的四个变量signalhit2_en,hit2_en1,hit2_en2,hit2_en3:std_logic;--hi2按键消抖程序中用到的四个变量signalreset_en,reset_en1,reset_en2,reset_en3:std_logic;--reset按键消抖程序中用到的四个变量signalserve_en,serve_en1,serve_en2,serve_en3:std_logic;--serve按键消抖程序中用到的四个变量signalnum,num1,num2,num3:integerrange0to5000000;--按键消抖程序中用到的四个计数器signalscore11,score12,score21,score22:std_logic_vector(7downto0);--4个用于控制4个7段译码器的输出端口signalclk1:std_logic;--分频之后的时钟信号signalh:integerrange1to17:=1; --signalm:integerrange0to3:=0;--m表示4个数码管的编号 --signaln:integerrange0to2:=0;signaldata:std_logic_vector(15downto0); --signalcnt1:integerrange0to200000:=0; --h、m、n、cnt1是数码管动态显示中用到的四个变量begin -----------------分频模块----------------------------PROCESS(clk) VARIABLEtime:integerRANGE0TO50000000; BEGIN IFrising_edge(clk)THEN time:=time+1; IF(time=25000000)THEN clk1<='1'; ELSIF(time=50000000)THEN clk1<='0'; time:=0; ENDIF; ENDIF; ENDPROCESS;-------------主程序模块--------------------------------- process(clk1,reset)--clk作为敏感信号触发进程begin --进程开始 ifreset='0'then--异步置位 i<=0; count1<="00000"; count2<="00000"; elsif(rising_edge(clk1))then--当处于时钟inclock上升沿时 ifcount1="10101"orcount2="10101"then i<=0; count1<="00000";--count1和count2分别为甲、乙的得分 count2<="00000"; else--以下case语句是程序中最关键的状态机部分 casestateis whenwaitserve=>--进程处于等待发球状态 ifserve='0'then i<=1; state<=light1on; elsei<=6; state<=light6on; endif; whenlight1on=>--进程处于第一盏灯亮状态 i<=2; ifhit2_en='0'then i<=0; count1<=count1+1;--甲得一分 state<=waitserve; else state<=ballmoveto2; endif; whenlight6on=>--进程处于第6盏灯亮状态 i<=5; ifhit1_en='0'then i<=0; count2<=count2+1;--乙得一分 state<=waitserve; else state<=ballmoveto1; endif; whenballmoveto1=>--进程处于球向甲移动状态 ifhit1_en='0'then i<=0; count2<=count2+1; state<=waitserve; elsifi=2theni<=1; state<=allow1hit; elsei<=i-1; state<=ballmoveto1; endif; whenballmoveto2=>--进程处于球向乙移动状态 ifhit2_en='0'then i<=0; count1<=count1+1; state<=waitserve; elsifi=5theni<=6; state<=allow2hit; elsei<=i+1; state<=ballmoveto2; endif; whenallow1hit=>--进程处于允许甲击球状态 ifhit1_en='0'theni<=2; state<=ballmoveto2; elsecount2<=count2+1; i<=0; state<=waitserve; endif; whenallow2hit=>--进程处于允许乙击球状态 ifhit2_en='0'then i<=5; state<=ballmoveto1; else count1<=count1+1; i<=0; state<=waitserve; endif; endcase; endif; endif;endprocess;----------------------按键消抖模块-------------------------------hit1按键消抖程序process(clk)beginifrising_edge(clk)then hit1_en1<=hit1;endif;endprocess;process(clk)beginifrising_edge(clk)then hit1_en2<=hit1_en1;endif;endprocess;hit1_en3<=hit1_en1andnothit1_en2;process(clk)beginifrising_edge(clk)then ifhit1_en3='0'then num<=num+1; elsenum<=0; endif;endif;endprocess;process(clk)beginifrising_edge(clk)then ifnum=5000000then-----消抖程序主要是用计数法,按键只有保持了一定长度的时间才算确认按下 hit1_en<=hit1_en1; elsenull; endif;endif;endprocess;-----hit2按键消抖程序process(clk)beginifrising_edge(clk)then hit2_en1<=hit2;endif;endprocess;process(clk)beginifrising_edge(clk)then hit2_en2<=hit2_en1;endif;endprocess;hit2_en3<=hit2_en1andnothit2_en2;process(clk)beginifrising_edge(clk)then ifhit2_en3='0'then num1<=num1+1; elsenum1<=0; endif;endif;endprocess;process(clk)beginifrising_edge(clk)then ifnum1=5000000then----消抖程序主要是用计数法,按键只有保持了一定长度的时间才算确认按下 hit2_en<=hit2_en1; elsenull; endif;endif;endprocess;----reset按键消抖程序process(clk)beginifrising_edge(clk)then reset_en1<=reset;endif;endprocess;process(clk)beginifrising_edge(clk)then reset_en2<=reset_en1;endif;endprocess;reset_en3<=reset_en1andnotreset_en2;process(clk)beginifrising_edge(clk)then ifreset_en3='0'then num2<=num2+1; elsenum2<=0; endif;endif;endprocess;process(clk)beginifrising_edge(clk)then ifnum2=5000000then----消抖程序主要是用计数法,按键只有保持了一定长度的时间才算确认按下 reset_en<=reset_en1; elsenull; endif;endif;endprocess;----serve按键消抖程序process(clk)beginifrising_edge(clk)then serve_en1<=serve;endif;endprocess;process(clk)beginifrising_edge(clk)then serve_en2<=serve_en1;endif;endprocess;serve_en3<=serve_en1andnotserve_en2;process(clk)beginifrising_edge(clk)then ifserve_en3='0'then num3<=num3+1; elsenum3<=0; endif;endif;endprocess;process(clk)beginifrising_edge(clk)then ifnum3=5000000then---消抖程序主要是用计数法,按键只有保持了一定长度的时间才算确认按下 serve_en<=serve_en1; elsenull; endif;endif;endprocess;-----------------流水灯模拟乒乓球模块-----------------------process(i) --进程处i信号控制发光二极管的亮暗begin ifreset='1'then caseiis when1=>light_r<="111110"; when2=>light_r<="111101"; when3=>light_r<="111011"; when4=>light_r<="110111"; when5=>light_r<="101111"; when6=>light_r<="011111"; whenothers=>light_r<="000000"; endcase; elselight_r<="000000"; endif;light<=light_r;endprocess;-----------------数码管译码模块------------------------------process(count1)-----显示甲得分数begin casecount1is -----共阳数码管七段译码 when"00000"=>score11<="00000011";score12<="00000011";----数码管显示0 when"00001"=>score11<="00000011";score12<="10011111";----数码管显示1 when"00010"=>score11<="00000011";score12<="00100101";----数码管显示2 when"00011"=>score11<="00000011";score12<="00001101";----数码管显示3 when"00100"=>score11<="00000011";score12<="10011001";----数码管显示4 when"00101"=>score11<="00000011";score12<="01001001";----数码管显示5 when"00110"=>score11<="00000011";score12<="01000001";----数码管显示6 when"00111"=>score11<="00000011";score12<="00011111";----数码管显示7 when"01000"=>score11<="00000011";score12<="00000001";----数码管显示8 when"01001"=>score11<="00000011";score12<="00001001";----数码管显示9 when"01010"=>score11<="10011111";score12<="00000011";----数码管显示10 when"01011"=>score11<="10011111";score12<="10011111";----数码管显示11 whenothers=>score11<="00000011";score12<="00000011";----数码管显示0 endcase;endprocess;process(count2)-----显示乙得分数begin casecount2is ---共阳数码管七段译码 when"00000"=>score21<="00000011";score22<="00000011"; when"00001"=>score21<="00000011";score22<="10011111"; when"00010"=>score21<="00000011";score22<="00100101"; when"00011"=>score21<="00000011";score22<="00001101"; when"00100"=>score21<="00000011";score22<="10011001"; when"00101"=>score21<="00000011";score22<="01001001"; when"00110"=>score21<="00000011";score22<="01000001"; when"00111"=>score21<="00000011";score22<="00011111"; when"01000"=>score21<="00000011";score22<="00000001"; when"01001"=>score21<="00000011";score22<="00001001"; when"01010"=>score21<="10011111";score22<="00000011";----数码管显示10 when"01011"=>score21<="10011111";score22<="10011111";----数码管显示11 whenothers=>score21<="00000011";score22<="00000011"; endcase;endprocess;---------------数码管动态显示模块-------------------------------- process(clk)begin if(rising_edge(clk))then casemis --m从0到3分别表示选通第1到4个数码管 when0=> ifn=0then data(15downto8)<="11011111";--data的高8位是数码管选通段,选通第三个数码管 data(7downto0)<=score21(7downto0);--data的低8位是记录比分 n<=n+1; elsifn=1then stcp<='0'; --stcp是并行输出时钟 shcp<='0'; --shcp是移位时钟 n<=n+1; ser_data<=data(0); else shcp<='1'; --移位时钟上升沿到了,则输入一个数据 data<=data(0)&data(15downto1);--data右移一位 ifh=16then--h是移位次数 h<=h+1; elsifh=17then stcp<='1'; --并行输出时钟上升沿到了,把16位数据导入完毕 cnt1<=cnt1+1; ifcnt1=200000then m<=m+1; cnt1<=0; n<=0; h<=1; endif; else n<=n-1; h<=h+1; stcp<='0'; endif; endif; when1=> ifn=0then data(15downto8)<="1110
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山西农业大学《运动生理学》2025-2026学年期末试卷
- 太原理工大学《传媒伦理与法规》2025-2026学年期末试卷
- 上海健康医学院《犯罪学》2025-2026学年期末试卷
- 太原幼儿师范高等专科学校《商务沟通》2025-2026学年期末试卷
- 沈阳农业大学《货币金融学》2025-2026学年期末试卷
- 上海纽约大学《草坪学》2025-2026学年期末试卷
- CA-II-TNAP-IN-1-生命科学试剂-MCE
- BMY-25282-BL-6782-生命科学试剂-MCE
- 锑白炉工操作安全强化考核试卷含答案
- 乳品加工工岗前工作质量考核试卷含答案
- 2025-2030年中国高强钢焊丝行业深度研究分析报告
- 幕墙工程量计算规则
- 电力工程重大危险源识别与安全措施
- 2025年陕西榆能化学材料公司招聘笔试参考题库含答案解析
- 生活垃圾填埋场渗滤液处理设计方案
- 跨河道连续箱梁现浇支架施工方案
- 前程无忧行测题库及答案大全
- 2024建安杯信息通信建设行业安全竞赛题库(试题含答案)
- 武汉市2024年九年级四月调考数学试卷及答案
- DZ/T 0452.2-2023 稀土矿石化学分析方法 第2部分:铝、铁、钙、镁、钾、钠、钛、锰、磷及15个稀土元素含量测定 混合酸分解―电感耦合等离子体原子发射光谱法(正式版)
- 四川省雅安市2024年九年级中考一诊历史试卷
评论
0/150
提交评论