《定时接口模块》ppt课件_第1页
《定时接口模块》ppt课件_第2页
《定时接口模块》ppt课件_第3页
《定时接口模块》ppt课件_第4页
《定时接口模块》ppt课件_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、 第十二章第十二章 定时接口模块定时接口模块本章主要内容本章主要内容计数器计数器/ /定时器的根本任务原理定时器的根本任务原理定时器模块的编程根底定时器模块的编程根底 定时器模块的输入捕捉功能定时器模块的输入捕捉功能 定时器模块的输出比较功能定时器模块的输出比较功能定时器模块的脉宽调制输出功能定时器模块的脉宽调制输出功能12.1 12.1 计数器计数器/ /定时器的根本任务原理定时器的根本任务原理12.1.1 实现计数与定时的根本方法1完全硬件方式 在过去许多仪器仪表或设备中,需求进展延时、定时或计数,经 常运用数字逻辑电路实现,即完全用硬件电路实现计数/定时功能假设要改动计数/定时的要求,必

2、需改动电路参数,通用性、灵敏性差。微型电子计算机出现以后,特别是单片微型计算机的开展与普及,这种完全硬件方式实现定时与计数已较少运用。2 2完全软件方式完全软件方式 在计算机中,经过编程,利用计算机执行指令的时间实现定时,称为完全软件方式,简称软件方式。在这种方式中,普通是根据所需求的时间常数来设计一个延时子程序,延时子程序中包含一定的指令,设计者要对这些指令的执行时间进展严密的计算或者准确的测试,以便确定延时时间能否符合要求。 3 3可编程计数器可编程计数器/ /定时器定时器 利用专门的可编程计数器定时器实现计数与定时,抑制了完全利用专门的可编程计数器定时器实现计数与定时,抑制了完全硬件方式

3、与完全软件方式的缺陷,设定之后与硬件方式与完全软件方式的缺陷,设定之后与CPUCPU并行地任务。运用并行地任务。运用可编程计数器定时器,在简单的软件控制下,可以产生准确的时间可编程计数器定时器,在简单的软件控制下,可以产生准确的时间延时。这种方法的主要思想是根据需求的定时时间,用指令对计数器延时。这种方法的主要思想是根据需求的定时时间,用指令对计数器定时器设置定时常数,并用指令启动计数器定时器。这种方法最定时器设置定时常数,并用指令启动计数器定时器。这种方法最突出的优点是计数时不占用突出的优点是计数时不占用CPUCPU的时间,并且,假设利用计数器定的时间,并且,假设利用计数器定时器产生中断信号

4、就可以建立多作业的环境,所以,可大大提高时器产生中断信号就可以建立多作业的环境,所以,可大大提高CPUCPU的利用率。的利用率。12.1.2 MC68HC908GP32 MCU12.1.2 MC68HC908GP32 MCU的定时接口的的定时接口的 根本原理的概述根本原理的概述 MC68HC08 MC68HC08系列的单片机可以提供多个独立的定时器,例如,系列的单片机可以提供多个独立的定时器,例如,GP32GP32芯芯片有两个定时器,分别叫定时器片有两个定时器,分别叫定时器1 1、定时器、定时器2 2,它们的任务原理是一的,它们的任务原理是一的,下面的阐明均以定时器下面的阐明均以定时器1 1为

5、例。为例。 HC08 HC08系列的单片机定时器的中心是一个处于不断加系列的单片机定时器的中心是一个处于不断加1 1的的1616位计数存位计数存放器,简称为计数器。该计数器的时钟频率由外部晶振时钟也可以是放器,简称为计数器。该计数器的时钟频率由外部晶振时钟也可以是由锁相环模块得到的总线时钟经过预定的分频因子分频得到。由锁相环模块得到的总线时钟经过预定的分频因子分频得到。 在定时器内部有个控制和形状存放器,经过对它某些位的设置,就在定时器内部有个控制和形状存放器,经过对它某些位的设置,就可以确定多少时间计数器加可以确定多少时间计数器加1 1,即定时间隔。,即定时间隔。 在定时器内部有个预置存放器

