基于单片机的密码锁设计_第1页
基于单片机的密码锁设计_第2页
基于单片机的密码锁设计_第3页
基于单片机的密码锁设计_第4页
基于单片机的密码锁设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

I绪论1.1选题背景与意义随着科技的不断发展和人们生活水平的提高,安全问题逐渐成为人们关注的焦点。在日常生活中,无论是家庭、办公室还是其他公共场所,锁具都扮演着至关重要的角色。传统的机械锁虽然在一定程度上能够提供安全保障,但其密码固定、易复制、易被破解等缺点使得其安全性受到挑战。电子密码锁作为一种新型的防盗锁具,凭借其安全性、便捷性、灵活性等优势,越来越受到人们的青睐。研究者提出了多种密码锁的设计方案。陈新芬等[1]针对人们对安全和隐私的需求,设计了一种指纹密码锁,该锁由AT89C52芯片主控、集成了AS608集成光学传感器、矩阵键盘、LCD1602显示器等模块、可以实现指纹解锁,密码输入次数超限后系统自锁并启动连续循环报警的功能。该锁具有安全可靠的特点,可以满足人们对安全性的需求。赵永涛[2]针对传统门禁系统安全性不高的问题,设计了基于RFID技术的门禁密码锁系统,系统采用STC89C52RC单片机作为控制芯片、由AT24C02存储器模块、MFRC522射频识别非接触式IC卡片模块、12864液晶模块等组成,该系统可采用门禁卡解锁,也可以使用密码解锁。徐建琴等[3]针对使用传统机械式钥匙开锁需要钥匙比方便的问题,设计了一种基于ATmega16L单片机为主控芯片的电子密码锁系统。该系统在安全方面的措施为:密码输入超过三次,系统启动报警铃。杨德斌[4]针对传统机械锁安全性不高的问题,设计了一种电子密码锁,该锁以MSP432为主控、由指纹、红外接收、无缘蜂鸣器等模块组成,具有保密性好,操作方便的特点,具有一定的实用价值。孙万麟等[5]提出了一种的多功能电子密码锁控制系统设计方案并用Proteus软件进行了模拟仿真设计,该系统采用AT89S51单片机为主控,包含LCD显示器、复位以及蜂鸣器报警等电路、具有密码修改、成功开锁、输入错误报警等多种功能。杨朋飞等[6]设计了一款指纹密码锁系统,在硬件采用了FPM10A光学指纹识别模块、辅以液晶显示、按键输入等多种模块,通过C语言编写了软件程序。系统能完成指纹录入、清除指纹、密码输入等多种功能,实现了三种模式解锁,指纹识别准确率较高。胡伟霞等[7]设计了一种智能密码锁系统,该系统核心处理器是STM32F103C8T6单片机、包含AT24C02存储器等多种模块、具有录入指纹、指纹解锁、数字密码解锁等各种功能,还可以进行语言播报,该系统具有性价比高、体积小、操作方便、安全性高等优点。杨晓龙[8]针对钥老人和小孩使用机械锁不便的问题,设计了一款GSM家庭防盗门电子锁系统。系统采用STC89C516单片机作为控制芯片、由GSM模块、继电器和电磁铁模块、蜂鸣器等模块组成,该系统可以实现一键拨打户主电话和短信远程开锁的功能,具有一定的实用性。徐玉召等[9]设计了一种由STC89C52单片机为主控的电子密码锁,该锁具有成本低,操作简单,安全系数高的特点。1.2设计任务设计要求如下:1、可以实现密码开关门;2、有管理员密码,不怕忘记密码,可以管理员重置密码;3、通过LCD显示密码,同时错误次数太多,蜂鸣器提醒报警;4、具备自动存储功能,存储数据不丢失,密码可以随时修改。2方案分析与模块选型2.1总体方案设计本系统以单片机为控制核心,通过外围硬件模块实现密码锁的各项功能。系统包括显示模块、红外接收模块、门锁模块、输入模块、存储模块等。系统能够实现如下工作流程:用户通过输入密码,密码输入情况即时显示;如果密码输入正确,门锁打开;如果密码输入错误,开启报警提示;用户还可以通过控制器远程控制开关门并修改密码,新密码会存储在系统中。单片机作为系统的控制核心,负责接收用户指令,协调各外围模块的工作,实现密码锁的各项功能。显示模块用于实时显示系统状态和用户输入信息,方便用户操作。红外接收模块用于接收用户的远程控制指令,实现远程开锁/关锁功能。输入模块作为用户的输入设备,用于密码输入和修改。系统结构如REF_Ref165045926\h图2.1所示。图2.SEQ图\*ARABIC\s11系统结构图2.2单片机模块选型方案一:选用STC89C52单片机STC89C52是一款经典的8位单片机,具有丰富的外围接口资源,包括32个并行I/O口、3个16位定时器/计数器、全双工串行通信接口UART等,能够很好地满足中等以下复杂设计的需求。优点:低功耗、可靠性强,广泛应用于各种嵌入式控制领域,资源丰富,开发容易,成本低。缺点:处理能力一般,内部存储有限。方案二:选用STM32F103单片机STM32F103是一款32位ARMCortex-M3内核的微控制器,具有丰富的外设资源,包括三个12位ADC、两个DAC、七个通用定时器、两个基本定时器、两个看门狗定时器、三个通信接口等。优点:工作频率高,具有高性能、低功耗的特点,集成度高,外设资源丰富。缺点:功耗较高,开发复杂,成本也相对较高。综上:考虑到设计需求和成本因素,STC89C52单片机更适合作为本系统的控制核心,因此选用方案一。2.3按键模块选型方案一:选用独立按键独立按键是最简单直接的输入方式,只需将每个按键分别与单片机的I/O口相连即可。这种方案硬件,但按键数量受单片机I/O口数量的限制,当需要增加按键功能时,会占用大量I/O资源。优点:独立按键方案的优点是硬件电路简单,接线方便,易于实现。缺点:是I/O资源占用多,按键数量受限。方案二:选用矩阵按键矩阵按键是一种常用的按键输入方式,通过行列扫描的方式来检测按键情况,可大幅减少单片机I/O资源的占用。优点:I/O资源占用少,按键数量方便扩展,具有按键消抖、按键检测等功能,可靠性较高。缺点:控制设计相对复杂,需要专门的按键扫描程序。综上:考虑到系统的输入需求,综合考虑成本等因素,采用方案二,使用矩阵按键。2.4存储模块选型方案一:选用FM24C02存储模块FM24C02是一款2Kb容量的电可擦可编程只读存储器,可通过I2C接口与单片机连接。优点:数据保持时间长、读写速度快、集成度高,采用I2C总线接口,与单片机的集成较为容易。缺点:存储容量有限。方案二:选用AT24C02存储模块AT24C02是一款2Kb容量的EEPROM存储器,可通过I2C接口与单片机连接。优点:数据不易丢失、寿命长,可靠性强,采用标准的I2C总线接口,与单片机的集成较为容易。缺点:写入速度相对较慢,可能不适合对写入速度有严格要求的应用场景。综上:AT24C02与FM24C02的性能指标相当,但AT24C02的价格相对更加经济适用,更加符合本系统的成本需求。考虑到本系统对存储模块的要求AT24C02完全能满足需求,因此选用方案二,使用AT24C02存储模块。2.5液晶模块选型方案一:选用OLED显示模块优点:体积小、重量轻、功耗低、视角宽、对比度高。缺点:价格相对较高。方案二:选用LCD1602显示模块LCD1602显示模块是一种常见的字符型液晶显示器,可以显示2行16个字符。优点:成本低、集成度高。缺点:视角较窄,显示效果一般。综上:LCD1602显示模块成本较低,易于集成,更加适合本系统的设计,因此选用方案二,使用LCD1602显示模块。

