收藏 分享(赏)

基于51单片机电子琴八音盒设计.doc

上传人:hskm5268 文档编号:7825566 上传时间:2019-05-27 格式:DOC 页数:34 大小:790.50KB
下载 相关 举报
基于51单片机电子琴八音盒设计.doc_第1页
第1页 / 共34页
基于51单片机电子琴八音盒设计.doc_第2页
第2页 / 共34页
基于51单片机电子琴八音盒设计.doc_第3页
第3页 / 共34页
基于51单片机电子琴八音盒设计.doc_第4页
第4页 / 共34页
基于51单片机电子琴八音盒设计.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、目 录诚信声明(1)基于 51 单片机电子琴八音盒设计(2)中文摘要(2)英文摘要(2) 1 引言(2)2 方案总体设计(2)2.1 方案对比(3)2.2 系统工作原理(4)3 硬件设计(4)3.1 STC89C52 芯片(4)3.2 单片机复位部分(5)3.3 单片机晶振部分(6)3.4 数码管显示部分(6)3.5 蜂鸣器部分(8)3.6 按键部分(8)4 软件设计(10)4.1 系统流程(10)4.2 延时源代码 (11)4.3 发音源代码(11)4.4 单个按键源代码(11)5 系统仿真与调试(12)5.1 仿真软件简介(12)5.2 硬件调试(12)5.3 软件调试(12)5.4 使用

2、说明(15)6 设计总结(15)参考文献(16)致谢(17)附录 原理图(18)附录 实物图(19)附录 软件设计(20)1xxx 学院本科生毕业设计诚信声明本人郑重声明:所呈交的本科毕业设计,是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本设计不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。作者签名:二 O 一 年 月 日2基于 51 单片机电子琴八音盒设计xxx,xxx(xxx 学院 电气工程学院,xxx xxxx xxxx

3、)摘 要:本文的主要内容是用 AT89C52 单片机为核心控制元件,设计一个八音盒。利用单片机产生不同的频率来获得我要求的音阶,最终可随意弹奏出要表达的音符。只要把一首歌曲的音阶对应频率关系,编写程序就可以达到我想要的曲目。经此调试,所做的八音盒得到了应有的按键发音效果。关键词: AT89C52;八音盒;音阶Keyboard music box design based on 51 single chip microcomputerYIN Fu gui,WU Zhi Rong( Electrical Engineering College,Longdong University,Qingyan

4、g 745000,Gansu,)Abstract: The main content of this paper is to use AT89C52microcontroller as the core control element, the design of a music box. Produce different frequencies obtain the scale we require the use of single-chip, finally free to play want to express. the correctcorresponding frequency

5、 can achieve what we want music. On this basis, the electronic organbe pronunciation key effect.Keywords: AT89C52; music box ; scale1 引言单片机因其体积小,功能强,价格低廉而得到广泛应用,同时随着我国经济的飞速发展,单片机在越来越多的领域得到了广泛的应用,现在国内的单片机多用于电话,玩具和LCD 等产品,预计在未来,利用单片机发明的产品会越来越多,理解和掌握单片机的工作原理和使用技巧是必备的技能。我所设计该产品时根据自身的兴趣和爱好设计的,通过对传统电子琴的认识

6、和了解,知道了传统的电子琴是利用单片机汇编语言的编程来实现的,而且功能单一,只能弹奏而不能随意的播放音乐,我所设计的产品是基于对 89C52 单片机的深入理解,然后对传统电子琴小小的改革和创新,并且以简单的 C 语言程序替代了复杂的汇编语言程序。我相信在电子琴的不断革新达到人们娱乐设备标准的时候,电子琴会被投入到批量生产之中。2 方案总体设计本次设计的课题是基于 51 单片机的电子琴的设计,指标如下:1)利用蜂鸣器作为发声部件。32)一个数码管作为显示部件。3)设置 8 个按键,实现高音、中音、低音的 1、2、3、4、5、6、7、1 的发音。总体设计框架如图 2-1 所示图 2-1 总体框架图

7、2.1 方案对比方案一:采用单个的逻辑器件组合我们知道计数器 8253 可以产生任意频率的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率与计数器的频率对应起来就可通过计数器产生音乐了。根据本实验要求,采用 8279 将键扫描得到的键值通过查表得到相应的 8253 的频率值,将从 8253 得到相对应的按键弹奏信号经过 LM386 进行放大,再用喇叭输出,就实现了简易电子琴的基本功能,也就完成了实验的要求方案二:用 VHDL 语言编程来实现利用我们实验室先进的数字电路实验设备,我们可以采用 VHDL 语言编程来实现。我们可以通过 VDHL 语言,对实验原理图的各个部分进行设计,通过编译,可

