基于51单片机宠物自动喂食机设计与制作_第1页
基于51单片机宠物自动喂食机设计与制作_第2页
基于51单片机宠物自动喂食机设计与制作_第3页
基于51单片机宠物自动喂食机设计与制作_第4页
基于51单片机宠物自动喂食机设计与制作_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

湖南商务职业技术学院毕业设计

目录

1产品功能分析...........................................................................................................3

2设计方案遴选...........................................................................................................3

2.1单片机的选择...............................................................................................3

2.2时钟芯片的选择...........................................................................................3

2.3系统框图设计...............................................................................................4

3产品硬件设计...........................................................................................................5

3.1主控电路设计...............................................................................................5

3.2按键电路设计...............................................................................................6

3.3LCD1602液晶显示模块电路........................................................................6

3.4蜂鸣器模块....................................................................................................7

3.5时钟电路........................................................................................................8

3.6步进电机电路................................................................................................8

4产品软件设计.........................................................................................................10

4.1主程序流程图.............................................................................................10

4.2下位机程序设计.........................................................................................11

4.3产品程序清单.............................................................................................11

5产品使用说明.........................................................................................................12

5.1产品装配图.................................................................................................12

5.2产品调试.....................................................................................................13

5.3产品使用说明.............................................................................................13

5.4实物作品操作演示......................................................................................14

6、产品设计技术标准...............................................................................................14

7参考资料.................................................................................................................15

附录.............................................................................................................................16

附录1元器件清单..........................................................................................16

附录2电路原理图..........................................................................................17

附录3PCB设计图...........................................................................................18

1

湖南商务职业技术学院毕业设计

附录4产品实物图..........................................................................................19

附录5主程序代码..........................................................................................20

2

湖南商务职业技术学院毕业设计

基于51单片机宠物自动喂食机设计与制作

1产品功能分析

时代在不断进步,每个家庭的生活水平也在提高,小动物不再仅仅是宠物,

更是主人的家人朋友,主人对所饲养的宠物也越来越重视,但在平时的生活中

总会有一些不可控因素。故而,我们设计实现智能控制的宠物自动喂食器。

此说明书是基于51单片机宠物自动喂食机设计与制作。它主要由DS1302

时钟芯片、按键控制电路和LCD1602显示组成,以步进电机为执行元件,核心

使用STC89C52芯片。按下按键设置当前时间和喂食时间,切换手动模式和定

时喂食模式,并且通过LCD1602液晶显示时、分、秒、星期、年、月、日,模

式分为手动喂食模式(sd)、定时喂食模式(ds)。到达设定时间,自动投放食

物,蜂鸣器发出响声吸引宠物过来进食。步进电机转一圈模拟喂食,同时蜂鸣

器响提醒动物来吃食物,喂食结束,电机反转一圈,同时蜂鸣器关闭。

2设计方案遴选

2.1单片机的选择

方案一:使用STM32系列单片机,STM32是一款性价比高构造简略,工具

易用,功能强大的系列单片机。外设多样,能够处理模拟和数字信号,操作简

略。但是STM32是运行指令的,合适运行算法,但对于多路信号处理,须要很

多DSP进行并行处理。

方案二:使用STC89C51系列单片机,51是上世纪80年代就被广泛应用的

单片机,具有大量的资料,有很多的种类,更轻易上手,STC单片机内部构造

比STM32系列单片机简略,目前在学校教学大量被采用。

故而我选择了51系列的单片机。

2.2时钟芯片的选择

方案一:使用单片机定时计数器,单片机的定时器用的是它自己的晶振,

不是专门用来做电子钟的,因其精度不高,无法使程序正确实现年、月、日、

星期、时、分、秒计数的功能。而且操作麻烦。

方案二:使用DS1302芯片,DS1302芯片有专用的寄存器,可以自动对秒、分、

时、日、周、月、年、以及闰年补偿的天数进行计数。它是一种高性能且精度

3

湖南商务职业技术学院毕业设计

很高的芯片,工作电压在2.5V-5.5V之间,写程序也比较简单。

故而我选择DS1302。

2.3系统框图设计