6、,当计数器的值等于预置存放器的值在定时器内部有个预置存放器,当计数器的值等于预置存放器的值时,称为计数器溢出,当计数器溢出时,计数器的值被赋时,称为计数器溢出,当计数器溢出时,计数器的值被赋0 0,同时将计,同时将计数器溢出标志等形状置于控制和形状存放器中。数器溢出标志等形状置于控制和形状存放器中。MC68HC908GP32 MCUMC68HC908GP32 MCU定时器根本功能及主要特征:定时器根本功能及主要特征: HC08 HC08系列的单片机定时器具有输入捕捉、输出比较、系列的单片机定时器具有输入捕捉、输出比较、PWMPWM、脉冲输出、脉冲输出、DMADMA直接存储器访问等功能。直接存储

7、器访问等功能。 以下简要给出以下简要给出MC68HC908GP32MC68HC908GP32的定时器的主要特征:的定时器的主要特征: 每个定时器具有两路独立的输入捕捉输出比较通道。每个定时器具有两路独立的输入捕捉输出比较通道。 带缓冲带缓冲BufferedBuffered和不带缓冲和不带缓冲UnbufferedUnbuffered的脉的脉宽调制波。宽调制波。 七种可编程选择的分频因子。七种可编程选择的分频因子。 预置计数。预置计数。 计数器停顿或去除。计数器停顿或去除。 16 16位输入捕捉和通道存放器。位输入捕捉和通道存放器。 定时器溢出中断、每路通道的输入捕捉输出比较中定时器溢出中断、每路

8、通道的输入捕捉输出比较中断。断。定时器功能框图定时器功能框图12.2 12.2 定时器模块的编程根底定时器模块的编程根底 D7 TOF D7 TOF位:定时器溢出标志位位:定时器溢出标志位 。当。当1616位计数存放器位计数存放器T1CNTT1CNT中中的值到达设定值的值到达设定值( (在在1616位预置存放器位预置存放器T1MODT1MOD中中) )时,时,TOF=1TOF=1,同时,同时T1CNT=$0000T1CNT=$0000。 D6 TOIE D6 TOIE位:定时器溢出中断允许位位:定时器溢出中断允许位Timer Overflow Timer Overflow Interrupt

9、Enable BitInterrupt Enable Bit。该位用来设置能否允许定时器溢出中断。该位用来设置能否允许定时器溢出中断。TOIE=1TOIE=1,允许定时器溢出中断,允许定时器溢出中断,TOIE=0TOIE=0,不允许定时器溢出中断。,不允许定时器溢出中断。12.2.1 12.2.1 定时器模块的定时器模块的3 3个根本存放器个根本存放器1 1T1T1形状和控制存放器形状和控制存放器Timer 1 Status and Control Timer 1 Status and Control RegisterRegister,T1SCT1SC T1SC T1SC的地址:的地址:$00

10、20$0020,定义为:,定义为:数据位 D7 D6 D5 D4 D3 D2 D1 D0定义 TOF TOIE TSTOP TRST - PS2 PS1 PS0复位 0 0 1 0 0 0 0 01 1T1T1形状和控制存放器形状和控制存放器Timer 1 Status and Timer 1 Status and Control RegisterControl Register,T1SCT1SC D5 TSTOP D5 TSTOP位:定时器计数停顿位位:定时器计数停顿位Timer Count Stop BitTimer Count Stop Bit。该位用来控制计数器的计数停顿和恢复。该位用

11、来控制计数器的计数停顿和恢复。对该位写入对该位写入1 1,定时器的计数存放器将坚持当前的值,停顿计数。,定时器的计数存放器将坚持当前的值,停顿计数。 D4 TRST D4 TRST位:定时器复位位位:定时器复位位(Timer Reset Bit )(Timer Reset Bit )。向该位写入。向该位写入1 1将去除定时器的计数存放器和设定的分将去除定时器的计数存放器和设定的分频因子,该位通常为频因子,该位通常为0 0。 D3 D3 未定义。未定义。 D2 D2D0 PS2D0 PS2PS0PS0位:定时器分频因子选择位位:定时器分频因子选择位Timer Prescaler Select B

