ImageVerifierCode 换一换
格式:DOC , 页数:30 ,大小:313.54KB ,
资源ID:7299437      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/7299437.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(单片机四位抽奖机.doc)为本站上传会员【w****g】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

单片机四位抽奖机.doc

1、完整word版)单片机四位抽奖机 漳州师范学院 电子时钟及抽奖机 姓 名: 学 号: 系 别: 物理与电子信息工程系 专 业: 电子科学与技术 年 级: 09级 指导教师: 白炳良 2012年 5月 目录 1 摘要: 4

2、 2 关键字: 5 3 设计任务 5 3.1 两种抽奖方式 5 3.2 扩展功能 5 4 设计方案 5 4。1 设计思路 5 4。2 方案比较与论证 5 4.3 系统结构框图 6 5 各功能模块设计 6 5.1 显示模块原理 6 5。2 参数计算 7 5。3 独立式按键模块 7 5.4 总系统原理图 8 6 软件设计 9 6.1 I/O口分配 9 6.2 随机数算法 10 6。3 秒产生算法 10 6。4 按键扫描 10 6。5 显示扫描 10 7 流程图 10 10 8 程序清单 14 9 调试要点 29 9。1 硬件调试 29 9。2 软

3、件调试 29 9.3 结果分析及设计工作总结 29 10 参考文献及附件 30 10。1 参考文献 30 10。2 元器件清单 30 11 PCB版图 30 31 1 摘要: 本设计由单片机AT89S52芯片和LED共阳数码管为核心, 辅以必要的电路,构成了一个由单片机控制的四位显示设计,设计制作同步和单步抽奖机,在模式键、启动键,停止键的控制下实现设计集成了时钟、秒表、四位抽奖三种功能于一体. 2 关键字: AT89S52动态显示 四位抽奖 按键扫描 随机数 秒表 3 设计任务 3.1 两种抽奖方式 3.1.1 按抽奖

4、启动键时,四位数码管以不同的随机数快速滚动显示,按抽奖停止键时,四位随机数停止滚动显示在数码管上。 3.1.2 按抽奖启动键时,个位数码管以随机数快速滚动显示,按抽奖停止键时,个位随机数停止滚动显示在数码管上;用同样的方法来确定十位、百位、千位的随机数。 3.2 扩展功能 电子时钟:电子钟以99时59分59秒为一个计数周期,在显示分秒,时分模块化之间切换。 4 设计方案 4.1 设计思路 本设计需要实现两种方式的抽奖(即四位同时抽和逐位抽奖),因此重点在于由软件产生随机数;而硬件则需由数码管来显示中奖结果以及按键来控制抽奖模式和启动、停止抽奖。系统以AT89S52为核心,主要

5、有显示模块、按键模块和单片机软件控制模块构成。 4.2 方案比较与论证 数码管显示模块: 方案一:单片机输出数据经译码芯片CD4511进行译码后直接驱动数码管,数码管公共端接9012三极管扩流,并通过单片机I/O口控制三极管的选通,实现动态显示。 方案二:有单片机的I/O口直接驱动数码管的段码,数码管的公共端接9012三极管,通过灌电流的方式点亮数码管,也需通过单片机I/O口控制三极管的选通,实现动态显示. 由于所需I/O口由AT98S52可直接提供,无须因为I/O口不够而用CD4511来节省I/O口,方案二又较方案一更容易实惠,所以,我选择方案二。 4.3 系统结构框图 AT

6、89S52单片机在模式键、启动键和停止键的控制下,由P1口输出数据,通过P2。0 、P2。1、P2.2、P2。4进行选通,有数码管显示信息。 系统框图: 图2—3系统总框图 5 各功能模块设计 5.1 显示模块原理 由单片机(AT89S52)的引脚P1口输出中奖号码、时间等数据信息,通过片选信号P2.0 、P2。1、P2.2、P2.4就可在相应的数码管进行显示。当位选信号P2。0为低电平时,P1口送出数据也为低电平就点亮数码管,电流灌进单片机.多位LED显示,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制。而共阳极公共端分别接一个9012,由相应的I/

