返回列表 发新帖 本帖赏金 10.00元(功能说明)
查看: 2378|回复: 18
收起左侧

【电子竞赛预热赛】+自动控制的恒温系统

[复制链接]
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-20 11:46 | 显示全部楼层 |返回版面||阅读模式
1)项目方案的构想和实施计划;
技术要求:
    基础功能:
            1)控温范围:室温-80℃,控制精度正负1.5°
            2)温度值按键设定、温度值液晶或数码管显示
            3)显示外部环境温度
    扩展部分任意选择:
            1)控温范围:室温-80℃,控制精度正负0.5度
               控温范围:-10-80度任意设定,控制精度正负1.5度
               控温范围:-10-80度任意设定,控制精度正负0.5度
            2)上位机能设定温度、设定报警温度上下线,超限声光报警、语音提示
                    上位机实时显示大气温度变化曲线图
            3)其他相关功能任意

温度控制系统的控制过程是:单片机定时对温进行检测,经A/D转换芯片得到相应的数字量,经过计算机进行数据转换,得到应有的控制量,去控制加热功率,从而实现对温度的控制。如下图所示:
进行系统设计时应考虑如下问题:
1.温度变化规律的控制,即温按预定的温度——时间关系变化。
2.温度控制范围:如-10~80℃,这就涉及到测温元件、功率的选择等。
3.控制精度、超调量等指标,这涉及到A/D转换精度、控制规律选择等。
温控系统主要由温度传感器、温度调节仪、执行装置、被控对象四个部分组成,其系统结构图如图1所示。被控制对象是大容量、大惯性的温度对象,是典型的多阶容积迟后特性,在工程上往往近似为包含有纯滞后的二阶容积迟后;由于被控对象电容量大,通常采用可控硅作调节器的执行器,其具体的电路图如图2所示。
  

调节温度,在工业上是通过在设定周期范围内,将电路接通几个周波,然后断开几个周波,改变晶闸管在设定周期内通断时间的比例,来调节负载两端交流平均电压即负载功率,这就是通常所说的调功器或周波控制器;调功器是在电源电压过零时触发晶闸管导通的,所以负载上得到的是完整的正弦波,调节的只是设定周期Tc内导通的电压周波。如图3所示,设周期Tc内导通的周期的波数为n,每个周波的周期为T,则调功器的输出功率为P=n×T×Pn/Tc,Pn为设定周期Tc内电压全通过时装置的输出功率。
  
先介绍到这里,接下来分楼层介绍

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 手机登录

x
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-20 13:09 | 显示全部楼层 |返回版面
2)硬件设计过程分享
1    温度检测和变送器
温度检测元件和变送器的类型选择与被控温度的范围和精度等级有关。镍铬/镍铝热电偶适用于0℃-1000℃的温度检测范围,相应输出电压为0mV-41.32mV。
    变送器由毫伏变送器和电流/电压变送器组成:毫伏变送器用于把热电偶输出的0mV-41.32mV变换成4mA-20mA的电流;电流/电压变送器用于把毫伏变送器输出的4mA-20mA电流变换成0-5V的电压。
    为了提高测量精度,变送器可以进行零点迁移。例如:若温度测量范围为-50~100℃,则热电偶输出为20.6mV-41.32mV,毫伏变送器零点迁移后输出4mA-20mA范围电流。这样,采用8位A/D转换器就可使量化温度达到0.5℃以内。其在控制系统的作用如下图所示:
  
  





1:温度检测电路
2  温度控制电路
8051对温度的控制是通过双向可控硅实现的。如图一所示,双向可控硅管和加热丝串接在交流220V、50Hz市电回路。在给定周期T内,8051只要改变可控硅管的接通时间即可改变加热丝的功率,以达到调节温度的目的。
    可控硅接通时间可以通过可控硅控制极上触发脉冲控制。该触发脉冲由8051用软件在P2.1引脚上产生,在过零同步脉冲同步后经光电耦合管和驱动器输出送到可控硅的控控制系统的制极上。
