基于单片机的彩灯控制系统设计_第1页
基于单片机的彩灯控制系统设计_第2页
基于单片机的彩灯控制系统设计_第3页
基于单片机的彩灯控制系统设计_第4页
基于单片机的彩灯控制系统设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、四川信息职业技术学院毕业设计说明书设计题目: 基于单片机的彩灯控制系统设计 专 业: 二0一一年十一月二十日目 录摘 要1绪论2第1章 彩灯控制器方案设计和选择31.1 设计要求31.2 系统功能31.3 方案选择3第2章 硬件设计52.1 系统整体硬件电路和各部分介绍52.1.1 单片机AT89C5252.1.2 复位电路72.1.3 时钟电路82.2 74HC595的引脚及功能82.3 驱动模块92.4 显示模块简介112.5 彩灯控制器总图12第3章 软件设计143.1 语言选择新型143.2 程序功能说明143.3 主程序流程图153.4 程序简介15第4章 彩灯控制器的调试与仿真16

2、结 论22参考文献24附录1 源程序清单25附录2 整机电路图28附录3 元器件明细表29摘 要单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上

3、电脑以及鼠标等电脑配件中都配有1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。本设计是一种基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。本方案以AT89C52单片机作为主控核心,用32个LED构成显示模块、用74HC595作为驱动模块,由编程实现亮灯循环模式。由在显示模块上有32个LED彩灯,根据用户需要可以编写若干种亮灯模式. 本系统具有体积小、硬件少、电路结构简单及容易操作和阅读等优点。该LED彩灯控制器实际应

4、用效果较好,亮灯模式多。与其他LED彩灯相比,具有体积小、价格低、低能耗等优点。在能源比较匮乏的今天,彩灯的循环控制在显示方面更表现出一种节约能源的魅力.这将使彩灯具有更广阔的发展天地。关键词AT89C52;74HC595;循环LED彩灯绪论随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。彩灯的运用已经遍布于人们的生活中,从歌舞厅到卡拉OK包房,从节的祝贺到常生活中的点缀。这些不紧说明了我们对生活的要求有了质的飞跃,也说明科技在现实运用中有了较大的发展,用彩灯来装饰街道和城市建筑物已经成为一种时尚。

5、但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。本文提出了一种基于AT89C52单片机的彩灯控制方案,实现对LED彩灯的控制。第1章 彩灯控制器方案设计和选择1.1 设计要求本次毕业设计要求设计一个可编程彩灯控制器,其设计要求如下:1、用32个发光二极管作为显示电路。2、

6、实现LED动态显示。3、能连续循环显示。1.2 系统功能 彩灯控制器可直接与220 V交流市电相连接,经过开关电源变换,输出直流工作电压,一方面为管内LED模块提供12 V工作电源,另一方面为主控模块单片机系统提供5 V工作电源。整个系统工作由软件程序控制运行。上电后,彩灯控制器按程序设计好的模式进行显示,由全灭按程序显示全都熄灭为一个周期。然后循环继续工作。1.3 方案选择方案1:可采用AT89C52作为主控制芯片,用74LS164作为驱动,用4个164分别接8个LED,32个LED构成显示模块。可用C或者汇编编程实现。方案框图如图1-1:AT89C5274LS16474LS16474LSI

7、6474LS164LED显示时钟电路电源电路复位电路图1-1 方案一框图方案1用了164作为驱动,编程有些复杂,实现功能比较多,但164不具有数据锁存功能,显示不稳定,容易受干扰。方案2: 可用AT89C52作为主控芯片,用74HC595作为驱动,用4个595分别接8个LED,32个LED构成显示模块。可用C或者汇编编程实现。方案框图如图1-2:AT89C5274HC59574HC59574HC59574HC595LED显示时钟电路电源电路复位电路图1-2 方案二框图 方案2采用595作为驱动,由于595有数据锁存功能,显示稳定,不易受干扰,显示方案也比方案1多。综合考虑:本设计采AT89C5

8、2作为主控芯片,595作为驱动,实现彩灯循环显示。第2章 硬件设计2.1 系统整体硬件电路和各部分介绍2.1.1 单片机AT89C52图2-1 AT89C52引脚图VCC:供电电压。GND:接地。P0口:P0口是一组8 位漏极开路型双向I/O口, 也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8gTTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问个外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。P1口:

9、P1是一个带内部上拉电阻的8 位双向I/O口, P1 的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参表2-1。Flash编程和程序校验期间,P1接收低8 位地址。表.P1.0和P1.1的第二功能 表 2-1 P1.0和P1.1的第二功能引脚号功能特性P1.0T2,时钟输出P1.1T2EX(定

10、时/计数器2)P2口:P2是一个带有内部上拉电阻的8位双向I/O 口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8 位地址的外部数据存储器时,P2口输出P2锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动4 个TTL 逻辑门电路。

