延时程序设计

合集下载

数码管动态延时程序设计

数码管动态延时程序设计

数码管动态延时程序设计摘要:一、数码管动态显示原理二、延时程序的作用1.保持显示时间2.稳定显示效果3.形成视觉暂留三、延时时间对显示效果的影响1.延时太短2.延时太长四、如何选择合适的延时时间五、总结正文:一、数码管动态显示原理数码管动态显示是通过逐个点亮数码管来实现数字的显示。

在动态显示过程中,为了保证显示效果,需要对每个数码管的导通时间进行控制。

延时程序在这里起到了关键作用,它能够确保数码管在一定时间内保持导通,从而实现稳定显示。

二、延时程序的作用1.保持显示时间:延时程序可以控制数码管的导通时间,使得显示内容在屏幕上保持足够的时间,便于观众观察。

2.稳定显示效果:延时程序可以确保数码管在显示过程中不受外界干扰,如电磁波、温度等因素的影响,从而提高显示的稳定性。

3.形成视觉暂留:延时程序使得数码管在一次扫描过程中保持显示,从而形成视觉暂留效果。

视觉暂留是指人眼在观察运动物体时,物体消失后仍在短时间内保留其影像的现象。

通过延时程序,可以让观众在数码管熄灭后依然能看到显示内容,提高显示效果的吸引力。

三、延时时间对显示效果的影响1.延时太短:当延时时间过短时,数码管导通时间变短,显示亮度降低。

在PROTUES仿真中,这种情况下数码管会直接熄灭,无法显示。

2.延时太长:延时时间过长时,人眼能够分辨出数码管的闪烁,从而影响显示效果。

此外,延时过长还会导致整个动态显示过程的速度变慢,影响观众的观看体验。

四、如何选择合适的延时时间为了达到较好的显示效果,延时时间应适当大于2毫秒,同时所有数码管一次扫描完成总时间不能大于40毫秒。

这是因为人眼视觉暂留的极限大约为40毫秒,超过这个时间人眼就无法形成视觉暂留效果。

因此,在设计延时程序时,需要根据实际情况和显示要求来调整延时时间。

五、总结数码管动态延时程序设计是实现动态显示效果的关键环节。

通过合理设置延时时间,可以保证数码管显示的稳定性和视觉效果。

HT单片机延时子程序设计

HT单片机延时子程序设计

HT单片机延时子程序设计单片机延时子程序设计是一种常用的程序设计技术,可以通过编程实现对系统的延时控制,实现各种功能需求。

一、延时原理在单片机中,延时的实现原理主要是基于时钟脉冲的计数器计时。

单片机的时钟频率是固定的,通常为一个定值,通过控制时钟脉冲的频率,我们可以实现不同的延时功能。

二、延时程序设计延时子程序设计通常分为两种情况:固定延时和可调延时。

下面我们将分别介绍这两种情况的延时程序设计。

1.固定延时固定延时是指延时时间是固定不变的,不受外部条件的影响。

为了实现固定延时,可以通过编程设置一个计时器,每次进行固定次数的循环,从而达到延时的目的。

下面是一个实现固定延时的示例代码:```unsigned int i, j;// do nothing, just wait}}```2.可调延时可调延时是指延时时间可以根据需要进行调整的情况。

为了实现可调延时,可以利用系统的定时器模块,设置一个定时器中断,在定时器中断服务子程序中进行延时控制。

下面是一个实现可调延时的示例代码:```#include <8051.h>#define TIMER0_H_BYTE (*((unsigned char volatile xdata *)0xFFC0))#define TIMER0_L_BYTE (*((unsigned char volatile xdata *)0xFFC1))}EA = 1; // enable interruptTH0=TIMER0_H_BYTE=0xFF;TL0=TIMER0_L_BYTE=0xFF;// do nothing, just wait for interrupt}EA = 0; // disable interrupt```在上面的例子中,通过设置定时器0的定时时间为50us,然后将延时时间转换为中断次数进行控制。

通过改变调用delay_adjustable函数时设置的延时时间,可以实现可调延时功能。