8、以在计算机上下载此实验原理图,利用电路学习机上的芯片。我们很快就可以设计出一个简单的电子琴。并实现其功能 1。方案三:采用 STC89C52 单片机采用 STC89C52 单片机作为主控芯片,设置键盘、蜂鸣器等外围器件,另外还用到一些简单器件如:一位数码管,和 PNP 型三极管等。利用按键实现音符和音调的输入;一位的数码管进行被操作的按键显示:用 PNP 型三极管实现低音频功率放大;最后用蜂鸣器发音。STC89C52按键模块复位电路时钟电路显示模块发音单元4方案比较:方案一采用单个的逻辑器件组合实现。这样虽然比较直观,逻辑器件分工鲜明,思路也比清晰,一目了然,但是由于元器件种类、个数繁多,而过

9、于复杂的硬件电路也容易引起系统的精度不高、体积过大等不利因素。方案二采用 VHDL 语言编程来实现电子琴的各项功能。系统主要由电子琴发声模块、选择控制模块和储存器模块组成。和方案一相比较,方案二就显得比较笼统,虽然我们可以看到用超高速硬件描述语言 VHDL 的优势,但本质上它只是把整个系统分为了若干个模块,而不牵涉到具体的硬件电路。方案三与前两种方案相比,主控芯片采用 STC89C52 单片机,它是大规模集成电路技术发展的产物,具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。同时具有强大控制功能和灵活的编程实现特性,由于本设计主要用于人们娱乐方面,因此在设计上尽量使其安全以及简

10、单易操作。而第三种方案具有经济可行性、技术可行性、实物应用性。所以我们选择第三种方案 2。2.2 系统工作原理由 STC89C52 的 P1 口 8 个按键控制 DO,RE ,MI ,FA,SO,LA,XI,DO 的各个音符,在由位于 P0 口的一位数码管显示出来,同时位于 P37 口的蜂鸣器发出声音。发音原理:其动力和时钟相同。发条轮上带个较大的圆柱轮。这柱面上按需要做了些凸点,对应的地方有一组发音的簧片,圆柱轮转动时就会刮上这些簧片。每点一个音。圆柱轮转动基本是恒速的,节拍就靠点的距离。八音盒主要部分由滚筒和簧片两部分组成。若要产生音频脉冲,只要算出某一音频的周期,再将周期除以 2,即为半

11、周期的时间。利用定时器记时半周期时间,每当记时终止后就将 P37 反相,然后记时再反相。就可在P37 上得到此频率的脉冲。利用 STC89C52 的内部定时器使其工作计数器模式下,改变计数值 TH0 及 TL0 以产生不同频率的方法产生不同音阶。3 硬件设计3.1 STC89C52 芯片STC89C52 是一个低功耗,高性能 CMOS8 位单片机,片内含具有如下特点:40 个引脚(引脚图如图 3-1 所示), 4kBytesFlash 片内程序存储器,128bytes 的随机存取数据存储器(RAM), 32 个外部双向输入/输出(I/O)口,5 个中断优先级 2 层中断嵌套中断,2个 16 位

12、可编程定时计数器,2 个全双工串行通信口,看门狗(WDTC)电路,片内时钟振荡器 3。此外,STC 89C52 设计和配置了振荡频率可为 0HZ 并可通过软件设置省电模式。5空闲模式下,CPU 暂停工作,而 RAM 定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存 RAM 的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有 PDIP、TQFP 和 PLCC 等三种封装形式,以适应不同产品的需求。单片机引脚图如图 3-1 所示:图 3-1 单片机引脚图本系统采用单片机 STC89C52 为电子琴的控制核心,系统主要包括播放模块、安键控制模块。下面对各模块的设计逐

13、一进行论证比较。3.2 单片机复位部分1)复位功能:单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始 4。2)复位原理:单片机复位时只要保持 RST 引脚接 2us 的高电平即可。在单片机启动0.1S 后,电容 C 两端的电压持续充电为 5V,这是时候 10K 电阻两端的电压接近于0V,RST 处于低电平所以系统正常工作。当按键按下的时候,开关导通,这个时候电容两端形成了一个回路,电容被短路,所以在按键按下的这个过程中,电容开始释放之前充的电