产品系统框图设计如下图1所示:

图1系统框图

4

湖南商务职业技术学院毕业设计

3产品硬件设计

由STC89C52RC单片机组成的此系统,功能电路主要包括:DS1302时钟电

路、按键控制电路和LCD1602液晶显示器电路,时钟芯片供电电池,步进电机

控制电路,蜂鸣器电路,电源开关及接口等组成。电路板上面有4个按键,一

个设置手动或者自动喂食,两个设置时间选择按键,一个为复位按键,单独按

键为电源开关。

3.1主控电路设计

STC89C52单片机是一中高性能低功耗的CMOS8位微控制器,带有闪存,

在8K在线系统中能够进行编程。采用高密度存储器的技术制造,可以非常好

的兼容工业80C51产品指令以及引脚。STC89C52为许多嵌入式控制应用系统提

供高灵活、高效率的解决方案。

图2STC89C52双列直插式引脚图

它不但具备了MCS-51系列微控制器的全部性能,而且采用了8K可编程闪

存技术。低功耗空闲和掉电模式大大降低了电路的功耗,同时还包括定时器、

程序存储器等硬件,可以满足整体控制系统的每个需求,无需与其它存储芯片

和定时器件相连,形成最小系统。整体结构紧凑,而且具有很好的抗干扰性和

较高的性价比。

单片机模块是最重要的设计部分,整个控制都是在单片机的基础上来完成

的,单片机的主控系统如下图3所示:

5

湖南商务职业技术学院毕业设计

图3单片机主控系统

3.2按键电路设计

按键模块采用4个按键,一个设置手动或者自动喂食,两个设置时间选择

按键,一个为复位按键。

按键电路连接如图4所示。

图4按键模块连接原理图

3.3LCD1602液晶显示模块电路

LCD1602液晶显示器,它是广泛使用的一种字符型液晶显示模块。是由字

符型液晶显示屏(LCD)、少量电阻和控制驱动主电路HD44780、结构元件和电

容件等装配在PCB板上组成。能够同时显示32个字符,专门用来显示数字、

字母、符号。其优点是耗电量低、体积小。在生活中,我们对其的运用也十分

广泛。在计算机、电子手表以及很多电子产品上都有使用。LCD1602液晶显示

实物图5如下所示。

6

湖南商务职业技术学院毕业设计

图5LCD1602液晶显示实物图

LCD1602液晶显示接口电路如下图6所示。

图6液晶显示模块LCD1602连接原理图

3.4蜂鸣器模块

蜂鸣器模块是由蜂鸣器和三极管组成的,在单片机IO口输出低电平时,

蜂鸣器接收到一个高电平,蜂鸣器发出响声吸引宠物。

蜂鸣器的连接图如图7所示。

图7蜂鸣器模块连接图

7

湖南商务职业技术学院毕业设计

3.5时钟电路

DS1302时钟电路模块是由单片机采集它的时钟数据随后经过程序化处理,

最后再显示在LCD上。

DS1302时钟芯片是一种实时时钟芯片功耗很低。它可以计时精确到秒分时

日周月年,以及闰年补时等多种功能。DS1302芯片包含一个31字节的静态

RAM,用于存储实时时钟/日历,通过简单的串行接口与微处理器通信,将当

前的是时钟存于RAM。DS1302芯片会自动调整月份少于31天的末尾,并自动

校正闰年时长。因为有AM/PM指示器,故而时钟可以在12小时制和24小时

制进行工作。

图8时钟电路

3.6步进电机电路

步进电机是一种能把电脉冲讯号转化为对应的角位移或线性位移的马达。

在此基础上,提出了一种基于旋转轴的旋转轴控制方法,并将旋转轴控制在不

同的旋转轴上。所以,步进电机也被称为脉冲电机。事实上,这是一种单相和

多相位的同步电机。单相步进电机是一种单脉冲的驱动方式,其输出功率通常

很低,适合于小功率的驱动。多相方波脉冲激励是一种常用的多相步进电机。

在此产品中,用步进电机模拟喂食。步进电机实物图如下图9所示。

8

湖南商务职业技术学院毕业设计