C51单片机的几种常用延时程序设计2024

C51单片机的几种常用延时程序设计2024

引言概述:C51单片机是一种广泛应用于嵌入式系统中的微控制器,它具有高度集成化、易于编程和灵活性强等特点。

在C51单片机的软件开发过程中,延时程序设计是非常重要的一部分。

本文将介绍C51单片机中几种常用的延时程序设计方法,包括循环延时、定时器延时、外部中断延时等。

这些方法不仅可以满足在实际应用中对延时的需求,而且可以提高程序的稳定性和可靠性。

正文内容:一、循环延时1. 使用循环控制语句实现延时功能,例如使用for循环、while循环等。

2. 根据需要设置延时的时间,通过循环次数来控制延时的时长。

3. 循环延时的精度受到指令执行时间的影响,可能存在一定的误差。

4. 循环延时的优点是简单易用,适用于较短的延时时间。

5. 注意在循环延时时要考虑其他任务的处理,避免长时间的等待造成程序卡死或响应延迟。

二、定时器延时1. 使用C51单片机内置的定时器模块来实现延时。

2. 配置定时器的工作模式,如工作方式、定时器精度等。

3. 设置定时器的初值和重装值,控制定时器中断的触发时间。

4. 在定时器中断服务函数中进行延时计数和延时结束标志的设置。

5. 定时器延时的优点是精确可控,适用于需要较高精度的延时要求。

三、外部中断延时1. 在C51单片机上配置一个外部中断引脚。

2. 设置外部中断中断触发条件,如上升沿触发、下降沿触发等。

3. 在外部中断中断服务函数中进行延时计数和延时结束标志的设置。

4. 外部中断延时的优点是能够快速响应外部信号,适用于实时性要求较高的场景。

5. 注意在外部中断延时时要处理好外部中断的抖动问题,确保延时的准确性。

四、内部计时器延时1. 使用C51单片机内部的计时器模块来实现延时。

2. 配置计时器的工作模式,如工作方式、计时器精度等。

3. 设置计时器的初值和重装值,使计时器按照一定的频率进行计数。

4. 根据计时器的计数值进行延时的判断和计数。

5. 内部计时器延时的优点是能够利用单片机内部的硬件资源,提高延时的准确性和稳定性。

单片机软件延时程序设计

单片机软件延时程序设计

单片机软件延时程序设计在单片机的控制应用中,控制过程常有延时的需要,例如交通灯的控制程序,控制红灯亮的时间持续30秒,就可以通过延时功能来实现。

延时功能除了可以使用定时器/计数器之外,还可以使用软件程序来完成。

软件延时程序是典型的循环程序,它是通过执行一个具有固定延时时间的循环体来实现延时的。

本文从机器周期和指令周期的区别和联系、编写软件延时程序所需相关指令的用法等方面,介绍软件延时程序的设计。

一、机器周期和指令周期1.机器周期机器周期是指单片机完成一个基本操作所花费的时间,一般使用μs来计量单片机的运行速度。

MCS-51单片机的一个机器周期包括12个振荡脉冲周期,因此,一个机器周期就是振荡脉冲的十二分频。

如果MCS-51单片机的振荡脉冲频率为12MHz时,那么执行一个机器周期就只需要1μs;如果采用的是6MHz的晶振,那么执行一个机器周期就需要2μs。

2.指令周期指令周期是指单片机执行一条指令所需要的时间,一般以单片机的机器周期来计量指令周期。

MCS-51单片机的指令周期根据指令的不同,分成单周期指令(执行这条指令只需一个机器周期)、双周期指令和四周期指令。

除了乘、除两条指令是四周期指令之外,其余MCS-51单片机指令均为单周期或双周期指令。

如果MCS-51单片机采用的是12MHz 晶振,那么它执行一条指令一般只需1~2μs的时间;如果采用的是6MHz晶振,执行一条指令一般就需2~4μs的时间。

现在的单片机有很多种型号,但每个型号的单片机器件手册中都会详细说明执行各种指令所需的机器周期。