7、O口线控制9012,实现各位数码管的分时选通。段选码,位选码每送入一次后延时10MS,因人的视觉暂留时间为0.1S(100MS),所以每位显示的时间不能超过20MS,并保持延时一段时间,以造成视觉暂留效果,给人看上去每个数码管总在亮.这种方式称为软件扫描方式.电路如(图3-1)所示。 由于采用的是共阳极数码管,所以要让段码点亮需把I/O口置0,例如:段码a到g对应的I/O口是P1。0到P1。6,则要让数码管显示0到6对应的16进值如图所示 图3—1显示电路 P1。6 P1.5 P1.4 P1。3 P1.2 P1.1 P1.0 16进制 0 1 0 0 0

8、 0 0 0 0C0H 1 1 1 1 1 0 0 1 0F9H 2 0 1 0 0 1 0 0 0A4H 3 0 1 1 0 0 0 0 0B0H 4 0 0 1 1 0 0 1 99H 5 0 0 1 0 0 1 0 92H 6 0 0 0 0 0 1 0 82H 图3-2码表 5.2 参数计算 由于I/O口高电平约等于5V,使用灌电流的方式驱动数码管,故选用PNP型三极管9012;数码管能正常工作的段电流为3mA-—10 mA,压降为1。7V,三极管发射极和集电极的压降

9、为0。3V,因此限流电阻的压降为3.0V,所以选用限流电阻的阻值R=470欧。 5.3 独立式按键模块 独立式按键是直接用I/O口线构成的单个按键电路,其特点是每个按键单独占用一根I/O口线,每个按键的工作不会影响其它I/O口线的状态。独立式按键的典型应用如(图3-3)所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根I/O口线,因此,在按键较多时,I/O口线浪费较大,但本设计只用到三个按键,顾采用独立式按键电路. 图3—3独立式按键电路 5.4 总系统原理图 单片机(AT89S52)9脚为复位输入端。上电复位,只要RST引脚上有大于二个机器周期以上的

10、高电平,单片机(AT89C2051)即复位。 按键从单片机(AT89S52)的P2。0、P2.1、P2。2、P2。4口接入,当按键被按下时,相应的输入口就会输入低电平0。 单片机(AT89S52)的XTAL1脚、XTAL2脚接一个由12M晶振和10pf组成的振荡电路.为单片机提供相应的时序。 6 软件设计 主程序主要起到一个导向和决策功能,控制程序的走向。本系统在主程序中运用模块化结构,所有控制量集中处理,提高了处理效率,并在RAM建立各控制量的映射,方便各功能模块的编程及修改。运用散转结构,可实现无扰动重入.本设计主要有以下几个模块:时钟模块、四位抽奖模块、逐位抽奖模块。

11、 操作说明:上电复位后进入数码初显示模块;按SW0启动,四位数码管产生四位随机数,按SW0四位随机数停止(操作可重复);按SW1一次进入抽奖2模块;按SW0启动,四位数码管最低位产生随机数,按SW1最低位停止高位启动…按4次SW1后四位数码管均产生随机数,按SW0键停止抽奖(操作可重复);按SW1一次进入时间模块(可循环)。按RET键单片机复位。 6.1 I/O口分配 1、P2.0、P2。1、P2.2、P2。4作为个位、十位、百位、千位数码管片选。 2、P3。0、P3。4、P3.7作为按键接口。 3、P1。0到P1.6作为段码a到g的输出口。 6.2 随机数算法 在随机数模式下,

12、调用库函数stdlib。h ,用 dis_buf[i]=dis_dm[rand()%10] 返回随机数值 6.3 秒产生算法 将定时器0定时5mS,每计数200次为1S。 6.4 按键扫描 直接判断按键的按下与放开,不采用标志位判断. 6.5 显示扫描 显示扫描采用高、低两位分开显示;这样,在进行时钟显示及秒表显示时易于处 7 流程图 N 5ms到? 重新对计数器赋值 调用按键扫描程序 调用显示子程序 调用闪烁子程序 500ms到? F300cnt=0 取反闪烁标志位 根据msta的值进行散转 数码显示初值 四位数同时抽奖 四

