毕业设计(论文)基于单片机的实时时钟_第1页
毕业设计(论文)基于单片机的实时时钟_第2页
毕业设计(论文)基于单片机的实时时钟_第3页
毕业设计(论文)基于单片机的实时时钟_第4页
毕业设计(论文)基于单片机的实时时钟_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、毕 业 设 计 论 文基于单片机的实时时钟马传俊 指导老师姓名: 专 业 名 称:应用电子/国际贸易班 级 学 号: 论文提交日期: 2007年6月15日论文答辩日期:2007年 月 日 基于单片机的实时时钟 摘要:时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。 现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用

2、集成电路计时时,译码代替机械式传动,用led显示器代替显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。本文利用单片机实现数字时钟计时功能的主要内容,其中at89c51是核心元件同时采用数码管动态显示“时”,“分”,“秒”的现代计时装置。与传统机械表相比,它具有走时精确,显示直观等特点。它的计时周期为24小时,显满刻度为“23时59分59秒”,另外具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。本文主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机at89c51芯片和led数码管为核心

3、,辅以必要的电路,构成了一个单片机电子时钟关键词:c51单片机 动态显示 键盘输入 电压检测 电池功耗目录第1章 前言4第2章 系统设计42.1 电路组成及工作原理42.2 硬件部分52.2.1 单片机系统52.2.1.152.2.2.2 at89c51的主要性能参数52.2.2 显示部分62.2.2.1 led显示结构与原理62.2.2.2 led显示器接口及显示方式72.2.3 键盘工作模块82.2.3.1 独立式按键结构92.2.3.2 独立式按键的软件结构92.2.4 电压检测电路92.2.5 备用电池功耗问题102.2.6 直流稳压电源部分102.2.6.1 主要技术指标112.2.

4、6.2 滤波电路112.2.7 相关参数计算12第3章 软件设计(图)133.1133.2133.313第4章 系统调试174.1 硬件调试174.2 软件调试174.3 时钟计时检测17第5章 致谢18第6章 参考文献19附录(一)20附录(二)29第1章 前言单片机自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易。由于具有上述优点,在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机

5、是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、应用,以at89s51芯片为核心,辅以必要的电路,设计了一个简易的电子时钟,它由直流电源供电,通过数码管能够准确显数字时钟是现代社会应用广泛的计时工具,在航天、电子等科研单位,工厂、医院、学校等企事业单位,各种体育赛事及至我们每个人的日常生活中都发挥着重要的作用。本系统是基于at89c51单片机设计的一个具有六位led显示的数字时实时钟,采用独立式按键进行时间调整,同时引入一个内部充电电源在停止外部供电时,仍具有内部计时的功能。该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点第2章 系统设计2.1 电路组成及工作原理本

6、文数字时钟设计原理主要利用at89c51单片机,由单片机的p0口控制数码管的位显示, p2口控制数码管的段显示,p1口与按键相接用于时间的校正。在设计中引入两个电源电路,一个是外部电源系统产生+5v电压,用于给cpu及显示电路提供工作电压,这是数字时钟正常工作时的总电压。另一个是备用电源,当外部电源关断时由它提供工作电压使cpu继续工作,利用单片机的空闲方式降低功耗,数码管不显示但能使计时保持正常,不会造成掉电时计时清零的现象。针对内外两个电源情况又加入了mc34064电压检测电路,用于时实判断是哪各电源在工作。整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准

7、秒信号送入“秒计数器”,“秒计数器”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”计数器的输出,通过六个七段led显示器显示出来。校时电路是直接加一个脉冲信号到时计数器或者分计数器或者秒计数器来对“时”、“分”、“秒”显示数字进行校对调整。2.2 硬件部分2.2.1 单片机系统2.2.1.1 单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算

8、术运算,逻辑运算、数据传送、中断处理)的微处理器(cpu),随机存取数据存储器(ram),只读程序存储器(rom),输入输出电路(i/o口),可能还包括定时计数器,串行通信口(sci),显示驱动电路(lcd或led驱动电路),脉宽调制电路(pwm),模拟多路转换器及a/d转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。本文采用的单片机为at89c51,at89c51是一种低功耗、高性能的片内含有4k字节闪烁可编程可擦除只读存储器(fperomfalsh programmable and erasable

9、 read only memory)的低电压,高性能cmos8位微处理器,俗称单片机。它的可擦除只读存储器可以反复擦除100次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一种高效微控制器,at89c2051是它的一种精简版本。at89c单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.2.2.2 at89c51的主要性能参数:与mcs-51产品指令系统完全兼容4k 字节可重擦写flash闪速存储器1000次擦写周期全静态操作:0hz24mhz三级