12、itsTimer Prescaler Select Bits。这三位定义定时器。这三位定义定时器的分频因子,记为:的分频因子,记为:p p,定义如下,定义如下: :PS2PS2、PS1PS1、PS0=000 001 010 011 100 101 110 111 PS0=000 001 010 011 100 101 110 111 p =1 2 4 8 16 32 64 p =1 2 4 8 16 32 64 未定义未定义其中设其中设fBUSfBUS为总线频率,那么定时器的计数存放器的计数频率为:计数频率为总线频率,那么定时器的计数存放器的计数频率为:计数频率fBUS/pfBUS/p。复位时

13、,。复位时,PS2PS2、PS1PS1、PS0=000PS0=000,即,即p=1p=1,此时,计数频率,此时,计数频率fBUSfBUS。分频因子的选取应根据总线频率。分频因子的选取应根据总线频率fBUSfBUS、预置存放器的设定值、希望、预置存放器的设定值、希望的溢出时间的综合思索确定。的溢出时间的综合思索确定。 2T1计数存放器T1 Counter Register,T1CNTH、T1CNTL 它是一个16位存放器,分为高8位、低8位,地址分别为$0021、$0022,它的作用是:当定时器的形状和控制存放器的TSTOP位=0时,即允许计数时,每一计数周期,其值自动加1,当它到达设定值(在1

14、6位预置存放器中)时,TOF=1,同时计数存放器自动清0。3T1预置存放器T1 Counter Modulo Register, T1MODH、T1MODL 它是一个16位存放器,分为高8位、低8位,地址分别为$0023、$0024,它的作用是:设定计数存放器的计数溢出值。复位时,预置存放器的初值为$FFFF。12.2.212.2.2定时溢出中断汇编工程实例定时溢出中断汇编工程实例 为了了解定时器的根本功能,这里给出利用定时器溢出编写定时的例为了了解定时器的根本功能,这里给出利用定时器溢出编写定时的例子,并把子,并把“时分秒发送到时分秒发送到PCPC机,以便比较。同时,在机,以便比较。同时,在

15、PCPC机方,用一机方,用一个非常简明的程序,接纳个非常简明的程序,接纳MCUMCU发送来发送来“时分秒并显示,同时还可以将时分秒并显示,同时还可以将PCPC机的当前时间发送到机的当前时间发送到MCUMCU,作为时间基准值。经过这个例子,了解,作为时间基准值。经过这个例子,了解定时器溢出中断的编程方法和系统时间的产生方法。定时器溢出中断的编程方法和系统时间的产生方法。1 1 MCU MCU方程序方程序2 2 PC PC方方VBVB程序程序1 MCU方程序 2 PC方VB程序PC方的界面见图。程序主要功能是:接纳MCU发送来“时分秒并显示,也可以单击“发送按钮,发送PC机的当前时间。 12.2.

16、3 12.2.3 定时溢出中断编程定时溢出中断编程C C言语程序例言语程序例1 1定时溢出中断编程定时溢出中断编程C C言语程序例主程序言语程序例主程序2 2定时溢出中断编程定时溢出中断编程C C言语程序例矢量表文件言语程序例矢量表文件12.3 12.3 定时器模块的输入捕捉功能定时器模块的输入捕捉功能12.3.1 12.3.1 输入捕捉的根本含义输入捕捉的根本含义1 1与输入捕捉功能相关的引脚与输入捕捉功能相关的引脚 在在MC68HC908GP32MC68HC908GP32的的DIP-40DIP-40封装方式中,第封装方式中,第2121、2222脚标志是脚标志是“PTD4/T1CH0“PTD