图1:调温电路
3   A/D转换电路
ADC0809是一种比较典型的8位8通道逐次逼近式A/D转换器,CMOS工艺,可实现8路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为100μs左右,采用双排28引脚封装,其主要性能指标如下:
1、分辨率为8位二进制数;
2、电压范围在0~+5V,对应A/D值00H~FFH;
3、每路A/D转换完成时间100ms;
4、可分时进行8路A/D转换;
5、工作频率500KHz(本电路由8051ALE端输出经4分频后得到)。
引脚功能如下:
IN0~IN7:8路0~+5V模拟电压输入(用IN0端);
DB7~DB0:8位数字输出线,输出8位A/D转换值;
STAST:启动A/D转换端;
EOC:A/D转换完成端;
OE:允许数字量输出信号;
CLOCK:时钟500KHz;
ADD A、B、C:IN0~IN7地址选择线;
ALE:地址锁存允许输入信号。
A/D转换器0809与放大电路连接较简单,运放接成比例放大形式,放大倍数可调,总体A/D转换与8051接口电路如下:

4  报警电路
报警电路的作用主要是在温度超过规定的温度或低于下限温度或达到预定温度时,报警子程序就会控制报警信号的输出,温度低与或高于规定的温度范围以及达到规定的温度时,音频装置就会发出不同频率的告警信号,同时相应的LED显示,到底是高了还是低了,以便与自动调节。报警电路如下图:

                            图1:报警电路
5 看门狗电路
计算机看门狗控制卡是为了使计算机或工控机在系统出现异常时,能自动控制计算机进行重新启动,使系统恢复正常运行,保证系统24小时不间断正常工作。该控制卡可运用于无人职守的场所。像采用计算机作为存储设备的数字硬盘录像系统,公路卡口监控记录设备等。
特点:
● 可固定在计算机内部并且不占用计算机任何插槽。
● 借电方便,可利用计算机本身的软驱电源接口。
● 通过计算机并口或者串口跟计算机通讯。
● 计算机操作系统发生死机后,30秒(时间可设置)内控制卡控制计算机重新启动。
● 控制卡内有信号灯,在正常工作时有频率稳定持续的灯光闪动。
● 提供开发控件,可启动看门狗功能、停止看门狗功能、设置串口还是并口。
● 有两种型号的控制卡,有自带RS232转485的功能的控制卡。
现以MAX706监控电路为例(见图1)来说明“看门狗”硬件电路的工作过程,我们知道,MAX706是一种性能优良的低功耗CMOS监控电路芯片,其内部电路由上电复位、可重触发“看门狗”定时器及电压比较器等组成[2]。MAX706只要在1.6秒时间内检测到WCI引脚有高低电平跳变信号,则“看门狗”定时器清零并重新开始计时;若超出1.6秒后,WCI引脚仍无高低电平跳变信号,则“看门狗”定时器溢出,WDO引脚输出低电平,进而触发MR手动复位引脚,使MAC706复位,从而使“看门狗”定时器清零并重新开始计时,WDO引脚输出高电平,MAX706的RST复位输出引脚输出大约200毫秒宽度的低电平脉冲,使单片机控制系统可靠复位,重新投入正常运行。
1:看门狗电路


6 显示电路
单片机与显示器的接口电路图

图MC14495内部逻辑结构及引脚

图用MC14495组成多位LED静态显示器接口

7  电源电路
本模块将交流 220V输入电压变为3组直流电压,其中5V电压为CPU等数字电路提供电源;±15V电压为运放等模拟芯片提供电源;24V电压为温度变送器提供电源。
220v市电经变压器输出两组独立的25v交流,桥堆整流,大电容滤波得到 + 35v直流,再加一个0.1uF小电容滤出电源中的高频分量。考虑到制作过程中电源空载似的电容放电可在输出电容并上1k大功率电阻。另外这组直流还要给7812、7912来获得 + 12v。 电源模块如下图:
               
                    图1:5V直流稳压源电路


图2: + 12V/24V直流稳压源的原理电路


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 手机登录