10、加密程序存储器1288字节内部ram32个可编程i/o口线2个16位定时/计数器6个中断源可编程串行urar通道低功耗空闲和掉电模式at89c51提供以下标准功能:4k 字节flash闪速存储器,128字节内部ram,32个i/o口线,2个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,at89c51降至0hz的静态逻辑操作,并支持两种可选的节电工作模式。空闲方式体制cpu的工作,但允许ram,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存ram中的内容,但振荡器体制工作并禁止其他所有不见工作直到下一个硬件复位。2.2.2 显示部分单片机

11、应用系统中使用的显示器主要有发光二极管显示器,简称led(light emitting diode);液晶显示器lcd(liquid crystal display);近几年也有配置crt显示器的。而目前在单片机系统中,通常用led数码显示器来显示各种数字或符号。由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。2.2.2.1 led显示结构与原理单片机中通常用七段led构成字型“8”,另外,还有一个小数点发光二极管以显示小数位!这种显示器有共阴和共阳两种!发光二极管的阳极连在一起的(公共端)称为共阳极显示器,阴极连在一起的称为共阴极显示器。(如下图所示)一位显示器由8个

12、发光二极管组成,其中,7个发光二极管构成字型“8”的各个笔划(段) a_g,另一个小数点为dp发光二极管。当在某段发光二极管上施加一定的正向电压时,该段笔画即亮;不加电压则暗。为了保护各段led不被损坏,需外加限流电阻。由于共阴极连接需加驱动,故在这里我采用的是共阳阳极连接。以共阳极led为例,如图(b)所示,各led公共阳极k0接高电平,若向各控制端a,b,,g,dp顺次送入00011110信号,则该显示器显示“”字型。共阴极7段led显示数字0 f、文字、符号及小数点的编码(a段为最地位,dp点为最高位)如(图2-1)所示。 共阴极7 段led显示字型编码表 显示字符共阴极段选码显示字符共

13、阴极段选码 0 3fh 5 6dh 1 06h 6 7dh 2 5bh 7 07h 3 4fh 8 7fh 4 66h 9 6fh “灭”(黑) 00h图2-12.2.2.2 led显示器接口及显示方式 led显示器有静态显示方式和动态显示方式两种。静态显示就是当显示器显示某个字符时,相应的段恒定的导通或截止,直到显示另一个字符为止。led显示器工作于静态显示方式时,各位的共阴极接地;若为共阳极则接+5v电源。每位的段选线分别与一个8位锁存器的输出口相连,显示器中的各位相互独立,而且各位的显示字符一经确定,相应锁存的输出将维持不变。正因为如此,静态显示器的亮度较高。这种显示方式编程容易,管理也

14、较简单,但占用i/o口线资源较多。因此,在显示位数较多的情况下,一般都采用动态显示方式。由于所有6位段皆由一个i/o口控制,因此,在每一瞬间,6位led会显示相 同的字符。要想每位显示不同的字符,就必须采用扫描方法轮流点亮各位led,即在每一瞬间只使某一位显示字符。在此瞬间,段选控制i/o口输出相应字符段选码(字型码),而位选则控制i/o口在该显示位送入选通电平(因为led为共阴,故应送低电平),以保证该位显示相应字符。如此轮流,使每位分时显示该位应显示字符。例如,要求显示“ll0-20”时,i/o1和i/o2轮流送入段选码、位选码 图2-2在多位led显示时,为了简化电路,降低成本,将所有位

15、的段选线并联在一起,由一个8位i/o口控制。而共阴(共阳)极公共端分别由相应的i/o口线控制,实现各位的分时选通。段选码,位选码每送入一次后延时1ms,因人的视觉暂留时间为0.1s(100ms),所以每位显示的时间不能超过20ms,并保持延时一段时间,以造成视觉暂留效果,给人看上去每个数码管总在亮。这种方式称为软件扫描方式。2.2.3 键盘工作模块 按键按照结构原理可分为两类,一类是触点式开关按键,如机械式开关、导电橡胶式开关等;另一类是无触点式开关按键,如电气式按键,磁感应按键等。前者造价低,后者寿命长。目前,微机系统中最常见的是触点式开关按键。 按键按照接口原理可分为编码键盘与非编码键盘两