17、4/T1CH0、PTD5/T1CH1PTD5/T1CH1,它们是普通它们是普通I/OI/O与定时器输入捕捉的复用引脚。作与定时器输入捕捉的复用引脚。作为定时器输入捕捉功能运用时,它们是定时器为定时器输入捕捉功能运用时,它们是定时器1 1的的两个通道输入捕捉引脚。两个通道输入捕捉引脚。2 2输入捕捉的根本含义输入捕捉的根本含义 输入捕捉功能是用来监测外部的事件和输入输入捕捉功能是用来监测外部的事件和输入信号。当外部事件发生或信号发生变化时,在指信号。当外部事件发生或信号发生变化时,在指定的输入捕捉引脚上发生一个指定的沿跳变可定的输入捕捉引脚上发生一个指定的沿跳变可以指定该跳变是上升沿还是下降沿。

18、定时器捕以指定该跳变是上升沿还是下降沿。定时器捕捉到特定的沿跳变后,把计数存放器当前的值锁捉到特定的沿跳变后,把计数存放器当前的值锁存到通道存放器。存到通道存放器。 12.3.2 12.3.2 输入捕捉的存放器输入捕捉的存放器1 1T1T1通道存放器通道存放器 T1 Channel RegisterT1 Channel Register 定时器定时器1 1有两个通道,相对应的通道存放器有:定时器有两个通道,相对应的通道存放器有:定时器1 1通道通道0 0存放器存放器T1CH0(16T1CH0(16位存放器位存放器) ),地址是:,地址是:$0026$0026、$0027$0027;定时器;定时

19、器1 1通道通道1 1存放器存放器T1CH1 (16T1CH1 (16位存位存放器放器) ) ,地址是:,地址是:$0029$0029、$002A$002A。 通道存放器在该通道用作输入捕捉时的作用是:当指定的沿跳变发生通道存放器在该通道用作输入捕捉时的作用是:当指定的沿跳变发生 ( (即定时系统即定时系统捕捉到沿跳变捕捉到沿跳变) ) 时,锁存计数存放器的值。时,锁存计数存放器的值。 通道存放器是一个通道存放器是一个1616位的存放器,分为高字节和低字节,在读取的时候要分别读取。位的存放器,分为高字节和低字节,在读取的时候要分别读取。为了防止两次读取之间该存放器的内容发生变化而产生虚伪的输入

20、捕捉计数值,系统为了防止两次读取之间该存放器的内容发生变化而产生虚伪的输入捕捉计数值,系统会在读取高字节时锁存低字节的内容,这时即使又发生特定的沿跳变,通道存放器的会在读取高字节时锁存低字节的内容,这时即使又发生特定的沿跳变,通道存放器的内容也不会改动。所以,假设要读取整个通道存放器,必需先读高字节,再读低字节。内容也不会改动。所以,假设要读取整个通道存放器,必需先读高字节,再读低字节。2 2T1T1通道通道0 0形状和控制存放器形状和控制存放器T1 Channel0 Status and Control RegisterT1 Channel0 Status and Control Regis

21、ter,T1SC0T1SC0D7 :通道标志位,用来标志定时器1通道0发生了输入捕捉。 D6 :通道中断允许位,用来设置能否允许发生输入捕捉中断。 D5D4:方式选择位。每一个定时器都可以任务在输入捕捉,输出比较和PWM输出方式,这两位用来选择这些任务方式。 D3D2 :跳变沿/输出电平选择位。 D1 :溢出翻转控制标志位,定时器通道用做输入捕捉时,此位无用。 D0 :通道最大占空比设置位 ,定时器通道用作输入捕捉时,此位无用。数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义CH0F CH0IE MS0B MS0A ELS0B ELS0A TOV0 CH0MAXCH0F C

22、H0IE MS0B MS0A ELS0B ELS0A TOV0 CH0MAX复位复位 1 1 1 1 1 1 1 11 1 1 1 1 1 1 1通道控制存放器控制位通道控制存放器控制位MS0BMS0B:MS0AELS0BELS0B:ELS0A工作模式跳变沿/输出电平X 0X 0X 1X 10 00 00 00 0预设输出电平预设输出电平初始输出高电平初始输出高电平初始输出低电平初始输出低电平0 00 00 00 00 00 00 10 11 01 01 11 1输入捕捉输入捕捉上升沿捕捉上升沿捕捉下降沿捕捉下降沿捕捉跳变沿捕捉跳变沿捕捉0 10 10 10 10 10 10 10 11 01