图9步进电机实物图

电路中,采用一个ULN2003芯片作为步进电机的驱动,步进电机的接口

电路如下图10所示。

图10步进电机模块

9

湖南商务职业技术学院毕业设计

4产品软件设计

4.1主程序流程图

主程序包括按键模块、LCD显示模块、时钟模块电机控阀门等。通过开始

按键,开始调整设置闹钟时间,若没有按下,则执行已设置的时间显示,最后

依次循环这些相同的操作,相应流程图如图11所示:

开始

程序初始化

添加食物

DS1302开始工作

数据读取

NO

万年历是否正确万年历调整

YES

万年历显示

NO

定时是否正确定时器调整

YES

数据和图表显示

步进电机,蜂鸣器和闹钟开始工作

结束和日历显示

图11主程序流程图

10

湖南商务职业技术学院毕业设计

4.2下位机程序设计

程序编写后,对程序进行编译检查,检查是否有误,直至修改无误。如图

12所示:

图12程序编译图

4.3产品程序清单

图13产品程序清单

11

湖南商务职业技术学院毕业设计

5产品使用说明

5.1产品装配图

由STC89C52RC单片机组成的此系统,DS1302时钟芯片、按键控制电路

和LCD1602液晶显示器,时钟芯片供电电池,步进电机,蜂鸣器,电源开关

及接口组成。如图14所示:

图14产品装配图

12

湖南商务职业技术学院毕业设计

5.2产品调试

检查电路板排查逻辑故障,排查元器件失效,排查电源故障,如果一切正

常,即可将程序烧录至单片机中,并核查,每一个元器件的命令是否正确。

图15程序烧录图

5.3产品使用说明

1、接通电源,单片机开始工作;

2、按键设置当前时间和喂食时间LCD显示年、月、日、时、分、秒;

3、通过选择键设置自动喂食模式或手动喂食模式(ds、sd);

4、可以设置五个喂食时间,每个时间都可以单独设置成工作是否有效;

5、自动喂食模式下,当定时时间到了,步进电机转一圈模拟投食,同时蜂鸣

器响提示动物来吃食,投食结束后,电机反转一圈,同时蜂鸣器关闭;

6、手动喂食模式下,可以通过按加键手动打开喂食、同时蜂鸣器响提示动物

过来吃食,按减键手动关喂食,同时蜂鸣器关闭。

13

湖南商务职业技术学院毕业设计

5.4实物作品操作演示

图16实物作品操作图

6、产品设计技术标准

[1]J-STD-001E电气与电子组件的焊接要求

[2]IPC-A-610D(中文版),IPC-A-610E电子组件的可接受性要求

[3]IPC-7711/21电子组件和电路板的返工&返修

[4]GB/T11457-2006信息技术软件工程术语;

[5]GB/T8566-2007信息技术软件生存周期过程标准;

[6]GB/T8567-2006计算机软件文档编制规范。

14

湖南商务职业技术学院毕业设计

7参考资料

[1]阎石主编.《数字电子技术基础》.修订3版.高等教育出版社.1988.

[2]童诗白主编.《模拟电子技术基础》.修订2版.高等教育出版社.1988.

[3]胡汉才主编.《单片机原理及其接口技术》.(第二版).清华大学出版社.2004.

[4]张毅刚主编.《单片机原理及应用》.高等教育出版社.

[5]何立民.《MCS-51单片机应用系统设计》.北京航空航天大学出版社.1998.7.

[6]徐爱军.《单片机高级语言C51应用程序设计》.电子工业出版社.1997.7.

[7]张志良.单片机原理与控制技术.机械工业出版社.2008.

[8]于海生.微型计算机控制技术.清华大学出版社.1999.3.

[9]康华光.电子技术基础.模拟部分.高等教育出版社.2005.

[10]于敬芬.基于STC89C52和TLC0834的数据采集系统.中国水运(学术版).2006.

[11]王幸之.AT89系列单片机原理及接口技术.北京航天航空出版社.2006.

[12]康华光.电子技术基础.数字部分.高等教育出版社.1998.