13、位数逐位抽奖 时钟显示分秒 时钟显示时分 Msta=1 Msta=2 Msta=3 Msta=0 Y Y N Msta=0 初始化 Msta=0: 数码显示初值 Esw9? Esw0? Esw9? Msta=1 Msta=2 Msta=3 返回 Msta=1:四位同时抽奖 Esw0? cj!=cj Cj=1? 据rand()产生随机数 Esw1? ESW2? 四位数码管闪烁 返回 Msta=2 Y Y Y Y N N N N Y Y Y N N N Msta=2:逐位产

14、生随机数: Esw2=1? Msta=3 据pointer转模块 Pointer=0 Esw0? Jc!=cj Cj=1? 产生个位随机数 Esw1? Pointer=1 Y Y Y 返回 N N N 返回 N Y Pointer=1 Esw0? Jc!=cj Cj=1? 产生个位随机数 Esw1? Pointer=2 Y Y Y N N N 返回 Pointer=2 Esw0? Jc!=cj Cj=1? 产生个位随机数 Esw1? Pointer=3 Y Y Y N N 返回 N

15、 N 返回 Pointer=3 Esw0? Jc!=cj Cj=1? 产生个位随机数 Esw1? Pointer=3 Y Y Y N N 返回 1s到? F200cnt=200 F200cnt-- Msta=3: ++a 秒个位 a送显 a>9? 10s到? a=0, ++b N Y N 秒十位 b送显 b>5? 1分到? b=0, ++c N Y 分个位 d送显 c>9? 10分到? N Y c=0, ++d 分十位 d送显 d>5? 1时到? N Y d=0, +

16、e 时个位 e送显 e>9? 10时到? N Y e=0, ++g 时十位 g送显 g>9? 99时到? N Y g=0 Y esw1? Msta=0 按下esw0,转到msta=4,显示小时、分钟 8 程序清单 /*-—--—-———-——-——---———-——-—-—-———-—-—-———————-—— 名称:四位抽奖机 编写:张小叶 日期:2012。5.4 平台:AT89S52 -———-----—--———-——--—-——--——---—--—-—-———-—--—--*/ #inclu

17、de #include #include #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 #define nop _nop_() /*--—--——---—-——--————-—-—----——--—-————-—-----——- 端口定义 --—-————-----———-—-—--——--—----———--—-——--———---*/ #define disport P0

18、 // 数据端口 sbit cs0=P2^0; sbit cs1=P2^1; sbit cs2=P2^4; sbit cs3=P2^2; sbit sw0=P3^0; //独立按键端口 sbit sw1=P3^4; sbit sw2=P3^7; /*-—----—--———--—---——---—-—--—-——-——--——————-———- 定义变量 --————---——————-—————-—-—-—--——--—-—-———-—---——-*/ uchar data key; // 定义键值寄存器 u

19、char bdata ekey; // 定义键沿寄存器 uchar bdata lastkey; sbit esw0=ekey^0; sbit esw1=ekey^4; sbit esw2=ekey^7; bit flaflag; // 定义闪烁标志 bit f300flag; bit cj=1; uchar f300cnt, f200cnt=200,f100cnt; // 闪烁标志 uchar msta,ck=0; uchar flasta=5; uchar a,b,c,d,e,g,h; uchar code dis_dm

20、[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xfc,0x00,0xf0,0x0f};//显示段码值 uchar dis_buf[]={0xC0,0xC0,0xC0,0xC0,0xff};//显示缓冲 uchar dis_pointer,pointer;//定义显示指针 /*—-—--—--——-—-———-—————------——--————-— 函数声明 ——————----—-——--——-——---—-——--—----———-—-———-——-*/ void Disply();

21、 // 显示函数 void Flaply(); //闪烁函数 void KeyScan(); //读键函数 void Init_timer0(); // 定时器初始化 void choujiang_2(); //抽奖方式2 void dianzishizhong(); //电子时钟 void dianzishizhongxiaoshi(); /*——------—---———----------—---—-—-—----——-—----— 主函数 ---—-——--———————--—