14、量。随着时间的推移,电容的电压在 0.1S 内,从 5V 释放到变为了 1.5V,甚至更小。根据串联电路电压为各处之和,这个时候 10K 电阻两端的电压为 3.5V,甚至更大,所以 RST引脚又接收到高电平。单片机系统自动复位 5。 3.3 单片机晶振部分外接晶振引脚 XTAL1 和 TXAL2 接外部晶振和微调电容的一端。振荡电路的频率就是晶体的固有频率。晶振电路结合单片机内部电路产生单片机所需的时钟频率。晶振提高频6率越高,单片机运行速度越快。单片机一切指令的执行都是建立在晶振提供的时钟频率上。晶振电路原理图如图 3-2 所示:图 3-2 晶振电路原理图3.4 数码管部分1)数码管的分类

15、:数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(即多一个小数点显示);按能显示多少个“8”可分为 1 位、2位、4 位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM) 的数码管。共阳数码管在应用时应将公共极 COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。数码管 LED 对应字母图如图 3-3 所示:图 3-3 数码管 LED 灯

16、对应字母图2)共阴极数码管:阴极数码管是把所有 LED 的阴极连接到共同接点 COM,而每个 LED 的阳极分别为 a、b、c 、d、e 、 f、g 及 dp(小数点),如下图所示。图中的 8 个 LED 分别和上面那个图中的 ADP 各段相对应,通过控制各个 LED 的亮灭来显示数字。当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段7就不亮。数码管引脚图如图 3-4 所示:图 3-4 数码管所接引脚图3)数码管显示部分的实现:数码管通过 PO 口输入高低电平控制每个 LED 灯的亮灭,公共端接地线 P0 口接 1K 的上拉电阻。数码管电路如图 3-5

17、 所示:图 3-5 数码管电路以下为数码管显示字型对应的字符码表:表 3-1 数码管显示数字的实现显示字型 Dp,g,f,e,d,c,b,a 字符码0 1 0 1 1 1 1 1 1 0xbf1 1 0 0 0 0 1 1 0 0x862 1 1 0 1 1 0 1 1 0xdb83 1 1 0 0 1 1 1 1 0xcf4 1 1 1 0 0 1 1 0 0xe65 1 1 1 0 1 1 0 1 0xed6 1 1 1 1 1 1 0 1 0xfd7 1 0 0 0 0 1 1 1 0x878 1 1 1 1 1 1 1 1 0xff3.5 蜂鸣器部分有源蜂鸣器与无源蜂鸣器的区别:1)内

18、部区别:需要注意的是这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会发声。而无源内部不带震荡源,所以如果用直流信号无法令其发声。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路 6。2)外观区别:两者的高度略有区别,有源蜂鸣器,高度为 9mm,而无源蜂鸣器的高度为 8mm。如将两种蜂鸣器的引脚都朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器 7。3)辨别方式:除了从外观上来看,进一步判断有源蜂鸣器和无源蜂鸣器,还可以用万用表电阻档 Rxl 档测试:用黑表笔接蜂鸣器 “-“引脚,红表笔在另一引脚上来回碰触,

19、如果触发出咔、咔声的且电阻只有8(或16)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的,是有源蜂鸣器 8。有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。最终我选择无源蜂鸣器。无源蜂鸣器的优点是:1)便宜。2)声音频率可控 ,可以做出“多来米发索拉西”的效果。3)在一些特例中,可以和 LED 复用一个控制口有源蜂鸣器的优点是程序控制方便。 3.6 按键部分1)操作键设计:常用的按键有三种:机械触点式按键、导电橡胶式和柔性按键(又称触摸式键盘)。机械触点式按键是利用机械弹性使键复位,手感明显,连线

20、清晰,工艺简单,适合单件制造。但是触点处易侵入灰尘而导致接触不良,体积相对较大。导电橡胶按键是利用橡胶的弹性来复位,通过压制的方法把面板上所有的按键制成一块,体积小,装配方便,适合批量生产。但是时间长了,橡胶老化而使弹力下降,同时易侵入灰尘 9。 9柔性按键是近年来迅速发展的一种新型按键,可以分为凸球型和平面型两种。柔性按键最大特点是防尘、防潮、耐蚀,外形美观,装嵌方便。而且外形和面板的布局、色彩、键距可按照整机的要求来设计 10。但是由于客观条件与经济能力有限,本系统采用机械触点式按键。2)键盘设计:键盘在单片机应用系统中是一个关键的部件,它能实现向计算机输入数据,传送命令等功能,是人工干预