[13]胡汉才.单片机原理及系统设计.清华大学出版社.2002.

[14]邱关源.罗先觉.电路基础.高等教育出版社(第五版).2006.

[15]曹玲芝.电子信息工程专业英语.华中科技大学出版社.2007.

[16]刘勇.《数字电路》.电子工业出版社.2003.1.

15

湖南商务职业技术学院毕业设计

附录

附录1元器件清单

元件型号元件名称元件标号数量

32.768晶振A11

蜂鸣器BellB11

3V纽扣电池座BT11

10uF电容C11

20电容C2,C32

LCD1602液晶LCD11

步进电机接口步进电机P11

9012三极管Q11

2K电阻R11

10K电阻R31

SW-PB按键S1,S2,S3,S4,S55

sw-灰色电源开关SW11

DS1302时钟芯片U21

STC89C52单片机U31

ULN2003电机驱动芯片U51

12M晶振Y11

16

湖南商务职业技术学院毕业设计

附录2电路原理图

17

湖南商务职业技术学院毕业设计

附录3PCB设计图

18

湖南商务职业技术学院毕业设计

附录4产品实物图

19

湖南商务职业技术学院毕业设计

附录5主程序代码

#include<reg52.h>//调用单片机头文件

#defineucharunsignedchar//无符号字符型宏定义变量范围0~255

#defineuintunsignedint//无符号整型宏定义变量范围0~65535

bitflag_200ms;

bitflag_100ms;

sbitbeep=P2^7;//蜂鸣器定义

ucharmenu_1,menu_2;

bitflag_moshi;

#include"ds1302.h"

#include"lcd1602.h"

ucharflag_z_f;//正反标志位0为顺时钟1为逆时史上转

uintbjdj_value;//步进电机的量

sbitdj1=P2^0;//电机IO口定义

sbitdj2=P2^1;//电机IO口定义

sbitdj3=P2^2;//电机IO口定义

sbitdj4=P2^3;//电机IO口定义

bitopen1=1,open2=1,open3=1,open4=1,open5=1;

ucharfen1=0x1,shi1=0x08;//第1个喂食的时间

ucharfen2=0x2,shi2=0x08;//第2个喂食的时间

ucharfen3=0x3,shi3=0x08;//第3个喂食的时间

ucharfen4=0x4,shi4=0x08;//第4个喂食的时间

ucharfen5=0x5,shi5=0x08;//第5个喂食的时间

/***********************正转****************************/

voidzheng(uchardat)

{

switch(dat)

{

case0:dj1=1;dj2=0;dj3=0;dj4=0;break;

case1:dj1=0;dj2=1;dj3=0;dj4=0;break;

case2:dj1=0;dj2=0;dj3=1;dj4=0;break;

case3:dj1=0;dj2=0;dj3=0;dj4=1;break;

20

湖南商务职业技术学院毕业设计

}

}

/***********************反转****************************/

voidfan(uchardat)

{

switch(dat)

{

case0:dj1=0;dj2=0;dj3=0;dj4=1;break;

case1:dj1=0;dj2=0;dj3=1;dj4=0;break;

case2:dj1=0;dj2=1;dj3=0;dj4=0;break;

case3:dj1=1;dj2=0;dj3=0;dj4=0;break;

}

}

/******************1ms延时函数*******************/

voiddelay_1ms(uintq)

{

uinti,j;

for(i=0;i<q;i++)

for(j=0;j<120;j++);

}

/*************定时器0初始化程序***************/

voidinit_1602_ds1302()

{

write_sfm2_ds1302(2,3,nian);

write_sfm2_ds1302(2,6,yue);

write_sfm2_ds1302(2,9,ri);

write_sfm2_ds1302(1,2,shi);

write_sfm2_ds1302(1,5,fen);

write_sfm2_ds1302(1,8,miao);

write_sfm1(1,14,week);

}

/*************定时器0初始化程序***************/

voidinit_time0()

{

EA=1;//开总中断

TMOD=0X01;//定时器0、工作方式1

ET0=1;//开定时器0中断

TR0=1;//允许定时器0定时

}

21

湖南商务职业技术学院毕业设计

