版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖北师范学院电工电子实验教学省级示范中心电子版实验报告第51页,共51页数据采集与实践基于串口通信的数据采集系统综合应用电子技术物理与电子技术学院电工电子中心绘制湖北师范学院电工电子实验教学省级示范中心电子版实验报告第2页,共52页基于串口通信的数据采集系统一.任务解析(老师统一给出)1、串口通信接口,单片机232接口与PC机232接口通信相关内容2、单片机控制的ADC,电路,控制程序3、上位机软件编写,VB基础,MSCOMM控件,代码分析4、通信协议,为什么要通信协议,如何设计通信协议5、温度(电压)数据采集系统设计实现二.总要求(老师统一给出)对【一】中5点任务,结合授课内容,查阅相关资料,进行实验验证,撰写书面报告(电子版)。考虑到同学们的实际水平,要求你们立足老师提供的现成资料,完成实验验证,同时自己再查阅一些资料后,对所掌握的资料进行合理的整理,完成报告,对创新不作要求。三.实验内容3.1串口通信(核心内容)=====================================================//发送程序=====================================================voidsend_answer(unsignedcharn,unsignedchar*str){ unsignedchari,temp; temp=n; for(i=0;i<n;i++)temp+=*(str+i); temp=~temp+1; uart_putc(':'); uart_putc(hex_to_asc(n,1)); uart_putc(hex_to_asc(n,0)); for(i=0;i<n;i++) { uart_putc(hex_to_asc(*(str+i),1)); uart_putc(hex_to_asc(*(str+i),0)); } uart_putc(hex_to_asc(temp,1)); uart_putc(hex_to_asc(temp,0));}=====================================================//串口接收中断程序=====================================================voidserial_int(void)interrupt4{staticunsignedchari=0; staticunsignedcharnum=0; staticunsignedcharrx_hlf=0; unsignedcharrx_dat; if(RI){ rx_dat=SBUF; RI=0; switch(num) { case0:if(rx_dat==':')num=1;break; case1: if(rx_hlf){ rx_counter+=asc_to_hex(rx_dat); rx_hlf=0; num=2; } else{ rx_counter=asc_to_hex(rx_dat)<<4; rx_hlf=1; } break; case2: if(rx_hlf){ rx_buff[i]+=asc_to_hex(rx_dat); rx_hlf=0; if(++i>rx_counter) { num=0; i=0; rx_finish_flag=1; } } else{ rx_buff[i]=asc_to_hex(rx_dat)<<4; rx_hlf=1; } break; default:num=0; break; } }}=====================================================//接收完毕后指令译码、执行。通过SWITCH及其套用,可以定义很多//想做的事=====================================================voidtast(){unsignedchari,temp;unsignedintj=100,k=100;if(rx_finish_flag){ temp=rx_counter; for(i=0;i<=rx_counter;i++)temp+=rx_buff[i]; if((temp==0)&&(rx_buff[0]==LOCAL_ID)){ switch(rx_buff[1]) { case0:task_example(rx_buff[2]);break; case1:while(j--)ADC_show();break; case2:TEM();break; case3:voltage();break; case4: switch(rx_buff[2]) { case0:test1();break; case1:test2();break; case2:test3();break; case3:test4();break; case4:test5();break; case5:test6();break; case6:test7();break; case7:test8();break; case8:test9();break; } case5: switch(rx_buff[2]) { case0:LED_TEST(0);break; case1:LED_TEST(1);break; case2:LED_TEST(2);break; case3:LED_TEST(3);break; case4:LED_TEST(4);break; case5:LED_TEST(5);break; case6:LED_TEST(6);break; case7:LED_TEST(7);break; } case6: switch(rx_buff[2]) { case0: hourinc();break; case1: hourdec();break; case2: minuteinc();break; case3: minutedec();break; } default:break; } } rx_finish_flag=0; }}3.2ADC=====================================================定义接口WR和RD接P36,P37,不用定义,包含reg51.h头文件就可以了。CS片选信号直接接地,不用定义。INTR接P35=====================================================sbitADCfinish=P3^5;unsignedintADC_read(){ unsignedlongtemp; WR=1; while(ADCfinish); WR=0; RD=0; temp=P0; RD=1; value=(unsignedint)(100*5*temp/255); returnvalue; }3.3VB编程====================================================='满足通信协议的发送函数'通过数组Out_Buff传递参数'数组格式:长1字节,数据N(长)字节(ID1字节,命令1字节,参数N-2字节)=====================================================PrivateSubSend_Data()DimOutbyte()AsByteDimiAsByteDimTempAsByteDimCheckAsIntegerReDimOutbyte(0To(Out_Buff(0)*2+4))AsByte'头长校验Check=0Fori=0ToOut_Buff(0)Check=Check+Out_Buff(i)NextOutbyte(0)=&H3AOutbyte(1)=Asc(Hex((Out_Buff(0)And&HF0)/16))Outbyte(2)=Asc(Hex(Out_Buff(0)And&HF))Fori=1To(Out_Buff(0)+1)Outbyte(i*2+1)=Asc(Hex((Out_Buff(i)And&HF0)/16))Outbyte(i*2+2)=Asc(Hex(Out_Buff(i)And&HF))NextTemp=256-(CheckAnd&HFF)'校验位计算Outbyte(Out_Buff(0)*2+3)=Asc(Hex((TempAnd&HF0)/16))Outbyte(Out_Buff(0)*2+4)=Asc(Hex(TempAnd&HF))Comm1.Output=Outbyte'发出数据EndSub====================================================='满足通信协议的接收函数=====================================================SubComm1_OnComm()DimInbyte()AsByteDimStr_buffAsStringDimTempAsByteSelectCaseComm1.CommEventCasecomEvReceiveIf(Flag=False)ThenText2.Text=""'首次清屏Flag=TrueEndIfDoWhile(Comm1.InBufferCount>0)Str_buff=""Inbyte=Comm1.InputStr_buff=Str_buff+Chr(Inbyte(0))SelectCaseRx_NumCase0'头检测If(Inbyte(0)=&H3A)ThenRx_Num=1Rx_HL=TrueIf(Text2.Text<>"")ThenText2.Text=Text2.Text+Chr(13)+Chr(10)Case1'数据长度获取If(Rx_HL)ThenRx_buff(0)=Asc_Hex(Inbyte(0))Rx_HL=FalseElseRx_buff(0)=Rx_buff(0)*16+Asc_Hex(Inbyte(0))Rx_HL=Truej=1Rx_Num=2EndIfCase2'接受数据If(Rx_HL)ThenRx_buff(j)=Asc_Hex(Inbyte(0))Rx_HL=FalseElseRx_buff(j)=Rx_buff(j)*16+Asc_Hex(Inbyte(0))Rx_HL=TrueIf(j<=Rx_buff(0))Thenj=j+1ElseCallData_Check'数据处理Rx_Num=0EndIfEndIfEndSelectText2.Text=Text2.Text+Str_buffLoopEndSelectEndSub=====================================================3.4通信协议说明:为了头和DATA区别开来,发送和接收都使用ASSII码。校验:~(长度N+DATA)+13.5数据采集实践实验箱效果跟预期一样。显示时间显示电压串口返回电压串口返回温度附加数码管、LED检测、串口时间调整等功能四.经验总结实验箱效果跟仿真一样,完成了VB上位机的编写,下位机程序的设计,串口顺利返回电压及温度值,以及时间显示、调整,以及自己模式,串口自动读取电压(温度)。VB上位机还增加了软件运行时间记录,电脑当前时间获取显示,以及欢迎及关闭对话框。不足:功能过于简单,没做远距离传输测试。附录===========================================================单片机程序===========================================================#include<reg51.h>#defineLOCAL_ID2#defineMAX_SIZE16unsignedcharrx_buff[MAX_SIZE];unsignedchartx_buff[MAX_SIZE];#include"ADC0804.h"#include"szz.h"#include"tast.h"unsignedcharrx_finish_flag=0;unsignedcharrx_counter=0;externvoidtast();externvoidrs232_port_init(void);externvoidtask_example(unsignedchar);externvoiduart_putc(unsignedchar);externvoidsend_answer(unsignedchar,unsignedchar*);voidmain(){ rs232_port_init(); timer_ini(); while(1) { ADC_read(); //ADC_show(); //TEM_show(); tast(); if(ssz_bit)ssz_show(); }}unsignedcharhex_to_asc(unsignedcharda,unsignedcharhl){ unsignedchartemp; if(hl)temp=da>>4; elsetemp=da&0x0f; if(temp<10)return(temp+0x30); elsereturn(temp+0x37);}unsignedcharasc_to_hex(unsignedcharda){ if(da<0x3a)return(da-0x30); elsereturn(da-0x37);}voidsend_answer(unsignedcharn,unsignedchar*str){ unsignedchari,temp; temp=n; for(i=0;i<n;i++)temp+=*(str+i); temp=~temp+1; uart_putc(':'); uart_putc(hex_to_asc(n,1)); uart_putc(hex_to_asc(n,0)); for(i=0;i<n;i++) { uart_putc(hex_to_asc(*(str+i),1)); uart_putc(hex_to_asc(*(str+i),0)); } uart_putc(hex_to_asc(temp,1)); uart_putc(hex_to_asc(temp,0));}//串口接收中断voidserial_int(void)interrupt4{staticunsignedchari=0; staticunsignedcharnum=0; staticunsignedcharrx_hlf=0; unsignedcharrx_dat; if(RI){ rx_dat=SBUF; RI=0; switch(num) { case0:if(rx_dat==':')num=1;break; case1: if(rx_hlf){ rx_counter+=asc_to_hex(rx_dat); rx_hlf=0; num=2; } else{ rx_counter=asc_to_hex(rx_dat)<<4; rx_hlf=1; } break; case2: if(rx_hlf){ rx_buff[i]+=asc_to_hex(rx_dat); rx_hlf=0; if(++i>rx_counter) { num=0; i=0; rx_finish_flag=1; } } else{ rx_buff[i]=asc_to_hex(rx_dat)<<4; rx_hlf=1; } break; default:num=0; break; } }}voidrs232_port_init(void){ SCON=0x50; //串口工作在方式1,异步模式 PCON=0x00; //波特率翻倍 TMOD=0x20;//定时器1工作在方式2 TH1=0xfd; //波特率9600,晶振为11.0592MHz TL1=0xfd;//自动重装在赋值 TR1=1;//启动定时器,产生波特率 RI=0;//接收标志位清零 TI=0;//发送标志位清零 ES=1;//中断允许 EA=1;//总中断允许}voidtask_example(unsignedcharda){ P1=~da;}voiduart_putc(unsignedcharc){ SBUF=c; while(!TI); TI=0;}voidvoltage(void){ unsignedintj; j=2*value; tx_buff[0]=0; tx_buff[1]=6; tx_buff[2]=((unsignedchar*)&j)[0]; tx_buff[3]=((unsignedchar*)&j)[1]; send_answer(4,&tx_buff[0]);}voidTEM(void){ unsignedintj; j=2*value*8; tx_buff[0]=0; tx_buff[1]=5; tx_buff[2]=((unsignedchar*)&j)[0]; tx_buff[3]=((unsignedchar*)&j)[1]; send_answer(4,&tx_buff[0]);}voidtast(){unsignedchari,temp;unsignedintj=100,k=100;if(rx_finish_flag){ temp=rx_counter; for(i=0;i<=rx_counter;i++)temp+=rx_buff[i]; if((temp==0)&&(rx_buff[0]==LOCAL_ID)){ switch(rx_buff[1]) { case0:task_example(rx_buff[2]);break; case1:while(j--)ADC_show();break; case2:TEM();break; case3:voltage();break; case4: switch(rx_buff[2]) { case0:test1();break; case1:test2();break; case2:test3();break; case3:test4();break; case4:test5();break; case5:test6();break; case6:test7();break; case7:test8();break; case8:test9();break; } case5: switch(rx_buff[2]) { case0:LED_TEST(0);break; case1:LED_TEST(1);break; case2:LED_TEST(2);break; case3:LED_TEST(3);break; case4:LED_TEST(4);break; case5:LED_TEST(5);break; case6:LED_TEST(6);break; case7:LED_TEST(7);break; } case6: switch(rx_buff[2]) { case0: hourinc();break; case1: hourdec();break; case2: minuteinc();break; case3: minutedec();break; } default:break; } } rx_finish_flag=0; }}======================================================================================================================VB程序===========================================================DimFlagAsBooleanDimBZAsBooleanDimRx_NumAsByteDimRx_buff(250)AsByteDimjAsByteDimRx_HLAsBooleanDimOut_Buff(256)AsByte'LONGIDCMDDATA0DATA[LONG-3]PrivatesAsInteger'声明秒PrivatemAsInteger'声明分PrivatehAsInteger'声明小时PrivatedAsInteger'声明日PrivateSubImage1_Click()EndSubPrivateSubTimer2_Timer()s=s+1'每秒钟给s变量加1Ifs>=60Thens=0'重新计算秒m=m+1'逢秒为60则分钟加1Ifm>=60Thenm=0'重新计算分h=h+1'逢分钟为60则小时加1Ifh>=24Thenh=0'重新计算小时d=d+1'逢24小时则天数加1EndIfEndIfEndIfEndSubPrivateSubCommand_SZZ_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=8CallSend_DataEndSubPrivateSubCommand1_Click()DimOutbyte()AsByteDimStrAsStringDimiAsByteCallComm_initial(Val(Text_commPORT.Text),Val(Text_commBAUD.Text))Str=Text_data.Text'取出数据字符串Str=Replace(Str,Space(1),Space(0))'去除空格Out_Buff(0)=Len(Str)/2+2Out_Buff(1)=Val("&H"+Text_ID.Text)Out_Buff(2)=Val("&H"+Text_CMD.Text)Fori=1ToOut_Buff(0)+1Out_Buff(i+2)=Val("&H"+Mid(Str,i*2-1,2))NextCallSend_Data'CALL发送函数EndSubPrivateSubCommand10_Click()EndSubPrivateSubCommand2_Click()Text2.Text=""EndSubPrivateSubCommand3_Click()UnloadMeEndSubPrivateSubCommand4_Click()DimStrAsStringDimDa_valAsIntegerStr=Text_DA_val.TextStr=Replace(Str,Space(1),Space(0))Da_val=Val(Str)*0.2046'1023/5000Out_Buff(0)=4'长Out_Buff(1)=2'IDOut_Buff(2)=1'CMDOut_Buff(3)=Int(Da_val/256)And&H3'DA_val_HOut_Buff(4)=Da_valMod256'DA_val_LCallSend_DataEndSubPrivateSubCommand5_Click()Out_Buff(0)=2'长Out_Buff(1)=2'IDOut_Buff(2)=2'CMDCallSend_DataEndSubPrivateSubCommand6_Click()Out_Buff(0)=2'长Out_Buff(1)=2'IDOut_Buff(2)=3'CMDCallSend_DataEndSubPrivateSubCommand7_Click()Out_Buff(0)=2'长Out_Buff(1)=2'IDOut_Buff(2)=1'CMDCallSend_DataEndSubPrivateSubCommand8_Click()'Comm1.PortOpen=FalseIfCommand8.Caption="打开"ThenCommand8.Caption="关闭"ElseCommand8.Caption="打开"EndIfIfComm1.PortOpen=FalseThenComm1.PortOpen=TrueElseComm1.PortOpen=FalseEndIfEndSubPrivateSubCommand9_Click()Comm1.PortOpen=TrueEndSubPrivateSubForm_Load()Flag=FalseRx_Num=0j=0Text_CMD.Text=GetValue("One","命令",App.Path&"\config.ini")Text_ID.Text=GetValue("One","ID",App.Path&"\config.ini")Text_data.Text=GetValue("One","数据",App.Path&"\config.ini")Text_commPORT.Text=GetValue("One","串口",App.Path&"\config.ini")Text_commBAUD.Text=GetValue("One","波特率",App.Path&"\config.ini")'form_main.Picture=LoadPicture("2.jpg")Text_time.Text=NowTimer3.Enabled=TrueTimer3.Interval=1000Timer2.Enabled=TrueTimer2.Interval=1000s=0m=0h=0d=0MsgBox"欢迎使用本软件——莫离"EndSubPrivateFunctionComm_initial(PortAsByte,BondAsString)OnErrorGoToErrorOutIf(Comm1.PortOpen=True)ThenComm1.PortOpen=FalseEndIfComm1.CommPort=Port'设置串口1Comm1.Settings=Bond+",n,8,1"'波特率:9600奇校验,8位数据,1位停止位Comm1.InputLen=1'一次读取接收缓冲区的一个字符Comm1.InputMode=comInputModeBinary'设置位二进制格式Comm1.InBufferSize=1024'设置接收缓冲区为256字节Comm1.OutBufferSize=4096'设置发送缓冲区为256字节Comm1.InBufferCount=0'清空输入缓冲区Comm1.OutBufferCount=0'清空输出缓冲区Comm1.SThreshold=0'发送缓冲区空触发发送事件Comm1.RThreshold=1'每X个字符到接收缓冲区引起触发接收事件Comm1.PortOpen=True'打开串口1Comm1.InBufferCount=0'清空输入缓冲区Comm_initial=TrueExitFunctionErrorOut:Comm_initial=FalseExitFunctionEndFunctionPrivateFunctionSend_Command(DaAsByte)DimOutbyte(0To1)AsByteOutbyte(0)=&HA5Outbyte(1)=DaComm1.Output=OutbyteEndFunctionPrivateSubForm_Unload(CancelAsInteger)'退出时关闭串口If(Comm1.PortOpen=True)ThenComm1.PortOpen=FalseEndIfCallSetValue("One","命令",Text_CMD.Text,App.Path&"\config.ini")CallSetValue("One","ID",Text_ID.Text,App.Path&"\config.ini")CallSetValue("One","数据",Text_data.Text,App.Path&"\config.ini")CallSetValue("One","串口",Text_commPORT.Text,App.Path&"\config.ini")CallSetValue("One","波特率",Text_commBAUD.Text,App.Path&"\config.ini")EndSubPrivateSubfzj_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=6'CMDOut_Buff(3)=2CallSend_DataEndSubPrivateSubfzji_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=6'CMDOut_Buff(3)=3CallSend_DataEndSubPrivateSubhourj_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=6'CMDOut_Buff(3)=0CallSend_DataEndSubPrivateSubhourji_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=6'CMDOut_Buff(3)=1CallSend_DataEndSubPrivateSubled1_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=5'CMDOut_Buff(3)=0CallSend_DataEndSubPrivateSubled2_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=5'CMDOut_Buff(3)=1CallSend_DataEndSubPrivateSubled3_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=5'CMDOut_Buff(3)=2CallSend_DataEndSubPrivateSubled4_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=5'CMDOut_Buff(3)=3CallSend_DataEndSubPrivateSubled5_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=5'CMDOut_Buff(3)=4CallSend_DataEndSubPrivateSubled6_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=5'CMDOut_Buff(3)=5CallSend_DataEndSubPrivateSubled7_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=5'CMDOut_Buff(3)=6CallSend_DataEndSubPrivateSubled8_Click()Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=5'CMDOut_Buff(3)=7CallSend_DataEndSubPrivateSubtest1_Click(IndexAsInteger)Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=0CallSend_DataEndSubPrivateSubtest2_Click(IndexAsInteger)Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=1CallSend_DataEndSubPrivateSubtest3_Click(IndexAsInteger)Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=2CallSend_DataEndSubPrivateSubtest4_Click(IndexAsInteger)Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=3CallSend_DataEndSubPrivateSubtest5_Click(IndexAsInteger)Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=4CallSend_DataEndSubPrivateSubtest6_Click(IndexAsInteger)Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=5CallSend_DataEndSubPrivateSubtest7_Click(IndexAsInteger)Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=6CallSend_DataEndSubPrivateSubtest8_Click(IndexAsInteger)Out_Buff(0)=3'长Out_Buff(1)=2'IDOut_Buff(2)=4'CMDOut_Buff(3)=7CallSend_DataEndSubPrivateSubText_commPORT_Change()CallComm_initial(Val(Text_commPORT.Text),Val(Text_commBAUD.Text))EndSubPrivateSubText_commBAUD_Change()CallComm_initial(Val(Text_commPORT.Text),Val(Text_commBAUD.Text))EndSubSubComm1_OnComm()DimInbyte()AsByteDimStr_buffAsStringDimTempAsByteSelectCaseComm1.CommEventCasecomEvReceiveIf(Flag=False)ThenText2.Text=""'首次清屏Flag=TrueEndIfDoWhile(Comm1.InBufferCount>0)Str_buff=""Inbyte=Comm1.InputStr_buff=Str_buff+Chr(Inbyte(0))SelectCaseRx_NumCase0'头检测If(Inbyte(0)=&H3A)ThenRx_Num=1Rx_HL=TrueIf(Text2.Text<>"")ThenText2.Text=Text2.Text+Chr(13)+Chr(10)Case1'数据长度获取If(Rx_HL)ThenRx_buff(0)=Asc_Hex(Inbyte(0))Rx_HL=FalseElseRx_buff(0)=Rx_buff(0)*16+Asc_Hex(Inbyte(0))Rx_HL=Truej=1Rx_Num=2EndIfCase2'接受数据If(Rx_HL)ThenRx_buff(j)=Asc_Hex(Inbyte(0))Rx_HL=FalseElseRx_buff(j)=Rx_buff(j)*16+Asc_Hex(Inbyte(0))Rx_HL=TrueIf(j<=Rx_buff(0))Thenj=j+1ElseCallData_Check'数据处理Rx_Num=0EndIfEndIfEndSelectText2.Text=Text2.Text+Str_buffLoopEndSelectEndSubPrivateFunctionAsc_Hex(DaAsByte)AsByteIf(Da<&H3A)ThenAsc_Hex=Da-&H30ElseAsc_Hex=Da-&H37EndIfEndFunctionPrivateSubData_Check()DimCheckAsIntegerCheck=Rx_buff(0)Fora=1ToRx_buff(0)+1Check=Check+Rx_buff(a)NextaIf(CheckAnd&HFF)=0Then'校验成功CallTemperature'显示温度CallVoltage'显示电压EndIfEndSubPrivateSubTemperature()'温度显示函数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024停薪留职协议
- 二零二四年技术转让合同技术指标及交付要求2篇
- 全新物业管理授权许可协议2024
- 2024年专业科技咨询服务标准协议模板集锦版B版
- 2024年企业安全职责合同范本版B版
- 佳木斯大学《体育科学研究方法》2021-2022学年第一学期期末试卷
- 《金融公司人才盘点方案》
- 2024年国有股权流转手册:挂牌与合同转让策略解析版B版
- 佳木斯大学《护理学导论》2021-2022学年第一学期期末试卷
- 暨南大学《现代汉语语法》2021-2022学年第一学期期末试卷
- 医院感染风险评估记录
- 指数 作业设计 高一上学期数学人教A版(2019)必修第一册
- 肿瘤化疗导致的中性粒细胞减少诊治中国专家共识(2023版)解读
- 线下业务分期方案
- 三菱电机与大金的比较
- 2024年共青团入团考试题库(附答案)
- 冠脉介入进修汇报
- 中医培训课件:《中药热奄包技术》
- DBJ-T 15-98-2019 建筑施工承插型套扣式钢管脚手架安全技术规程
- 城市排水工程图纸审查要点
- 2024年安徽合肥兴泰金融与创新研究院有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论