23、 01 11 1输出比较输出比较输出电平翻转输出电平翻转输出高电平输出高电平输出低电平输出低电平1 X1 X0 10 1带缓冲的输出比较或带缓冲的输出比较或带缓冲的带缓冲的PWM输出输出输出电平翻转输出电平翻转1 X1 X1 01 0输出高电平输出高电平1 X1 X1 11 1输出低电平输出低电平3 3T1T1通道通道1 1形状和控制存放器形状和控制存放器Timer1 Channel 1 Status and Control RegisterTimer1 Channel 1 Status and Control Register,T1SC1T1SC1含义同T1通道0形状和控制存放器 ,只是没有

24、D5(MS1B)位,由于MS0B是选择CH0缓冲方式的,CH1没有缓冲方式,所以没有MS1B位。数据位数据位 D7 D6 D5 D4 D3 D2 D1 D0定义定义CH1F CH1IE - MS1A ELS1B ELS1A TOV1 CH1MAXCH1F CH1IE - MS1A ELS1B ELS1A TOV1 CH1MAX复位复位 1 1 1 1 1 1 1 11 1 1 1 1 1 1 112.3.3 12.3.3 输入捕捉中断编程实例输入捕捉中断编程实例下面程序验证定时器下面程序验证定时器1 1通道通道0(0(引脚引脚21)21)输入捕捉中断的产生,当中断发输入捕捉中断的产生,当中断发

25、生时取反指示灯生时取反指示灯PTA1PTA1。定时器。定时器1 1通道通道0 0的输入捕捉中断向量的地址是的输入捕捉中断向量的地址是$FFF6$FFF6。 1 1输入捕捉中断编程实例汇编言语程序输入捕捉中断编程实例汇编言语程序 2输入捕捉中断编程实例C言语主程序2输入捕捉中断编程实例C言语主程序3 3输入捕捉中断编程实例输入捕捉中断编程实例C C言语矢量表文件言语矢量表文件3 3输入捕捉中断编程实例输入捕捉中断编程实例C C言语矢量表文件言语矢量表文件12.4 12.4 定时器模块的输出比较功能定时器模块的输出比较功能12.4.1 12.4.1 输出比较的根本含义输出比较的根本含义 1 1与输

26、出比较功能相关的引脚与输出比较功能相关的引脚 在在MC68HC908GP32MC68HC908GP32的的DIP-40DIP-40封装方式中,第封装方式中,第2121、2222脚脚标志是标志是“PTD4/T1CH0“PTD4/T1CH0、PTD5/T1CH1PTD5/T1CH1,它们是普通,它们是普通I/OI/O与与定时器输入捕捉的复用引脚。作为定时器输入捕捉功能运定时器输入捕捉的复用引脚。作为定时器输入捕捉功能运用时,它们是定时器用时,它们是定时器1 1的两个通道输入捕捉引脚,同时也的两个通道输入捕捉引脚,同时也可定义它们为输出比较引脚。可定义它们为输出比较引脚。2 2输出比较的含义输出比较

27、的含义 输出比较的功能是用程序的方法在规定的时辰输出需输出比较的功能是用程序的方法在规定的时辰输出需求的电平,实现对外部电路的控制。求的电平,实现对外部电路的控制。12.4 12.4 定时器模块的输出比较功能定时器模块的输出比较功能12.4.1 12.4.1 输出比较的根本含义输出比较的根本含义 3 3输出比较过程输出比较过程12.4.2 12.4.2 输出比较的存放器输出比较的存放器1T1通道存放器 T1 Channel Register 通道存放器在该通道用作输出比较时的作用是:存放要与计数存放器进展比较的数值。 完好的设置输出比较功能应该包括对存放器两个字节的写入。通道存放器和标志位在复