/*************喂食函数***************/

voidweishi_dis()

{

if(miao<=10)

{

if(((fen==fen1)&&(shi==shi1)&&(open1==1))||

((fen==fen2)&&(shi==shi2)&&(open2==1))||

((fen==fen3)&&(shi==shi3)&&(open3==1))||

((fen==fen4)&&(shi==shi4)&&(open4==1))||

((fen==fen5)&&(shi==shi5)&&(open5==1)))

{

flag_z_f=1;//定时喂食

}

}

}

/********************独立按键程序*****************/

ucharkey_can;//按键值

voidkey()//独立按键程序

{

staticucharkey_new;

key_can=0;//按键值还原

P3|=0xF0;//对应的按键IO口输出为1

if((P3&0xF0)!=0xF0)//按键按下

{

delay_1ms(1);//按键消抖动

if(((P3&0xF0)!=0xF0)&&(key_new==1))

{//确认是按键按下

key_new=0;

switch(P3&0xF0)

{

case0x70:key_can=1;break;//得到按键值

case0xB0:key_can=2;break;//得到按键值

case0xD0:key_can=3;break;//得到按键值

case0xE0:key_can=4;break;//得到按键值

}

}

}

else

22

湖南商务职业技术学院毕业设计

key_new=1;

}

/**********************设置函数************************/

voidkey_with()