我们可以依据单片机器件手册中的指令执行周期和单片机所使用晶振频率,来完成需要用软件的方法进行的延时的程序设计。

二、延时指令在MCS-51单片机指令中并没有真正的延时指令,从以上的概念我们知道单片机每执行一条指令都需要一定的时间。

所以可以让单片机不断地执行没有具体实际意义的指令(通常把这些指令称为哑指令),就可以达到软件延时的效果。

数码管动态延时程序设计

数码管动态延时程序设计

数码管动态延时程序设计【原创版】目录一、引言二、数码管动态显示原理1.动态显示概念2.数码管显示原理三、延时程序设计1.延时程序作用2.延时时间长短对显示效果的影响四、51 单片机控制数码管动态实现 00 到 231.程序包含头文件2.定义符号和变量3.延时函数 t0isr()4.动态显示数码管函数5.主函数五、定时器控制数码管动态显示实例1.程序包含头文件2.定义符号和变量3.延时函数4.动态显示数码管函数5.主函数六、结论正文一、引言数码管动态显示程序设计是单片机应用领域的一个重要课题。

在很多场合,我们需要对数码管进行动态显示,以实时反映数据的变化。

为了实现这一功能,我们需要编写相应的程序,并通过延时程序控制数码管的显示效果。

本文将详细介绍数码管动态显示的原理及程序设计方法。

二、数码管动态显示原理1.动态显示概念动态显示是指在数码管上逐个显示数字或字符,以形成视觉暂留效果。

与静态显示相比,动态显示能够实时反映数据的变化,更具有实用性。

2.数码管显示原理数码管是一种常用的显示器件,其工作原理是通过驱动管的导通与截止来显示数字或字符。

在动态显示中,我们需要逐个驱动数码管的各个段码,以形成视觉暂留效果。

三、延时程序设计1.延时程序作用在数码管动态显示中,延时程序的作用是保持当前显示数码管足够时间,同时稳定显示效果,以形成视觉暂留。

这样可以使得数码管上的数字或字符能够被清晰地看到。

2.延时时间长短对显示效果的影响延时时间的长短会影响数码管的显示效果。

一般来说,延时时间需要大于 2 毫秒,以保证视觉暂留效果。

同时,所有数码管一次扫描完成的总时间不能大于 40 毫秒,因为 40 毫秒基本上是人眼视觉暂留的极限。

51单片机延时时间计算和延时程序设计

51单片机延时时间计算和延时程序设计

一、关于单片机周期的几个概念时钟周期时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12MHz 的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。

在一个时钟周期内,CPU仅完成一个最基本的动作。

机器周期完成一个基本操作所需要的时间称为机器周期。

以51 为例,晶振12M,时钟周期(晶振周期)就是(1/12)μs,一个机器周期包含12 个时钟周期,一个机器周期就是1μ s。

指令周期:执行一条指令所需要的时间,一般由若干个机器周期组成。

指令不同,所需的机器周期也不同。

对于一些简单的的单字节指令,在取指令周期中,指令取出到指令寄存器后,立即译码执行,不再需要其它的机器周期。

对于一些比较复杂的指令,例如转移指令、乘法指令,则需要两个或者两个以上的机器周期。

2.延时常用指令的机器周期1.指令含义DJNZ:减 1 条件转移指令这是一组把减 1 与条件转移两种功能结合在一起的指令,共2条。

DJNZ Rn,rel ;Rn←(Rn)-1;若(Rn)=0,则PC←(PC)+2 ;顺序执行;若(Rn)≠ 0,则PC←(PC)+2+rel,转移到rel 所在位置DJNZ direct,rel ;direct ←(direct )-1;若(direct)= 0,则PC←(PC)+3;顺序执行;若(direct)≠ 0,则PC←(PC)+3+rel,转移到rel 所在位置2.DJNZ Rn,rel 指令详解例:MOV R7,#5DEL:DJNZ R7,DEL; r在el本例中指标号DEL三、51 单片机延时时间的计算方法和延时程序设计1.单层循环由上例可知,当Rn赋值为几,循环就执行几次,上例执行 5 次,因此本例执行的机器周期个数=1(MOV R7,#5)+2(DJNZ R7,DE)L ×5=11,以12MHz的晶振为例,执行时间(延时时间)=机器周期个数×1μs=11μ s,当设定立即数为0 时,循环程序最多执行256 次,即延时时间最多256μ s。

