版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、安阳师范学院本科学生毕业论文A/D数据采集系统设计作 者 系(院) 物理与电气工程学院 专业电气工程及其自动化 年级 学 号 指导教师 日期 2011.6. 学生诚信承诺书本人郑重承诺:所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得安阳师范学院或其他教育机构的学位或证书所使用过的材料。所有合作者对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。签名: 日期: 论文使用授权说明本人完全了解安阳师范学院有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,
2、允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。签名: 导师签名: 日期: A/D数据采集系统设计XXX(安阳师范学院 物理与电气学院 河南 安阳 )摘 要:由于系统的实际对象往往都是一些模拟量(如温度,压力,位移,图像等),要使计算机或数字仪表能识别处理这些信号,必须首先将这些模拟信号转换成数字信号,而经计算机分析处理后输出的数字量也往往需要将其转换成相应模拟信号才能为执行机构所接受。本文研究了一种能在模拟信号与数字信号之间起桥梁作用的电路-模数和数模转换器,硬件实验证明设计的A/D转换器可实现预期的转换精度和转换速度标准。关键词:模数转换器
3、;转换精度;转换速度1 引言 随着数字技术,特别是信息技术的飞速发展与普及,在现代控制,通信及检测等领域,为了提高系统的性能指标,对信号的处理广泛采用了数字计算机技术。这样,就需要一种能在模拟信号与数字信号之间起桥梁作用的电路-模数和数模转换器。将模拟信号转换成数字信号的电路称为模数转换器;将数字信号转换成模拟信号的电路称为数模转换器。为确保系统处理结果的精确度,A/D转换器和D/A转换器还要求具有较高的转换速度。转换精度和转换速度是衡量A/D转换器和D/A转换器的重要指标。随着集成技术的发展,现已研制和生产出许多单片的和混合集成性的A/D转换器和D/A转换器,它们具有愈来愈先进的技术指标。本
4、文在深入理解单片机原理及应用课程的基础上,利用STC12C5A60S2系列单片机设计可实现A/D转换和D/A转换的控制器,在设计的过程中进行模块化处理,并进行程序的设计,通过最后的硬件试验,证明设计的A/D转换器和D/A转换器可以在满足转化速度和转换精度的前提下,完成预期的设计目的。2 A/D转换器介绍2.1 A/D转换器的结构 STC12C5A60AD/S2系列带A/D转换的单片机的A/D转换口在P1口(P1.0-P1.7),有8路10位高速A/D转换器,速度可达到250KHz(25万次/秒)。8路电压输入型A/D,可做温度检测,电池电压检测,按键扫描,频谱检测等。上电复位后P1口为弱上拉型
5、I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。STC12C5A60S2系列单片机ADC(A/D转换器)的结构图如下图所示。 图1 ADC_CONTR Register当AUXR.1/ADRJ=0时,A/D转换结果寄存器格式如下: ADC_RES7:0ADC_B9ADC_B8ADC_B7ADC_B6ADC_B5ADC_B4ADC_B3ADC_B2 ADC_RESL1:0 - - - - - -ADC_B1ADC_B0当AUXR.1/ADRJ=1时,A/D转换结果寄存器格式如下: ADC_RES1:0 - - - - - -ADC_
6、B9ADC_B8 ADC_RESL7:0ADC_B7ADC_B6ADC_B5ADC_B4ADC_B3ADC_B2ADC_B1ADC_B0STC12C5A60S2系列单片机ADC由多路选择开关,比较器,逐次比较寄存器,0位DAC,转换寄存器以及ADC_CONTR构成。STC12C5A60S2系列单片机的ADC是逐次比较型ADC。逐次比较型ADC由一个比较器和D/A转换器构成,通过逐次比较逻辑,从高位(MSB)开始,顺序地对每一输入电压与内置D/A转换器输出进行比较,经过多次比较,使转换所得的数字量逐次逼近输入模拟量对应值。逐次比较型A/D转换器具有速度高,功耗低等优点。从上图可以看出,通过模拟多
7、路开关,将通过ADC0-7的模拟量输入送给比较器。用数/模转换器转换的模拟量与本次输入的模拟量通过比较器进行比较,将比较结果保存到逐次比较器,并通过逐次比较寄存器输出转换结果。A/D转换结束后,最终的转换结果保存到ADC转换结果寄存器ADC_RES和ADC_RESL,同时,置位ADC控制寄存器ADC_CONTR中的A/D转换结束标志位ADC_FLAG,以供程序查询或发出终端申请。模拟通道的选择控制由ADC控制寄存器ADC_CONTR中的CHS2-CHS0确定。ADC的转换速度由ADC控制寄存器中的SPEED和SPEED0确定。在使用ADC之前,应先给ADC上电,也就是置位ADC控制寄存器中的A
8、DC_POWER位。当ADRJ=0时,如果取10位结果,则按下面公式计算:10-bitA/D Conversion Result:(ADC_RES7:0,ADC_RESL1:0)=1024 x(Vin/Vcc)当ADRJ=0时,如果取8位结果,按下面公式计算:8-bitA/D Conversion Result:(ADC_RES7:0)=256 x(Vin/Vcc)当ADRJ=1时,如果取10位结果,则按下面公式计算:10-bitA/D Conversion Result:(ADC_RES1:0,ADC_RESL7:0)=1024式中,Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,
9、用单片机工作电压作为模拟参考电压。2.2 与A/D转换相关的寄存器(1) P1口模拟功能控制寄存器P1ASFSTC12C5A60S2系列单片机的A/D转换通道与P1口复位,上电复位后P1口为弱上拉型I/O口,用户可以通过软件设置将8路中的任何一路设置为A/D转换,不需作为A/D使用的口可继续作为I/O口使用。需作为A/D使用的口需先将P1ASF特殊功能寄存器中的相应位置为1,将相应的口设置为模拟功能。P1ASF寄存器的格式如下:P1ASF:P1口模拟功能控制寄存器(该寄存器是只写寄存器,读无效)SFR nameAddressBitB7B6B5B4B3B2B1B0P1ASF9DHNameP17A
10、SFP16ASFP15ASFP14ASFP13ASFP12ASFP11ASFP10ASF当P1口中的相应位作为A/D使用时,要将P1ASF中的相应位置置1.P1ASF7:0P1.x的功能其中P1ASF寄存器地址为:P1ASF.0=1P1.0口作为模拟功能A/D使用P1ASF.1=1P1.1口作为模拟功能A/D使用P1ASF.2=1P1.2口作为模拟功能A/D使用P1ASF.3=1P1.3口作为模拟功能A/D使用P1ASF.4=1P1.4口作为模拟功能A/D使用P1ASF.5=1P1.5口作为模拟功能A/D使用P1ASF.6=1P1.6口作为模拟功能A/D使用P1ASF.7=1P1.7口作为模拟
11、功能A/D使用(2) ADC控制寄存器ADC_CONTRADCC_CONTR寄存器的格式如下:ADC_CONTR: ADC控制寄存器SFR nameAddressBitB7B6B5B4B3B2B1B0ADC_CONTRBCHNameADC_POWERSPEED1SPEED0ADC_FLAGADC_STARTCHS2CHS1CHS1对ADC_CONTR寄存器进行操作,建议直接用MOV赋值语句,不要与和或语句。ADC_POWER: ADC电源控制位。1:打开A/D转换器电源;0:关闭A/D转换器电源;建议进入空闲模式前,将ADC电源关闭,即ADC_POWER=0.启动A/D转换前一定要确认A/D电
12、源已打开,A/D转换结束后关闭A/D电源可降低功耗,也可不关闭。初次打开内部A/D转换模拟电源,需适时延时,等内部模拟电源稳定后,再启动A/D转换。建议启动A/D转换后,在A/D转换结束前,不改变任何I/O口得状态,有利于高精度A/D转换,若能将定时器/串行口/中断系统关闭更好。SPEED1,SPEED2:模数转换器转换速度控制位SPEED1SPEED0A/D转换所需时间 1 190个时钟周期转换一次,CPU工作频率21MHz时,A/D转换速度约250MHz 1 0180个时钟周期转换一次 0 1360个时钟周期转换一次 0 0540个时钟周期转换一次STC12C5A60S2系列单片机的A/D
13、转换模块说使用的时钟是内部R/C振荡器所产生的系统时钟,不使用时钟分频寄存器CLK_DIV对系统时钟分频后所产生的供给CPU工作所使用的时钟。好处:这样可以让ADC用较高的频率工作,提高A/D的转换速度 这样可以让CPU用较低的频率工作,降低系统的功耗ADC_FLAG: 模数转换器转换结束标志位,当A/D转换完成后,ADC_FLAG=1,要由软件清0.不管是A/D转换完成后由该位申请产生中断,还是由软件查询该标志位A/D转换是否结束,当A/D转换完成后,ADC_FLAG=1,一定要软件清0.ADC_START: 模数转换器(ADC)转换启动控制位,设置为1时,开始转换,转换结束后为0.CHS2
14、/CHS1/CHS0:模数输入通道选择,CHS2/CHS1/CHS0 CHS2 CHS1 CHS0Analog Channel Select 0 0 0 选择P1.0为A/D输入来用 0 0 1选择P1.1为A/D输入来用 0 1 0选择P1.2为A/D输入来用 0 1 1选择P1.3为A/D输入来用 1 0 0选择P1.4为A/D输入来用 1 0 1选择P1.5为A/D输入来用 1 1 0选择P1.6为A/D输入来用 1 1 1选择P1.7为A/D输入来用程序中需要注意的事项: 由于是2套时钟,所以,设置ADC_CONTR控制寄存器后,要加4个空操作延时才可以正确读到ADC_CONTR寄存器
15、的值。原因是设置ADC_CONTR控制寄存器的语句执行后,要经过4个 CPU时钟的延时,其值才能够保证被设置进ADC_CONTR控制寄存器。MOV ADC_CONTR,#DATANOPNOPNOPNOPMOV A, ADC_CONTR;经过4个时钟延时,才能够正确读到ADC_CONTR控制寄存器的值。(3) A/D转换结果寄存器ADC_RES、ADC_RESL特殊功能寄存器ADC_RES和ADC_RESL寄存器用于保存A/D转换结果,其格式如下:MnemonicAdd NameB7B6B5B4B3B2B1B0ADC_RESBDHA/D转换结果寄存器高ADC_RESLBEHA/D转换结果寄存器低
16、AUXR1A2HAuxiliary register1-PCA_P4SPI_P4S2_P4GF2ADRJ-DPSAUXR1寄存器的ADRJ位是A/D转换结果寄存器(ADC_RES,ADC_RESL)的数据格式调整控制位。当ADRJ=0时,10位A/D转换结果的高8位存放在ADC_RES中,低2位存放在ADC_RESL的低2位中。MnemonicAdd NameB7B6B5B4B3B2B1B0ADC_RESBDHA/D转换结果寄存器高8位ADC_RES9ADC_RES8ADC_RES8ADC_RES8ADC_RES8ADC_RES8ADC_RES8ADC_RES8ADC_RESLBEHA/D转换
17、结果寄存器低2位-ADC_RES1ADC_RES0AUXR1A2HAuxiliary register1ADRJ=0此时,如果用户需取完整10位结果,按下面公式计算: 10-bitA/D Conversion Result:(ADC_RES7:0,ADC_RESL1:0)=1024 x(Vin/Vcc) 如果用户只需取8位结果,按下面公式计算: 8-bitA/D Conversion Result:(ADC_RES7:0)=256x (Vin/Vcc)式中,Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。当ADRJ=1时,10位A/D转换结果的高2位
18、存放在ADC_RES的低2位中,低8位存放在ADC_RESL中。MnemonicAdd NameB7B6B5B4B3B2B1B0ADC_RESBDHA/D转换结果寄存器高2位ADC_RES9ADC_RES8ADC_RESLBEHA/D转换结果寄存器低8位ADC_RES7ADC_RES6ADC_RES5ADC_RES4ADC_RES3ADC_RES2ADC_RES1ADC_RES0AUXR1A2HAuxiliary register1ADRJ=1此时,如果用户需取完整10位结果,按下面公式计算: 10-bitA/D Conversion Result:(ADC_RES10,ADC_RESL70)
19、=1024x(Vin/Vcc)式中,Vin为模拟输入通道输入电压,Vcc为单片机实际工作电压,用单片机工作电压作为模拟参考电压。(4) 与A/D中断有关的寄存器IE:中断允许寄存器(可位寻址)SFR nameAddressBitB7B6B5B4B3B2B1B0IEA8HNameEAELVDEADCESET1EX1ET0EX0EA:CPU的中断开放标志,EA=1,CPU开放中断,EA=0,CPU屏蔽所有的终端申请。 EA的作用是使中断允许形式多级控制。即各中断源首先受EA控制;其次还受各中断源自己的中断允许控制位控制。EADC:A/D转换中断允许位。 EADC=1,允许A/D转化中断; EADC
20、=0,禁止A/D转换中断。如果要允许A/D转换中断则需要将相应的控制位置1:1) 将EADC置1,允许ADC中断,这是ADC中断的中断控制位。2) 将EA置1,打开单片机总中断控制位,此位不打开,也是无法产生ADC中断的A/D中断服务程序中要用软件清A/D中断请求标志位ADC_FLAG(也是A/D转换结束标志位)。IPH:中断优先级控制寄存器高(不可位寻址)SFR nameAddressbitB7B6B5B4B3B2B1B0IPHB7HnamePPCAHPLVDHPADCHPSHPT1HPX1HPT0HPX0HIP:中断优先级控制寄存器低(可位寻址)SFR nameAddressbitB7B6
21、B5B4B3B2B1B0IPB8HnamePPCAPLVDPADCPSPT1PX1PT0PX0PADCH,PADC:A/D转换中断优先级控制位。当PADCH=0且PADC=0时,A/D转换中断为最低优先级中断(优先级0)当PADCH=0且PADC=1时,A/D转换中断为较低优先级中断(优先级1)当PADCH=1且PADC=0时,A/D转换中断为较高优先级中断(优先级2)当PADCH=1且PADC=1时,A/D转换中断为最高优先级中断(优先级3)3.1602液晶介绍3.1 1602的引脚功能说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压
22、11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极3.2 1602的指令介绍1602液晶模块内部的控制器共有11条控制指令,如表:序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01B
23、F计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容4 硬件试验图2 复位及振荡电路图3 1602液晶显示电路连接原理图图4 A/D转换采样电路图 5 PCB视图5 结论在毕业设计中,由于它是一个系统,这就要求我们必须建立系统的概念。我们都知道现实运行的都是完整的系统,而且功能相对来说要复杂,如何把一个复杂的系统模块化才能使问题来的简单,这是我们必须首先解决的问题。当各个模块完成之后再组合成一个完成的系统,这当中要考虑模块间的衔接问题,这些都是在以前设计简单程序时不曾遇到的。这次的毕业设计就是一个贯穿多学科的综合性实践。本文所用的单
24、片机体积小、重量轻、抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。单片机以其一系列优点,可以广泛应用于工业控制系统,数据采集系统、智能化仪器仪表,及通讯设备、日常消费类产品、玩具等。程序附录:#include #include #define uchar unsigned char#define uint unsigned int#define disdata P0 /显示数据码输出口sfr ADC_CONTR = 0xBC; /ADC control registersfr ADC_RES = 0xBD; /ADC high 8-bit result regist
25、ersfr ADC_LOW2 = 0xBE; /ADC low 2-bit result registersfr P1ASF = 0x9D; /P1 secondary function control register/*Define ADC operation const for ADC_CONTR*/#define ADC_POWER 0x80 /ADC power control bit#define ADC_FLAG 0x10 /ADC complete flag#define ADC_START 0x08 /ADC start control bit#define ADC_SPEE
26、DLL 0x00 /420 clocks#define ADC_SPEEDL 0x20 /280 clocks#define ADC_SPEEDH 0x40 /140 clocks#define ADC_SPEEDHH 0x60 /70 clockssbit LCD_RS = P20; sbit LCD_RW = P21;sbit LCD_EN = P22;uint data dis4=0x00,0x00,0x00,0x00; /定义3个显示数据单元和1个数据存储单元uchar code dis4 = 1- . V 2- . V;uchar code dis5 = 3- . V 4- . V;
27、 void delayNOP(uchar t ) while(t-) _nop_();_nop_();_nop_();_nop_(); void delay(int ms) while(ms-) uchar i; for(i=0;i250;i+) _nop_(); _nop_();_nop_();_nop_(); /*/* */*检查LCD忙状态 */*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */* */*/ bit lcd_busy() bit result; LCD_RS = 0;delayNOP(20); LCD_RW = 1;delayNOP(2
28、0); LCD_EN = 1; delayNOP(20); result = (bit)(P0&0x80);delayNOP(20); LCD_EN = 0;delayNOP(20); return(result); /*/* */*写指令数据到LCD */*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */* */*/void lcd_wcmd(uchar cmd) while(lcd_busy(); LCD_RS = 0;delayNOP(20); LCD_RW = 0; delayNOP(20); LCD_EN = 0; delayNOP(20); P0 = cmd; delay
29、NOP(20); LCD_EN = 1; delayNOP(20); LCD_EN = 0; /*/* */*写显示数据到LCD */*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */* */*/void lcd_wdat(uchar dat) while(lcd_busy(); LCD_RS = 1;delayNOP(20); LCD_RW = 0;delayNOP(20); LCD_EN = 0;delayNOP(20); P0 = dat; delayNOP(20); LCD_EN = 1; delayNOP(20); LCD_EN = 0; /*/* */* LCD初始化设定
30、*/* */*/void lcd_init() delay(180); lcd_wcmd(0x38); /16*2显示,5*7点阵,8位数据 delay(60); lcd_wcmd(0x38); delay(60); lcd_wcmd(0x38); delay(60); lcd_wcmd(0x0c); /显示开,关光标 delay(60); lcd_wcmd(0x06); /移动光标 delay(60); lcd_wcmd(0x01); /清除LCD的显示内容 delay(60);/*/* */* 设定显示位置 */* */*/void lcd_pos(uchar pos) lcd_wcmd(
31、pos | 0x80); /数据指针=80+地址变量/*/* */* 数据处理与显示 */* 将采集到的数据进行16进制转换为ASCLL码。 */* */*/show_value(uchar ad_data) dis2=ad_data/51; /AD值转换为3为BCD码,最大为5.00V。 dis2=dis2+0x30; /转换为ACSII码 dis3=ad_data%51; /余数暂存 dis3=dis3*10; /计算小数第一位 dis1=dis3/51; dis1=dis1+0x30; /转换为ACSII码 dis3=dis3%51; dis3=dis3*10; /计算小数第二位 dis
32、0=dis3/51; dis0=dis0+0x30; /转换为ACSII码 /*/* */ /* AD转换函数 */ /* */ /* */*/*-Initial ADC sfr-*/void InitADC() P1ASF = 0xff; /Open 8 channels ADC function ADC_RES = 0; /Clear previous result ADC_CONTR = ADC_POWER | ADC_SPEEDLL; delay(2); /ADC power-on and delayuchar GetADCResult(uchar ch) ADC_CONTR = AD
33、C_POWER | ADC_SPEEDLL | ch | ADC_START; _nop_(); /Must wait before inquiry _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR & ADC_FLAG);/Wait complete flag ADC_CONTR &= ADC_FLAG; /Close ADC return ADC_RES; /Return ADC resultmain() uchar i; InitADC(); delay(120); /延时 lcd_init(); /初始化LCD lcd_pos(0); /设置显
34、示位置为第一行的第1个字符 i = 0; while(dis4i != 0) /显示字符 lcd_wdat(dis4i); i+; lcd_pos(0x40); /设置显示位置为第二行第1个字符 i = 0; while(dis5i != 0) lcd_wdat(dis5i); /显示字符 i+; while(1) show_value(GetADCResult(0); /显示通道0 lcd_pos(0x02); lcd_wdat(dis2); /整数位显示 lcd_pos(0x04); lcd_wdat(dis1); /第一位小数显示 lcd_pos(0x05); lcd_wdat(dis0
35、); /第二位小数显示 show_value(GetADCResult(1); /显示通道1 lcd_pos(0x0b); lcd_wdat(dis2); /整数位显示 lcd_pos(0x0d); lcd_wdat(dis1); /第一位小数显示 lcd_pos(0x0e); lcd_wdat(dis0); /第二位小数显示 show_value(GetADCResult(2); /显示通道2 lcd_pos(0x42); lcd_wdat(dis2); /整数位显示 lcd_pos(0x44); lcd_wdat(dis1); /第一位小数显示 lcd_pos(0x45); lcd_wdat(dis0); /第二位小数显示 show_value(GetADCResult(3); /显示通道3 lcd_pos(0x4b); lcd_wdat(dis2); /整数位显示 lcd_pos(0x4d); lcd_wdat(dis1); /第一位小数显示 lcd_pos(0x4e); lcd_wdat(dis
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南医药健康职业学院《数学建模B》2023-2024学年第一学期期末试卷
- 二零二五年度城市绿化工程个人承包合同
- 2024版消防系统施工协议范本版B版
- 2024装修合同附加条款明确合同版
- 计算机习题及答案
- 江苏警官学院《微分方程II》2023-2024学年第一学期期末试卷
- 2024物业维修与保养服务合同
- 二零二五年度智能物流系统股东合作协议3篇
- 湖北科技职业学院《常微分方程专业理论教学》2023-2024学年第一学期期末试卷
- 二零二五年度绿色环保居间代理房产租赁合同3篇
- 安全生产标准化知识培训考核试卷
- 中考英语复习分析如何写英语高分作文课件
- 自然科学基金项目申报书(模板)
- 中华诗词之美学习通超星期末考试答案章节答案2024年
- GB/T 44273-2024水力发电工程运行管理规范
- 浙江省杭州市余杭区2023-2024学年二年级上学期期末语文试题
- 罗定市2024届小升初必考题数学检测卷含解析
- 传媒互联网行业币价影响因素分析:对比利率、M2、纳指、美元指数、黄金走势
- 反射疗法师技能大赛考试题库及答案
- 2024羽毛球教案36课时
- 《安全评价技术》课件-蒸气云爆炸事故后果伤害模型评价
评论
0/150
提交评论