{

if(menu_1==0)

{

if(key_can==2)

{

flag_moshi=~flag_moshi;

if(flag_moshi==0)//定时模式

write_string(2,13,"ds");

if(flag_moshi==1)//手动模式

write_string(2,13,"sd");

}

if(flag_moshi==1)

{

if(key_can==3)

flag_z_f=1;//手动喂

if(key_can==4)

flag_z_f=2;//手动关

}

}

if(key_can==1)//设置键

{

menu_1++;

menu_2=1;

if(menu_1>4)//回到正常显示

{

menu_1=0;

init_1602();//lcd1602初始化设置

}

}

if(key_can==2)//选择键

{

flag_200ms=1;

if(menu_1==1)//设置时间

{

menu_2++;

if(menu_2>7)

menu_2=1;

23

湖南商务职业技术学院毕业设计

}

if(menu_1==4)

{

menu_2++;

if(menu_2>3)

menu_2=1;

}

elseif(menu_1>1)//设置

{

menu_2++;

if(menu_2>6)

menu_2=1;

}

}

if(menu_1==1)

{

if(menu_2==1)//设置时

{

if(key_can==3)//加

set_ds1302time(1,&shi,0x24);

if(key_can==4)//减

set_ds1302time(0,&shi,0x24);

}

if(menu_2==2)//设置分

{

if(key_can==3)//加

set_ds1302time(1,&fen,0x60);

if(key_can==4)//减

set_ds1302time(0,&fen,0x60);

}

if(menu_2==3)//设置秒

{

if(key_can==3)//加

set_ds1302time(1,&miao,0x60);

if(key_can==4)//减

set_ds1302time(0,&miao,0x60);

}

if(menu_2==4)//设置星期

{

if(key_can==3)//加

set_ds1302time(1,&week,8);

if(key_can==4)//减

set_ds1302time(0,&week,8);

24

湖南商务职业技术学院毕业设计

}

if(menu_2==5)//设置年

{

if(key_can==3)//加

set_ds1302time(1,&nian,0x9A);

if(key_can==4)//减

set_ds1302time(0,&nian,0x9A);

}

if(menu_2==6)//设置月

{

if(key_can==3)//加

set_ds1302time(1,&yue,0x13);

if(key_can==4)//减

set_ds1302time(0,&yue,0x13);

}

if(menu_2==7)//设置日

{

if(key_can==3)//加

set_ds1302time(1,&ri,0x32);

if(key_can==4)//减

set_ds1302time(0,&ri,0x32);

}

write_sfm2_ds1302(1,2,shi);//显示时

write_sfm2_ds1302(1,5,fen);//显示分

write_sfm2_ds1302(1,8,miao);//显示秒

write_sfm1(1,14,week);//显示星期

write_sfm2_ds1302(2,3,nian);//显示年

write_sfm2_ds1302(2,6,yue);//显示月

write_sfm2_ds1302(2,9,ri);//显示日

switch(menu_2)//光标显示

{

case1:write_guanbiao(1,2,1);break;

case2:write_guanbiao(1,5,1);break;

case3:write_guanbiao(1,8,1);break;

case4:write_guanbiao(1,14,1);break;

case5:write_guanbiao(2,3,1);break;

case6:write_guanbiao(2,6,1);break;

case7:write_guanbiao(2,9,1);break;

}

write_time();//把时间写进去

}

/***************设置1开关时间*********************/

if(menu_1==2)

25

湖南商务职业技术学院毕业设计

{

/////////////////////第1个喂食时间

if(menu_2==1)//设置开关时

{

if(key_can==3)//加

set_ds1302time(1,&shi1,0x24);

if(key_can==4)//减

set_ds1302time(0,&shi1,0x24);

}

if(menu_2==2)//设

{

if(key_can==3)//加

set_ds1302time(1,&fen1,0x60);

if(key_can==4)//减

set_ds1302time(0,&fen1,0x60);

}

if(menu_2==3)//设

{

if(key_can==3)

open1=~open1;

if(key_can==4)

open1=~open1;

}

/////////////////////第2个喂食时间

if(menu_2==4)//设置开关分

{

if(key_can==3)//加第2个开关时间

set_ds1302time(1,&shi2,0x24);

if(key_can==4)//减

set_ds1302time(0,&shi2,0x24);

}

if(menu_2==5)//设

{

if(key_can==3)//加

set_ds1302time(1,&fen2,0x60);

if(key_can==4)//减

set_ds1302time(0,&fen2,0x60);

}

if(menu_2==6)//设

{

if(key_can==3)

open2=~open2;

26

湖南商务职业技术学院毕业设计

if(key_can==4)

open2=~open2;

}

write_string(1,0,"Time100:00Y");

write_string(2,0,"Time200:00Y");

write_sfm2_ds1302(1,6,shi1);//显示时

write_sfm2_ds1302(1,9,fen1);//显示分

write_sfm2_ds1302(2,6,shi2);//显示时

write_sfm2_ds1302(2,9,fen2);//显示分

if(open1==1)

write_string(1,11,"Y");

else

write_string(1,11,"N");

if(open2==1)

write_string(2,11,"Y");

else

write_string(2,11,"N");

}

if(menu_1==3)

{

/////////////////////第3个喂食时间

if(menu_2==1)//设置喂食时

{

if(key_can==3)//加

set_ds1302time(1,&shi3,0x24);

if(key_can==4)//减

set_ds1302time(0,&shi3,0x24);

}

if(menu_2==2)//设

{

if(key_can==3)//加

set_ds1302time(1,&fen3,0x60);

if(key_can==4)//减

set_ds1302time(0,&fen3,0x60);

}

if(menu_2==3)//设

{

if(key_can==3)

open3=~open3;

if(key_can==4)

open3=~open3;

}

27

湖南商务职业技术学院毕业设计

/////////////////////第4个喂食时间

if(menu_2==4)//设置开关分

{

if(key_can==3)//加

set_ds1302time(1,&shi4,0x24);

if(key_can==4)//减

set_ds1302time(0,&shi4,0x24);

}

if(menu_2==5)//设

{

if(key_can==3)//加

set_ds1302time(1,&fen4,0x60);

if(key_can==4)//减

set_ds1302time(0,&fen4,0x60);

}

if(menu_2==6)//设

{

if(key_can==3)

open4=~open4;

if(key_can==4)

open4=~open4;

}

write_string(1,0,"Time300:00");

write_string(2,0,"Time400:00");

write_sfm2_ds1302(1,6,shi3);//显示时

write_sfm2_ds1302(1,9,fen3);//显示分

write_sfm2_ds1302(2,6,shi4);//显示时

write_sfm2_ds1302(2,9,fen4);//显示分

if(open3==1)

write_string(1,11,"Y");

e

温馨提示

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

评论

0/150

提交评论