11、对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:AT89C52中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐

12、振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。使用石英晶体,我们推荐电容使用30pF±10pF,使用陶瓷谐振器建议选择40pF±10F。用户也可以采用外部时钟。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。AT89C52主要特性:兼容MCS51指令系统 , 8k可反复擦写(>1000次)Flash ROM 32个双向I/O口,256x8bit内部RAM 3个16位可编程定时/计数器中断 ,时钟频率0-24MHz 2个串行中断 ,可编程UART串行通道 2个外部中断源

13、,共6个中断源 2个读写中断口线,3级加密位 低功耗空闲和掉电模式,软件设置睡眠和唤醒功。2.1.2 复位电路为确保两点间温度控制系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般电路正常工作需要供电电源为5V±5%,即4.755.25V。复位是单片机的初始化操作,其目的是使CPU及各专用寄存器处于一个确定的初始状态。如:把PC的内容初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要复位以使其恢复正常工作状态。RST端的外部复位电路有两种操

14、作方式:上电自动复位和按键手动复位。按键手动复位有电平方式和脉冲方式两种,本系统设计采用按键电平复位,如图2-2所示。按键电平复位是相当于RST端通过电阻接高电平来实现单片机的复位。图2-2 复位电路2.1.3 时钟电路单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片机工作所需要的时钟信号。单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到:内部振荡和外部振荡。本系统设计采用内部振荡方式,如图2-3所示。MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用

15、内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式。图2-3 时钟电路主控模块:本设计用AT89C52作为主控模块,用P10口作为信号口与驱动模块相连。AT89C52单片机作为主控模块,由C1, C2 和X1构成振荡器,引脚XTAL1 和XTAL2 分别是输入端和输出端。P1口的P10作为信号输出,将控制程序烧入单片机上电后开始工作。2.2 74HC595的引脚及功能 图2-4 74HC595引脚图Q0 Q1 Q7 15, 1, 7 并行数据输出GND 8 接地Q7 9 串行数据输出MR 10 主复位(低电平)SHCP 11 移位寄存器时钟输入STCP 12 存储寄存器时钟

16、输入OE 13 输出有效(低电平)DS 14 串行数据输入VCC 16 电源74HC595主要特性:8位串行输入 /8位串行或并行输出 存储状态寄存器,三种状态输出寄存器可以直接清除100MHz的移位频率。并行输出,总线驱动。595移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。2.3 驱动模块本设计用74HC595作为驱动,有4个74HC595构成驱动模块,将单片机的P10,P11,P13,P12口分别与595的SH_CP,DS,ST_CP,MR相连,并

17、注上相应标号。DS作为数据口,SH_CP和ST_CP作为时钟,第一个595的输入端DS与P11口相连,第一个595输出端与第二个595输入端相连,直到连到最后一个。将输出端与LED相连构成驱动模块。驱动模块图如图2-5:图2-5 驱动电路驱动模块工作原理:本设计采用AT89C52的P10口输出信号,P11和P12作为时钟输入,用了4个74HC595。上电后P10口输出信号给595,74HC595是含8位串入、串/并出移位寄存器和8位三态输出锁存器。寄存器和锁存器都有自己的时钟输入,都是上升沿有效。当SH_CP从低到高电平跳变时,串行输入数据移入寄存器;当ST_CP从低到高电平跳变时,寄存器的数

18、据置入锁存器;清除端MR的低电平只对寄存器复位(Q7为低电平),而对锁存器无影响。当输出允许控制E为高电平时,并行输出(O0-O7)为高阻态,而串行输出(Q7)不受影响。74HC595最多只需要5根控制线,即SH_CP、DS、ST_CP、MR和E。其中MR可以直接接到高电平,用软件来实现寄存器清零;把SH_CP、ST_CP、MR三根线和单片机的P10、P13、P12口相接,数据从DS口送入74HC595,在每个SH_CP的上升沿,DS口上的数据移入寄存器,在SH_CPMR的第9个上升沿,数据开始从Q7移出。把第一个74HC595的Q7和第二个74HC595的DS相连,数据即移入第二个74HC5

19、95中,照此一个一个接下去,直到接到第4个。数据全部送完后,给ST_CP一个上升沿,寄存器中的数据置入锁存器。如果E为低电平,数据即从并口O0-O7输出,把O0-O7与八个LED相连,LED就可以实现显示了。2.4 显示模块简介显示模块有32个LED构成,分成4行8列,每行8个,每列4个。每个LED分别与0.25k的电阻相连,在接上电源。当程序烧入单片机,上电后在595的驱动下按程序循环显示。如图2-6:图 2-6 LED显示电路2.5 彩灯控制器总图将主控模块,驱动模块,显示模块连接起来构成控制器总图。将程序烧入单片机,上电后,信号由P1口输出送入595,在由595驱动显示模块按程序设定的模