x

打赏榜单

21ic小喇叭 打赏了 10.00 元 2017-11-28
理由:原创设计分享

     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-20 13:14 | 显示全部楼层 |返回版面
3)搭建平台;

     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-20 13:14 | 显示全部楼层 |返回版面
本帖最后由 TCsbx 于 2017-11-20 13:31 编辑

4)程序设计


1 总体程序流程图
温度控制程序的设计应考虑如下:1)键盘扫描、键码识别和温度显示;2)炉温采样、数字滤波;3)数据处理;4)越限报警和处理;5)PID计算、温度标度转换
2 主程序框图
主程序包括8051本身的初始化等等。大体说来,本程序包括设置有关标志、暂存单元和显示缓冲区清零、T0初始化、CPU开中断、温度显示和键盘扫描程序              
主程序
在主程序中首先给定PID算法的参数值,然后通过循环显示当前温度,并且设定键盘外部中断为最高优先级,以便能实时响应键盘处理;软件设定定时器T05秒定时,在无键盘响应时每隔5秒响应一次,以用来采集经过AD转换的温度信号;设定定时器T1为嵌套在T0之中的定时中断,初值由PID算法子程序提供。在主程序中必须分配好每一部分子程序的起始地址,形式如下:
          ORG 0000H
          AJMP  MAIN
          ORG  0003H
          AJMP  INTO
          ORG  000BH
          AJMP  TT0
          ORG  001BH   
          AJMP  TT1
                  
3 中断服务程序框图
T0中断服务程序是温度控制系统的主体程序,用于启动数/模转换器、读入采样数据、数字滤波、越限温度报警和越限处理、PID计算和输出可控硅的触发脉冲等。P1.3引脚上输出的该同步触发脉冲宽度由T1计数器的溢出中断控制,8051利用等待T1溢出中断的空闲时间(形成P1.3输出脉冲顶宽)完成把本次采样值转换成显示值而放入显示单元缓冲区和调用温度显示程序。8051从T1中断服务程序返回后即可恢复现场和返回主程序。
系统软件采用中断方式编程,主要部分是时钟中断程序,主要由输入处理程序、控制算法程序、显示处理、输出处理和自诊断程序等组成,其流程图如图2所示。仪表通电启动后,初始化程序进行时间给定,每隔500ms时钟中断一次,中断后进入时钟中断处理。对于纯滞后,大惯性环节控制对象,一般采用积分分离PID控制算法。在一般的PID控制中,当系统有较大的扰动或设定值较大幅度提降时,由于偏差较大及系统存在惯性和滞后,在积分项的作用下,会产生较大的超调和长时间波动,在温度缓慢变化过程中这一现象尤为严重,为此采用积分分离措施,即在偏差较大时,取消积分作用,偏差较小时,才将积分作用投入。
中断服务程序框图        

4 报警电路子程序
   子程序框图
5 键盘显示管理程序
    为了使8279具有合适的键盘、显示功能,首先要对芯片初始化。可适当地挑选8279的控制字,例如:使8279具有8位显示、右端输入、编码键盘、双键锁定时可选控制字10H.这时每次按键都将产生键特征码,并且存放在FIFOROM中,同时使8279的IRQ引脚变为高电平,可作为向CPU申请中断信号,如果CPU是中断开放的,则转向中断服务程序,可在中断服务程序中读取特征码。每当CPU读取FIFOROM中的数据后,8279自动撤消IRQ信号,IRQ引脚变为低电平。CPU返回主程序后,可由键特征码来决定程序的流向。问题是,当CPU从8279的FIFOROM中读取键特征码后,IRQ虽然恢复底电平,但FIFOROM中的数据并没有消失,仍保存在里面,这时即使使用对改8279清除的指令D3H,也不能将FIFOROM中的数改变,只有按其它键才能改变FIFOROM中的数据,因这样是无法实现按钮功能的。