延时程序设计2023简版

延时程序设计2023简版

延时程序设计延时程序设计概述延时程序设计是指在计算机程序中设置延时等待的技术。

在某些需要延时一段时间后再进行下一步操作的应用场景中,延时程序设计能够提供一个简单、灵活的解决方案。

延时的作用延时的作用在于控制程序执行的时间间隔,以实现程序在特定时间后执行下一步操作的目的。

在许多应用程序中,延时是必不可少的技术,尤其是涉及到与外部设备或其他系统交互的情况下。

延时可以用于实现以下几个功能:- 控制程序的执行速度:通过延时可以限制程序的执行速度,使其与其他设备或系统的速度相匹配,避免数据丢失或冲突。

- 时间调度:通过延时可以实现程序在指定时间点进行某些操作,例如定时任务、周期性任务等。

- 模拟等待:在某些情况下,需要程序等待一段时间再进行下一步操作,以模拟人的行为或特定环境下的时间延迟。

延时的实现方法延时程序设计可以通过多种方式实现,以下是几种常见的方法:1. 休眠方法休眠方法是最简单粗暴的延时实现方式,通过让程序线程休眠一段时间来实现延时效果。

在大多数编程语言中,都提供了相应的休眠函数或方法,例如C/C++中的`sleep()`函数,Java中的`Thread.sleep()`方法,Python中的`time.sleep()`函数等。

这种方式的优点是简单易用,但缺点是占用系统资源较多,不适用于需要高精度延时的应用场景。

2. 循环方法循环方法是一种基于计数的延时实现方式,通过循环执行空操作来消耗一定的时间。

这种方式的原理是根据计算机的执行速度来确定循环的次数,以实现预期的延时效果。

循环方法的优点是对系统资源占用较少,适用于需要高精度延时的应用场景,但缺点是需要根据硬件和操作系统的性能差异进行调整。

3. 定时器方法定时器方法是一种基于硬件定时器的延时实现方式,通过设置定时器的计数器和时钟频率来实现精确的延时效果。

大多数现代计算机都配备了硬件定时器,可以通过操作系统提供的接口来设置定时器的相关参数。

定时器方法的优点是精确度高,可实现微秒级别的延时,但缺点是需要操作系统和硬件的支持,不适用于所有平台。

单片机软件延时程序的设计

单片机软件延时程序的设计

单片机软件延时程序的设计一、单片机软件延时的基本原理单片机执行指令需要一定的时间,通过编写一系列无实际功能的指令循环,让单片机在这段时间内持续执行这些指令,从而实现延时的效果。

延时的时间长度取决于所使用的单片机型号、晶振频率以及所编写的指令数量和类型。

以常见的 51 单片机为例,假设其晶振频率为 12MHz,一个机器周期等于 12 个时钟周期,那么执行一条单周期指令的时间约为1μs。

通过编写一定数量的这种单周期指令的循环,就可以实现不同时长的延时。

二、软件延时程序的设计方法1、简单的空操作延时这是最基本的延时方法,通过使用空操作指令“NOP”来实现。

以下是一个简单的示例:```cvoid delay_nop(unsigned int n){unsigned int i;for (i = 0; i < n; i++){_nop_();}}```这种方法的延时时间较短,而且不太精确,因为实际的延时时间还会受到编译器优化等因素的影响。

2、基于循环的延时通过使用循环来执行一定数量的指令,从而实现较长时间的延时。

以下是一个基于循环的延时函数示例:```cvoid delay_ms(unsigned int ms){unsigned int i, j;for (i = 0; i < ms; i++){for (j = 0; j < 120; j++)_nop_();}}}```在这个示例中,通过内外两层循环来增加延时的时间。

