目 录
一、设计要求 ................................................................................................................................. 1 二、设计的作用目的 ..................................................................................................................... 1 三、设计方案 ................................................................................................................................. 1
3.1方案一:基于51单片机的控制 ...................................................................................... 2 3.2方案二:基于ARM和CPLD的控制............................................................................. 2 3.3方案三:基于ARM7的控制 ........................................................................................... 3 四、系统硬件设计 ......................................................................................................................... 4
4.1电源模块的设计 ................................................................................................................ 4 5.2串行通信模块的设计 ........................................................................................................ 6 5.3 LED显示模块的设计 ....................................................................................................... 7 5.4 ARM显示模块的设计 ...................................................................................................... 7 6、系统软件的设计 ..................................................................................................................... 10
6.1软件的控制流程分析 ...................................................................................................... 10 6.1.1通信数据帧格式 ........................................................................................................... 10
6.1.2 通信实例分析 ....................................................................................................... 12 6.2 ARM主程序的设计 ........................................................................................................ 13
6.2.1 主程序的简要分析 ............................................................................................... 13 6.2.2 主程序流程图 ....................................................................................................... 13 6.3 中断子程序的设计 ......................................................................................................... 14
6.3.1 中断子程序的简要分析 ....................................................................................... 14 6.3.2 中断子程序流程 ................................................................................................. 15
7、系统的调试与仿真 ................................................................................................................. 16 8、心得体会 ................................................................................................................................. 17 9、参考文献 ................................................................................................................................. 18 10、致谢 ....................................................................................................................................... 18
1
ARM系统在LED显示屏中的应用
ARM系统在LED显示屏中的应用
随着科技的快速发展,LED 显示屏的技术和产业都取得了长足的发展,作为重要的现代信息发布媒体之一,LED显示屏在证券交易、金融、交通、体育、广告等领域被广泛地应用。它可以实时显示或循环播放文字、图形和图像信息,具有显示方式丰富、观赏性强、显示内容修改方便、亮度高、显示稳定且寿命长等多种优点,被广泛应用于商业广告、体育比赛、交通信息报导等诸多领域.LED显示屏的核心技术主要集中在控制器中。目前,大部分异步显示屏采用的是8位或16位的微控制器,由于受到微处理器的处理速度、体系架构、寻址范围、外围接口资源等诸多限制,已难以在要求显示较多像素、显示内容帧频较高、动态显示效果复杂的情况下得到良好的动态视觉效果。
针对以上情况,本课程设计开发了一种全新的,由32位高性能ARM微处理器组成的LED显示屏控制系统,就控制平台、硬件结构和软件开发实现给出了驱动部分和控制部分的详细分析与设计。
一、设计要求
本课程设计开发了一种全新的,由32位高性能ARM微处理器组成的LED显示屏控制系统,就控制平台、硬件结构和软件开发实现给出了驱动部分和控制部分的详细分析与设计。
二、设计的作用目的
在现代信息化社会的高速发展过程中,随着宽带网络的发展,数字化的多媒体内容将在信息世界中占据主流,新型的显示设备将代替传统电视机成为人们享受信息和多媒体内容的中心。专家预言,半导体照明产业将是21世纪最大、最活跃的高科技产业之一,在经济竞争及国家安全方面具有极其重要的意义。该论文采用基于嵌入式实时操作系统的ARM微处理器技术,设计了一种全彩LED显示屏控制系统。
三、设计方案
对于这个课题的设计方案有很多,基于这次设计要求共提出三个方案,对它们的优缺
1
ARM系统在LED显示屏中的应用
点进行比较,从中选出最优方案。
3.1方案一:基于51单片机的控制
一般来说,对于小屏幕的LED显示屏的控制都是采用51系列单片机作为主控芯片。通常的解决方案是这样:
总 线 驱动器 行驱动电路 单片机 LED点阵 列驱动电路 图1 单片机对LED的控制显示示意图
该解决方案的控制流程如下:
首先由单片机发出要在LED显示屏上显示的文字数据信息以及相应的控制信息到总线驱动器。总线驱动器本身并不对上位机发过来的信号进行任何的改变,只是将这些信号传递到下一级,并对其提供足够的驱动电流。
然后总线驱动器对传过来的驱动信号分两路,一路传到行驱动电路,一路传到列驱动电路,在常见的显示驱动电路设计中,列控制一般采用串入并带锁存的移位寄存器如74HC595 ,将数据打入锁存器中,使寄存器各引脚呈现与锁存器相同的状态来选中需要点亮的列。行控制一般采用译码器电路如4/16 译码器74HC154 ,控制信号经译码后选中需要点亮的行。
当行、列驱动信号分别加载到LED点阵上时,就可将要显示的信息在LED屏上显示出来。
该方案的优点主要有:该方案结构简单,使用的器件常见且便宜,设计成本低廉;编程简单,调试方便。
缺点主要有:硬件结构设计需要较多的控制信号线,占用单片机较多端口,从而造成端口资源的浪费;且该方案一般只能用于简单的文字和数字的显示,不能用于视频的显示。
3.2方案二:基于ARM和CPLD的控制
对与大屏幕的显示,由于大型LED屏幕的点阵规模极其庞大,所以采用低端单片机控制,用移位寄存器来实现数据的串行转并行的方法远不能满足需求。目前一般采用的方案
2
ARM系统在LED显示屏中的应用
是基于ARM的控制和基于CPLD的驱动的模式。基于这种方式的控制系统能很好的满足设计要求,如图2所示。
上位机 PC ARM 主控芯片 图2 系统原理图
扫描驱动 电路 LED 显示屏 串口通信
该方案的基本原理如下:
该系统主要由三部分组成:PC机,显示控制电路和LED显示屏构成,PC机在控制中作为上位机,用于对下位机的控制和管理。系统的重点是显示控制电路,ARM和CPLD是显示控制电路的核心部分,共同完成数据的转换,控制信号的发送产生以及对LED显示屏的动态扫描控制,其中数据转换信号控制部分采用ARM实现,而LED显示屏的扫描驱动电路采用CPLD来完成。上位机与下位机之间的通信采用标准的RS232或RS485计算机数据串行通讯方式。LED显示屏在显示控制电路的作用下,主要完成以下功能:按照上位机设定的显示效果显示图像和文字。
该方案的优点有:
用可编程逻辑器件来完成电路功能,不仅能够满足LED大屏幕系统高速图像数据传输对速度的要求,改善了电路性能,而且增加了电路设计的灵活性,设计中可以根据实际应用的需求灵活修改相应硬件描述语言程序,而不需要修改电路硬件设计,缩短了设计周期,降低了成本。同时,采用基于ARM核的32位微处理器,解决了系统的运行速度、寻址能力和功耗等问题,可以支持更大可视区域的稳定显示,可以存储更多的显示内容。该系统不仅能显示文字信息,而且也能完美支持视频的显示。
同时缺点如下:
系统设计比较复杂,系统的成本高昂;编程规模巨大,开发难度大,不利于大规模使用。
3.3方案三:基于ARM7的控制
基于以上两种解决方案的优缺点,本课题采用ARM7作为系统的控制核心,为了节约有限的CPU端口资源,且因为LED屏的文字和数字的显示数据传输要求并不是很高,故ARM与LED屏之间的通信采用串口传输,所使用的协议是RS232串口通信协议。
3
ARM系统在LED显示屏中的应用
此方案的优点是:
这种设计方案大大节省了CPU的端口资源,有效简化了显示屏的电路结构,提高了整个显示系统的可靠性。系统的结构简单,模块与模块之间的信号线数量较少,使得控制更加方便、灵活,模块简单,能有效减少系统的开发周期与开发成本,完全的模块化设计也能增强系统的可扩充性和可维护性。
四、系统硬件设计
硬件部分的设计是比较关键的,本课程设计的硬件部分设计包括电源模块的设计、串行通信模块的设计、LED显示模块的设计、ARM显示模块的设计等四部分。
4.1电源模块的设计
电源设计实首先要能提供+5V电源。但是ARM模块需要+3.3V的直流电源,LED显示屏除了需要+3.3V逻辑电压外,还需+12伏的直流驱动电压。
系统采用5伏电压管理芯片LT1117+5,220交流输入,5伏直流输出。为了提供+3.3V的直流电压,采用的是+3.3伏电压管理芯片LT1117,+5伏供电,+3.3伏输出。
图3是由交流220伏电压转换成5伏直流电压输出的简要原理框图:
图3 交流220.伏电压转5伏直流电压电路图
从上面的原理图不难理解,该原理图由两部分构成,前级电路的作用主要是整流,后一级电路的作用是稳压。
图4是驱动LED点阵的电源设计原理图:
4
ARM系统在LED显示屏中的应用
图4 3.3伏电压输出电路图
上图的作用就是将+5伏直流电压输入转换为+3.3伏直流输出,以便给ARM和LED控制板提供合适的电源供应。 图5是12伏电压输出电路图:
图5 12伏电压输出电路图
此芯片的工作原理是:输入电压V IN可在0. 8~| V OU T| 之间选取,芯
片的工作电压为2. 7~5. 5V。对一般的单片机控制电路,供电主要电源电压为5V ,因此在输出电压| V OU T| > 5V的情况下,可将VCC与V IN 同时接到5V 电源上, 如图4.3 中虚线所示。二极管采用1N5819 或MBR0540L 肖特基二极管,电感采用典型值47μH ,应注意增大电感将减小流过的峰值电流,从而降低输出电流;而减小电感,又将增大流过的峰值电流导致内部电流比较器延时。
输出电压V OU T由R1 , R2 确定:
5
ARM系统在LED显示屏中的应用
RR(V12outVREF)1 (1)
式(1) 中VREF= 1. 25V ,可见输出电压Vout只与R1 、R2有关,只需选定R1 、R2的阻值,即可确定输最后从该电路输出的是稳定的12伏直流电压。
5.2串行通信模块的设计
串口模块是本设计的一个重点模块,它负责ARM模块与LED模块之间的信息通信。硬件电路是否设计得当关系到二者通信质量的好坏。本串口通信协议采用RS232串口协议。在本模块中采用的RS232接口芯片是MAXIM公司的MAX232。
该芯片的主要特点是: 1、单5V电源工作
2、 LinBiCMOSTM工艺技术 3、 两个驱动器及两个接收器 4、 ±30V输入电平
5、低电源电流:典型值是8mA
6、符合甚至优于ANSI标准 EIA/TIA-232-E及ITU推荐标准V.28 7、ESD保护大于MIL-STD-883(方法3015)标准的2000V MAX232功能分析:
MAX23是MAXIM公司生产的RS232收发器,它支持EIA/TIA-232和ITU-TV.28/V.24通信协议,适用于便携式设备使用(如笔记本电脑及PDA)。MAX232内有一个高效电荷泵,可以完成两路TTL/RS-232电平的转换。 图6是RS232通信串行通讯数据帧格式:
图6 RS232通信串行通讯数据帧格式
RS232 接口电路的主要功能是:将来自微处理器的发送信号TxD 通过“发送器”转换成通讯网络中的电压信号,也可以将通讯网络中的电压信号通过“接收器”转换成被微处理器接收的RxD 信号。任一时刻,RS-232收发器只能够工作在“接收”或“发送”两种模式之
6
ARM系统在LED显示屏中的应用
一,因此,必须为RS-232 接口电路增加一个收/发逻辑控制电路。 图7是串口模块部分的主要电路图:
图7 串口模块部分的主要电路图
5.3 LED显示模块的设计
LED模块系统中独立性比较强的一个模块,LED点阵的驱动显示主要是靠LED模块中自带的LED控制器来完成,它只与与ARM的UART口进行通信,当它收到上位机的命令后,直接调用存储器内的相关程序驱动LED点阵。它只和外部的串口模块有连接。
图8为LED模块与串口的连接示意图:
12V MAX232 RxD TxD 接口 电路 VCC RxD LED 模块 TxD 图8 LED模块与串口连接示意图
5.4 ARM显示模块的设计
由于飞利浦公司的LPC2294集成了非常丰富的外围接口涉及ARM处理器各引脚的置。
图9是ARM复位电路:
7
ARM系统在LED显示屏中的应用
图9 ARM复位电路
图10是系统的时钟电路设计:
图10 系统的时钟电路设计
在本系统中给ARM设计的晶振频率是11.0592M。
下面介绍一下ARM各功能管脚的作用,这里只对本文中用到的管脚和几个常用的管脚作介绍。
从设计框图来看,ARM控制块主要的控制功能有:Ⅰ,对串行通信端口的控制。Ⅱ,对存储器读写操作。Ⅲ,对显示模块的控制。以下是ARM芯片在本设计的主要电路连接图。
8
ARM系统在LED显示屏中的应用
表1 LPC2294部分管脚描述
管脚名称 P0.0 P0.1 P0.8 P0.9 P2口 P3口 XTAL1 XTAL2 管脚号 42 49 75 76 135 142 141 3,9,26,38, 54,67,79, 93,103,107, 111,128 139 138 37,110 143 2,31,39,51, 57,77,94, 104,112,119 14 功能 TxD0-UART0的发送器输出,PWM1-脉宽调制器输出1 RxD0-UART0的接收器输入,PWM3-脉宽调制器输出3,EINT0-外部中断0输入 TxD1-UART1的发送器输出,PWM4-脉宽调制器输出4 RxD1-UART1的接收器输入,PWM6-脉宽调制器输出6,EINT3-外部中断3输入 32位数据总线 地址总线以及片选型号,读写控制等 外部复位输入。该管脚的低电平将器件复位,并使I/O口和外围功能恢复默认状态,处理器从地址0开始执行。带迟滞的TTL电平,管脚可承受5V电压。 振荡器电路和内部时钟发生器的输入 振荡放大器的输出. VSS 地:0V参考点。 VSSA VSSA_PLL V18 V18A 模拟地:0V参考点。标称电压与VSS相同,但应当互相隔离以减少噪声和故障。 PLL模拟地:0V参考点。标称电压与VSS相同,但应当互相隔离以减少噪声和故障。 1.8V内核电源:内部电路的电源。 模拟1.8V内核电源:内部电路的电源。标称电压与V18相同,但应当互相隔离以减少噪声和故障。 V3 3.3V端口电源:I/O口的电源。 V3A 模拟3.3V端口电源:标称电压与V3相同,但应当互相隔离以减少噪声和故障。 图11是LPC2294芯片主要电路连接图: 9
ARM系统在LED显示屏中的应用
存储器
P2,0:31 P3,0:23
RS232接口
MAX232
LPC2294
MAX232 RS232接口
图11 LPC2294芯片主要电路连接图
6、系统软件的设计
硬件设计的骨架,软件是设计的灵魂,软件和硬件一样重要,此课程设计的软件包括软件的控制流程分析、ARM主程序的设计、中断子程序的设计
6.1软件的控制流程分析
软件的控制流程分析包括通信数据帧格式、通信实例分析。
6.1.1通信数据帧格式
通讯开始上下位机都处于通讯就绪状态。首先ARM发送帧头,帧头携带通讯模式﹑屏号等信息,LS-L接收到帧头后,根据条件判断是否接收数据,若不符合,立即返回主程序;若符合,则接收数据,并且返回信息。
握手通讯过程说明如下:
1.上位机发送握手帧头信息(2个字节屏号); 2.下位机接收帧头后,返回屏号;
3.上位机接收到返回的屏号后,开始发送正式数据,发送完毕后等待返回成功信息; 4.下位机接收数据成功后,返回屏号,表示成功。 通用格式如下:
屏号 操作码 数据长度 操作数 帧尾 [说明]:
屏号: LED屏号(帧头) (1 byte)
10
ARM系统在LED显示屏中的应用
操作码: 见操作码编号表 (1 byte) 数据长度: 发送的操作数据长度(当下载数据时页数Pages) (1 bytes) 操作数据: ARM下发的数据 (n bytes) 帧尾: 0XFF (1 byte) 操作码编号表:
操作码 意义
0XD6 下载数据(16点阵字库方式) 0XD7 下载字幕(16点阵字库方式) 加载数据的具体格式: 1. 0XD6: 下载数据
数据段名称 LED_Number Operate_Code Area_Mode Saved Area_Beginrow Area_Beginlen Area_Endrow Area_Endlen Operate_Bytes Display_ Mode Display_Data Frame_End 意义 1 byte 1 byte 1 byte 1 byte HEX HEX HEX 帧头(屏号) 操作码(0XD6) 区域类型(0XC0) HEX 保留字节 2 bytes HEX 区域起始横向坐标 2 bytes HEX 区域起始纵向坐标 2 bytes HEX 区域结束横向坐标 2 bytes HEX 区域结束纵向坐标 HEX 数据长度 x bytes HEX显示方式 x bytes HEX显示数据 1 byte HEX 帧尾(0xAA) 表2 下载数据格式
说明:
区域类型(1 Byte):主区为0x04 显示方式(4 Bytes): 进入方式DisplayStyle: 0:表示随机状态
11
ARM系统在LED显示屏中的应用
1-39:表示相应的进入方式 退出方式 ExitDisplay 保留,默认为0。 运行速度DisplayTime: 0-15 分16个等级
级别越大处理时间越长,运行速度越慢;当为0时,速度最快。 显示时间DisplaySpeed:
0-255 分256个等级
级别越大显示时间越长,一个级别大约为1秒;当为0时,显示时间为0。 2. 0XD7: 下载游走字幕命令
该命令的命令格式与上一个是相同的。 LED_Number
1 byte HEX
帧头(屏号) 操作码(0XD7) 区域类型(0XC0)
Operate_Code 1 byte HEX Area_Mode
1 byte HEX
Saved 1 byte HEX 保留字节
Area_Beginrow 2 bytes HEX 区域起始横向坐标 Area_Beginlen 2 bytes HEX 区域起始纵向坐标 Area_Endrow 2 bytes HEX 区域起始横向坐标 Area_Endlen 2 bytes HEX 区域起始纵向坐标 Operate_Bytes
1 byte
HEX
数据长度(最大页数Pages)
Display_ Mode 4 bytes HEX 显示方式 Display_Data x bytes Frame_End 说明:
区域类型(1 Byte):字幕为0x08 其它与主区相同。
HEX
显示数据
1 byte HEX 帧尾(0xAA)
6.1.2 通信实例分析
发送举例说明:
例如对第1号发送主区数据,对应屏上1号位置显示数据为:
1234 5678 12
ARM系统在LED显示屏中的应用
通讯格式如下:
帧头 操作码 0x01 0xD6 区域类型 区域坐标 0x04 起始横向 数据长度 显示方式 显示数据 Pages (最大数据页) 4 字节 0x31,0x01,0x32,0x01, 0x33,0x01,0x34,0x01, 0x35,0x02,0x36,0x02, 0x37,0x02,0x38,0x02, 表3 通讯格式 帧尾 0xAA 保留字节 起始纵向 结束横向 结束纵向 6.2 ARM主程序的设计
ARM主程序的设计包括主程序的简要分析、主程序流程图。
6.2.1 主程序的简要分析
在ARM没有收到报站信号(即中断信号)之前,ARM主要执行主程序,主程序的作用就是完成对串口和中断口的初始化设置,随后等待中断信号的到来,若有中断,则转而执行中断子程序。主程序的代码规模不大,以下为主程序的主要程序代码: void main()
{ UARTMODE uart0_set;
uart0_set.datab = 8; // 8位数据位 uart0_set.stopb = 1; // 1位停止位 uart0_set.parity = 0; // 无奇偶校验 UART0_Ini(115200, uart0_set); // 初始化串口模式 U0FCR = 0x01; // 使能FIFO Inin-IRQ( ) ;
while(1) { delay(uint32 1000); } //等待中断
6.2.2 主程序流程图
程序流程图如下图12所示:
13
ARM系统在LED显示屏中的应用
开始 串口初始化 中断初始化 无 有无中断 有 执行中断子程序 返 回 图12 主程序流程图
6.3 中断子程序的设计
中断子程序的设计包括中断子程序的简要分析、中断子程序流程的分析。
6.3.1 中断子程序的简要分析
本系统采用的LED模块具有极其完善的底层驱动程序,所以在本设计中就无需设计LED底层驱动程序,只需严格按照既有的数据帧格式向LED模块传送各种参数即可,LED控制器将自行调用各种底层驱动程序。中断子程序的主要功能函数就是将存储器中的数据发送到串口,以及从串口读取下位机的返回信号:实现该功能的三个子程序如下:
子程序SendByte(uint8 data)的功能是将一个字节的数据发送到串口,然后串口自动将数据发送到LED模块。
void SendByte(uint8 data)
{ U0THR = data; // 发送数据 delay(uint32 1000) //延时等待
while( (U0LSR&0x20)==0 ); //判断数据是否发送完毕 }
子程序ISendBuf()的功能:将相关区域的大块数据发送到串口。入口参数:buf是待发
14
ARM系统在LED显示屏中的应用
送数据区的首地址;no 是发送数据的字节个数。
void ISendBuf(uint8 const *buf, uint8 no) { uint8 i;
for(i=0; i Uint8 reeceiveByte(uint8 fiame) {uint8 c; C=U0RBR;IF(C==flame) RETURN(1); Else return(0); } 6.3.2 中断子程序流程 下图为中断子程序的流程图。 15 ARM系统在LED显示屏中的应用 开始 重发 无 发送帧头信息 有无返回帧头 有 发送操作码 发送数据长度 发送区域坐标 发送显示方式 发送显示数据 发送帧尾 无 有无返回发送成功信号 有 返回主程序 图13 中断子程序程序流程图 此流程图是中断子程序的控制流程。本系统的所有功能都可以通过该流程实现。例如字体显示的大小,亮度,响应度以及文字的数量,滚动显示的模式等等都可以通过设置发送数据帧里面的相关参数就可以实现。 7、系统的调试与仿真 ADS的CodeWarrior IDE是基于Metrowerks CodeWarrior IDE 4.2版本的。它经过适当的裁剪以支持ADS工具链。 针对ARM的配置面板为用户提供了在CodeWarrior IDE集成环境下配置各种ARM开发工具的能力,这样用户可以不用在命令控制台下就能够使用各种命令。 以ARM为目标平台的工程创建向导,可以使用户以此为基础,快速创建ARM和 16 ARM系统在LED显示屏中的应用 Thumb工程。 由于ARM调试器(AXD)没有集成在CodeWarrior IDE中,这就意味着,用户不能在CodeWarrior IDE中进行断点调试和查看变量。所以在调试的时候将用到AXD软件,在用这个软件调试时要用到ARM仿真器,在调试时可以很方便的控制程序的运行和查看变量。它提供对ARM处理器的指令集的仿真,为ARM和Thumb提供精确的模拟。用户可以在硬件尚未做好的情况下,开发程序代码。 图14是本实验系统ARM程序的工程文件截图 图14 本实验系统ARM程序的工程文件截图 8、心得体会 通过几天的ARM设计实践,我对ARM的工作原理和使用方法也有了更加深刻的理解,知道把书本上的知识运用到实际生活中解决具体问题,在没有做实践以前,我们对嵌入式的了解仅仅是书本上的一些知识,当我们想把程序编出来时,一些具体的问题就出现了,不是结果运行不了就是运行出的结果更要求的不符,通过解决一个个具体的问题,我对ARM编程有更加全面的了解,看到了书本知识与理论的巨大差别,马克思曾说“实践是检验真理的唯一标准”这是亘古不变的真理,所以以后再学习的过程中,一定要注意实践与理论相结合。 17 ARM系统在LED显示屏中的应用 9、参考文献 [1] 徐建华. LED技术应用与前景展望[J]. 科技情报开发与经济,2003, 13(7):287-288. [2] 李熹霖. 备受关注的LED显示新技术[J]. 激光与红外, 2006.12 南京电子技术研究所 [3] 诸昌铃. LED显示屏系统原理及工程技术[M]. 北京:电子科技大学出版社, 2005,2. [4] 王晓迪,张景秀. SOPC系统设计与实践[M]. 北京航空航天大学出版社,2008.8 [5] 陈苗海, 中国LED及其显示屏产业市场发展动向[J]. 世界电子元器件,2004,2. [6] 周志敏,周纪海,纪爱华, LED驱动电路设计与应用[M],人民邮电出版社,2006,10. [7] 周小平,何丰,曾平平等. LED显示屏及其扫描电路的硬件及软件实现[J]. 印刷电路信息, 2005,42 (1):36-38. 10、致谢 两个星期的课程实习一晃眼就过去啦,通过这两周的实习,我收获的很多知识,看到了书本知识与实践的差距,马克思曾说过“实验是检验真理的唯一标准”,只有通过实验,实习才能把书本上的知识运用到实际生活中解决具体问题,任课老师张老师在课程设计方面具有丰富的经验,对我的设计工作给予了很多的指导和帮助,使我受益良多,同学的热心帮助也让我感受到了友情的珍贵,这次实习最终顺利完成,这个过程虽然有些辛苦,但结果是令人欣慰的,谨此向老师表示衷心的感谢和崇高的敬意。 最后,再次衷心地感谢张老师,祝老师身体健康、工作顺利! 18 因篇幅问题不能全部显示,请点此查看更多更全内容