21、计算机的主要手段。键盘可以分为 2 类:独立连接式键盘和矩阵式键盘。 矩阵式键盘单片机系统中,若按键较多时,通常采用矩阵式(也称行列式)键盘。矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上。显然,在按键数量较多时,矩阵式键盘较之独立式按键键盘要节省很多 I/O 口。矩阵式键盘中,行、列线分别连接到按键开关的两端,行线通过上拉电阻接到+5V上当无键按下时,行线处于高电平状态;当有键按下时,行、列线将导通,此时,行线电平将由与此行线相连的列线电平决定。这是识别按键是否按下的关键。 独立连接式键盘独立式按键是直接用 I/O 口线构成的单个按键电路,其特点是每个按键单独占用一根I/O 口线,每

22、个按键的工作不会影响其它 I/O 口线的状态。独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根 I/O 口线,然而,在按键较多时,I/O 口线浪费较大,不宜采用。按键电路图如图 3-6 所示:10图 3-6 按键电路图3)去抖动键盘编程中主要考虑去抖动的问题。当测试表明有键被按下之后,紧接着就进行去抖动处理。因为键是机械开关结构,由于机械触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动。为保证键识别的准确,在电压信号抖动的情况下不能进行行状态输入。硬件方法就是加去抖动电路,从根本上避免抖动的产生。软件消抖,在第一次检测到有键按下时,执行一段延时程序之后,再检测此按键

23、,如果第二次检测结果仍为按下状态,CPU 便确认此按键己按下,消除了抖动。4 软件设计4.1 系统流程在绘制传统流程图时注意几点:1)熟练绘制传统流程图的基本元素,三种基本结构的流程图标准画法。2)将复合条件转为多个单一条件。3)循环注意初值、变化和终止。4)算法的重点实现一定体现出来。程序流程如图 4-1 所示:开始定义P0口Num1N=0 Num /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围 0255#define uint unsigned int /无符号整型 宏定义变量范围 065535sbit beep = P25; /蜂

24、鸣器定义sbit K1=P10;/给 P10 定义,控制 DO 的发音sbit K2=P11;/给 P11 定义,控制 XI 的发音sbit K3=P12;/给 P12 定义,控制 LA 的发音sbit K4=P13;/给 P13 定义,控制 SO 的发音sbit K5=P34;/给 P34 定义,控制 FA 的发音sbit K6=P35;/给 P35 定义,控制 MI 的发音sbit K7=P36;/给 P36 定义,控制 RE 的发音sbit K8=P37;/给 P37 定义,控制 DO 的发音sbit K9=P20;/音乐播放按键uchar flag_en = 0; /开始放歌uchar

25、 flag_i = 0;/数码管段选定义 0 1 2 3 4 56 7 8 9uchar code smg_du=0xde,0x90,0xcd,0xd9,0x93,0x5b,0x5f,0xd0,0xdf,0xdb/ AB C D E F不显示; /断码uchar m,n; uchar code T492=0,0,0xF8,0x8B,0xF8,0xF2,0xF9,0x5B,0xF9,0xB7,0xFA,0x14,0xFA,0x66,0xFA,0xB9,0xFB,0x03,0xFB,0x4A,0xFB,0x8F,0xFB,0xCF,0xFC,0x0B,0xFC,0x43,0xFC,0x78,0xF

26、C,0xAB,0xFC,0xDB,0xFD,0x08,0xFD,0x33,0xFD,0x5B,0xFD,0x81,0xFD,0xA5,0xFD,0xC7,0xFD,0xE7,0xFE,0x05,0xFE,0x21,0xFE,0x3C,0xFE,0x55,0xFE,0x6D,0xFE,0x84,0xFE,0x99,0xFE,0xAD,0xFE,0xC0,0xFE,0x02,0xFE,0xE3,0xFE,0xF3,0xFF,0x02,0xFF,0x10,0xFF,0x1D,0xFF,0x2A,0xFF,0x36,0xFF,0x42,0xFF,0x4C,0xFF,0x56,220xFF,0x60,0

27、xFF,0x69,0xFF,0x71,0xFF,0x79,0xFF,0x81;uchar code music12=0,4, /青花瓷0,4,24,4,24,4,21,4,19,4,21,4,14,8,19,4,21,4,24,4,21,4,19,16,0,4,24,4,24,4,21,4,19,4,21,4,12,8,19,4,21,4,24,4,19,4,17,16,0,4,17,4,19,4,21,4,24,4,26,4,24,4,22,4,24,4,21,4,21,4,19,4,19,16,0,4,17,4,19,4,17,4,17,4,19,4,17,4,19,4,19,4,21,8