为了使键盘具有按钮功能,应该利用8279的传感方式功能,在传感器方式中,8279每当检测到传感状态变化时,IRQ就变为高电平,图1是以8051CPU构成的系统为例,说明IRQ引脚电平的翻新过程。
8279的IRQ端经反相器接到8051的INT1端(即P3.3引脚)。先将8279设置成编码键盘,允许INT1中断,当键按下时,反相器输出低电平,CPU进入中断服务程序,读取键特征码后,又为高电平。返回主程序后,转向功能程序(例如调模进)。输出控制信号(例如P1.0为“1”时调模进电磁阀得电)后,将8279设置为传感器方式,并且不允许INT1中断,然后调试P3.3是否为低电平。如果按键松开,8279将测出传感器状态发生变化,而使IRQ由低电平转为高电平。也就是说P3.3脚为低电平时,按键已经松开,程序重新设置8279为编码键盘,INT1中断开放,以便使键盘脱离按钮功能。
程序清单如下:
ORG 0000H
   MOV DPTR,#7000H ;   
指向8279数据口
   INC DPTR ;            指向8279控制口
   MOV A, #00H ;         设定8279工作方式
   M0VX @DPTR,A
   MOV A , #0GFH ;      
清除8279内部显示RAM状态
   MOVX @DPTR, A
   MOV A , #22H
   MOVX @DPTR , A ;   
设定8279分频系数
   LOOP:MOVX A , @DPTR
   JB ACC.7 , LOOP ;     
显示RAM清除完毕吗?
   MOV A , 80H ;         
指向第一位数码管
   MOVX @DPTR , A
   MOV A , 9FH ;         
输出"1"一个字形
   MOV DPTR ,#7000H
   MOVX @DPTR , A
   INC DPTR
   LOOP1:M0VX A , @DPTR
   AND A , #07H
   CJNE A , #00H,L00P2
   AJMP LOOP1 ;         
无键按下转
   LOOP2:MOV DPTR ,#7000H
MOVX  A , @DPTR;    有键按下将键值送累加器A
   
键值,8279的行扫描信号(SL0-SL3)与列信号(RL0-RL4)组成,不同组合的矩阵将得到不同键,
   在同一矩阵中不会有相同的键值,这对初学者编制键显示程序大为方便.下表是通用键盘板键值:
  
名称 0 1 2 3 4 5 6 7 8 9
   
键值 C1 C8 C9D0 D8 E0 C2 CA D1 D9
   
名称 状态切换  清除
   键值  DA       C3
6 判定有无闭合键的子程序
   判定有无闭合键的子程序为KSI,供在键盘扫描程序中调 用。程序如下:         

7 键盘扫描程序
    如前所述,在单片机应用系统中常常是键盘和显示器同时存在,因此可以把键盘扫描程序和显示程序配合起来使用,即:把显示程序作为键扫描程序的延时子程序。这样做既省去了一个专门的延时子程序,又能保证显示器常亮的可观效果。
   假定本系统中显示程序为DIR,执行时间约为6ms。键盘扫描程序如下:
   KEY1:ACALL  KSI;检查是否有键闭合
