单片机函数信号发生器设计.doc

上传人:兮*** 文档编号:964807 上传时间:2019-09-13 格式:DOC 页数:23 大小:394KB
返回 下载 相关 举报
单片机函数信号发生器设计.doc_第1页
第1页 / 共23页
单片机函数信号发生器设计.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《单片机函数信号发生器设计.doc》由会员分享,可在线阅读,更多相关《单片机函数信号发生器设计.doc(23页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、摘摘 要要: : 本系统利用单片机 AT89S52 采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过 D/A 转换器 DAC0832 将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产 1Hz3kHz 的波形。通过键盘来控制三种波形的类型选择、频率变化,并通过液晶屏 1602 显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。关键词关键词:单片机 AT89S52、DAC0832、液晶 1602Abstract: this system capitalize on AT89s5

2、2,it makes use of central processor to generate three kinds of waves, they are triangle wave, and use D/A conversion module, wave generate module and liquid crystal display of 1602, it can have the 1Hz-3KHz profile. In this system it can control wave form choosing, frequency, range,can have the sine

3、 wave, the square-wave, the triangular wave. Simultaneously may also take the frequency measurement frequency,and displays them through liquid crystal display of 1602. this design includes three modules. They are D/A conversion module, wave generate module and liquid crystal display of LED module. I

4、n this design, the wave generator into wave form module and D/A conversion module are discussed in detail. key word: AT89S52, DAC0832, liquid crystal 1602.目录目录1. 系统设计1.1 设计要求 1.2 方案设计与论证 1.2.1 信号发生电路方案论证 1.2.2 单片机的选择论证 1.2.3 显示方案论证 1.2.4 键盘方案论证1.3 总体系统设计 1.4 硬件实现及单元电路设计 1.4.1 单片机最小系统的设计1.4.2 波形产生模块设

5、计 1.4.3 显示模块的设计 1.4.4 键盘模块的设计1.5 软件设计流程1.6 源程序2. 输出波形的种类与频率的测试2.1 测试仪器及测试说明2.2 测试结果3. 设计心的及体会4. 附录4.1 参考文献4.2 附图1 1、 系统设计系统设计经过考虑,我们确定方案如下:利用 AT89S52 单片机采用程序设计方法产生锯齿波、正弦波、矩形波三种波形,再通过 D/A 转换器 DAC0832 将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制三种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。1.11.1、设计要求、设计要求1)、利用单片机采用软件设计方法产

6、生三种波形2)、三种波形可通过键盘选择3)、波形频率可调4)、需显示波形的种类及1.11.1 课题课题的来源与技的来源与技术术背景背景不论是在生产还是在科研与教学上,信号发生器都是电子工程师仿真实验的最佳工具。随着我国经济和科技的发展,对相应的测试仪器和测试手段也提出了更高的要求,信号发生器己成为测试仪器中至关重要的一类,因此开发信号发生器具有重大意义。传统的信号发生器采用专用芯片,成本高,控制方式不灵活。本设计充分利用单片机灵活的控制、丰富的外设处理能力,采用DDS技术,实现频率、幅值可调的函数波形的输出,同时可以根据需要方便地实现各种比较复杂的调频、调相和调幅功能,具有良好的实用性。根据其

7、频率发生方法又可分为谐振法和合成法两种。一般的传统发生器都是采用的谐振法,即用具有频率选择性的回路来产生正弦振荡,来获得所需频率,也可以根据频率合成技术来获得所需频率。利用频率合成技术制成的合成波形发生器,通常被称为频率合成器或频率综合器。频率综合器是指利用频率合成技术合成的频率源,它常常是没有调制的,也没有足够宽的和足够准确的输出电平调节,其工作范围往往也不宽,最小频率间隔也比较大,一般做专用设备使用,或做某一个系统中的一个组成部分。1.21.2 研究信号研究信号发发生器的目的及意生器的目的及意义义波形发生器是信号源的一种,主要给被测电路提供所需要的己知信号(各种波形),然后用其它仪表测量感