28、位时被清零,在初始化输出比较功能时应该小心谨慎,普通采用以下的步骤: 写入通道存放器的高位字节,制止输出比较功能; 取形状存放器,去除OCF位; 写入通道存放器低位字节,使输出比较功能任务。2 2T1T1通道通道0 0形状和控制存放器形状和控制存放器T1 Channel0 Status and Control T1 Channel0 Status and Control RegisterRegister,T1SC0T1SC0 T1SC0 T1SC0存放器在输出比较时,存放器在输出比较时,D7D7D2D2位与用作输入捕捉时的含义一样,位与用作输入捕捉时的含义一样,D1D1位此时无意义,在用作输出

29、比较时其含义阐明如下位此时无意义,在用作输出比较时其含义阐明如下: :D1 D1 :溢出翻转控制标志位,在定时器通道用作输出比较功能时,假设置位:溢出翻转控制标志位,在定时器通道用作输出比较功能时,假设置位该位,在通道的定时器发生溢出时,输出比较模块会自动翻转输出电平。在该位,在通道的定时器发生溢出时,输出比较模块会自动翻转输出电平。在一个完好的脉冲中,必然有两次电平的跳变。这就需求两次进入输出比较处一个完好的脉冲中,必然有两次电平的跳变。这就需求两次进入输出比较处置例程,两次计算下一次输出比较的计数值。假设可以使脉冲的周期恰好等置例程,两次计算下一次输出比较的计数值。假设可以使脉冲的周期恰好

30、等于定时器通道的溢出周期,并且置位溢出翻转控制标志位,那么在每次脉冲于定时器通道的溢出周期,并且置位溢出翻转控制标志位,那么在每次脉冲周期到的时候输出比较模块将自动翻转输出电平而节省了一次输出比较的处周期到的时候输出比较模块将自动翻转输出电平而节省了一次输出比较的处置。需求留意的是,置位溢出翻转控制标志位后,假设定时器溢出和输出比置。需求留意的是,置位溢出翻转控制标志位后,假设定时器溢出和输出比较同时发生,模块将优先处置定时器溢出事件。假设定时器溢出的处置例程较同时发生,模块将优先处置定时器溢出事件。假设定时器溢出的处置例程比较耗时,输出比较将不能得到及时的处置。这在编写程序时一定要非常留比较

31、耗时,输出比较将不能得到及时的处置。这在编写程序时一定要非常留意。意。12.4.312.4.3不带缓冲输出比较与带缓冲的输出比较不带缓冲输出比较与带缓冲的输出比较1不带缓冲的输出比较 不带缓冲的输出比较的功能表如今更改下一次输出比较时需求对输出比较计数器重新写入。 2带缓冲的输出比较 运用MC68HC908GP32的带缓冲的输出比较功能就可以抑制不带缓冲的输出比较缺陷。带缓冲的输出比较功能运用了同一定时器的两路通道,将这两路通道结合起来共同组成一个带缓冲的输出比较。该输出比较波形将出如今TCH0引脚上,而原来的TCH1引脚依然可以作为普通的I/O引脚运用。 12.5 12.5 定时器模块的脉宽

32、调制输出功能定时器模块的脉宽调制输出功能12.5.112.5.1脉冲宽度调制器脉冲宽度调制器PWMPWM PWM PWM产生一个在高电平和低电平之间反复交产生一个在高电平和低电平之间反复交替的输出信号,这个信号被称为替的输出信号,这个信号被称为PWMPWM信号,也叫脉信号,也叫脉宽调制波。经过指定所需的时钟周期和占空比来宽调制波。经过指定所需的时钟周期和占空比来控制高电平和低电平的继续时间。控制高电平和低电平的继续时间。 占空比为信号处于高电平的时间或时钟周占空比为信号处于高电平的时间或时钟周期数占整个信号周期的百分比,方波的占空比期数占整个信号周期的百分比,方波的占空比是是50%50%。 脉冲宽度是指脉冲处于高电平的时间。脉冲宽度是指脉冲处于高电平的时间。 PWM PWM的常见运用是为其他设备产生类似于时的常见运用是为其他设备产生类似于时钟的信号。钟的信号。 PWM PWM的另一个常见用途是控制输入到的另一个常见用途是控制输入到某个设备的平均电流或电压。某个设备的平均电流或电压。12.5

温馨提示

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

评论

0/150

提交评论