3硬件设计3.1主控模块设计STC89C52单片机作为本系统的核心控制单元,负责整个系统的协调运作。它通过与各类外围模块进行通信和交互,完成密码锁的各项功能。STC89C52拥有丰富的资源,如4组8位并行I/O口、3个16位定时/计数器、4组中断源等,可以灵活地与系统中的各个模块进行连接和控制。在程序设计中,首先完成单片机的初始化配置,包括I/O口、定时器、中断等的设置。例如,将P0口的0-7位分别连接到LCD1602模块的数据接口,将P1口的0-7位连接到矩阵按键模块,用于扫描按键状态。将P3.2和P2.0位分别连接到红外接收模块和继电器模块,用于接收红外遥控指令和控制电磁锁的开关。通过合理的I/O口分配,STC89C52能够与系统中的各个模块高效地进行数据交互。在定时器配置方面,利用T0和T1两个16位定时器,分别用于实现矩阵按键的扫描和红外遥控信号的解码。通过定时器的定期中断触发,单片机可以及时获取按键输入和红外遥控指令,确保系统的实时响应性。在程序中设置了外部中断INT0和INT1,分别用于检测用户输入密码完成和红外遥控指令接收完成的事件。当这些事件发生时,单片机能够快速进入相应的中断服务程序,执行密码校验、电磁锁控制等操作,提高系统的交互性和响应速度。在编写主程序流程时,首先完成系统的初始化工作,包括配置I/O口、初始化定时器和中断等。然后,主程序进入一个无限循环,不断地扫描按键状态、检测红外遥控指令,并根据用户的操作,执行相应的密码锁控制逻辑,如密码输入、密码校验、电磁锁开关等。通过STC89C52单片机的强大性能,结合周围各类模块的协同工作,实现了一个功能全面、操作简单的密码锁控制系统。STC89C52单片机引脚如REF_Ref165045910\h图3.1所示。图STYLEREF1\s3.1STC89C52单片机引脚3.2红外接收模块设计本系统采用红外遥控技术,通过红外接收模块接收用户通过遥控器发送的各类控制指令,如开锁、关锁和修改密码等。红外接收模块由红外接收芯片和相关电路组成,能够将红外遥控器发出的红外信号转换为电子脉冲信号,并将其传输给单片机进行识别和处理。在系统设计中,选用了常见的红外接收模块TSOP1738,它采用38kHz调制频率的红外信号,可以有效抑制环境干扰,提高接收的可靠性。红外接收模块的引脚需要与STC89C52单片机的I/O口相连,将其连接到P3.2引脚上。单片机可以通过读取红外接收模块的输出状态,判断用户发送的具体指令,并相应地执行相关的控制操作。为了实现红外遥控指令的解码,在程序中设计了一个红外中断服务程序。当用户通过遥控器发送指令时,红外接收模块会产生一个外部中断INT0,单片机会进入该中断服务程序。在中断程序中,首先判断接收到的红外信号是否有效,然后根据解码出的指令类型,执行相应的控制逻辑,如开锁、关锁或修改密码等。通过该中断机制,单片机能够及时响应用户的遥控操作,提高了系统的交互性和灵活性。由于红外信号容易受到环境光照、电磁干扰等因素的影响,在电路设计时,采用了合理的滤波电路,提高了红外接收模块的抗干扰能力,确保红外遥控指令的可靠接收。通过红外接收模块的设计,用户可以方便地通过遥控器远程控制密码锁的状态,如开锁、关锁和修改密码等,极大地提高了系统的使用便利性。红外接收模块电路设计见图REF_Ref5066\r\h3.3所示:图STYLEREF1\s3.2红外接收模块电路3.3LCD显示模块设计LCD1602液晶显示模块是本系统中重要的人机交互界面,能够实时显示系统的工作状态和密码输入情况,为用户提供直观的反馈信息。LCD1602模块由LCD控制芯片和液晶显示屏组成,可以显示16个字符,分两行显示。LCD1602液晶显示模块采用标准的并行8位数据接口,可以直接与STC89C52单片机的I/O口相连。将LCD1602模块的数据接口引脚D0-D7分别连接到STC89C52的P0口,控制引脚RS和E分别连接到P2.0和P2.1引脚。通过这种连接方式,单片机可以通过向LCD1602发送相应的指令和数据,控制屏幕上的内容显示。为了实现LCD1602的显示控制,在程序中编写了一系列LCD驱动函数,如LCD初始化、LCD写命令、LCD写数据等。在系统启动时,首先对LCD1602进行初始化配置,包括设置显示模式、光标控制、显示开关等。之后,在主程序中,根据系统的工作状态,动态地更新LCD1602的显示内容。当用户输入密码时,LCD1602可以显示"请输入密码"的提示信息;当密码输入完成后,LCD1602可以显示"密码正确/错误"的反馈信息;如果用户通过遥控器修改了密码,LCD1602也会相应地显示"密码修改成功"的提示。通过LCD1602模块的显示,用户可以及时了解系统的工作状态,提高了人机交互的友好性。由于LCD1602的刷新频率较低,如果直接在主程序中进行显示操作,可能会导致画面卡顿或闪烁。为了解决这一问题,在程序中设计了一个LCD显示任务,利用定时器中断周期性地更新LCD1602的显示内容,确保画面能够流畅地呈现给用户。液晶显示模块电路如图REF_Ref5406\r\h3.3所示。图STYLEREF1\s3.3液晶显示模块电路3.4门锁模块设计电磁锁模块是密码锁系统中的执行机构,负责完成门锁的开锁和关锁动作。电磁锁模块由电磁锁芯和驱动电路组成,当系统检测到用户输入的密码正确时,单片机会通过输出控制信号驱动电磁锁模块,使电磁锁芯吸合或释放,从而实现开锁或关锁的功能。为了驱动电磁锁,本系统设计了一个继电器驱动电路,将STC89C52单片机的P2.0引脚连接到继电器模块的控制端,单片机可以通过输出高低电平,控制继电器的吸合与释放,进而控制电磁锁的开闭。当用户输入正确的密码时,单片机会向继电器模块发送开锁指令,使继电器吸合,从而为电磁锁芯通电。这样,电磁锁就会吸合,门锁处于开启状态。相反,当用户输入错误的密码时,单片机会向继电器模块发送关锁指令,使继电器释放,切断电磁锁芯的电源,电磁锁就会释放,门锁处于关闭状态。由于电磁锁的工作电压和电流较高,通常需要独立的电源供应。在设计中,采用了隔离的电源模块,为电磁锁提供稳定的12V直流电源,确保其能够可靠地工作。为了避免电磁锁在工作过程中产生的反向电动势对单片机造成损害,在继电器驱动电路中加入了二极管等保护措施,确保单片机的安全运行。电磁锁驱动电路设计见图3.4所示:图STYLEREF1\s3.4电磁锁驱动电路3.5按键模块设计按键模块是本系统中用户输入密码和修改密码的主要接口,按键模块由矩阵按键和按键扫描电路组成,能够将用户的按键操作转换为电信号,传输给单片机进行识别和处理。在系统设计中,选用了4x4的矩阵按键作为输入设备,矩阵按键的优点是可以使用较少的I/O引脚实现多按键检测,降低了单片机的资源占用。将矩阵按键的行线连接到STC89C52的P1.0-P1.3引脚,列线连接到P1.4-P1.7引脚,构成一个16键的矩阵按键阵列。将行线设为输出低电平,列线设为输入上拉,然后逐个扫描各行线,检测列线的电平变化。如果检测到某个列线的电平发生变化,说明对应的按键被按下。可以通过行列交叉点的信息,确定用户按下的具体按键。为了消除按键抖动的影响,在按键扫描程序中加入了软件去抖动处理。具体来说,当检测到按键被按下时,不会立即响应,而是延迟一段时间(如10ms)后,再次检测按键状态。只有在这段时间内,按键状态一直保持按下,才认为这是一次有效的按键输入,并将其传递给上层逻辑进行处理。这种简单而有效的去抖动方法,确保了按键输入的可靠性,避免了因按键抖动而导致的错误输入。当检测到用户按下密码输入键时,会将按键值缓存到一个输入缓冲区中。同时,还会根据用户的按键操作,执行相应的逻辑,如密码输入、密码修改等。例如,当用户按下"确认"键时,会从输入缓冲区读取密码数据,并将其传递给密码校验模块进行验证。按键电路设计如图REF_Ref6177\r\h3.5所示.图STYLEREF1\s3.5按键电路3.6存储模块设计AT24C02存储模块是本系统中用于存储用户密码的非易失性存储器,AT24C02是一款2Kbit的EEPROM芯片,能够在断电情况下保存用户设置的密码信息。该芯片采用标准的I2C通信协议,可以直接与STC89C52单片机的I2C总线相连。当用户通过矩阵键盘输入并修改密码时,单片机会将新的密码信息写入AT24C02存储模块。同时,在系统上电时,单片机会从AT24C02中读取存储的密码数据,作为验证用户输入密码的依据。通过AT24C02存储模块的设计,密码锁系统能够实现密码的持久化存储和安全管理。用户设置的密码不会因为断电而丢失,同时也能够得到有效的加密保护,大大提高了系统的安全性。存储模块电路设计如图3.6所示。图STYLEREF1\s3.6存储模块电路4软件设计4.1软件总体设计在本系统的主程序流程中首先进行系统初始化,包括I/O口、定时器、LCD显示等模块的初始化;然后检测矩阵键盘状态,获取用户输入的密码;将用户输入的密码与存储在AT24C02中的密码进行比对;如果密码输入正确,则通过继电器控制电磁锁实现开锁,同时在LCD上显示"开锁成功"等提示信息;如果密码输入错误,则通过蜂鸣器发出报警提示,同时在LCD上显示"密码错误"等信息;紧接着检测红外遥控器的状态,根据用户遥控指令控制电磁锁的开关;如果用户需要修改密码,则通过矩阵键盘输入新密码,并将其存储在AT24C02中;主程序流程的设计充分考虑了系统的各项功能需求,包括密码输入、密码比对、锁门控制、远程遥控、密码修改等关键环节。该流程能够确保系统各个模块之间的协调工作,实现密码锁的全面功能。系统主程序的软件设计框架见REF_Ref165045859\h图4.1所示。图STYLEREF1\s4.SEQ图\*ARABIC\s11系统主程序流程图4.2按键识别及处理程序设计按键函数子流程如REF_Ref165045536\h图4.2所示:作为用户本地手动输入的入口,按键子程序需要时刻扫描各按键的状态,一旦发现有按键按下,就需立即处理用户的操作指令。首先通过软件对多个按键端口线设置上拉电阻,当无按键按下时,对应端口为高电平。然后周期性轮询扫描这些端口口线的状态,一旦发现有端口由高电平转为低电平,即判断有按键被按下,从而确定是哪个按键被按下。图STYLEREF1\s4.SEQ图\*ARABIC\s12按键识别程序4.3软件仿真本系统采用进行了Proteus8.6仿真模拟。初始化界面如REF_Ref165045517\h图4.3所示:图STYLEREF1\s4.SEQ图\*ARABIC\s13初始化界面当使用者输入超过三次密码都识别出错误的时候,键盘将会锁死,显示屏会提示错误,如REF_Ref165045836\h图4.4所示。图STYLEREF1\s4.SEQ图\*ARABIC\s14键盘锁死使用者可以根据实际情况自行修改密码,如REF_Ref165045611\h图4.5所示。图STYLEREF1\s4.SEQ图\*ARABIC\s15修改密码当输入了正确密码后,继电器线圈将会闭合,同时继电器上的指示灯亮起,表示已经开锁,如REF_Ref165045653\h图4.6所示。图STYLEREF1\s4.SEQ图\*ARABIC\s16密码正确本系统设有万能密码,当输入万能密码后,系统将自动回到初始化状态,如REF_Ref165045707\h图4.7所示。图STYLEREF1\s4.SEQ图\*ARABIC\s17程序初始化5功能测试分别对各个硬件模块进行单独测试,验证其功能是否正常工作,包括检查LCD1602显示模块能否正确显示预期内容,矩阵键盘能否准确检测按键输入,红外遥控器能否发送正确的控制指令等。在各模块单独测试的基础上,将各个模块集成到完整的系统中,测试系统的整体功能是否符合设计要求。在系统测试过程中,重点关注了密码输入、锁门控制、远程控制、密码修改、显示功能和报警功能等关键环节的测试。通过矩阵键盘输入正确和错误的密码,检查系统的密码识别和处理功能是否正常。同时测试了系统通过继电器控制电磁锁开关的功能,确保能够可靠地实现密码锁的自动开锁和关锁。如果密码输入正确,在LCD上显示"开锁成功"提示信息,如图REF_Ref6921\r\h5.1所示。图STYLEREF1\s5.SEQ图\*ARABIC\s11开锁测试用户通过矩阵键盘输入密码,如果输入密码错误,蜂鸣器报警提示,LCD上显示“密码错误”信息,如REF_Ref7692\h图STYLEREF1\s5.2所示:图STYLEREF1\s5.SEQ图\*ARABIC\s12密码错误测试使用红外遥控器发送开锁/关锁指令,检查系统的远程控制功能是否能够正确执行,如REF_Ref7692\h图STYLEREF1\s5.3所示。图STYLEREF1\s5.SEQ图\*ARABIC\s13遥控器控制测试测试了用户通过矩阵键盘修改密码时,新密码是否能够正确存储和读取,如REF_Ref8048\h图STYLEREF1\s5.4所示。图STYLEREF1\s5.SEQ图\*ARABIC\s14修改密码通过上述全面的测试,确保了该密码锁控制系统各项功能的稳定可靠运行。6结论6.1存在的问题在本系统设计中,虽然达到了设计要求,但也存在这需要改进和完善的地方,具体如下:(1)硬件成本与系统稳定性本设计采用的STC89C52单片机虽然成本较低,但处理能力与扩展性相对有限,可能在高并发或复杂环境下出现性能瓶颈,影响系统的稳定性。同时,为了降低成本,部分硬件模块如LCD1602显示模块可能显示效果不够理想,影响用户体验。(2)安全性与防护机制尽管系统设计了密码错误次数限制与报警机制,但在极端情况下,如持续暴力破解密码,系统可能面临安全风险。此外,对于电磁锁等执行机构的物理防护措施不足,易受到外部攻击或损坏。(3)用户体验与交互性目前系统主要通过矩阵键盘和红外遥控器进行密码输入和远程控制,操作方式相对单一,对于不熟悉电子设备的用户可能不够友好。同时,系统缺乏直观的反馈机制,如声音提示、动画效果等,影响了交互体验。6.2系统的优化为了更加完善优化系统设计,增强产品的性能,其优化方向如下:(1)升级硬件与提升性能可采用性能更强大的单片机或其他控制芯片,提升系统的处理能力和扩展性。同时,升级显示模块,如采用OLED显示模块,提高显示效果和用户体验。(2)加强安全性与防护措施增加密码复杂度要求,引入更高级的加密算法,提高系统的安全性。加强电磁锁等执行机构的物理防护措施,防止外部攻击或损坏。此外,可设计多重验证机制,如指纹识别、动态验证码等,提升系统的安全防护水平。(3)改善用户体验与交互性增加多种操作方式,如触摸屏、语音识别等,降低用户操作难度。引入更直观的反馈机制,如语音提示、动画效果等,提升用户交互体验。同时,优化用户界面设计,使其更加简洁明了,易于理解和使用。综上所述,通过硬件升级、安全性加强、用户体验改善和功能扩展等方面的优化措施,可以进一步提升基于单片机的密码锁系统的性能、安全性和用户体验,满足更多用户的需求。参考文献[1]陈新芬,金琦淳,张延丽,等.单片机指纹密码锁设计与仿真[J].工业控制计算机,2021,34(11):151-154.[2]赵永涛.基于51单片机的RFID门禁密码锁设计[J].自动化应用,2022,(12):185-187+191.[3]徐剑琴,李克讷,梁奇峰.基于AVR单片机的电子密码锁控制系统设计[J].装备制造技术,2017,(02):63-67+70.[4]杨德斌,林建平,蔡荣智,等.基于MSP432单片机的电子密码锁设计与实现[J]

温馨提示

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

评论

0/150

提交评论