16、类,这两类键盘的主要区别是识别键符及给出相应键码的方法。编码键盘主要是用硬件来实现对键的识别,非编码键盘主要是由软件来实现键盘的定义与识别。 全编码键盘能够由硬件逻辑自动提供与键对应的编码,此外,一般还具有去抖动和多键、窜键保护电路。这种键盘使用方便,但需要较多的硬件,价格较贵,一般的单片机应用系统较少采用。非编码键盘只简单地提供行和列的矩阵,其它工作均由软件完成。由于其经济实用,较多地应用于单片机系统中。在本套设计中由于只需要几个功能键,此时,可采用独立式按键结构2.2.3.1 独立式按键结构 独立式按键是直接用i/o口线构成的单个按键电路,其特点是每个按键单独占用一根i/o口线,每个按键的

17、工作不会影响其它i/o口线的状态。独立式按键的典型应用如(图3.1)所示。 独立式按键电路配置灵活,软件结构简单,但每个按键必须占用一根i/o口线,因此,在按键较多时,i/o口线浪费较大,采用。图2.1 独立式按键电路2.2.3.2 独立式按键的软件结构独立式按键的软件常采用查询式结构。先逐位查询每根i/o口线的输入状态,如某一根i/o口线输入为低电平,则可确认该i/o口线所对应的按键已按下,然后,再转向该键的功能处理程序。图3.1中的i/o口采用p1口。2.2.4电压检测电路 电路核心元件是mc34064,它具有电压检测功能。工作方式是低电平有效, 因此将其1脚与单片机的p1.7相接,2脚接

18、vcc,3脚接地。当外部电源+5v供电时,p1.7为高电平送入累加器c,此时c=1调入显示,时钟进入正常的计时显示状态。当+5v没接入而采用备用电源工作时,p1.7为低电平送入累加器c,此时c=0单片机进入空闲方式,关断显示但内部计时仍在进行。这样就能很好地判断是外部+5v电源供电还是备用电池供电,根据cpu的工作状态进而实现时钟断电仍能计时,当重新接入+5v电源时实现计时显示同步运行的功能。2.2.5备用电池功耗问题 在设计方案中采用+3.6v可充电电池作为备用电源,但若把电池直接并联在外部+5v电源引脚两端时,存在着电池功耗问题如:1.接入+5v时会对电池b1进行电流很大的强充电过程,这会

19、直接影响电池的使用寿命。2.停止外部+5v供电时,此时外部电源等效于一个电压源,充电电池b1既要对cpu供电又要对电压源供电,这样会使电池电量消耗过大,使得电池供电效率大大降低。为解决上述问题,我们引入两个1n5819如图所示:1.若+5v接入时,一方面为显示部分和复位电路提供+5v 工作电压,另一方面通过v8、 r15对电池b1进行涓流充电,同时通过v7向cpu提供工作电压。从而很好地解决电池充电时,电流过大影响电池使用寿命的问题。2.当外部+5v电源断开时,由电池b1经v7向cpu提供工作电压,同时由于v8截止故不会造成电池b1对外部的放电,从而提高了电池的供电效率,能够长时间地为cpu提

20、供工作电压。如(图5-1)图5-12.2.6 直流稳压电源部分直流稳压电源是给电子设备提供稳定直流电压的电子电路。这次电路需要的是+5v直流电源。6.1设计分析 本电源设计可采用集成三端稳压器构成,只要加上一些外围元件即可实现。其框图和电路分别示于图2-1和图2-2所示。图6-1 直流稳压电源框图2.2.6.1 主要技术指标(1) 输入交流电压220v(5060hz)。(2) 输出直流电压5v,输出电流1a。(3) 输入交流在220v上下波动10%时,输出电压相对变化量小于2%。(4) 输入电阻r00.1。(5) 输出最大波纹电压小于10mv。 图6-22.2.6.2 滤波电路 它的任务是将全