20、式循环显示。如图2-7: 图2-7 彩灯控制器总图第3章 软件设计3.1 语言选择新型LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。本设计采用AT89C51单片机为主控芯片,所以程序实现可以用汇编语言或C语言,也可以汇编和C混合使用。汇编语言有其一定的优点,比如:能够直接访问与硬件相关的存储器或I/O端口;能够不受编译器的限制,对生成的二进制代码进行完全的控制;能够根据特定的应用对代码做最佳的优化,提高运行速度;能够最大限度地发挥硬件的功能;用汇编语言编写的程序比用高级语言编写的程序所要求的存储空间与执行时间将显著减少等。但是汇编语言是一种层次非常低的语言,它仅仅高于直接手工编写二

21、进制的机器指令码,因此不可避免地存在一些缺点。比如:编写的代码非常难懂,不好维护;很容易产生Bug,难于调试;只能针对特定的体系结构和处理器进行优化;开发效率很低,时间长且单调。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言等。而C语言也有其缺点,主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷;C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。但是C语言简洁紧凑、灵活方便 、运算符丰富、数据结构丰富、C语法限制不太严格,程序设计自由度大、C语言允许直接访问物理地址,可以直接对硬件进行操作、 C语

22、言程序生成代码质量高,程序执行效率高,一般只比汇编程序生成的目标代码效率低1020%, C语言适用范围大,可移植性好。由于本设计需要仿真调试,经过综合考虑,选用C语言编程实现对LED彩灯的控制。3.2 程序功能说明LED彩灯控制器所有亮灯模式均由软件控制完成。可以根据需要来确定各种模式工作时间Ti,以及确定在各种亮灯模式Mode l_i内点亮和熄灭各种颜色LED灯的时刻。整个系统软件由主程序(Main)、各个模式子程序(Model_i)、显示子程序(Display)等程序组成。根据模式需要计算好各控制信号的发生时刻,根据不同的模式Mo del_i可以设定不同的工作时间Ti通过P1口输出,使LE

23、D彩灯按照设计的模式工作。亮灯模式子程序Model_i可以编写若干(n种),只要控制好各色灯触发和熄灭时刻就可以组合成各种亮灯效果。本设计的功能是通过改变LED亮灭方式使彩灯轮流显示,上电后在缺省状态顺序调用Model_i花样亮灯模式,由从右到左同步依次点亮两列一组从右到左同步依次点亮6,7,8列点亮2,3,4列点亮右4列亮左4列灭右四列灭左4列亮3,4,7,8列亮2,3,4,6,7,8列亮全亮奇数列亮偶数列亮从两边到中间依次点亮从中间到两边依次熄灭前两行亮后两行灭前两行灭后两行亮左4列亮右4列灭左4列灭右四列亮对角亮OK图形构成亮灯模式的循环。3.3 主程序流程图主程序程序初始化调用亮灯模式

24、1第一种模式亮完?······················调用第I种亮灯模式(I=1,2,3······N)YNYN第N种亮灯模式完?图 3-1 主程序流程图3.4 程序简介本设计用了P1口的P10,P11,P12和P13。程序有主程序,子程序,延时程序。 定义LED低电平亮高电平灭。由于显示方式比较多,需要定义一

25、个数组来存放显示数据。当显示方式比较简单逐个点亮时还可以调用流水灯程序段。延时一定时间后按显示数据依次显示下去直到最后一种显示方式。延时一定时间后循环继续显示。第4章 彩灯控制器的调试与仿真本设计采用Proteus.Professional(单片机仿真软件)进行仿真,由于电路图是用Protel 99 SE所绘制,Proteus不能识别,所以进行仿真前打开Proteus新建文件添加元件在新建文件界面放置元件布局连线修改。确定无误后保存。程序则由KEIL编译,编译成功后保存。在打开Proteus打开电路图双击单片机添加程序点击开始进行仿真。若不能实现预期效果,则检查电路图和程序进行修改程序中数组显

26、示的结果。部分仿真图如下:图4-1 彩灯显示此图为左4列亮右4列灭显示方式,对应程序数组中的0x0f0f0f0f显示方式。图4-2 彩灯显示此图是1,2列和5,6列同时亮显示方式,对应程序数组中的0xcccccccc显示方式。图4-3 彩灯显示此图是奇数列亮显示方式,对应程序数组中的0x55555555显示方式。图4-4 彩灯显示此图是偶数列显示方式,对应程序数组中的0xaaaaaaaa显示方式。图4-5 彩灯显示此图是对角亮显示方式,对应程序数组中的0x0f0ff0f0显示方式。图4-6 彩灯显示此图是最后一种显示方式“OK”,对应程序数组中的0xf61313f6显示方式。结 论在本设计过程