8、兴趣的参数。可见信号源在各种实验应用和试验测试处理中,它的应用非常广泛。它不是测量仪器,而是根据使用者的要求,作为激励源,仿真各种测试信号,提供给被测电路,以满足测量或各种实际需要。目前我国己经开始研制波形发生器,并取得了可喜的成果。但总的来说,我国波形发生器还没有形成真正的产业。就目前国内的成熟产品来看,多为一些PC仪器插卡,独立的仪器和VXI系统的模块很少,并且我国目前在波形发生器的种类和性能都与国外同类产品存在较大的差距,因此加紧对这类产品的研制显得迫在眉睫。函数波形发生器发展很快近几年来,国际上波形发生器技术发展主要体现在以下几个方面: (1)过去由于频率很低应用的范围比较狭小,输出波

9、形频率的提高,使得波形发生器能应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成v=f(t)形式的波形方程的数学表达式产生。从而促进了波形发生器向任意波形发生器的发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可以利用可视化编程语言(如Visual Basic, Visual C等等)编写任意波形发生器的软面板,这样允许从计算机显示屏上输入任意波形,来实现波形的输入。(2)与VXI资源

10、结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的插卡以及新近开发的VXI模块。由于VXI总线的逐渐成熟和对测量仪器的高要求,在很多领域需要使用VXI系统测量产生复杂的波形,VXI的系统资源提供了明显的优越性,但由于开发VXI模块的周期长,而且需要专门的VXI机箱的配套使用,使得波形发生器VXI模块仅限于航空、军事及国防等大型领域。在民用方面,VXI模块远远不如台式仪器更为方便。(3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不过现在新的台式仪器的形态,和几年前的己有很大的不同。这些新一代台式仪器具有多种特性,可以执行多种功能。而且外形尺寸与价格,都比过去的类

11、似产品减少了一半。1.31.3 主要研究内容主要研究内容(1)理论基础分析。了解波形发生器的相关理论,包括几种常用波形,如正弦波、方波等,然后介绍了波形发生器的主要方案及原理。(2)硬件系统设计。主要包括以下几个模块:串口电路;键盘、LED显示电路;单片机系统;DAC芯片和放大电路设计。 (3)软件系统设计。主要有:系统总体流程设计;串口程序设计;单片机程序设计;键盘响应程序设计;LED显示程序设计;DAC控制程序设计。(4)系统仿真调试。通过计算机进行模拟仿真调试。2. 信号信号发发生器的理生器的理论论分析与分析与设计设计方案方案在测试与测量技术过程中,常用到已知波形的数字化生成,它在许多与

12、测量有关的领域有着不可替代的作用。例如,数字化仿真,常被用于算法研究、模型研究、系统辨识或以蒙特卡罗法搜索模型与算法。任意波形发生器出现以后,给人们提供的不仅是一个通用的基础技术平台,而是在人们面前打开了通往无限宽广空间的一扇门,使得人们对于信号波形的掌握与应用再也不必局限于简单的正弦波、方波等几种有限的波形了,它可以按照人们提供的测量序列产生出几乎任意形状的连续波形信号。常用波形介常用波形介绍绍函数波形的一般表达式可以表示为 , ,下面来介绍几种常),.,(21tcccym用的函数波形3:2.1.1 正弦函数正弦函数正弦信号与余弦信号,两者只是在相位上相差 2,可以统称为正弦信号。其一般形式

13、为f (t)=Asin(t+ ) (1)式中,A 为振幅, 是角频率, 为初相位。上述三量是正弦信号的三要素。它的波形见图 1。正弦信号是周期信号,其周期T 与频率f 及角频率 之间的关系为:(2)21fT图 1 正弦波形在实际应用中经常遇到单边指数衰减的正弦信号,其波形如图 2 所示,表达式为:(3))0()0( 0sin)(tttAetft图 2 指数衰减的正弦信号波形2.1.2 方波波形函数方波波形函数方波函数是一种常用的波形函数,其表达式为:(4) )2()20( )( TtTTt tf 方波的波形如图 2-3 所示:图 3 方波波形2.22.2 设计设计方案方案目前信号发生的主要实现

14、方法由直接模拟法、直接数字法两种。2.2.1 直接模直接模拟拟法法图 4 直接模拟法框图这是传统函数发生器的简化基本结构,一般都是由自由振荡器产生原始波形,然后经过转换电路将原始波形转换成其他波形,在上图中三角波是由振荡器产生的,方波是三角波通过比较器转变而成的,正弦波是三角波通过一个波形整形电路(正弦波整形器)演变而来的,所需要波形经过放大和衰减输出,显然这种方式产生的波形种类有限,每增加一种波形,都要增加相应的转换电路,整个电路变得很复杂,最重要的是要产生用户所需要的任意波形复杂的波形几乎不可能5。2.2.2 直接数字法直接数字法直接数字法是采用直接数字合成(Direct Digital

15、Synthesis)的方法实现信号产生。该技术具有频率转换速度快、频率分辨率高、易于控制的突出特点。直接数字合成技术近年来发展得很快,而要产生任意波形就必须采用直接数字很成技术。随着DDS技术的发展,出现了各种各样的直接数字合成的结构,但基本上可以发成两种:(1)基于地址计数器的数字频率合成法;(2)基于相位累加器的数字频率合成法。由于直接数字法在设计上的的优点,本课题设计采用的是基于地址计数器的直接数字合成法。1.21.2 方案设计与论证方案设计与论证 1.2.11.2.1 信号发生电路方案论证信号发生电路方案论证 方案一:通过单片机控制 D/A,输出三种波形。此方案输出的波形不够稳定,抗干

16、扰能力弱,不易调节。但此方案电路简单、成本低。方案二:使用传统的锁相频率合成方法。通过芯片 IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。方案三:利用 MAX038 芯片组成的电路输出波形。MAX038 是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。但此方案成本高,程序复杂度高。以上三种方案综合考虑,选择方案一。1.2.21.2.2 单片机的选择论证单片机的选择论证 方案一:AT89S52 单片机是一种高性能 8 位单片微型计算机。它把构成计算机的中央处理

17、器 CPU、存储器、寄存器、I/O 接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。方案二:C8051F005 单片机是完全集成的混合信号系统级芯片,具有与8051 兼容的微控制器内核,与 MCS-51 指令集完全兼容。除了具有标准 8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其价格较贵以上两种方案综合考虑,选择方案一1.2.31.2.3 显示方案论证显示方案论证 方案一:采用 LED 数码管。LED 数码管由 8 个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管

18、显示的时间间隔小于 1/16s 时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。方案二:采用 LCD 液晶显示器 1602。其功率小,效果明显,显示编程容易控制,可以显示字母。以上两种方案综合考虑,选择方案二。1.2.41.2.4键盘方案论证键盘方案论证方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。方案二:编码式键盘。编码式键盘的按键触点接于 74LS148 芯片。当键盘上没有闭合时,所有键都断

19、开,当某一键闭合时,该键对应的编码由 74LS148输出。以上两种方案综合考虑,选择方案一。1.31.3 总体系统设计总体系统设计该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。将设计任务分解为按键电路、液晶显示电路等模块。图(1)为系统的总体框图 图(1) 总体方框图1.41.4 硬件实现及单元电路设计硬件实现及单元电路设计 1.4.11.4.1 单片机最小系统的设计单片机最小系统的设计89C51 是片内有 ROM/EPROM 的单片机,因此,这种芯片构成的最小系统简单可靠。用 80

20、C51 单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图(2) 89C51 单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:(1)有可供用户使用的大量 I/O 口线。(2)内部存储器容量有限。(3)应用系统开发具有特殊性。图(2) 89C51 单片机最小系统1.4.21.4.2 波形产生模块设计波形产生模块设计 由单片机采用编程方法产生三种波形、通过 DA 转换模块 DAC0832 在进过滤波放大之后输出。其电路图如下: 图(3)波形产生电路如上图所示,单片机的 P0 口连接 DAC0832 的八位数据输入端,DAC0832 的输

21、出端接放大器,经过放大后输出所要的波形。DAC0832 的为八位数据并行输入的,其结构图如下:图(4)DAC0832 的内部结构1.4.31.4.3 显示模块的设计显示模块的设计通过液晶 1602 显示输出的波形、频率,其电路图如下:图(5)液晶显示如上图所示,1602 的八位数据端接单片机的 P1 口,其三个使能端RS、RW、E 分别接单片机的 P3.2P3.4。通过软件控制液晶屏可以显示波形的种类以及波形的频率。1.4.41.4.4 键盘显示模块的设计键盘显示模块的设计本系统采用独立键盘,其连接电路图如下:图(6)键盘图中键盘独立键盘引出的八跟线分别接单片机的 P2 口,只用其第四列,因此

22、在程序初始化时 P2.7 脚给低电平。如图开关 3 用来切换输出波形、开关 7和 8 用来调节频率的加减。当按开关 7 时输出波形的频率增加,按开关 8 时输出波形的频率减小。1.5 软件设计流程本系统采用 AT89S52 单片机,用编程的方法来产生三种波形,并通过编程来切换三种波形以及波形频率的改变。具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。软件调通后,通过编程器下载到 AT89S52 芯片中,然后插到系统中即可独立完成所有的控制。软件的流程图如下:图(7)程序流程图1.6 源程序#include #define uchar unsigned char #de

23、fine uint unsigned int sbit lcdrw=P33; sbit lcdrs=P32; sbit lcde=P34; sbit d=P27; sbit s1=P20; sbit s2=P21; sbit s3=P22; sbit cs=P35; sbit wr=P36; uchar s1num,a,ys,j; uint fre; uchar code tosin256=0x80,0x83,0x86,0x89,0x8d,0x90,0x93,0x96,0x99,0x9c,0x9f,0xa2, 0xa5,0xa8,0xab,0xae,0xb1,0xb4,0xb7,0xba,0x

24、bc,0xbf,0xc2,0xc5, 0xc7,0xca,0xcc,0xcf,0xd1,0xd4,0xd6,0xd8,0xda,0xdd,0xdf,0xe1, 0xe3,0xe5,0xe7,0xe9,0xea,0xec,0xee,0xef,0xf1,0xf2,0xf4,0xf5, 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd, 0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7,0x

25、f6,0xf5,0xf4,0xf2,0xf1, 0xef,0xee,0xec,0xea,0xe9,0xe7,0xe5,0xe3,0xe1,0xde,0xdd,0xda, 0xd8,0xd6,0xd4,0xd1,0xcf,0xcc,0xca,0xc7,0xc5,0xc2,0xbf,0xbc, 0xba,0xb7,0xb4,0xb1,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x99, 0x96,0x93,0x90,0x8d,0x89,0x86,0x83,0x80,0x80,0x7c,0x79,0x76, 0x72,0x6f,0x6c,0x69,0x66,0x63,0x

26、60,0x5d,0x5a,0x57,0x55,0x51, 0x4e,0x4c,0x48,0x45,0x43,0x40,0x3d,0x3a,0x38,0x35,0x33,0x30, 0x2e,0x2b,0x29,0x27,0x25,0x22,0x20,0x1e,0x1c,0x1a,0x18,0x16, 0x15,0x13,0x11,0x10,0x0e,0x0d,0x0b,0x0a,0x09,0x08,0x07,0x06, 0x05,0x04,0x03,0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x

27、00,0x01,0x02,0x02,0x03,0x04,0x05, 0x06,0x07,0x08,0x09,0x0a,0x0b,0x0d,0x0e,0x10,0x11,0x13,0x15, 0x16,0x18,0x1a,0x1c,0x1e,0x20,0x22,0x25,0x27,0x29,0x2b,0x2e, 0x30,0x33,0x35,0x38,0x3a,0x3d,0x40,0x43,0x45,0x48,0x4c,0x4e, 0x51,0x55,0x57,0x5a,0x5d,0x60,0x63,0x66 ,0x69,0x6c,0x6f,0x72, 0x76,0x79,0x7c,0x80 ;

28、/*正弦波码 */ void delay(uint z)/延时子程序 uchar i,j;for(i=z;i0;i-)for(j=110;j0;j-); void delay1(uint y) uint i;for(i=y;i0;i-); void write_com(uchar com) /1602 写指令 lcdrs=0; P1=com; delay(5); lcde=1; delay(5); lcde=0; void write_data(uchar date) /1602 数据 lcdrs=1; P1=date; delay(5); lcde=1; delay(5); lcde=0;

29、void init() /初始化 lcdrw=0;lcde=0;wr=0;cs=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80+0x00);write_data(0x77); /写 wave:write_data(0x61);write_data(0x76);write_data(0x65);write_data(0x3a);write_com(0x80+0x40); /写 f: write_data(0x66);write_data(0x3a); void write_f(uin

30、t date) /写频率 uchar qian,bai,shi,ge;qian=date/1000;bai=date/100%10;shi=date/10%10;ge=date%10;write_com(0x80+0x42);write_data(0x30+qian);write_data(0x30+bai);write_data(0x30+shi);write_data(0x30+ge);write_data(0x48);write_data(0x5a); void xsf()/显示频率 if(s1num=1)fre=(1000/(9+3*ys);write_f(fre); if(s1num

31、=2)fre=(100000/(3*ys);write_f(fre); if(s1num=3)fre=(1000/(15+3*ys);write_f(fre); void keyscanf() d=0; if(s1=0) delay(5); if(s1=0) while(!s1);s1num+;if(s1num=1)ys=0;write_com(0x80+0x05);write_data(0x73); /写 sine:write_data(0x69);write_data(0x6e);write_data(0x65);write_data(0x20);write_data(0x20); if(

32、s1num=2)ys=10; write_com(0x80+0x05);write_data(0x73); /写 squraewrite_data(0x71);write_data(0x75);write_data(0x61);write_data(0x72);write_data(0x65); if(s1num=3)ys=0;write_com(0x80+0x05); /trainwrite_data(0x74); write_data(0x72);write_data(0x61);write_data(0x69);write_data(0x6e);write_data(0x20);if(s

33、1num=4) s1num=0; P1=0;write_com(0x80+0x05);write_data(0x20); write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20); write_com(0x80+0x42);write_data(0x20); write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20);write_data(0x20); if(s2=0) delay(5);if(s2=0) w

34、hile(!s2);ys+; if(s3=0) delay(5);if(s3=0) while(!s3);ys-; void main() init(); while(1) keyscanf(); if(s1num=1) /正弦波/ for(j=0;j255;j+)P0=tosinj;delay1(ys); if(s1num=2) /方波/ P0=0xff;delay1(ys); P0=0;delay1(ys); if(s1num=3) /三角波/ if(a128) P0=a;delay1(ys); else P0=255-a; delay1(ys); a+; if(!(s1 2 2、输出波形

35、的种类与频率的测试、输出波形的种类与频率的测试2.12.1、测量仪器及、测量仪器及测试说明测试说明测量仪器:稳压电源、示波器、数字万用表。测量说明:正弦波、矩形波、三角波信号的输出,通过对独立键盘来实现其的不同波形的输出以及其频率的改变。2.22.2 测试过程测试过程当程序下进去时经过初始化,液晶屏的上只显示“wave:”和“f:“,当开关三按一下是此时输出波形为正弦波,按两下时输出为方波,按三下时输出为三角波。另外两个开关可以调节频率,三种波形的频率可调范围不同,分别如下:正弦波:1180HZ方 波:13.3KHZ三角波:1180HZ根据示波器的波形频率的显示计算出三种波形的频率计算公式如下

36、:正弦波:f=(1000/(9+3*ys)方 波:f=(100000/(3*ys)三角波:f=(1000/(15+3*ys)其中 ys 为延时的变量。三种波形的仿真波形图如下:图(8)正弦波图形图(9)方波图形图(10)三角波图行2.32.3、测试结果、测试结果各项指标均达到要求。测试数据如下: 1)、产生正弦波、方波、三角波基本实现2)、三种波形的频率都可调,但不能步进的调节,其中方波的可调范围最广为 13.3KHZ,其他两种波形的频率范围不大 1180HZ3)、显示部分基本实现4)、键盘功能实现3 3、设计心的及体会、设计心的及体会通过这次毕业设计,使我深刻地认识到学好专业知识的重要性,也

37、理解了理论联系实际的含义,并且检验了大学三年的学习成果,进一步加深了我对专业知识的了解和认识以及动手的能力。虽然在这次设计中对于所学知识的运用和衔接还不够熟练,作品完成的还不是很出色。但是我将在以后的工作和学习中继续努力、不断完善。这个设计是对我们过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。4 4、附录、附录4.14.1 参考文献参考文献1 戴仙金主编 51 单片机及其 C 语言汇编程序开发实例 清华大学出版社,20082 高吉祥主编 全国大学生电子设计竞赛培训系列教程 电子工业出版社,20073 杨素行主编 模拟电子技术基础简明教程 高等教育出版社,20074 蒋辉平主编 单片机原理与应用设计 北京航空航天大学出版社 20074.24.2 附图附图图(11)总体原理设计图

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com