28、,24,4,21,4,21,12,0,4,24,4,24,4,21,4,19,4,21,4,14,8,19,4,21,4,24,4,21,4,19,16,0,4,24,4,24,4,21,4,19,4,21,4,12,8,19,4,21,4,24,4,19,4,17,16,0,4,17,4,19,4,21,4,24,4,26,4,24,4,22,4,24,4,21,4,21,4,19,4,19,12,12,4,21,8,19,4,19,8,17,16,0xFF,0xFF;uchar code music22=0,4, /生日快乐17,6,17,2,19,8,17,8,22,8,21,16,17

29、,6,17,2,19,8,17,8,24,8,22,16,17,6,17,2,29,8,26,8,22,8,21,8,19,8,27,6,27,2,26,8,22,8,24,8,22,16,0xFF,0xFF;uchar code music32=0,4, /爱情买卖22,4,22,4,17,4,15,4,15,4,17,12,15,4,15,2,17,2,15,4,13,4,13,4,15,12,0,4,20,4,20,4,20,4,17,4,20,4,20,4,20,4,17,4,22,4,17,4,17,4,15,4,15,4,17,12,22,4,22,4,17,4,15,4,15,4

30、,17,12,15,4,15,2,17,2,15,4,13,4,13,4,15,12,20,4,20,4,20,2,17,2,17,4,20,4,20,4,20,2,17,2,17,2,17,2,24,4,20,4,20,2,17,2,17,4,20,4,22,12,17,4,22,4,25,4,25,4,17,4,22,4,25,8,24,4,22,2,24,2,22,4,20,4,15,4,17,12,2315,4,15,4,15,4,10,4,15,4,17,4,20,8,17,4,24,4,24,4,20,4,15,4,17,12,17,4,22,4,25,4,25,4,17,4,22

31、,4,25,8,29,4,27,2,29,2,27,4,25,4,25,4,27,12,29,4,29,2,27,4,25,4,27,6,27,2,25,4,24,4,20,4,20,2,17,2,20,4,20,2,22,2,22,16,0xFF,0xFF;void delay(uchar p)uchar i,j; for(;p0;p-)for(i=181;i0;i-)for(j=181;j0;j-);void pause()uchar i,j;for(i=150;i0;i-)for(j=150;j0;j-);/*1ms 延时函数*/void delay_1ms(uint q)uint i,

32、j;for(i=0;iq;i+)for(j=0;j120;j+);/*按键程序 */void key() /按键程序24if(K1=0)delay_1ms(10); /按键去抖动if(K1=0)P0=smg_du0;/使数码管显示该音调的字符while(!K1)m = 8;TR0 = 1; /打开定时器/使蜂鸣器发出相应频率的声音;TR0 = 0; /关闭定时器if(K2=0)delay_1ms(10); /按键去抖动if(K2=0)P0=smg_du1;/使数码管显示该音调的字符while(!K2)m = 9;TR0 = 1; /打开定时器/使蜂鸣器发出相应频率的声音;TR0 = 0; /关

33、闭定时器if(K3=0)25delay_1ms(10); /按键去抖动if(K3=0)P0=smg_du2;/使数码管显示该音调的字符while(!K3)m = 10;TR0 = 1; /打开定时器/使蜂鸣器发出相应频率的声音;TR0 = 0; /关闭定时器if(K4=0)delay_1ms(10); /按键去抖动if(K4=0)P0=smg_du3;/使数码管显示该音调的字符while(!K4)m = 11;TR0 = 1; /打开定时器/使蜂鸣器发出相应频率的声音;TR0 = 0; /关闭定时器if(K5=0)delay_1ms(10); /按键去抖动26if(K5=0)P0=smg_du

34、4;/使数码管显示该音调的字符while(!K5)m = 12;TR0 = 1; /打开定时器/使蜂鸣器发出相应频率的声音;TR0 = 0; /关闭定时器if(K6=0)delay_1ms(10); /按键去抖动if(K6=0)P0=smg_du5;/使数码管显示该音调的字符while(!K6) m = 13;TR0 = 1; /打开定时器/使蜂鸣器发出相应频率的声音;TR0 = 0; /关闭定时器if(K7=0)delay_1ms(10); /按键去抖动if(K7=0)27P0=smg_du6;/使数码管显示该音调的字符while(!K7)m = 14;TR0 = 1; /打开定时器/使蜂鸣器发出相应频率的声音;TR0 = 0; /关闭定时器if(K8=0)delay_1ms(10); /按键去抖动if(K8=0)P0=smg_du7;/使数码管显示该音调的字符while(!K8)m = 15;TR0 = 1; /打开定时器/使蜂鸣器发出相应频率的声音;TR0 = 0; /关闭定时器P0 = 0x20;K9 = 1; if(K9=0)delay_1ms(10); /按键去抖动if(K9=0)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报