需要注意的是,这里的循环次数是根据实验和估算得出的,实际的延时时间可能会有一定的偏差。

3、更精确的延时为了实现更精确的延时,可以根据单片机的机器周期和指令执行时间来精确计算延时的循环次数。

例如,对于12MHz 晶振的51 单片机,要实现 1ms 的延时,可以这样计算:1ms =1000μs,一个机器周期为1μs,执行一条指令需要 1 到 4 个机器周期。

假设平均每条指令需要 2 个机器周期,那么要实现1000μs的延时,大约需要执行 2000 条指令。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单击此处编辑母版标题样式
实验四
软件延时程序设计
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
单击此处编辑母版标题样式
明德、博学、求实、创新
2014年6月2日星期一8时2分30秒
刘强
单击此处编辑母版标题样式
延时设计方法
1、软件延时--Байду номын сангаас采用程序实现
特点:灵活性,消耗CPU资源
;1TM ;1TM ;1TM ;2TM ;2TM ;2TM ;2TM
明德、博学、求实、创新
2014年6月2日星期一8时2分30秒
刘强
单击此处编辑母版标题样式
∵ fOSC=6MHz ∵ 1TM=12TOSC, 又∵ TOSC=1/fOSC ∴ TM=12/fOSC=12/6MHz=2µs
总TM = 1+[1+(1+2×248+2)×200+2]×100+2 =9980303
二、实验原理
软件延时利用了指令的时间属性编制的一段 循环子程序来空耗CPU的时间以达到延时的目的。
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
单击此处编辑母版标题样式
三、相关知识
1、时钟周期(振荡周期)、状态周期、机器周期和指令周期的关系 1TM=12TOSC、1TS=2TOSC、1TI=(1、2、4)TOSC 2、指令的执行时间(查询指令表) 3、时间和频率单位换算
总TM = 1+[1+(1+2×200+2)×20+2]×20 +2 = 161263 ∴t=161263×2μs
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
单击此处编辑母版标题样式
分析以下C语言实现的延时程序
void Delay(void) { unsigned char i, j, k; for (i=0; i<20; i++) for (j=0; j<20; j++) for (k=0; k<200; k++); }
单击此处编辑母版标题样式
3、三重循环延时子程序
DELAY: MOV DL3: MOV DL2: MOV DL1: DJNZ DJNZ DJNZ RET R5, #100 R6, #200 R7, #248 R7, DL1 R6, DL2 R5, DL3 ;1TM ;1TM ;1TM ;2TM ;2TM ;2TM ;2TM
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
通过反汇编 —转换为了汇编语言 单击此处编辑母版标题样式
C:0x0003 C:0x0004 C:0x0005 C:0x0006 C:0x0007 C:0x0008 C:0x0009 C:0x000A C:0x000D C:0x000E C:0x0011 C:0x0012 C:0x0015 Delay: E4 FF E4 FE E4 FD 0D BDC8FC 0E BE14F6 0F BF14F0 22 CLR MOV CLR MOV CLR MOV INC CJNE INC CJNE INC CJNE RET A R7,A A R6,A A R5,A R5 R5,#0xC8,C:0009 R6 R6,#0x14,C:0007 R7 R7,#0x14,C:0005
2、硬件延时—采用电路实现
特点:时间比较准备,不占用CPU资源
明德、博学、求实、创新
2014年6月2日星期一8时2分30秒
刘强
单击此处编辑母版标题样式
一、实验目的
1、掌握循环程序(多重循环程序)的设计方法。 2、掌握软件延时程序的时间计算方法和设计方法; 3、学会如何利用KEIL来调试和观察时间。
;1TM ;2TM ;2TM
t=( 1+2*R5+2)*TM
单击此处编辑母版标题样式
2、双重循环延时子程序
DELAY: MOV R5, #10 DL2: MOV R6, #100 DL1: DJNZ R6, DL1 DJNZ R5, DL2 RET ;1TM ;1TM ;2TM ;2TM ;2TM
注意:C语言文件(*.c)、汇编语言(*.asm)
4、配置工程属性
设定将默认的晶振33.0改为11.0592,将Creat hex file选项打勾。
5、编译,改错(Build / Rebuild All)
生成目标代码(*.Hex、*.Bin)
6、调试(软件Debug、硬件Debug、 Proteus 仿真)
t=[1+(1+2*R6+2)*R5+2]*TM
void Delay (void) { unsigned char i, j; for (i=10; i>0; i--) for (j=100; j>0; j--) ; }
晶振为12MHz,130mS以内延时采用! 明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
刘强
单击此处编辑母版标题样式
已知STC89C51单片机使用的晶振频率为6MHz,请阅读下 面这段程序,分别计算如下程序段总机器周期 和总执行时间t。 ORG 0000H
DELAY: MOV DL3: MOV DL2: MOV DL1: DJNZ DJNZ DJNZ RET SJMP END
R5, #100 R6, #200 R7, #248 R7, DL1 R6, DL2 R5, DL3 $
分析以下C语言实现的延时程序
void Delay(void) { unsigned char i, j, k; for (i=20; i>0; i--) for (j=20; j>0; j--) for (k=200; k>0; k--); }
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
t={1+[1+(1+2*R7+2)*R6+2]*R5+2}*TM
void Delay(void) { unsigned char i, j, k; for (i=100; i>0; i--) for (j=200; j>0; j--) for (k=248; k>0; k--) ; }
晶振为12MHz,33S以内延时采用! 明德、博学、求实、创新 2014年6月2日星期一8时2分30秒
Over!
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
单击此处编辑母版标题样式
如果只是看代码,不实践操练的话,看过东西 一下就忘了。一步一步走过的“脚印”将牢记于 心。 那么赶紧动手实践吧!
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
单击此处编辑母版标题样式
好参数,请记下来,以后享用!
明德、博学、求实、创新
2014年6月2日星期一8时2分30秒
刘强
单击此处编辑母版标题样式
软件延时子程序 (循环结构)
单重循环延时子程序 双重循环延时子程序 三重循环延时子程序
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
单击此处编辑母版标题样式
1、单重循环延时子程序
∴t=9980303×2μs=19.960606S
明德、博学、求实、创新
2014年6月2日星期一8时2分30秒
刘强
Keil软件操作步骤 单击此处编辑母版标题样式
1、准备
注意:建立工程文件夹。
2、打开Keil新建工程
(1)为工程指定路径 (2)为工程命名 (3)为工程指定CPU
3、新建源代码文件并保存,添加到工程。
1ms=10-3s,1us=10-6s 1MHz=103 KHz=106Hz
1s= 103ms = 106us = 109ns = 1012ps
4、循环程序结构
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
单击此处编辑母版标题样式
三、实验内容(任选一)
1、利用汇编指令编程实现5ms的延时子程序; 2、利用汇编指令编程实现10ms的延时子程序; 3、利用汇编指令编程实现15ms的延时子程序; 4、利用汇编指令编程实现20ms的延时子程序; 5、利用汇编指令编程实现1s的延时子程序。
DELAY: MOV R5, #10 DL1: DJNZ R5, DL3 RET
void Delay(void) { unsigned char i; for (i=10; i>0; i--); }
晶振为12MHz,500uS以内延时采用! 明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
通过反汇编 —转换为了汇编语言 单击此处编辑母版标题样式
Delay:
C:0x0003 C:0x0005 C:0x0007 C:0x0009 C:0x000B C:0x000D C:0x000F 7F14 7E14 7DE6 DDFE DEFA DFF6 22 MOV MOV MOV DJNZ DJNZ DJNZ RET R7,#0x14 R6,#0x14 R5,#0xC8 R5,C:0009 R6,C:0007 R7,C:0005
明德、博学、求实、创新
2014年6月2日星期一8时2分30秒
刘强
单击此处编辑母版标题样式
如果只是看代码,不实践操练的话,看过东西 一下就忘了。一步一步走过的“脚印”将牢记于 心。 那么赶紧动手实践吧!
明德、博学、求实、创新 2014年6月2日星期一8时2分30秒 刘强
相关文档
最新文档