JNZ    LK1;A非“0”则转移
ACALL  DIR;显示一次(“延时6s)
AJMP   KEY1
LK1: ACALL  DIR;           有键闭合二次延时
ACALL  DIR;           共12ms去抖动
ACALL  KSI;           再检查是否有键闭合
JNZ    LK2;           有键闭合转移到LK2
ACALL  DIR
AJMP   KEY;           无键闭合,延时6ms后转KEY1
LK2:  MOV    R,#0FEH;       扫描初值送R2
MOV    R,#00H;       扫描列号送R4
LK4:  MOV    DPTR,#0101H;  A口地址
MOV    A,R
MOVX   @DPTR,A;    扫描初值送A口
INC    DPTR
INC   DPTR;           C口地址
MOVX  A,@DPTR;      读C口
JB    ACC.0, LONE;ACC.0=1,第0行无键闭合,转LONE
MOV   A,#00H;        装第0行值
AJMP  LKP
LONE:  JB    ACC.1 LTWO;ACC.1=1,第1行无键闭合,转LTWO
MOV   A,#08H;        装第1行值
AJM   PLKP
LTWO:  JB    ACC.2,LTHR;ACC.2=1,第2行无键闭合,转LTHR
MOV   A#10H
AJMP  LKP
LTHR:  JB    ACC.3,NEXT;ACC.3=1,第3行无键闭合,转NEXT
MOV   A,#18H;        装第3行值
LKP:   ADD   A,R;           计算键码
PUSH  ACC;            保护键码
LK3:   ACALL DIR;            延时6ms
ACALLKSI;            检查是否继续闭合,若闭合再延时
JNZ   LK3
POP   ACC;            若键起,则键码送A
RET
NEXT:  INC   R;              扫描列号加1
MOV   A,R
JNB   ACC.7,KND;若第7位=0,已扫完最高列则转KND
RL    A
MOV   R,A
AJMP  LK4;            进行下一行扫描
KND:   AJMP  KEY1;           扫描完毕,开始新一轮
8  A/D转换程序
(1)A/D转换子程序。
      PUSH  A
      SETB   EA ;                   开中断
      SETB   IT1;                   外中断1定义为跳变触发
      MOV  DPTR,#0BFFFH;           送ADC0809口地址
      MOV   A,#00H;                选通IN0通道
      MOVX   @DPTR,A ;               启动A/D转换
      NOP                       
      NOP                     
      NOP                       
      NOP                     
      NOP                     
      SETB    EX1;                   开外中断1
      POP     A
      RET
(2)A/D转换结束中断程序。
ADINT1:   PUSH   PSW   ;      保护现场
                PUSH   A
                PUSH  DPH
               PUSH   DPL
               MOV    DPTR,#0BFFFH
               MOVX   A,@DPTR ;    读A/D转换结果
                MOV   60H,A ;     送入内部RAM60H中
               MOV    A,#00H;    再次启动IN0通道
               MOVX    @DPTR,A
               POP    DPL ;         恢复现场
                POP    A
               POP    PSW
                RET1
在整个用户程序中只唯一的一对指令(SETB P1.7CLR  P1.7)能使看门狗定时器复位。也就是说不会有任何非法的指令能使看门狗定时器误复位,致使系统已经死机看门狗失效。当然,对对没有中断的用户系统,只需将清零指令(CLR  P1.7)也插在主程序中就可以了;对于有多种中断的用户系统,如果没有中断嵌套,则清零指令(CLR  P1.7)可以插在任一个中断子程序中,而在主程序中适当加入一些有关中断的冗余指令(如SETB  ET0等),以免因有关中断的特殊功能寄存器数据受到干扰时导致中断功能失效;对于有二级中断嵌套的用户系统,清零指令(CLR  P1.7)可以插在中断种数比较多的那一级中的任一个中断子程序中,插有喂狗指令的那一级中断系统将会受到看门狗的保护,而另一级中断系统如果失效,看门狗无动于衷的,这时只能尽量减少这种中断子程序的执行时间以减少受到干扰的可能性。如果二级中断嵌套系统者受到看门狗的保护,就必需设计一个非常复杂的看门狗电路,其喂狗指令要由三部分来保证各个部分都能正常工作,需要说明的是,如果主程序运行一次的时间(包括可能被中断的时间)超过1.6秒,则要适当再插入一条SETB

  

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 手机登录

x
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-20 13:15 | 显示全部楼层 |返回版面
5)调试流程;
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-20 13:15 | 显示全部楼层 |返回版面
本帖最后由 TCsbx 于 2017-11-27 20:48 编辑

6)作品展示、制作心得和总结   


作品展示:
                                          