21、滤波形的输出通过rc滤波网络以后变成更平坦的直流电压,减小脉动,提高整流的效果。这是整流管中通过的电流的瞬间值要比平均值大得多,特别在接通电源瞬间有相当大的冲击电流(即充电电流)通过整流管,这一点要引起注意。(1) 电源变压器它的任务是把电源电压220v变压到合适的大小。如果u2的值太大,会造成集成端稳压器7805的功豪大,温升高,且浪费电能。反之,如果u2的值小到一定程度,三端稳压器不能正常工作,失去稳压作用.因此u2的值应大小合适,这个值应该使三端稳压器在交流电网电压最低和输出电流最大时能正常工作。而且在正常稳压的前提下,它的压降尽可能小,以减小功耗。(2) 整流电路 它的任务是将正弦波变

22、换成直流电压。这里一般采用桥式整流电路来实现,既可用四个二极管来组成,也可用整流桥堆来完成,只是参数一定要选择合理。(3) 稳压电路 要求输出恒定的直流电压,且要达到设计中所提出的要求。在此选用一片7805芯片来实现。2.2.7相关参数计算关于驱动电路中的限流电阻r,通常根据led的工作电流计算而得到的。例如:(1.) r1=(vcc-v0)/i0 其中vcc=+5v, v0的压降为+1.4v, i0的工作电流为10ma 所以r1=(5v-1.4v)/10ma=360,要想得到10ma的工作电流必须使限流电阻大于360,故在电路中我选用了390的电阻。(2) 对于连接位选显信号的电阻选用上,由

23、ic0.1 ma,根据r2=(vcc-vbc)/ib=(5v-0.7v)/0.1 ma=4.3k,若要ib0.1 ma则必须使r24.3 k,因此选用了比较接近的4.7 k第3章 软件设计(图)3.1时钟主程序流程图13.2键盘中断处理程序流程图23.3定时中断服务程序流程图3第4章 系统调试4.1 硬件调试:主要检查了电路板有无虚焊、短路、连线是否正常,尤其是单片机的各使能端的接线,i/o接口连线是否有误。由于我们采用了六个数码管并联接入p2口的段选端,因此接线较多,经常容易出现管脚间短路现象。这是硬件设计不足之处,今后将注意元件的选配使设计更简洁实用。 4.2 软件调试:在lca51仿真机

24、上,对定时中断程序、显示子程序、按键中断子程序进行了分段调试,结果功能正常。4.3 时钟计时检测:通过与其它计时器对比观察发现数字时钟走时过快,检查定时中断程序发现t0的初始值设定有误,因此重新设置:根据t0选择工作模式1,定时时间为50ms, focs=12mhz, 由 t=(216-t0初始值) 振荡周期12设t0的初始值为x,则:(216-x)1/12106s12=50msx=15625, 转化二进制值为:x=0011110010111010, 即th=#3ch,tl=#0bah 第5章 致谢在设计过程中,通过针对性地查找资料,了解了些电子方面的资料,既增长了自己见识,补充最新的专业知识

25、,又提高了自己的应用能力。这次对at89c51有了一个全面的认识,在此基础上结合以前所学的专业知识,从而把我所学的知识贯穿到一起,对电子专业有了一个更全面的认识!总之这次毕业设计让我把理论设计和工程实践相结合、巩固基础知识与培养创新意识相结合、个人作用和集体协作相结合等方面全面的培养学生的全面素质。这些在我今后的学习和工作当中都会有很大的帮助。最后,我要感谢我的指导老师,在这次毕业设计中给了我许多的帮助。同时也感谢无锡商院明天更美好!第6章 参考文献1 实用单片机电子钟的设计/丁辉、姚庆文 无线电2003年合订本(下) 2 于海生微型计算机控制技术m 清华大学出版社1999-63 孙涵芳mcs

26、-51系列单片机原理及应用m 北京航空航天大学出版社1996-44 黄正谨综合电子设计与实践m 东南大学出版社2002-35 杨欣等电子设计从零开始m 清华大学出版社2005-106 谢嘉奎电子线路m 高等教育出版社2003-27 夏路易,石宗义电路原理图与电路设计教程protel 99sem 北京希望电子出版社2002附录(一); def ram ;hour equ 20h min equ 21hsec equ 22hsec01 equ 23hkeyfl equ 24hkeyreg equ 25htmintfl equ 26hsetfl equ 27hdspdat1 equ 28hdspda

