




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验报告项目名称 智能洗衣机控制器的设计 课程名称 电子技术课程设计 课程设计日期 2011/2/24 班 级 学 号 姓 名 成 绩 目录一、已知条件3二、性能指标要求3三、输入输出设计3四、模块对应器件的设计4五、asm图设计4六、完整程序代码7七、管脚分配30八、时序仿真31九、实验总结43一、 已知条件用verilog设计一个智能洗衣机控制器。 二、 性能指标要求 设计一个智能洗衣机(全自动洗衣机)控制器,能够实现洗衣,漂洗和脱水的功能。 要求能够使用按键模拟对洗衣机的控制,能够设置工作模式,为了便于观察,将洗衣机的工作模式和所剩的工作时间用数码管显示出来,能够将洗衣机当前所处的状态用
2、发光管或者数码管显示出来。【模式1】 :洗特别脏的衣服( 洗衣30秒钟)【模式2】 :洗脏的衣服 (洗衣20秒钟)【模式3】 :洗一般的衣服(洗衣10秒钟)【模式4】 :漂洗(每次漂洗5秒钟)【模式5】 :脱水(每次脱水3秒钟)【洗衣全过程】:洗衣脱水漂洗脱水漂洗脱水,注水完成使用外部传感器s=1表示。【漂洗模式】:漂洗脱水漂洗脱水,注水完成使用外部传感器s=1表示。【脱水模式】:脱水。【注】:操作完毕使用蜂鸣器鸣叫两秒提示。 画出洗衣机控制器的状态机,写出状态编码方案。 用verilog语言对设计进行描述,设计一个测试方案,通过muxplus对设计进行仿真验证。并能够下载到实验板上调试成功。
3、 写出设计性实验报告,并打印各层次的源文件和仿真波形,然后作简要说明。 并谈谈此次实验的收获、感想及建议三、 输入输出设计输入:1hz时钟七个按键:复位启动模式选择注水完成洗衣全过程漂洗脱水输出:状态数码管,显示05模式选择数码管,显示05秒钟数码管,十位数码管、个位数码管,可显示030蜂鸣器四、 模块对应器件的设计 模式选择: 一个5进制加计数器,用数码管显示05。用一个按键做触发时钟模式1:30进制减计数器,用1hz时钟模式2:20进制减计数器,用1hz时钟模式3:10进制减计数器,用1hz时钟模式4:5进制减计数器,用1hz时钟模式5:3进制减计数器,用1hz时钟三个组合选择:用三个按键
4、洗衣全过程:49进制减计数器,用1hz时钟 (30+3+5+3+5+3=49)漂洗模式:39进制减计数器,用1hz时钟(20+3+5+3+5+3=39)脱水模式:29进制减计数器,用1hz时钟(10+3+5+3+5+3=29)注水完成:一个按键控制(s) 蜂鸣器:2进制减计数器。1hz时钟启动:一个按键控制复位:一个按键控制五、 asm图设计 a) 整机asm图b) 控制器asm图符号说明:cr:复位状态s1s5:模式1模式5 状态mode:模式选择s:外部传感器,表示注水完成fullpro:全过程洗衣rinsemode:漂洗模式beep:蜂鸣状态end:终止状态原理说明:用户可以选择单选模式
5、和组合模式:在单选模式下,用户选择5种模式中的一种,模式终止之后即进入蜂鸣报警(beep)状态,不再进行其他模式。其中,模式14要保证注水完成(s=1)才能进行。在组合模式下:1、 用户如果选择的是模式1模式3(mode=13),如果注水完成(s=1),则进行“洗衣(s1s3) 脱水(s5)漂洗(s4)脱水(s5)漂洗(s4)脱水(s5)”,洗衣过程的时间长短由用户选择的模式1模式3决定。2、 用户如果选择了模式4(mode=4),如果注水完成(s=1),则进行“漂洗(s4)脱水(s5)漂洗(s4)脱水(s5)”3、 用户如果选择了模式5(mode=4) ,则进行“脱水(s5)”组合模式结束后
6、,进入蜂鸣报警状态(beep),系统终止。 六、 完整程序代码/=washer.v=/module washer(state,mode,second,beep,cp,ncr,en,modech,fullpro,rinse,dehy,_500hz,s);input cp,ncr,en,modech,fullpro,rinse,dehy,_500hz,s;output7:0second;output3:0state,mode;output beep;reg7:0second;reg3:0state,mode;reg beep;reg modeend;wire mode_en; wire verye
7、n,dirtyen,normen,rinseen,dehyen,fmodeen,rmodeen,dmodeen;wire stop; supply1 vdd;reg3:0state1,state2,state3,state4,state5,state6,state7,state8;reg7:0second1,second2,second3,second4,second5,second6,second7,second8;reg countend,countend1,countend2,countend3,countend4,countend5,countend6,countend7,counte
8、nd8; /*模式选择*/assign mode_en=vdd&&(en);count5asc u1(mode,modeend,ncr,mode_en,modech);/*单选模式*/assign veryen=vdd&&en&&(stop)&&(fullpro)&&(rinse)&&(dehy)&&(mode=4'b0001)&&s;assign dirtyen=vdd&&en&&(stop)&&(fullpr
9、o)&&(rinse)&&(dehy)&&(mode=4'b0010)&&s;assign normen=vdd&&en&&(stop)&&(fullpro)&&(rinse)&&(dehy)&&(mode=4'b0011)&&s;assign rinseen=vdd&&en&&(stop)&&(fullpro)&&(rinse)&&
10、amp;(dehy)&&(mode=4'b0100)&&s;assign dehyen=vdd&&en&&(stop)&&(fullpro)&&(rinse)&&(dehy)&&(mode=4'b0101);verydirty u2(state1,second1,countend1,cp,ncr,veryen);/模式1dirty u3(state2,second2,countend2,cp,ncr,dirtyen); /模式2normal u4(st
11、ate3,second3,countend3,cp,ncr,normen); /模式3rinse u5(state4,second4,countend4,cp,ncr,rinseen); /模式4dehydration u6(state5,second5,countend5,cp,ncr,dehyen); /模式5/*组合模式*/assign fmodeen=vdd&&en&&(stop)&&(fullpro)&&(rinse)&&(dehy)&&(mode>=4'b0001&
12、&mode<=4'b0011);assign rmodeen=vdd&&en&&(stop)&&(fullpro)&&(rinse)&&(dehy)&&(mode=4'b0100);assign dmodeen=vdd&&en&&(stop)&&(fullpro)&&(rinse)&&(dehy)&&(mode>=4'b0101);full u7(state6,
13、second6,countend6,cp,ncr,fmodeen,mode,s);/全过程rinsemode u8(state7,second7,countend7,cp,ncr,rmodeen,s);/漂洗模式dehydration u9(state8,second8,countend8,cp,ncr,dmodeen);/脱水模式/*选择切换模块*/always(veryen or dirtyen or normen or rinseen or dehyen or fmodeen or rmodeen or dmodeen or ncr or countend)beginif(veryen)
14、begin second<=second1;state<=state1;countend<=countend1; endif(dirtyen)begin second<=second2; state<=state2; countend<=countend2; endif(normen)begin second<=second3; state<=state3; countend<=countend3; endif(rinseen)begin second<=second4; state<=state4; countend<=
15、countend4; endif(dehyen)begin second<=second5; state<=state5; countend<=countend5; endif(fmodeen)begin second<=second6; state<=state6; countend<=countend6; endif(rmodeen)begin second<=second7; state<=state7; countend<=countend7; endif(dmodeen)begin second<=second8; stat
16、e<=state8; countend<=countend8; endif(ncr)begin second<=8'h00; state<=4'b0000; countend<=1'b0; endif(countend=1'b1)begin second<=8'h00; state<=4'b0000; endend/*蜂鸣器模块*/beeperu10(beep,cp,ncr,countend,_500hz);/*终止模块*/assign stop=countend;endmodule /= verydir
17、ty.v=/module verydirty(state,second,countend,cp,ncr,en);input cp,ncr,en;output3:0state;output7:0second;output countend;reg3:0state;reg7:0second;reg countend;count30 u1(second7:4,second3:0,countend,ncr,en,cp);always(posedge cp)if(en)beginstate<=4'b0001;endendmodule/= dirty.v=/module dirty(stat
18、e,second,countend,cp,ncr,en);input cp,ncr,en;output3:0state;output7:0second;output countend;reg3:0state;reg7:0second;reg countend;count20 u1(second7:4,second3:0,countend,ncr,en,cp);always(posedge cp)if(en)beginstate<=4'b0010;endendmodule/= normal.v=/module normal(state,second,countend,cp,ncr,
19、en);input cp,ncr,en;output3:0state;output7:0second;output countend;reg3:0state;reg7:0second;reg countend;count10 u1(second3:0,countend,ncr,en,cp);always(posedge cp)if(en)beginstate<=4'b0011;second7:4<=4'b0000;endendmodule/= rinse.v=/module rinse(state,second,countend,cp,ncr,en);input c
20、p,ncr,en;output3:0state;output7:0second;output countend;reg3:0state;reg7:0second;reg countend;count5 u1(second3:0,countend,ncr,en,cp);always(en)if(en)beginstate<=4'b0100;second7:4<=4'b0000;endendmodule/= dehydration.v=/module dehydration(state,second,countend,cp,ncr,en);input cp,ncr,en
21、;output3:0state;output7:0second;output countend;reg3:0state;reg7:0second;reg countend;count3 u1(second3:0,countend,ncr,en,cp);always(en)beginsecond7:4<=4'b0000;if(en)|(countend=1'b1)beginstate<=4'b0000;endelse if(second>8'b00000000)beginstate<=4'b0101;endendendmodule/
22、= full.v=/module full(state,second,countend,cp,ncr,en,mode,s);input cp,ncr,en,s;input3:0mode;output3:0state;output7:0second;output countend;reg3:0state;reg7:0second,second1,second2,second3;reg countend,countend1,countend2,countend3;reg flag;wire comen1;wire comen2;wire comen3;wire vdirty_en,dirty_en
23、,norm_en;supply1 vdd;assign vdirty_en=vdd&&(mode=4'b0001);assign dirty_en=vdd&&(mode=4'b0010);assign norm_en=vdd&&(mode=4'b0011);count49 u1(second17:4,second13:0,countend1,ncr,comen1,cp);count39 u2(second27:4,second23:0,countend2,ncr,comen2,cp);count29 u3(second37
24、:4,second33:0,countend3,ncr,comen3,cp);always(vdirty_en or dirty_en or norm_en)beginif(vdirty_en)begin second<=second1;countend<=countend1; endif(dirty_en)begin second<=second2;countend<=countend2; endif(norm_en)begin second<=second3;countend<=countend3; endendalways(second)beginif
25、(countend=1'b1)beginstate<=4'b0000;endelse if(second>8'b00011000&&comen1)state<=4'b0001; else if(second>8'b00011000&&comen2)state<=4'b0010; else if(second>8'b00011000&&comen3)state<=4'b0011; else if(second<=8'b000110
26、00&&second>8'b00010101)|(second<=8'b00010000&&second>8'b00000111)|(second<=8'b00000010&&second>=8'b00000000)state<=4'b0101;else state<=4'b0100;endalways(posedge cp or posedge s or negedge ncr)beginif(ncr)flag<=1'b0;else
27、if(s)flag<=1'b1;else if(second=8'b00010110)|(second=8'b00001000)flag<=1'b0;elseflag<=flag;endassign comen1=vdirty_en&&flag&&en;assign comen2=dirty_en&&flag&&en;assign comen3=norm_en&&flag&&en;endmodule/= rinsemode.v=/module rin
28、semode(state,second,countend,cp,ncr,en,s);input cp,ncr,en,s;output3:0state;output7:0second;output countend;reg3:0state;reg7:0second;reg countend;reg flag;wire comen;count16 u5(second7:4,second3:0,countend,ncr,comen,cp);always(second)beginif(countend=1'b1)beginstate<=4'b0000;endelse if(sec
29、ond<=8'b00010110&&second>=8'b00010001)|(second<8'b00001000&&second>=8'b00000011)beginstate<=4'b0100;endelse beginstate<=4'b0101;endendalways(posedge cp or posedge s or negedge ncr)beginif(ncr)flag<=1'b0;else if(s)flag<=1'b1;else
30、 if(second=8'b00010110)|(second=8'b00001000)flag<=1'b0;endassign comen=en&&flag;endmodule/= beeper.v=/module beeper(alarm,cp,ncr,beepen,_500hz);input _500hz,cp,ncr,beepen;output alarm;reg ends;reg 3:0q;supply1 vdd;count2 u1(q,ends,ncr,beepen,cp); assign alarm=beepen&&_
31、500hz&&(ends);endmodule/= count49.v=/module count49(cnth,cntl,ends,ncr,en,cp);input cp,ncr,en;output3:0cnth,cntl;output ends;reg ends;reg 3:0cnth,cntl;always(posedge cp or negedge ncr)begin if(ncr) cnth,cntl<=8'h48;else if(en) cnth,cntl<=cnth,cntl;else if(cnth<0)|(cntl<0)|(cn
32、th=0)&&(cntl<=0) )begin ends<=1'b1; endelse if(cnth=1)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=2)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=3)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1
33、9;b1; endelse if(cnth=4)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if (cntl=0)begin cnth<=cnth-1'b1; cntl<=4'b1001; endelse begin cnth<=cnth; cntl<=cntl-1'b1; end endendmodule/= count39.v=/module count39(cnth,cntl,ends,ncr,en,cp);input cp,ncr,en
34、;output3:0cnth,cntl;output ends;reg ends;reg 3:0cnth,cntl;always(posedge cp or negedge ncr)begin if(ncr) cnth,cntl<=8'h38;else if(en) cnth,cntl<=cnth,cntl;else if(cnth<0)|(cntl<0)|(cnth=0)&&(cntl<=0) )begin ends<=1'b1; endelse if(cnth=1)&&(cntl>0)begin cn
35、th<=cnth; cntl<=cntl-1'b1; endelse if(cnth=2)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=3)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if (cntl=0)begin cnth<=cnth-1'b1; cntl<=4'b1001; endelse begin cnth<=c
36、nth; cntl<=cntl-1'b1; end endendmodule/= count30.v=/module count30(cnth,cntl,ends,ncr,en,cp);input cp,ncr,en;output3:0cnth,cntl;output ends;reg ends;reg 3:0cnth,cntl;always(posedge cp or negedge ncr)begin if(ncr) cnth,cntl<=8'h29;else if(en) cnth,cntl<=cnth,cntl;else if(cnth<0)|(
37、cntl<0)|(cnth=0)&&(cntl<=0) )begin ends<=1'b1; endelse if(cnth=1)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=2)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=3)&&(cntl>0)begin cnth<=cnth; cntl
38、<=cntl-1'b1; endelse if(cnth=4)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if (cntl=0)begin cnth<=cnth-1'b1; cntl<=4'b1001; endelse begin cnth<=cnth; cntl<=cntl-1'b1; end endendmodule/= count29.v=/module count29(cnth,cntl,ends,ncr,en,cp);i
39、nput cp,ncr,en;output3:0cnth,cntl;output ends;reg ends;reg 3:0cnth,cntl;always(posedge cp or negedge ncr)begin if(ncr) cnth,cntl<=8'h28;else if(en) cnth,cntl<=cnth,cntl;else if(cnth<0)|(cntl<0)|(cnth=0)&&(cntl<=0) )begin ends<=1'b1; endelse if(cnth=1)&&(cntl
40、>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=2)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if (cntl=0)begin cnth<=cnth-1'b1; cntl<=4'b1001; endelse begin cnth<=cnth; cntl<=cntl-1'b1; end endendmodule/= count20.v=/module coun
41、t20(cnth,cntl,ends,ncr,en,cp);input cp,ncr,en;output3:0cnth,cntl;output ends;reg ends;reg 3:0cnth,cntl;always(posedge cp or negedge ncr)begin if(ncr) cnth,cntl<=8'h19;else if(en) cnth,cntl<=cnth,cntl;else if(cnth<0)|(cntl<0)|(cnth=0)&&(cntl<=0) )begin ends<=1'b1; en
42、delse if(cnth=1)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=2)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=3)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if(cnth=4)&&(cntl>0)begin cnth&
43、lt;=cnth; cntl<=cntl-1'b1; endelse if (cntl=0)begin cnth<=cnth-1'b1; cntl<=4'b1001; endelse begin cnth<=cnth; cntl<=cntl-1'b1; end endendmodule/= count16.v=/module count16(cnth,cntl,ends,ncr,en,cp);input cp,ncr,en;output3:0cnth,cntl;output ends;reg ends;reg 3:0cnth,cnt
44、l;always(posedge cp or negedge ncr)begin if(ncr) cnth,cntl<=8'h15;else if(en) cnth,cntl<=cnth,cntl;else if(cnth<0)|(cntl<0)|(cnth=0)&&(cntl<=0) )begin ends<=1'b1; endelse if(cnth=1)&&(cntl>0)begin cnth<=cnth; cntl<=cntl-1'b1; endelse if (cntl=0)
45、begin cnth<=cnth-1'b1; cntl<=4'b1001; endelse begin cnth<=cnth; cntl<=cntl-1'b1; end endendmodule/= count10.v=/module count10(q,ends,ncr,en,cp);input cp,ncr,en;output 3:0q;output ends;reg 3:0 q;reg ends;always(posedge cp or negedge ncr)beginif(ncr)beginends<=1'b0;q<
46、=4'b1010;endelse if(en) q<=q;else if(q=4'b0000) beginends<=1'b1;endelse q<=q-1'b1;endendmodule/= count5asc.v=/module count5asc(q,ends,ncr,en,cp);input cp,ncr,en;output 3:0q;output ends;reg 3:0 q;reg ends;always(posedge cp or negedge ncr)beginif(ncr)beginends<=1'b0;q&l
47、t;=4'b0001;endelse if(en) q<=q;else if(q=4'b0101) beginq<=4'b0001;ends<=1'b1;endelse q<=q+1'b1;endendmodule/= count5.v=/module count5(q,ends,ncr,en,cp);input cp,ncr,en;output 3:0q;output ends;reg 3:0 q;reg ends;always(posedge cp or negedge ncr)beginif(ncr)beginends<
48、;=1'b0;q<=4'b0101;endelse if(en) q<=q;else if(q=4'b0000) beginends<=1'b1;endelse q<=q-1'b1;endendmodule/= count3.v=/module count3(q,ends,ncr,en,cp);input cp,ncr,en;output 3:0q;output ends;reg 3:0 q;reg ends;always(posedge cp or negedge ncr)beginif(ncr)beginends<=1&
49、#39;b0;q<=4'b0010;endelse if(en) q<=q;else if(q=4'b0000) beginends<=1'b1;endelse q<=q-1'b1;endendmodule/= count2.v=/module count2(q,ends,ncr,en,cp);input cp,ncr,en;output 3:0q;output ends;reg 3:0 q;reg ends;always(posedge cp or negedge ncr)beginif(ncr)beginends<=1'
50、b0;q<=4'b0001;endelse if(en) q<=q;else if(q=4'b0000) beginends<=1'b1;endelse q<=q-1'b1;endendmodule七、 管脚分配所有用到的按键保持为乒乓电平模式变量管脚名称引脚功能cpclk0时钟03跳线实现1hz频率输入_500hzclk2时钟26跳线实现500hz频率输入ncrk1按键18为0时使时数码管1,2,3清零,数码管置1为1时开始工作enk2按键29为1时使能计数,为0是暂停计数modechk3按键310模式选择,每一次由0变1时数码管4加1
51、sk4按键411外部传感器,1表示注水完成,0表示未注水完成fullprok5按键516全过程洗衣模式使能rinsek6按键617漂洗模式使能dehyk7按键718脱水模式使能modesm4_b03数码管448.47.39.38.模式选择显示statesm3_b03数码管337.36.35.30模式状态显示secondsm2_b03sm1_b03数码管2,129.28.27.25.24.23.22.21工作剩余时间显示beepspk扬声器83洗衣完成蜂鸣报警八、 时序仿真a) 单选模式模式1 单选模式 a图模式1 单选模式b图说明:模式选择为1(mode=1),注水完成后(s=1),按启动(e
52、n=1),倒计时30秒(second),倒计时结束蜂鸣器(beep)报警2秒。模式状态显示(state)显示为1。模式2 单选模式说明:模式选择为2(mode=2),注水完成后(s=1),按启动(en=1),倒计时20秒(second),倒计时结束蜂鸣器(beep)报警2秒。模式状态显示(state)显示为2。模式3 单选模式说明:模式选择为3(mode=3),注水完成后(s=1),按启动(en=1),倒计时10秒(second),倒计时结束蜂鸣器(beep)报警2秒。模式状态显示(state)显示为3。模式4 单选模式说明:模式选择为4(mode=4),注水完成后(s=1),按启动(en=1
53、),倒计时5秒(second),倒计时结束蜂鸣器(beep)报警2秒。模式状态显示(state)显示为4。模式5 单选模式说明:模式选择为5(mode=5),按启动(en=1),倒计时30秒(second),倒计时结束蜂鸣器(beep)报警2秒。模式状态显示(state)显示为5。b) 组合模式模式1 组合模式 a图模式1 组合模式 b图说明:模式选择为1(mode=1),注水完成后(s=1),按启动(en=1),倒计时30秒(second),模式状态显示(state)显示为1。然后进入模式5倒计时3秒,模式状态显示(state)显示为5。然后进入模式4倒计时5秒,模式状态显示(state)显示为4。然后进入模式5倒计时3秒,模式状态显示(stat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深入分析2025年创业扶持政策的嘉奖机制试题及答案
- 绿色建筑材料市场推广策略与政策支持下的区域市场研究
- 小学摸底测试题及答案
- 物理实验中误差分析的技巧试题及答案
- 理解分销渠道的商务英语试题及答案
- 环保站面试真题及答案
- 线下演出市场复苏2025年剧院运营成本控制案例报告
- 数字人民币2025跨境支付技术挑战与跨境支付清算效率提升报告
- 2025公务员考试常用题目及答案
- 政策激励下的创业者精神探讨试题及答案
- 基于MATLAB的电流、电压互感器特性的仿真分析
- 操作系统课程设计报告
- 医保监管容错机制研究报告
- 《临床研究注册》课件
- 2023年贵州烟草专卖局笔试试题
- 员工身心健康情况排查表
- 订购单模板(订货单模板)
- 光子量子计算技术
- 表B. 0 .11工程款支付报审表
- 二手车培训-销售顾问
- 档案袋密封条格式范本(可直接打印,可自行编辑)
评论
0/150
提交评论