27、中虽然遇到很多困难,但是从中收获很多。本设计主要是用单片机设计彩灯控制器,用C语言编程实现对彩灯亮灭模式的控制,用AT89C52作为主控芯片,用74HC595作为驱动,其中硬件设计与软件设计都离不开对单片机知识的再学习。这让我对单片机知识的理解更加深刻。单片机由于去造价低廉控制简单等特点而得到广泛应用。在LED设计中选用单片机可以减少很多不必要的麻烦。本次设计需要根据要求运用所学知识将其付诸实践来完成。这并不是在课堂上的单纯听懂,或者课后看书过程中的深入理解,这需要的是一种理论联系实践的能力。理论知识往往都是在一些理想状态下的假设论,而实际的动手操作则完全不同,需要考虑实际中的很多问题。有些知

28、识在理论上可能完全没错但到了实际中则不然。比如在动笔做题时我们是不用考虑导线的电阻的,但在实际中,导线电阻有时是会造成花型变化的错乱,所以我们应尽量在连接电路时选择最短路径。这次的设计中应用了整块板子,对电路板更加了解了。设计中通过对电路的连接也懂得了如何通过设计的分析对所连电路的整体布局,如何更好的放置芯片在最合适的位置。在导线的连接上,如何选择导线走向是关键,我们应该尽量保证所连电路的简捷,宁短勿长,合理布线。一个成功的作品不仅要能很好的完成要求实现功能,还要在感官上给人美的享受。所以站在美的角度对自己的电路进行改良是很必要的。本设计采用C语言编程,则可以分块编程,画出程序流程图,但总体思

29、路要清晰。通过查阅资料,找到相似设计的程序,适当修改,将其变成自己的程序,前提是读懂,吸收此相似程序。编写程序时要细心,有时一个字母的大小写就可以使程序出错。修改程序时要从上到下修改,有时上面修改好了下面的自然就没错了,不要从下到上或者随机修改。总之,编程是需要细心,耐心和技巧的。在设计中经常会遇到一些自己可能暂时无法想明白的问题,请教同学或老师是很好的做法,既节省时间也会从别人身上学到更多。在设计时和同学相互交流各自的想法也是很重要的,不同的人对问题的看法总有差异,我们可以从交流中获得不同的意见,其他人的设计一定有比你出色的地方,很好的借鉴,最终一定会得到很好的设计方法。与市面上大多数的LE

30、D彩灯相比,该种彩灯具有更好的灯光装饰效果,性价比更高,与普通的全硬件LED彩灯相比具有更好的经济效益。应用主控模块输出的控制信号去控制灯管内的LED板模块工作,使得产品性能稳定,便以安装容易操作。由于控制程序存储在89C52单片机的电可擦除Flash闪存EPROM中,如果用户需要更改系统的亮灯模式,无须改变系统硬件电路,只需修改其中程序即可,是一种很有发展前途的彩灯控制。参考文献1 任为民. 电子技术基础课程设计. 1997年5月第一版. 北京:中央广播大学出版社. 1997.52 张毅坤、陈善久、裘雪红. 单片微型计算机原理机及应用. 1998年第一版.西安:西安电子科技大学出版社. 19

31、98.83 谭浩强. C程序设计. 第2版. 北京:清华大学出版社. 2005.64 田立,田清,代方震. 51单片机C语言程序设计快速入门. 北京:电子工业出版社. 20075 AT89C52中文资料. 电子译站6 刘乐善,欧阳星明,刘学清. 微型计算机借口技术及应用. 2000年4月第一版. 武昌:华中科技大学出版社. 2000.4附录1 源程序清单#include <reg52.h>#define uchar unsigned char#define uint unsigned int#define ulong unsigned long#define BUF_LONG 42

32、sbit ST_CP = P13;sbit SH_CP = P10;sbit MR = P12;sbit DS = P11;void delay_ms(uint);void writ_data(ulong); ulong code data_bufBUF_LONG = 0xfefefefe,0xfdfdfdfd,0xfbfbfbfb,0xf7f7f7f7,0xefefefef,0xdfdfdfdf,0xbfbfbfbf,0x7f7f7f7f,0xfcfcfcfc,0xf3f3f3f3,0xcfcfcfcf,0x3f3f3f3f,0xf8f8f8f8,0x8f8f8f8f,0xf0f0f0f0,0x0f0f0f0f,0xcccccccc,0x88888888,0x00000000,0x7f7f7f7f,0x

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论