22、————-——-—-—--—-—--—-——---—-*/ void main() { uint i; TMOD=0x11; //定时器0工作方式1 SCON=0x00; TH0=0xec; TL0=0x78; TR0=1; while(1) {while(!TF0); //5ms? TF0=0; TH0=0xec; //定时器初值重设 TL0=0x78; KeyScan(); //调用键扫描函数,显示函数 Disply(); Flaply();

23、 //if(f300cnt++>=100) //{f300cnt=0; // f300flag=!f300flag; } if(f100cnt++〉=600) {f100cnt=0; ck=1; } switch(msta) { case 0: dis_buf[0]=0x90; //数码显示初值 dis_buf[1]=0xC0; dis_buf[2]=0xA4;

24、 dis_buf[3]=0xA4; if(esw0) { msta=1;} if(esw1) { msta=2;} if(esw2) { msta=3;} break; case 1: if(esw0) cj=!cj; if(cj) { for(i=0;i〈4;i++) //四位数同

25、时抽奖 dis_buf[i]=dis_dm[rand()%10]; } f300cnt=100; f300cnt--; if(f300cnt==0) { if(!cj) flasta=4; } // if(esw2) // { if(!cj) //flasta=4; } if(esw1)

26、msta=2; break; case 2: choujiang_2(); if(esw2) msta=3; break; case 3: // flasta=5; f200cnt-—; if(f200cnt==0) { dianzishizhong(); f200cnt=200;

27、 } if(esw1) { msta=0;} if(esw0) msta=4; break; case 4: if(esw0) msta=3 ; if(esw1) msta=0; // f200cnt=200; f200cnt——; if(f200cnt==0) { ++a; if(a〉9)

28、 {a=0;++b;} if(b〉5) {b=0;++c;} if(c〉9) {c=0;++d;} if(d〉5) {d=0;++e;} if(e〉9) {e=0;++g;} if(g〉9)

29、 {g=0;} dis_buf[0]=dis_dm[c]; dis_buf[1]=dis_dm[d]; dis_buf[2]=dis_dm[e]; dis_buf[3]=dis_dm[g]; f200cnt=200; } break; default:msta=0;

