收藏 分销(赏)

基于单片机的超生波测距系统课程设计正文--大学论文.doc

上传人:天**** 文档编号:4788296 上传时间:2024-10-12 格式:DOC 页数:28 大小:2.69MB 下载积分:10 金币
下载 相关 举报
基于单片机的超生波测距系统课程设计正文--大学论文.doc_第1页
第1页 / 共28页
基于单片机的超生波测距系统课程设计正文--大学论文.doc_第2页
第2页 / 共28页


点击查看更多>>
资源描述
JIANGXINORMALUNIVERSITY 传感器原理课程设计 题目: 基于超声波传感器的测距系统 院系名称:物理与通信电子学院 学生姓名: 黄路瑶 学生学号: 1208063015 专 业: 电子信息工程 任课老师: 刘刚 完成时间: 2015年6月 摘要 本文主要介绍了基于超声波传感器的测距系统的工作原理、硬件电路的设计和软件设计。该测距系统由单片机最小系统模块、温度采集模块、超声波测距模块,LCD显示模块组成。能够完成距离和温度的测量、显示等功能。 关键词:超声波测距,单片机最小系统,温度采集 摘要 I 1引言 2 2 设计要求 2 3 方案论证 2 3.1 方案论证与比较 3 3.2 单片机最小系统模块的方案 3 3.3温度采集模块的方案 4 3.4超声波测距模块的方案 4 3.5 显示模块的方案 4 5 系统设计 5 5.1单片机最小系统模块的设计 5 5.1.1复位电路的设计 5 5.1.2 时钟电路设计 6 5.1.3单片机的I/O口的分配 6 5.2 LCD1602显示模块的设计 7 5.2.1 1602接口信号说明 8 5.2.2 1602操作时序 8 5.3 DS18B20温度采集模块的设计 9 5.3.1 DS18B20的分辨率 10 5.3.2 DS18B20工作时序图 10 5.4超声波测距模块的设计 11 6 软件设计 12 6.1 程序流程图 13 6.1.1 主程序流程图 13 6.1.2 外部中断0流程图 14 6.2子程序设计 14 6.2.1温度采集模块子程序 14 6.2.2 LCD显示子程序 16 7 误差分析 18 7.1 温度 18 7.2 障碍物表面材料 18 7.3 超声波模块探头距离 18 8总结 18 参考文献 19 附录一:源程序 20 附录二:实物图 26 0 1引言 近年来,随着电子测量技术的发展,运用超声波作出精确测量已成可能。由于的经济发展,电子测量技术应用也越来越广泛,而超声波测量精确高,成本低,性能稳定则备受青睐。由于超声测距是一种非接触检测技术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高等行业中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,由于超声波测距系统具有以上的这些优点,因此在汽车倒车雷达的研制方面也得到了广泛的应用。 2 设计要求 设计并制作一个基于超声波传感器的测距系统,基本要求如下:测量范围为0.2-1m;测量精度为±2mm;并能实时显示。 3 方案论证 根据本题设计要求,确定了本系统的原理框图如图3-1所示。 单片机最小系统模块:触发、中断接收、距离计算 超声波测距模块 Lcd显示模块 温度采集模块 图3-1 原理框图 3.1 方案论证与比较 根据题目的要求,我提出了以下的两种系统设计方案供选择: 方案1:由单片机编程产生40kHz的方波,由IO口输出,再经过放大电路,驱动超声波发射探头发射超声波。发射出去的超声波经障碍物反射回来后,由超声波接收头接收到信号,通过接收电路的检波放大、积分整形及一系列处理,送至单片机。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。  方案2:由单片机控制集成超声波测距模块HC-SR04,通过用一IO口发一个10us以上的高电平给集成模块控制口,就可以在接收口等待高电平输出,一 有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,并由单片机实时检测。单片机利用声波的传播速度和发射脉冲到接收反射脉冲的时间间隔计算出障碍物的距离,并由单片机控制显示出来。由于超声波也是一种声波,其声速c与温度有关,所以温度的影响不能忽略不计,本方案中对声速c还添加了温度补偿。 通过上述两种方案的比较,由于集成超声波测距模块HC-SR04提供2cm至400cm的非接触式距离感测功能,测距精度可达3mm,模块自身包括超声波发射器、接收器与控制电路,且编程和制作相比方案一容易许多。因此本超声波测距系统的设计采用方案2。 3.2 单片机最小系统模块的方案 方案1:采用PIC单片机。PIC单片机的各个型号的兼容性强,功能全,型号多,抗干扰能力强。缺点:PIC单片机价格贵,烧写器较贵,烧写程序比较麻烦。 方案2:采用MCS-51单片机。MCS-51系列单片机是8位增强型。51单片机具有功能强,体积小,可靠性好和价格便宜的优点,并且编程较为容易,程序的烧写也较为简单。 综合上面两个方案以及本人日常学习到的单片机,选择方案二作为本设计的核心处理模块。 3.3温度采集模块的方案 采用温度传感器DS18B20。DS18B20具有体积小、质量轻、精密度高、全数字化、性能稳定等优点。它的测量范围在-50℃至+125℃,在-10℃至+85℃范围内精度为±0.5℃,当电源电压在5-10V之间,稳定度为1﹪时,其各方面特性都满足了本系统的设计要求。此外DS18B20可直接将温度转化成串行数字信号供处理器处理,可以简化硬件电路和提高可靠性。 3.4超声波测距模块的方案 采用HC-SR04超声波模块。本模块性能稳定,测度距离精确,模块高精度,盲区小的优点。本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电平时就可以读定时器的值,此时就为此次测距的时间,这样就可算出距离。 3.5 显示模块的方案 方案一:选用数码管显示,用普通的数码管显示简单的数字、字母,数码管分时显示距离和温度。 方案二:选用液晶显示,显示的内容更加的丰富。根据所学知识与方案显示内容的设定,我选择了方案二。 4 工作原理 测距原理如图4-1所示: 超声波发射探头 s h d 测量目标 超声波接收探头 图4-1 被测距离。式中:s为超声波传播距离的一半,h为发射探头和接受探头之间的距离。由于s远大于h,因此可近似认为d=s,则d=s=ct/2,t为发射超声波与接收超声波的时间间隔,c为超声波在空气中的传播速度。 在空气中,常温下超声波的传播速度是334m/s,但其传播速度c易受空气中温度的影响,声速与温度关系如表4-1所示,由此可修正超声波传播速度为 表4-1 声速与温度关系表 温度(℃) -30 -20 -10 0 10 20 30 40 声速(m/s) 313 319 325 332 338 344 350 356 可见,只要测得超声波发射和接收回波的时间差t以及环境温度T,就能得到较为精确的距离。 测温是通过DS18B20来实现,通过程序将温度读出并送到LCD显示,并将此温度作为测距的温度补偿。 5 系统设计 本系统选用的模块包括:单片机最小系统模块、温度采集模块、超声波测距模块、LCD1602显示模块。 5.1单片机最小系统模块的设计 此次的课程设计的核心部分是单片机的控制,本次选用的是ATMEL公司生产的芯片STC89C52,主要是它的价格便宜,而且在学习中接触较多比较熟悉,容易获得。 5.1.1复位电路的设计 复位使单片机处于起始状态,并从该起始状态开始运行。STC89C52的RST引脚为复位端,该引脚连续保持2个机器周期(24个时钟振动周期)以上高电平,就可以使单片机复位。单片机的外部复位有上电复位和按键电平复位。由于单片机运行过程中,其本身的干扰或外界干扰会导致出错,此时我们可按复位键重新开始运行。考虑到本系统的运行和调试,复位电路采用按键复位方式,如图5-1所示。 图5-1 复位电路 5.1.2 时钟电路设计 时钟电路是单片机的心脏,它控制着单片机的工作节奏。STC89C52内部有一个反相振荡放大器,XTAL1和XTAL2分别是该反向振荡放大器的输入端和输出端。本设计采用的晶振频率为12MHZ。51系列单片机还可使用外部时钟,在使用外部时钟时,外部时钟必须从XTAL1输入,而XTAL2悬空。图5-2为晶振电路 图5-2 晶振电路 5.1.3单片机的I/O口的分配 首先对LCD和单片机的连接分配I/O口,LCD的E,RW,RS端分别为P0.0-P0.2, 然后再对HC-SR04进行I/O口分配,HC-SR04的触发控制信号输入口Trig为P1.4,回响信号输出口Echo为P3.2;DS18B20温度传感器是单总线的结构,和单片机的通讯只需要一个I/O口,可以设置P1.3为DS18B20温度传感器的总线和单片机的通讯接口。 5.2 LCD1602显示模块的设计 在本设计中采用LCD 1602来充当显示的作用,对LCD模块的电路的设计得先了解LCD的各个引脚然后再设置其各个引脚和单片机连接的的I/O口。 LCD1602液晶显示模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。 1602液晶模块内部的控制器共有11条控制指令,如表5-1所示: 表5-1 LCD1602液晶模块内部的控制器共有11条控制指令 序号 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清显示 0 0 0 0 0 0 0 0 0 1 2 光标返回 0 0 0 0 0 0 0 0 1 * 3 置输入模式 0 0 0 0 0 0 0 1 I/D S 4 显示开/关控制 0 0 0 0 0 0 1 D C B 5 光标或字符移位 0 0 0 0 0 1 S/C R/L * * 6 置功能 0 0 0 0 1 DL N F * * 7 置字符发生存贮器地址 0 0 0 1 字符发生存贮器地址 8 置数据存贮器地址 0 0 1 显示数据存贮器地址 9 读忙标志或地址 0 1 BF 计数器地址 10 写数到CGRAM或DDRAM) 1 0 要写的数据内容 11 从CGRAM或DDRAM读数 1 1 读出的数据内容 根据LCD1602的引脚定义和资料设计了测距系统的显示模块,电路图如下图5-3 图5-3 5.2.1 1602接口信号说明 1602接口信号说明如表5-2所示 表5-2 1602接口说明 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据口 2 VDD 电源正极 10 D3 数据口 3 VO 液晶显示对比度调节端 11 D4 数据口 4 RS 数据/命令选择端 12 D5 数据口 5 R/W 读写选择端 13 D6 数据口 6 E 使能端 14 D7 数据口 7 D0 数据口 8 D1 数据口 5.2.2 1602操作时序 1602的操作时序图(见图5-4) 图5-4 1602操作时序 分析时序图可知1602液晶的流程如下 (1) 通过RS确定是写数据还是写命令。写命令包括液晶的光标显示/不显示、光标闪烁/不闪烁、需不需要移动屏幕、在液晶什么位置显示等。写数据是指要显示什么内容。 (2) 读/写控制端设置为写模式,即低电平。 (3) 将数据或命令送至数据线。 (4) 给E一个高脉冲将数据送入液晶控制器,完成写操作。 5.3 DS18B20温度采集模块的设计 DS18B20的管脚排列如图5-5所示,DQ为数字信号输入/输出端;GND 为电源地;VDD为外接供电电源输人端。本温度控制系统采用外接供电方式,电路图如下图5-6所示 图5-5 DS18B20管脚图 图5-6 DS18B20电路图 5.3.1 DS18B20的分辨率 DS18B20温度传感器可完成对温度的测量,温度分辨率的设定能够影响到温度传感器的转换时间和转换的精确度。温度的分辨率设置如表5-3所示。 表5-3:温度分辨率设置表 R1 R0 分辨率 温度最大转换时间 0 0 9位 93.75ms 0 1 10位 187.5ms 1 0 11位 375ms 1 1 12位 750ms 由于本系统的主要误差是温度影响声速,故对温度采集的精度要求较高,所以选择DS18B20的分辨率位12位,在12位分辨率的时候的温度采集精度是0.0625度,满足系统精度的要求,所以R1和R0的设置分别为R1=1,R0=1。 5.3.2 DS18B20工作时序图 (1) 初始化(时序图见5-7) 图5-7初始化时序 (2)写数据(时序图见图5-8) 图5-8写数据时序 (3) 读数据(时序图见图5-9) 图5-9读数据时序 5.4超声波测距模块的设计 超声波测距测距模块采用HC-SR04模块,其芯片如图5-10所示: 图5-10 HR-SR04超声波集成模块工作原理采用的是I/O触发测距,给至少10 us的高电平信号。另外,此模块可以自动发送8个40 kHz的方波脉冲,并能够自动检测是否有信号返回,如果检测到有信号返回则通过I/O口输出低电平,高电平的持续时间就是超声波从发射到返回所用的时间,则所测量的距离=(高电平时间×声速)/2,时序图如图5-11。 图5-11 此模块不宜带电连接,如果要带电连接,则先让模块的 Gnd 端先连接。 测距时,被测物体的面积不少于 0.5 平方米且要尽量平整。否则会影响测试结果。 6 软件设计 6.1 程序流程图 6.1.1 主程序流程图 数据初始化 定时器初始化 显示初始化 进入while循环 温度计算 声速计算 读取定时器值 距离清零 Lcd显示 距离计算 超声波测量触发 等待中断是否触发 否 是 6.1.2 外部中断0流程图 外部中断0入口 读取当前定时器值 置测量成功标志 返回 6.2子程序设计 子程序包括了LCD显示模块程序,DS18B20温度采集模块程序。 6.2.1温度采集模块子程序 根据DS18B20的相关资料编写了温度采集程序 void dsreset(void) //DS18B20初始化 { uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--; } bit tmpreadbit(void) //读一位 { uint i; bit dat; DS=0; i++; //小延时一下 DS=1; i++;i++; dat=DS; i=8; while(i>0)i--; return (dat); } uchar tmpread(void) //读一个字节 { uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tmpreadbit(); dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好一个字节在DAT里 } return(dat); //将一个字节数据返回 } void tmpwritebyte(uchar dat) //写一个字节 { uint i; uchar j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) // 写1部分 { DS=0; i++;i++; DS=1; i=8; while(i>0)i--; } else { DS=0; //写0部分 i=8; while(i>0)i--; DS=1; i++;i++; } } } void tmpchange(void) //发送温度转换命令 { dsreset(); //初始化DS18B20 delayb(1); //延时 tmpwritebyte(0xcc); // 跳过序列号命令 tmpwritebyte(0x44); //发送温度转换命令 } int tmp() //获得温度 { int temp; uchar a,b; dsreset(); delayb(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); //发送读取数据命令 a=tmpread(); //连续读两个字节数据 b=tmpread(); temp=b; temp<<=8; temp=temp|a; //两字节合成一个整型变量。 return temp; //返回温度值 } 6.2.2 LCD显示子程序 根据1602的资料编写了距离、温度显示模块的程序 void write_com(uchar common) //1602写指令函数 { RS=0; P0=common; delay(1); EN=1; delay(1); EN=0; } void write_data(uchar Data) //1602写数据函数 { RS=1; P0=Data; delay(1); EN=1; delay(1); EN=0; } void init_1602() //初始化1602 { RW=0;//只写不读 EN=0; write_com(0x38);//7*5 2*16; 八位数据接口 write_com(0x0c); //开显示,无光标 write_com(0x06);//地址自动加一 write_com(1);//清屏 } void display(uint temp) //显示函数 { uchar ge,shi,bai,qian,i;//分别为距离的千、百、十、个位 qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; write_com(0x80); //光标在第一行第一列 for(i=0;i<7;i++) write_data(table1[i]);//显示“juli:”字样 write_data(qian+0x30); //显示距离数值 write_data(bai+0x30); write_data(shi+0x30); write_data(ge+0x30); write_com(0x80+11); //光标在第一行第12列 for(i=0;i<2;i++) write_data(table2[i]);//显示“MM”字母 write_com(0x80+0x40); //光标在第二行第一列 for(i=0;i<8;i++) write_data(table3[i]); //显示“wendu:”字样 write_data(ly_dis[0]+0x30); //显示温度数值 write_data(ly_dis[1]+0x30); write_com(0x80+0x40+11); //光标第二行第12列 for(i=0;i<1;i++) write_data(table4[i]); //显示“C”字母 } 7 误差分析 7.1 温度 环境温度影响声速是本设计中存在误差最主要的原因。当温差较大时,前后两次测距的误差肯定前后相差较大,故本设计采用了温度补偿的方法来减少温度的影响。 7.2 障碍物表面材料 因为障碍物的发射面比较粗糙会引起发射信号散射开那么回波信号就会减弱,这样就会导致测量结果的误差增大,这是本设计不可避免的误差。 7.3 超声波模块探头距离 两个超声波探头即发射探头和接收探头和障碍物之间存在一个几何角度,当两个探头的距离很近并远小于与被测物距离时这个几何角度被忽略不计,这样测得的距离才约等于实际距离,这也是本设计不可避免的误差。 8总结 此测距系统的硬件电路比较简单,都是使用现成模块搭建。在实际测量中,性能指标也达到了设计要求。 本次设计的步骤如下: 1、根据任务要求选择合理方案 2、元件的选择 3、硬件设计(本设计选用的是51开发板和超声波测距集成模块) 4、软件设计 5、对整个系统进行调试,使其达到要求 参考文献 郭天祥.51单片机C语言教程[M].北京:电子工业出版社 郁有文.常健.程继红.传感器原理及工程应用(第四版).西安电子科技大学出版社 附录一:源程序 #include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit DS=P1^3; //定义DS18B20接口 sbit RS=P2^2; //1602管脚 sbit RW=P2^1; sbit EN=P2^0; sbit Trig=P1^4; //超声波模块接口 sbit Echo=P3^2; //回波信号接口在外部中断0 int time; int succeed_flag; int Speed; char ltemp; uchar ly_dis[2]; uchar timeL; uchar timeH; uchar code table1[]=" juli:"; uchar code table3[]=" wendu:"; uchar code table2[]="MM"; uchar code table4[]="C"; void delay(uint z) //毫秒延时 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void delayb(uint count) //温度延时 { uint i; while(count) { i=200; while(i>0) i--; count--; } } void delay_20us()//微秒延时 { uchar a ; for(a=0;a<100;a++); } void write_com(uchar common) //1602写指令函数 { RS=0; P0=common; delay(1); EN=1; delay(1); EN=0; } void write_data(uchar Data) //1602写数据函数 { RS=1; P0=Data; delay(1); EN=1; delay(1); EN=0; } void init_1602() { RW=0;//只写不读 EN=0; write_com(0x38);//7*5 2*16; 八位数据接口 write_com(0x0c); //开显示,无光标 write_com(0x06);//地址自动加一 write_com(1);//清屏 } //显示数据 void display(uint temp) { uchar ge,shi,bai,qian,i; qian=temp/1000; bai=temp%1000/100; shi=temp%100/10; ge=temp%10; write_com(0x80); for(i=0;i<7;i++) write_data(table1[i]); write_data(qian+0x30); write_data(bai+0x30); write_data(shi+0x30); write_data(ge+0x30); write_com(0x80+11); for(i=0;i<2;i++) write_data(table2[i]); write_com(0x80+0x40); for(i=0;i<8;i++) write_data(table3[i]); write_data(ly_dis[0]+0x30); write_data(ly_dis[1]+0x30); write_com(0x80+0x40+11); for(i=0;i<1;i++) write_data(table4[i]); } void dsreset(void) //DS18B20初始化 { uint i; DS=0; i=103; while(i>0)i--; DS=1; i=4; while(i>0)i--; } bit tmpreadbit(void) //读一位 { uint i; bit dat; DS=0; i++; //小延时一下 DS=1; i++;i++; dat=DS; i=8; while(i>0)i--; return (dat); } uchar tmpread(void) //读一个字节 { uchar i,j,dat; dat=0; for(i=1;i<=8;i++) { j=tmpreadbit(); dat=(j<<7)|(dat>>1); //读出的数据最低位在最前面,这样刚好//一个字节在DAT里 } return(dat); //将一个字节数据返回 } void tmpwritebyte(uchar dat) //写一个字节 { uint i; uchar j; bit testb; for(j=1;j<=8;j++) { testb=dat&0x01; dat=dat>>1; if(testb) // 写1部分 { DS=0; i++;i++; DS=1; i=8; while(i>0)i--; } else { DS=0; //写0部分 i=8; while(i>0)i--; DS=1; i++;i++; } } } void tmpchange(void) //发送温度转换命令 { dsreset(); //初始化DS18B20 delayb(1); //延时 tmpwritebyte(0xcc); // 跳过序列号命令 tmpwritebyte(0x44); //发送温度转换命令 } int tmp() //获得温度 { int temp; uchar a,b; dsreset(); delayb(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); //发送读取数据命令 a=tmpread(); //连续读两个字节数据 b=tmpread(); temp=b; temp<<=8; temp=temp|a; //两字节合成一个整型变量。 return temp; //返回温度值 } void main() { uint distance; uint i; Trig=0; //首先拉低脉冲输入引脚 EA=1; //打开总中断0 TMOD=0x10; //定时器1,16位工作方式 init_1602(); while(1) { //温度计算 if(i==0) //先发转换命令,再读数值,以减少速度慢带来的显示抖动 tmpchange(); //温度转换 if(i==30){ ltemp=tmp()/16; //得到十进制温度值,因为DS18B20可以精确到0.0625度,这里取整数显示 ly_dis[0]=ltemp/10; //显示温度十位值 ly_dis[1]=ltemp%10; //显示温度个位值 } i++; if(i==50) //3000一个读取周期 i=0; Speed=0.6*ltemp+331.5; EA=0; //关总中断 Trig=1; //超声波输入端 delay_20us(); //延时20us Trig=0; //产生一个20us的脉冲 while(Echo==0); //等待Echo回波引脚变高电平 succeed_flag=0; //清测量成功标志 EA=1; EX0=1; //打开外部中断0 TH1=0; //定时器1清零 TL1=0; //定时器1清零 TF1=0; //计数溢出标志 TR1=1; //启动定时器1 delay(20); //等待测量的结果 TR1=0; //关闭定时器1 EX0=0; //关闭外部中断0 if(succeed_flag==1) { time=timeH*256+timeL; distance=((unsigned long)(Speed)*time)/2000; //毫米 } if(succeed_flag==0) { distance=0; //没有回波则清零 } display(distance) ; } } //外部中断0,用做判断回波电平 void exter() interrupt 0 // 外部中断0是0号 { EX0=0; //关闭外部中断 timeH =TH1; //取出定时器的值 timeL =TL1; //取出定时器的值 succeed_flag=1;//至成功测量的标志 } //定时器1中断,用做超声波测距计时 void timer1() interrupt 3 { TH1=0; TL1=0; } 附录二:实物图 由上图可知:误差达到了±2mm!!! 25
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服