




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、专业:_电子信息工程_姓名:_陈华杰_学号:_日期:_4月4日_地点:应电楼303桌号2组 实验报告课程名称:_FPGA实验_指导老师:_竺红卫/陈宏_成绩:_实验名称:_液晶屏的显示设计_实验类型:_FPGA实验_同组学生姓名:_一、 实验目的1. 熟悉实验板上液晶屏的工作原理;2. 熟悉驱动电路的源代码。二、实验装置1. 电脑一台;2. 实验板一块;3. 实验板电源一只;4. 实验板连接电脑的下载线一根。三、实验原理实验板显著的特征是2 线16 字符液晶显示器LCD。尽管LCD 支持8 位的数据接口,为了与其它的XILINX 的开发板保持兼容并且尽可能减少针脚数, FPGA 仅通过4 位的
2、数据接口线控制LCD, LCD 通过使用ASCII 标准和自定义字符可以有效地显示多种信息。但是,这些显示速度并不是很快。每半秒扫描一次以测试实际清晰度的界限。与50MHz 时钟频率相比,这样的显示速度是慢的。 PicoBlaze 处理器可以有效地控制显示时间和显示内容。字符 LCD 的供电电压是5V。 FPGA 的I/O 口信号的电压是3.3V。但是, FPGA 的输出电平是通过LCD 来识别是有效的低电平还是高电平。 LCD 控制器接收5V TTL 信号电平, FPGA输出3.3V 的LCMOS 以满足5V TTL 电压要求。数据线上的390 欧串联电阻,当LCD 驱动一个逻辑高电平时,其
3、用来防止了FPGA 和SrtataFlsah I/O 管脚的超负载。当LCD_RW 为高时, LCD驱动数据线。在绝大多数应用中, LCD作为只读外围设备,几乎没有从显示器读数据。四、操作方法和实验步骤对于程序的各个步骤,如新建项目、新建Verilog HDL、新建.ucf文件、Synthesize、Implement Design、Generate Programming File、Configure Target Device等等,在实验一中已经展示过,每一次实验的基本操作步骤都是差不多的,故这里不再重复阐述。本次实验总共需要做三份程序并观察现象:1)例程2)设计按键拨动时显示小时、分钟和
4、秒,中间分别空一格。3)按键拨动开始显示,10秒钟显示结束,结束时LCD上显示ABCDEF,同时八只LED灯亮。五、实验源代码和现象1)例程UCF文件如下:NET CLK_50MHZ LOC=C9;NET LCD_D LOC=R15;NET LCD_D LOC=R16;NET LCD_D LOC=P17;NET LCD_D LOC=M15;NET LCD_E LOC=M18;NET LCD_RS LOC=L18;NET LCD_RW LOC=L17;源代码如下:module lcd_write_number_test(input CLK_50MHZ,output LCD_E,output LC
5、D_RS,output LCD_RW,output 3:0 LCD_D);wire if_ready;reg if_write;reg 31:0 if_data;reg 1:0 state;reg 31:0 cntr;parameter IDLE = 2b00,IF_WRITE_1 = 2b01,SET_IF_WRITE_0 = 2b10,WAIT = 2b11;/ Instantiate the Unit Under Test (UUT)lcd_write_number uut(.CLK_50MHZ(CLK_50MHZ),.LCD_E(LCD_E),.LCD_RS(LCD_RS),.LCD_
6、RW(LCD_RW),.LCD_D(LCD_D),.if_data(if_data),.if_write(if_write),.if_ready(if_ready);initial beginif_data = 32habba0123;state = IDLE;if_write = 1b0;cntr = 32b0;endalways (posedge CLK_50MHZ) begincase (state)IDLE:if (if_ready) beginif_data = if_data + 1b1;if_write = 1b1;state = IF_WRITE_1;cntr = 32b0;e
7、ndIF_WRITE_1: / this state to keep if_write up for 2 cyclesstate = SET_IF_WRITE_0;SET_IF_WRITE_0: / set if_write 0 and start the counterbeginif_write = 1b0;state = WAIT;cntr = 32b0;endWAIT:if (cntr ) / wait for 0.5 secondscntr = cntr + 32b1;elsestate = IDLE;endcaseendendmoduletimescale 1ns / 1psmodu
8、le lcd_write_number(input CLK_50MHZ,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D,input 31:0 if_data,input if_write,output if_ready);reg 7:0 disp_data;reg disp_rs;reg 31:0 disp_delay;reg disp_write;wire disp_ready;reg disp_b8;reg 7:0 char;reg 1:0 state;reg 31:0 number;reg init_done;reg r
9、unning;reg 4:0 shift_cntr;reg if_ready_r;assign if_ready = if_ready_r;lcd_display display(.clk(CLK_50MHZ),.rst(1b0),.lcd_e(LCD_E),.lcd_rw(LCD_RW),.lcd_rs(LCD_RS),.lcd_d(LCD_D),.if_data(disp_data),.if_rs(disp_rs),.if_delay(disp_delay),.if_write(disp_write),.if_ready(disp_ready),.if_8bit(disp_b8);para
10、meter NB_CHARS = 8d12;parameter START = 2b00,WAIT_WRITE_0 = 2b01,WRITE_1 = 2b10,WAIT_WRITE_1 = 2b11;initial beginstate = 2b00;char = 8b0;init_done = 1b0;if_ready_r = 1b0;shift_cntr 8d16) beginif (disp_ready)if_ready_r = 1b1;if (if_write) beginchar = 4d8; / reset the displayendend else if (char = 8d1
11、6) beginif_ready_r = 1b0;case (state)START:if (disp_ready) begindisp_write = 1b1;state = WAIT_WRITE_0;endWAIT_WRITE_0:state = WRITE_1;WRITE_1:begindisp_write = 1b0;state = 2b11;endWAIT_WRITE_1:beginstate =START;char = char + 8b1;endendcase / case (state)end / else: !if(!running)end / always (posedge
12、 CLK_50MHZ)always (negedge CLK_50MHZ) begin/ these next steps initialize the LCD display:case (char)0:begindisp_b8 = 1b0;disp_data = 8h30;disp_delay = 32d;disp_rs = 1b0;end1: disp_data = 8h30;2:begindisp_data = 8h30;disp_delay = 32d;end3:begindisp_data = 8h20;disp_delay = 32d20000;end4:begindisp_b8
13、= 1b1;disp_data = 8h28;end5: disp_data = 8h06;6: disp_data = 8h0C;7:begindisp_data = 8h01;disp_delay = 32d;init_done = 1b1;shift_cntr = 5d9;end8: / this state provides an entry point to reset the display and then/ go on to the default state that writes the numberbegindisp_rs = 1b0;disp_data = 8h01;d
14、isp_delay = 32d;shift_cntr = 5b0;number = if_data;enddefault:/ state machine to print a 32-bit number outif (disp_ready & state = START) beginif (shift_cntr 5d8) begindisp_rs = 1b1;disp_delay = 32d20000;if (number31:28 4b1010)disp_data = number31:28 + 8h30;elsedisp_data = number31:28 + 8h37;number =
15、 number 4;shift_cntr = shift_cntr + 5b1;endendendcase / case (char)end / always (negedge CLK_50MHZ)endmoduletimescale 1ns / 1psmodule lcd_display(input clk,input rst,output lcd_e,output lcd_rw,output lcd_rs,output 3:0 lcd_d,input 7:0 if_data,input if_rs,input 31:0 if_delay,input if_write,output if_r
16、eady,input if_8bit);reg 2:0 state;reg lcdr_e;reg 3:0 lcdr_d;reg 31:0 wait_cntr;reg ready;reg init_done;parameter IDLE = 3b000,WAIT_PULSE_E_0 = 3b001,LOAD_LOWER_NIBBLE = 3b010,WAIT_PULSE_E_1 = 3b011,WAIT_COMMAND = 3b100;parameter PULSE_E_DLY = 32d12;parameter INIT_TIME = 32d;assign lcd_d = lcdr_d;ass
17、ign lcd_rs = if_rs;assign lcd_rw = 1b0;assign lcd_e = lcdr_e;assign if_ready = ready;initial beginstate = IDLE;ready = 1b0;lcdr_e = 1b0;init_done = 1b0;endalways (posedge clk) beginif (rst) beginstate = IDLE;end else if (!init_done) beginif (wait_cntr INIT_TIME)wait_cntr = wait_cntr + 1;else beginin
18、it_done = 1b1;ready = 1b1;endend else begincase (state)IDLE:beginif (if_write) beginlcdr_e = 1b1;lcdr_d = if_data7:4; / upper nibble firstready = 1b0;wait_cntr = 32b0;state = WAIT_PULSE_E_0;endendWAIT_PULSE_E_0:if (wait_cntr PULSE_E_DLY) beginwait_cntr = wait_cntr + 1;end else beginlcdr_e = 1b0;wait
19、_cntr = 0;if (if_8bit)state = LOAD_LOWER_NIBBLE;elsestate = WAIT_COMMAND;endLOAD_LOWER_NIBBLE:if (wait_cntr PULSE_E_DLY) beginwait_cntr = wait_cntr + 1;end else beginwait_cntr = 0;lcdr_e = 1b1;lcdr_d = if_data3:0; / lower nibblestate = WAIT_PULSE_E_1;endWAIT_PULSE_E_1:if (wait_cntr PULSE_E_DLY) begi
20、nwait_cntr = wait_cntr + 1;end else beginlcdr_e = 1b0;wait_cntr = 0;state = WAIT_COMMAND;endWAIT_COMMAND:if (wait_cntr if_delay) beginwait_cntr = wait_cntr + 32b1;end else beginwait_cntr = 0;if (!if_write) beginstate = IDLE;ready = 1b1;endendendcase / case (state)endendendmodule共有三个module,它们的包含关系为lc
21、d_write_number_test包含lcd_write_number,lcd_write_number包含lcd_display,下同。实验现象:如下图,刚烧录程序完时,LCD前8位依次显示十六进制数“ABBA0123”,然后每过0.5秒,该数值增一,满十六进位。2)设计按键拨动时显示小时、分钟和秒,中间分别空一格。UCF文件如下:NET CLK_50MHZ LOC=C9;NET LCD_D LOC=R15;NET LCD_D LOC=R16;NET LCD_D LOC=P17;NET LCD_D LOC=M15;NET LCD_E LOC=M18;NET LCD_RS LOC=L18;
22、NET LCD_RW LOC=L17;NET SW1 LOC=L14;源代码如下:module lcd_write_number_test(input SW1,input CLK_50MHZ,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D);wire if_ready;reg if_write;reg 31:0 if_data;reg 1:0 state;reg 31:0 cntr;parameter IDLE = 2b00,IF_WRITE_1 = 2b01,SET_IF_WRITE_0 = 2b10,WAIT = 2b11
23、;/ Instantiate the Unit Under Test (UUT)lcd_write_number uut(.SW1(SW1),.CLK_50MHZ(CLK_50MHZ),.LCD_E(LCD_E),.LCD_RS(LCD_RS),.LCD_RW(LCD_RW),.LCD_D(LCD_D),.if_data(if_data),.if_write(if_write),.if_ready(if_ready);initial beginif_data = 32h;state = IDLE;if_write = 1b0;cntr = 32b0;endalways (posedge CLK
24、_50MHZ) begincase (state)IDLE:if (if_ready) beginif(if_data31:0=32h)if_data = 32h0;else if(if_data27:0=28h)if_data = if_data + 32h6fa6fa7;else if(if_data19:0=20h59059)if_data = if_data + 32hfa6fa7;else if(if_data15:0=16h9059)if_data = if_data + 32h6fa7;else if(if_data7:0=8h59)if_data = if_data + 32h
25、fa7;else if(if_data3:0=4h9)if_data = if_data + 32h7;else if_data = if_data + 1b1;if_write = 1b1;state = IF_WRITE_1;cntr = 32b0;endIF_WRITE_1: / this state to keep if_write up for 2 cyclesstate = SET_IF_WRITE_0;SET_IF_WRITE_0: / set if_write 0 and start the counterbeginif_write = 1b0;state = WAIT;cnt
26、r = 32b0;endWAIT:if (cntr ) / wait for 1 secondscntr = cntr + 32b1;elsestate = IDLE;endcaseendendmoduletimescale 1ns / 1psmodule lcd_display(input clk,input rst,output lcd_e,output lcd_rw,output lcd_rs,output 3:0 lcd_d,input 7:0 if_data,input if_rs,input 31:0 if_delay,input if_write,output if_ready,
27、input if_8bit);reg 2:0 state;reg lcdr_e;reg 3:0 lcdr_d;reg 31:0 wait_cntr;reg ready;reg init_done;parameter IDLE = 3b000,WAIT_PULSE_E_0 = 3b001,LOAD_LOWER_NIBBLE = 3b010,WAIT_PULSE_E_1 = 3b011,WAIT_COMMAND = 3b100;parameter PULSE_E_DLY = 32d12;parameter INIT_TIME = 32d;assign lcd_d = lcdr_d;assign l
28、cd_rs = if_rs;assign lcd_rw = 1b0;assign lcd_e = lcdr_e;assign if_ready = ready;initial beginstate = IDLE;ready = 1b0;lcdr_e = 1b0;init_done = 1b0;endalways (posedge clk) beginif (rst) beginstate = IDLE;end else if (!init_done) beginif (wait_cntr INIT_TIME)wait_cntr = wait_cntr + 1;else begininit_do
29、ne = 1b1;ready = 1b1;endend else begincase (state)IDLE:beginif (if_write) beginlcdr_e = 1b1;lcdr_d = if_data7:4; / upper nibble firstready = 1b0;wait_cntr = 32b0;state = WAIT_PULSE_E_0;endendWAIT_PULSE_E_0:if (wait_cntr PULSE_E_DLY) beginwait_cntr = wait_cntr + 1;end else beginlcdr_e = 1b0;wait_cntr
30、 = 0;if (if_8bit)state = LOAD_LOWER_NIBBLE;elsestate = WAIT_COMMAND;endLOAD_LOWER_NIBBLE:if (wait_cntr PULSE_E_DLY) beginwait_cntr = wait_cntr + 1;end else beginwait_cntr = 0;lcdr_e = 1b1;lcdr_d = if_data3:0; / lower nibblestate = WAIT_PULSE_E_1;endWAIT_PULSE_E_1:if (wait_cntr PULSE_E_DLY) beginwait
31、_cntr = wait_cntr + 1;end else beginlcdr_e = 1b0;wait_cntr = 0;state = WAIT_COMMAND;endWAIT_COMMAND:if (wait_cntr if_delay) beginwait_cntr = wait_cntr + 32b1;end else beginwait_cntr = 0;if (!if_write) beginstate = IDLE;ready = 1b1;endendendcase / case (state)endendendmoduletimescale 1ns / 1psmodule
32、lcd_write_number(input CLK_50MHZ,input SW1,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D,input 31:0 if_data,input if_write,output if_ready);reg 7:0 disp_data;reg disp_rs;reg 31:0 disp_delay;reg disp_write;wire disp_ready;reg disp_b8;reg 7:0 char;reg 1:0 state;reg 31:0 number;reg init_don
33、e;reg running;reg 4:0 shift_cntr;reg if_ready_r;assign if_ready = if_ready_r;lcd_display display(.clk(CLK_50MHZ),.rst(1b0),.lcd_e(LCD_E),.lcd_rw(LCD_RW),.lcd_rs(LCD_RS),.lcd_d(LCD_D),.if_data(disp_data),.if_rs(disp_rs),.if_delay(disp_delay),.if_write(disp_write),.if_ready(disp_ready),.if_8bit(disp_b
34、8);parameter NB_CHARS = 8d12;parameter START = 2b00, WAIT_WRITE_0 = 2b01, WRITE_1 = 2b10, WAIT_WRITE_1 = 2b11; initial beginstate = 2b00;char = 8b0;init_done = 1b0;if_ready_r = 1b0;shift_cntr 8d16) begin if (disp_ready) if_ready_r = 1b1; if (if_write) begin char = 4d8; / reset the display endend els
35、e if (char = 8d16) begin if_ready_r = 1b0; case (state) START:if (disp_ready) begindisp_write = 1b1;state = WAIT_WRITE_0;endWAIT_WRITE_0:state = WRITE_1;WRITE_1:begindisp_write = 1b0;state = 2b11;endWAIT_WRITE_1:beginstate = START;char = char + 8b1;endendcase / case (state)end / else: !if(!running)e
36、nd / always (posedge CLK_50MHZ)always (negedge CLK_50MHZ) begin/ these next steps initialize the LCD display:case (char)0:begindisp_b8 = 1b0;disp_data = 8h30;disp_delay = 32d;disp_rs = 1b0;end1: disp_data = 8h30;2:begindisp_data = 8h30;disp_delay = 32d;end3:begindisp_data = 8h20;disp_delay = 32d2000
37、0;end4:begindisp_b8 = 1b1;disp_data = 8h28;end5: disp_data = 8h06;6: disp_data = 8h0C;7:begindisp_data = 8h01;disp_delay = 32d;init_done = 1b1;shift_cntr = 5d9;end8: / this state provides an entry point to reset the display and then/ go on to the default state that writes the numberbegindisp_rs = 1b
38、0;disp_data = 8h01;disp_delay = 32d;shift_cntr = 5b0;number = if_data;enddefault:/ state machine to print a 32-bit number outif (SW1)beginif (disp_ready & state = START) begin if (shift_cntr 5d8) begin disp_rs = 1b1; disp_delay = 32d20000; if(shift_cntr = 5d2) | (shift_cntr = 5d5) begin disp_data =
39、8h20; endelse begin if (number31:28 4b1010) disp_data = number31:28 + 8h30; else disp_data = number31:28 + 8h37; endnumber = number 4; shift_cntr = shift_cntr + 5b1;endendendendcase / case (char)end / always (negedge CLK_50MHZ)endmodule实验现象:当SW1为低电平时,LCD无显示。SW1向上拨后,如下图,LCD显示小时、分钟和秒,中间分别空一格,且该输出显示会按照
40、时钟的样式计时、刷新,每过一秒钟秒位进一,秒的个位满10进位,秒数满60则分数增一当SW1再次向下拨,LCD显示关闭,但始终仍然在计时。程序刚烧进板子时,时钟的初始时间是人为设定的19时44分12秒。3)按键拨动开始显示,10秒钟显示结束,结束时LCD上显示ABCDEF,同时八只LED灯亮。UCF文件如下:NET CLK_50MHZ LOC=C9;NET LCD_D LOC=R15;NET LCD_D LOC=R16;NET LCD_D LOC=P17;NET LCD_D LOC=M15;NET LCD_E LOC=M18;NET LCD_RS LOC=L18;NET LCD_RW LOC=L
41、17;NET SW1 LOC=L14;NET LED0 LOC=F12;NET LED1 LOC=E12;NET LED2 LOC=E11;NET LED3 LOC=F11;NET LED4 LOC=C11;NET LED5 LOC=D11;NET LED6 LOC=E9;NET LED7 LOC=F9;源代码如下:module lcd_write_number_test(input CLK_50MHZ,input SW1,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D,output LED0,output LED1,outp
42、ut LED2,output LED3,output LED4,output LED5,output LED6,output LED7);wire if_ready;reg if_write;reg 31:0 if_data;reg 1:0 state;reg 31:0 cntr;parameter IDLE = 2b00,IF_WRITE_1 = 2b01,SET_IF_WRITE_0 = 2b10,WAIT = 2b11;/ Instantiate the Unit Under Test (UUT)lcd_write_number uut(.SW1(SW1),.CLK_50MHZ(CLK_
43、50MHZ),.LCD_E(LCD_E),.LCD_RS(LCD_RS),.LCD_RW(LCD_RW),.LCD_D(LCD_D),.if_data(if_data),.if_write(if_write),.if_ready(if_ready),.LED0(LED0),.LED1(LED1),.LED2(LED2),.LED3(LED3),.LED4(LED4),.LED5(LED5),.LED6(LED6),.LED7(LED7);initial beginif_data = 32h;state = IDLE;if_write = 1b0;cntr = 32b0;endalways (p
44、osedge CLK_50MHZ) begincase (state)IDLE:if (if_ready) beginif(if_data31:0=32h)if_data = 32h0;else if(if_data27:0=28h)if_data = if_data + 32h6fa6fa7;else if(if_data19:0=20h59059)if_data = if_data + 32hfa6fa7;else if(if_data15:0=16h9059)if_data = if_data + 32h6fa7;else if(if_data7:0=8h59)if_data = if_
45、data + 32hfa7;else if(if_data3:0=4h9)if_data = if_data + 32h7;else if_data = if_data + 1b1;if_write = 1b1;state = IF_WRITE_1;cntr = 32b0;endIF_WRITE_1: / this state to keep if_write up for 2 cyclesstate = SET_IF_WRITE_0;SET_IF_WRITE_0: / set if_write 0 and start the counterbeginif_write = 1b0;state
46、= WAIT;cntr = 32b0;endWAIT:if (cntr ) / wait for 1 secondscntr = cntr + 32b1;elsestate = IDLE;endcaseendendmoduletimescale 1ns / 1psmodule lcd_write_number(input CLK_50MHZ,input SW1,output LCD_E,output LCD_RS,output LCD_RW,output 3:0 LCD_D,output LED0,output LED1,output LED2,output LED3,output LED4,
47、output LED5,output LED6,output LED7,input 31:0 if_data,input if_write,output if_ready);reg 7:0 disp_data;reg disp_rs;reg 31:0 disp_delay;reg disp_write;wire disp_ready;reg disp_b8;reg 7:0 char;reg 1:0 state;reg 31:0 number;reg init_done;reg running;reg 4:0 shift_cntr;reg if_ready_r;reg 28:0 cnt;reg
48、cnt_state;reg light;assign if_ready = if_ready_r;lcd_display display(.clk(CLK_50MHZ),.rst(1b0),.lcd_e(LCD_E),.lcd_rw(LCD_RW),.lcd_rs(LCD_RS),.lcd_d(LCD_D),.if_data(disp_data),.if_rs(disp_rs),.if_delay(disp_delay),.if_write(disp_write),.if_ready(disp_ready),.if_8bit(disp_b8);parameter NB_CHARS = 8d12
49、;parameter START = 2b00, WAIT_WRITE_0 = 2b01, WRITE_1 = 2b10, WAIT_WRITE_1 = 2b11; initial beginstate = 2b00;char = 8b0;init_done = 1b0;if_ready_r = 1b0;shift_cntr = 5b0;cnt_state = 1b0;cnt = 29b0;light 8d16) begin if (disp_ready) if_ready_r = 1b1; if (if_write) begin char = 4d8; / reset the display endend else if (char = 8d16) begin if_ready_r = 1b0; case (sta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度车辆租赁与智能停车系统合作合同范本
- 2025版商业综合体包干制物业管理服务协议
- 二零二五年度绿色环保型安置房室内装饰装修工程施工合同
- 二零二五年度环保设施安装工程一切险全面保障合同
- 2025版厂房装修及智能化安防系统建设合同
- 二零二五年政府机关安全保卫及保密工作服务协议
- 2025版高新技术产业园区厂房租赁合同范本
- 2025版汽车维修行业安全生产责任合同
- 文艺部学期工作方案
- 二零二五年度城市园林绿化工程安装承包合同
- 摩托车买卖协议书电子版(2篇)
- 1输变电工程施工质量验收统一表式(线路工程)
- 专利知识产权全套流程图
- 2023年中医基础理论知识题库与答案
- 上海2022年浦发银行人力资源部社会招聘(0111)考试模拟卷3套含答案详解
- 国家重点研发计划“公共安全风险防控与应急技术装备”2023年立项项目
- 酸雾抑制剂化学品安全技术说明书
- 重点监管的危险化学品名录(完整版)
- 解三角形专题 - (解析版)
- 高等教育心理学学习提纲整理
- 个人信用报告异议申请表
评论
0/150
提交评论