30、 } } } /*-—---—-————----———----—--——-—-—-——-—————--——-—- 抽奖方式2 逐位抽奖 -—-——-—---——--—-—---——---—-————-----—-—————--—--*/ void choujiang_2() { switch(pointer) { case 0: if(esw0) cj=!cj; i

31、f(cj) dis_buf[0]=dis_dm[rand()%10]; if(esw1) pointer=1; break; case 1: if(esw0) cj=!cj; if(cj) dis_buf[1]=dis_dm[rand()%10]; if(esw1) pointer=2; break; case 2: if(esw0) c

32、j=!cj; if(cj) dis_buf[2]=dis_dm[rand()%10]; if(esw1) pointer=3; break; case 3: if(esw0) cj=!cj; if(cj) dis_buf[3]=dis_dm[rand()%10]; if(esw1) pointer=0; break; default:break; } } /*——

33、—————-—--——--—--—---——-——-—————-—--—-—-----—- 电子时钟 分秒 ——--—-———-———-——----——-——--———---——---—--———-——-*/ void dianzishizhong() { ++a; if(a>9) {a=0;++b;} if(b〉5) {b=0;++c;} if(c〉9) {c=0;++d;} if(d>5) {d=0;++e;} dis_buf[0]=dis_dm[a]; dis_b

34、uf[1]=dis_dm[b]; dis_buf[2]=dis_dm[c]; dis_buf[3]=dis_dm[d]; } /*—-—-----——-—-----——----——-—-———--——-————-—-—--— 定时器0初始化函数 --—---———————---—-——---——————-—------—————-—--—-*/ void Init_Timer0(void) { TMOD = 0x11; //定时器0工作在方式1 TH0=0xec;

35、 TL0=0x78; //定时器5ms初值 TR0= 1; //开定时器0 } /*———--—-—-——-—--—----——--——--—---——-——--—---———— 键扫描函数 ----—-—--———---—-—--———————-—-—---——-—---—-——-——*/ void KeyScan() { uchar kbuf,keycnt; P2=0XFF; P3=P3|0X91;

36、 // 读独立按建 kbuf=P3; kbuf=(kbuf&0X91)^0X91; lastkey=kbuf; if(lastkey!=key) // 键有变化?key为电平,lastkey为前沿 {if(keycnt—-!=0) //键有变,计数到? {lastkey=key; //放弃不稳定的键 } } else keycnt=0X05; // 重赋去抖值

37、 ekey=(key^lastkey)&lastkey; //键前沿提取 key=lastkey; } /*———-——-——---—-——-----———----———---—-——-—-----—— 显示函数 --———————-—--—-—-—--—-—-—-—-—---—--—————-—-—-—--*/ void Disply() { disport=0xff; P2=0xff; switch(dis_pointer) // 根据显示指针,转相应显示位 { ca

38、se 0: cs0=0; // 点亮第零位数码管 disport=dis_buf[0]; dis_pointer=1; if(flaflag) Flaply(); break; // 点亮第一位数码管 case 1: cs1=0; disport=dis_buf[1]; dis_pointer=2; if(flaflag) Flaply(); break; // 点亮第二位数码管 cas

39、e 2: cs2=0; disport=dis_buf[2]; dis_pointer=3; if(flaflag) Flaply(); break; case 3: cs3=0; // 点亮第三位数码管 disport=dis_buf[3]; dis_pointer=0; if(flaflag) Flaply(); break; default:break; } } /*-———-——-—

40、—-—----—-—-——--—--—-—-----————-—-———-- 闪烁函数 ——--——--—--—-——-----——--—-———-—-————-——-——--—---*/ void Flaply() { switch(flasta) // 据闪烁状态转相应位 { case 0: if(f300flag) // 300ms到,关显示 cs0=1; break; case 1: if(f300flag) cs1=1;

41、 break; case 2: if(f300flag) cs2=1; break; case 3: if(f300flag) cs3=1; break; case 4: if(f300flag) // 300ms到,关显示 cs0=1; if(f300flag) cs1=1; if(f300flag) cs2=1; if(f300flag) cs3=1;

42、 break; default:break; } } 9 调试要点 9.1 硬件调试 1、硬件完成后,检查电路有无短路、断路或虚焊; 2、电路板检查正常后,编一段简单的显示程序,检验显示电路是否正常; 3、若显示电路正常后,则可开始进行程序调试; 4、动态显示时要注意任一时刻只能一个数码管工作; 5、按键对应的I/O口要置为1。 9.2 软件调试 1、软件平台采用WAVE6000; 2、参考的子程序均用WAVE6000进行调试,确保结果正确;(参考的子程序有:二翻十进制转换、拆字) 3、本设计要实现3种功能:时钟、秒表及四位抽奖机;调试时哪个

43、功能不正常,则直接找相应的模块进行调试。 9.3 结果分析及设计工作总结 1、实现功能:正常走时秒表及四位抽奖机。 2、经验:通过本电路的设计使我更进一步了解了单片机89S52系列芯片的强大的功能,进一步熟悉89S52系列单片机的编程指令集的实际应用,再次增强了自己的动手、思考能力,同时也体现了实践和理论相结合的要求。为将来步入社会奠定了基础。 10 参考文献及附件 10.1 参考文献 10.1.1 倪云峰.单片机原理与应用。西安电子科技大学出版.2009 10.1.2 张华林,周小方编著.电子设计竞赛实训教程[M].北京:北京航空航天大学出版社,2007,7 10.2 元器件

44、清单 器件名称 器件型号 数量 器件名称 器件型号 数量 数码管 共阳 4 单片机 AT89S52 1 电解电容 10pF 2 三极管 9012 4 晶振 12MHZ 1 电阻 470欧 9 按键 按键 4 电阻 4K7 5 电解电容 220uf 1 电解电容 220uf 1 7805 1 插槽 10脚 1 -XTAL1(反相器输入端):反相振荡器的放大器输入端和内部时钟工作电路的输入端。多与XTAL2引脚一起连接晶体震荡器使用。若采用外部时钟源驱动器件,XTAL2应不接。 -XTAL2(反相器输出端):反相振荡器的放大器输出端。 11 PCB版图

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

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

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

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

gongan.png浙公网安备33021202000488号   

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

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

客服