27、t2 equ 29hdspdat3 equ 2ahdspdat4 equ 2bhdspdat5 equ 2chdspdat6 equ 2dhshfl equ 2ehsmfl equ 2fhssfl equ 30h; main ; org 0000h ljmp start org 000bh ljmp timeint org 0100hstart: mov r7,#250loop: nop nop djnz r7,loop mov ie,#00h mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh mov setfl,#00h mov keyf

28、l,#00h mov keyreg,#00h mov tmintfl,#00h mov shfl,#00h mov smfl,#00h mov ssfl,#00h mov tmod,#01h mov tcon,#00h mov th0,#3ch mov tl0,#0bah mov ie,#82h mov tcon,#10hmain: mov a,setfl jnz main1 mov tmintfl,#00h mov r0,hour mov a,tmintfl jnz main2 mov r1,min mov a,tmintfl jnz main2 mov r2,sec mov c,p1.7

29、jnc main3 lcall codechamain1: mov c,p1.7 jnc main3 lcall disp mov c,p1.7 jnc main3 mov a,p1 anl a,#1fh mov keyreg,a clr c subb a,#1fh jz main1a mov a,keyfl jnz main2 mov c,p1.7 jnc main3 lcall key ljmp main2main1a: lcall disp mov a,p1 anl a,#1fh clr c subb a,#1fh jnz main2 mov keyfl,#00hmain2: nop m

30、ov c,p1.7 jc mainmain3: mov pcon,#01h ljmp main2; timeint sub ;timeint: mov ie,#00h mov tcon,#00h mov th0,#3ch mov tl0,#0bah mov tcon,#10h mov ie,#82h push psw push acc inc sec01 mov a,#19 clr c subb a,sec01 jc timeint1 ljmp timeint4timeint1: mov sec01,#00h mov tmintfl,#0ffh mov a,sec add a,#1 da a

31、mov sec,a clr c subb a,#60h jnc timeint2 ljmp timeint4timeint2: mov sec,#00h mov a,min add a,#1 da a mov min,a clr c subb a,#60h jnc timeint3 ljmp timeint4timeint3: mov min, #00h mov a,hour add a,#1 da a mov hour,a clr c subb a,#24h jc timeint4 mov hour,#00htimeint4: pop acc pop psw reti;codecha sub

32、 ;codecha: mov a,r0 swap a anl a,#0fh mov dspdat1,a mov a,r0 anl a,#0fh mov dspdat2,a mov a,r1 swap a anl a,#0fh mov dspdat3,a mov a,r1 anl a,#0fh mov dspdat4,a mov a,r2 swap a anl a,#0fh mov dspdat5,a mov a,r2 anl a,#0fh mov dspdat6,a mov c,p1.7 jnc codecha2 mov dptr,#tabdsp mov r0,#dspdat1 mov r1,

33、#6codecha1: mov a,r0 movc a,a+dptr mov r0,a inc r0 djnz r1,codecha1codecha2: rettabdsp: db 88h,0beh,0c4h,94h,0b2h db 91h,81h,0bch,80h,90h,0ffh; disp sub ;disp: mov r2,#6 mov r1,#0feh mov r0,#dspdat1disp1: mov c,p1.7 jnc disp2 mov p2,r0 mov c,p1.7 jnc disp2 mov p0,r1 mov c,p1.7 jnc disp2 lcall del1ms

34、 mov p2,#0ffh mov p0,#0ffh mov a,r1 rl a mov r1,a inc r0 djnz r2,disp1disp2: mov p2,#0ffh mov p0,#0ffh ret; del1ms sub ;del1ms: mov c,p1.7 jnc del1ms2 mov r6,#249del1ms1: mov c,p1.7 jnc del1ms2 nop djnz r6,del1ms1del1ms2: ret; key sub ;key: lcall disp mov a,p1 anl a,#1fh clr c subb a,keyreg jnz key5

35、 mov keyfl,#0ffh mov a,keyreg rrc a jc key1 mov c,p1.7 jnc key5 lcall shkey ljmp key5key1: rrc a jc key2 mov c,p1.7 jnc key5 lcall smkey ljmp key5key2: rrc a jc key3 mov c,p1.7 jnc key5 lcall sskey ljmp key5key3: rrc a jc key4 mov c,p1.7 jnc key5 lcall inckey ljmp key5key4: rrc a jc key5 mov c,p1.7 jnc key5 lcall enterkey5: ret; shkey sub ;shkey: mov ie,#00h mov tcon,#00h mov setfl,#0

温馨提示

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

评论

0/150

提交评论