本次设计的温度控制系统,只是单片机广泛应用于各行各业中的一例,通过本次设计,使我进一步熟悉了一个系统的设计过程,为自身打下了坚实的基础。
MCS-51单片机,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,即使是非电子计算机专业人员,通过学习一些专业基础知识以后也能依靠自己的技术力量,来开发所希望的单片机应用系统。在抗干扰技术中,为了提高抗干扰技术中我们应尽量做到以下几点:
1. 切断干扰传播路径的常用措施如下:充分考虑电源对单片机的影响,如果单片机的I/O口用来控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π形滤波电路)。 控制电机等噪声器件,在I/O口与噪声源之间应加隔离(增加π形滤波 电路),电路板合理分区,如强、弱信号,数字、模拟信号等。
2.抑制干扰源:抑制干扰源就是尽可能的减小干扰源的du/dt,di/dt。这是抗干扰设计中最优先考虑和最重要的原则,常常会起到事半功倍的效果。 减小干扰源的du/dt主要是通过在干扰源两端并联电容来实现。减小干扰源的di/dt则是在干扰源回路串联电感或电阻以及增加续流二极管来实现
3. 提高敏感器件的抗干扰性能:提高敏感器件的抗干扰性能是指从敏感器件这边考虑尽量减少对干扰噪声 的拾取,以及从不正常状态尽快恢复的方法,例如:布线时尽量减少回路环的面积,以降低感应噪声。或布线时,电源线和地线要尽量粗。除减小压降外,更重要的是降低耦合噪声等。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 手机登录

x
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-20 13:15 | 显示全部楼层 |返回版面
7)视频展示(能录制一段展示视频的有加分哦~)
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-20 13:39 | 显示全部楼层 |返回版面
系统设计的原理图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册 手机登录

x

352

主题

2224

帖子

6745

积分

管理员

发表于 2017-11-28 08:41 | 显示全部楼层 |返回版面
好详细,好帖子不要让它沉了,帮你顶上!!
     

26

主题

892

帖子

2834

积分

版主

发表于 2017-11-28 09:36 | 显示全部楼层 |返回版面
好详细,楼主硬件基础非常好,感谢你的分享
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-28 09:42 | 显示全部楼层 |返回版面
21ic小喇叭 发表于 2017-11-28 08:41
好详细,好帖子不要让它沉了,帮你顶上!!

谢谢小喇叭
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-11-28 09:43 | 显示全部楼层 |返回版面
caijie001 发表于 2017-11-28 09:36
好详细,楼主硬件基础非常好,感谢你的分享

谢谢杰杰
     

26

主题

892

帖子

2834

积分

版主

发表于 2017-11-28 09:44 | 显示全部楼层 |返回版面
能把各个部分录个视频展示出来更好,
     

4

主题

41

帖子

173

积分

中级技术员

发表于 2017-11-28 21:29 | 显示全部楼层 |返回版面
厉害~~~
      

1

主题

538

帖子

1624

积分

助理工程师

发表于 2017-11-29 14:32 | 显示全部楼层 |返回版面
缺少数据展示
     

0

主题

3

帖子

19

积分

实习生

发表于 2017-11-30 20:49 | 显示全部楼层 |返回版面
楼主厉害了
     

26

主题

892

帖子

2834

积分

版主

发表于 2017-12-5 12:26 | 显示全部楼层 |返回版面
快结束了哦,请上传些演示视频吧(可以放在顶楼):
应该包括但不仅限于
开机 ——  一系列操作(设置温度等等)——通过显示 来展示温度的变化(数据、温度曲线)及最终的温度稳定(数据/温度曲线) ——  保持一小段时间  —— 关机
     

39

主题

308

帖子

1087

积分

助理工程师

 楼主| 发表于 2017-12-5 15:10 | 显示全部楼层 |返回版面
caijie001 发表于 2017-12-5 12:26
快结束了哦,请上传些演示视频吧(可以放在顶楼):
应该包括但不仅限于
开机 ——  一系列操作(设置温度 ...

好的,抽空去录个
     

26

主题

892

帖子

2834

积分

版主

发表于 2017-12-5 15:11 | 显示全部楼层 |返回版面
TCsbx 发表于 2017-12-5 15:10
好的,抽空去录个

哈哈,谢谢大佬的支持
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

关闭

热门推荐上一条 /4 下一条

分享 快速回复 返回顶部 返回列表