
一、概述
1,多功能单片机开发板,板载资源非常丰富,仅是包括的功能(芯片)有:
步进电机驱动芯片ULN2003、
八路并行AD转换芯片ADC0804、
八路并行DA转换芯片DAC0832、
光电耦合(转换)芯片MOC3063、
八路锁存器芯片74HC573、
实时时钟芯片DS1302及备用电池、
IIC总线芯片AT24C02、
串行下载芯片MAX232CPE,
双向可控硅BTA06-600B、
4*4矩阵键盘、
4位按键、
DC5V SONGLE继电器、
5V蜂鸣器、
八位八段共阴数码管
5V稳压集成块78M05
八路发光二极管显示
另还有功能接口(标准配置没有芯片但留有接口,可直接连接使用):
单总线温度传感器DS18B2接口、
红外线遥控接收头SM003接口8、
蓝屏超亮字符型液晶1602接口、
蓝屏超亮点阵图形带中文字库液晶128接口、
2(4)相五线制小功率步进电机接口、
外接交流(7V-15V)电源接口
USB直接取电接口
镀金MCU晶振座
40DIP锁紧座
外接电源和5V稳压电源的外接扩展接口及MCU所有IO口扩展
2,可以完成的单片机实验:
1、LED显示实验(点亮某一个指示灯、流水灯),
2、八位八段数码管显示实验(你可以任意显示段字符和数字以及开发板所有功能芯片的显示),
3、液晶显示(1602液晶显示、128点阵中文图形液晶显示、可以显示出开发板所有功能芯片的操作),
4、继电器的操作
5、蜂鸣器的操作(你可以编写程序让它发出美妙动听的歌声)
6、可控硅的操作(胆大的朋友就利用这一独有的功能吧,你见过实验室温度实验箱没有,它的驱动就是这样的;聪明的朋友就可以自己写个程序把把加热温度温度恒定在(X±0.5)度的范围内了
7、步进电机的操作(这个是迈向自动化控制的第一步,现在的数控机床、机器人呀什么的实现精度运动控制大部分都是靠它来实现的)
8、数模转换操作(数字量在这里是怎样变换成模拟量的,这里采用的转换芯片是8路并行传输模式,响应时间仅2us)
9、模数转换操作(一个小小的程序,你旋动电位器可以看到阻值的变化在数码管上变成了一个个的非常直观数字,这里采用的转换芯片是8路并行传输模式,响应时间仅2us)
10、矩阵键盘的操作(这个是你自己定义的编码键盘,4*4=16个按键却只占有单片机的八个IO口,以此类推5*5=25个按键只要10个IO口,这样的控制是怎样实现的呢)
11、按键的操作(在这个里面不但可以进行常规的按键操作,您也进行单片机的外部中断和计数器的操作)
12、实时时钟的操作(自己动手编写个万年历吧,让时间在数码管或液晶上显示出来)
13、IIC总线芯片AT24C02的操作(常规的记忆需要电池,但是AT24C02却可以断电记忆数据100年不丢失)
14、红外遥控操作(可以像遥控电视机样遥控开发板,当然您还需要配备一个万能遥控板和接收头才能实现这个功能)
15、单总线温度传感器DS18B20(测试下现在的室温吧,测试精度在±0.1度;也可配合本开发板的可控硅和光电耦合制作高精度的温度实验箱了,想想这与实验室的实验箱有什么差距呢)
16、串口通信(想用电脑控制开发板或者开发板控制电脑吗,我们提供一个串口调试精灵和一个上位机软件(且提供全部的VB源代码),剩下的就靠你自己编写程序去实现了)
17、晶振采用镀金座接口(单片机内部定时时选用6M或12M晶振,下载或串口通信采用11.0592M,你想怎么换就怎么换)
18、开发板的所有IO口及外接电源及5V稳压电源的扩展接口(想自己再扩展电路吧,想利用开发板进行硬件的第二次扩展吗,这些都是可以很轻松实现)
3,产品装箱清单:
1、测试好的单片机开发板一块
2、晶振3个(12M、11.0592、6M)
3、实时时钟DS1302备用纽扣电池(3V)一块
4、跳线帽10个
5、AC220V接口帽一个
6、9针串口线一条
7、USB取电线一条
4,产品可选配件(可直接连接使用):
1、1602字符型蓝屏超亮液晶
2、128点阵图形蓝屏超亮带中文字库液晶
3、2(4)相小功率步进电机
4、SSTE516仿真芯片
5、单总线温度传感器DS18B20
6、红外遥控接收头SM0038
7、万能遥控板(可直接遥控市场上绝大部分型号电视机)
8、USB-串口下载线(如果您是使用的笔记本或者是不含有串口的电脑)
这是个完整的单片机开发系统,这些配置也能完成大部分单片机实验,只要您能够仔细的认真的掌握好以上知识,相信您已经进入到单片机的世界,并开始向更高方向发展!
二、下载操作:
1,现在你已经拥有这样一块多功能的单片机开发板了,第一步我们就测试开发板的性能,让你第一次的用眼睛加上你的操作去控制它
A、连接好串口下载线(附图2-1)和USB取电线(附图2-2),并插好晶振(11.0592M)和安装好单片机(附图2-3),
附图(2-1) 附图(2-2)
B、如果您使用的是笔记本或者是没有串口的电脑,则需安装USB-串口驱动并使用转换线,转换线图片见附图2-4,及操作步凑见附图2-5,及验证安装成功步凑见附图2-6,(如果是直接采用的9针串口线下载,则跳过这一步)
1)USB-串口线如图所示
附图(2-4)
2)请先不要插USB-串口转换线,后点击下载附送的USB-串口驱动步凑:
附图(2-5)
3)现在请将USB-串口线插在电脑的USB接口上,电脑会自动搜索安装,后请验证安装是否成功。验证安装成功步凑:
附图(2-6)
(如果能看到你的硬件管理器中有个虚拟的通讯端口(则表示USB-串口下载安装成功),那么请记住是COM几,因为一会在下载软件里面要用到)
C、安装下载软件:安装我们提供的单片机烧写软件 STC-ISP V391.EXE(见附图2-7),只需将它全部复制到您的硬盘中直接打开就可(见附图2-7),
附图(2-7)
D、下载测试程序:将我们提供的单片机开发板程序下载到开发板上(举列下载LED显示流水灯程序)见附图2-8
1)在附图(2-7)中的界面中选择
(电脑无串口请选择此项,否则跳过)
(选择附图2-6中的COM端口号)
(打开流水灯中的HEX文件)
等待
(按下单片机开发板电源开关,等待数秒就成功下载了)
三、板载资源详细介绍(以具体芯片或电路为准,介绍芯片的功能及如何操作,及显示出源程序并附带显示效果):
1)发光二极管(电路及其显示的基本原理)
A、电路原理图见附图(3-1)
附图(3-1)
上图中的八个LED分别通过一个电阻限流接在单片机的P0口上,如图所示八个LED的正极都同时接在PNP三极管的集电极,三极管的基极接在了单片机的P1^4口,先不管为什么,我们可以这样认为:
A、当P1^4是低电平、P0口是低电平,点亮发光二极管
B、当P1^4是低电平、P0口是高电平,熄灭发光二极管
C、当P1^4是高电平、P0口是低电平,熄灭发光二极管
所以要点亮LED的条件是P1^4和P0口同时为低,但如果是只要点亮P0^0上的LED呢?就应该是先使P1^4是低电平,再使P0^0为低,其它为高就可以了
程序如下:
#include"ATx52.h" //代入头文件
sbit SJ=P1^4; //LED的使能端
void main(void)
{
SJ=0; //使P1^4为低电平
P0=0xfe; //使P0^0口为低电平
while(1); //程序执行到这里不动作
}
这时我们能看到在不但开发板上的一个LED被点亮了
有了第一个LED被点亮的列子,那么我们就可以用同样的方法点亮其它LED了,当然也可以让LED一个一个的轮流被点亮以达到一种流水灯的效果。
实列程序的效果:上面附图是实列测试程序中的流水灯显示效果,左边一排为8位接在P0口的LED,第2个被点亮了,这就是流水灯跑到第2个的效果,右边的那个灯为电源指示灯,只要一开电源就会亮。
2)八位八段数码管显示原理及锁存器的操作
A、电路原理图见附图(3-2)
附图(3-2)
B、数码管资料见附图(3-3)
附图(3-3)
从图(3-3)可以看出这个一个四位的共阴数码管,上面的11,7…3是数码管的段选端,12…6是数码管的位选端,本开发板使用了2个这样的数码管,再结合图(3-2)可看出,数码管的位选和段选都接在了两片锁存器74HC573上,而573又接在了单片机的P0端
C、锁存器74HC573资料见附图(3-4),更为详细的芯片资料见其它
这个芯片采用的是八进位的D触发器,它可以驱动电容式或电阻式的负载。因此它特别适合应用于缓冲寄存器、IO端口、双向的总线控制器、和操作寄存器。
当寄存器的使能端(LE)为高电平时,Q输出端和D输入端一一对应;当LE为低电平时,输出端管脚Q输出的是寄存器中已被设定的值。当一个能开启缓冲功能的负逻辑管脚(OE)为0时,无论是在正常逻辑状态还是在高阻抗状态下,都能放置八位的输出数据。在高阻抗状态下。输出并没有负载或者进行控制总线。高阻态和改进的总线驱动可以在不拉起元件的情况下控制总线传输。OE端并不影响寄存器内部的操作。当输出端呈高阻状态时旧的数据可以被保存或者新的数据进行输入
从图(3-4)中可看出,2-9脚为输入端,12-19为输出端,1、11脚为控制端,
A,当1脚为高电平时,不论输入值,12-19输出为高阻态,
B、当1脚为低电平时,11脚为高电平,输入值的变化直接反映到输出值的变化
11脚为低电平,输出值的不受输入值的变化而变化,而是记录了上次的输入值(就锁存了数据)
根据锁存器所具有的这一特性,我们就可以编写程序控制数码管了
另外数码管的显示方式分为两种,一种是静态显示,一种是动态显示,在这里我们是以芯片573锁存器作为重点讲解
附图(3-4)
从附图(3-2)的原理图中我们可看出,两片573的输入端都是接在了MCU的P0口,也就是说数码管的位选端和段选端都是通过锁存器接在了P0端,但是我们要让数码管亮,就得分别去控制它的位选端和段选端,那么在这里要怎样分别控制呢?可以这样:
A、给控制位选的573的11脚高电平,让它的输入和输出直通
B、给P0口数据,让这个数据通过573去控制数码管的位
C、给控制位选的573的11脚低电平,锁存上次给的数据
D、给控制段选的573的11脚高电平,让它的输入和输出直通
E、给P0口数据,让这个数据通过573去控制数码管的段
F、给控制段选的573的11脚低电平,锁存上次给的数据
就按照这个思路我们来编写一个简单的让数码管显示的程序吧(显示效果见附图(3-5))
#include"ATx52.h" //代入头文件
#include"math.h"
#define uint unsigned int
#define uchar unsigned char
sbit DUAN=P2^0; //74HC573的LE端 U5 LED的段选端
sbit WEI=P2^1; //74HC573的LE端 U4 LED的位选端
uchar Temp[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴显示字库
void delay(uint z) //1ms延时
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
main()
{
uchar i;
WEI=1; //给573的位选高电平
P0=0; //给数码管位数据,让它们都为低电平
WEI=0; //锁住数码管的位数据(以上3句话锁存了位数据)
DUAN=1; //给573的段选高电平,让段一直保持直通状态
while(1) //因为数码管的位数据被锁存,我们现在再给P0口数据就是只改
{ //变段的数据了
for(i=0;i<10;i++) //显示0-9,,10个数字
{
delay(500); //延时
P0=Temp[i]; //给数码管段数据
delay(500);
}
}
}
附图(3-5)
以上程序就循环在数码管上显示了0-9 10-个数字。回顾下,普通的LED接法是让LED的位和段接在不同的MCU的IO口上(按照上图所示就要占用16个IO口),但现在我们使用了2片573将它们都接在了MCU的P0(8个IO口)上,节约了单片机的IO口资源,这在单片机IO口紧张的情况下是很有用的
4)液晶显示
由于液晶显示比较复杂,在这里我们不打算详细介绍它的工作原理,只对其接口电路进行简单的介绍
1)1602字符型液晶
A、1602实物图见附图(3.6)
附图(3.6)
B、电路原理图(1602和128)见附图(3-7)
附图(3-7)
C、1602引脚定义及时序见附图(3.8,3.9)
附图(3.8)
附图(3.9)
从附图(3.6,3.7)中我们可以看出1602和128的都是使用的八位并行数据,而它们的数据引脚都并接在了P0口,VCC为DC5V电源,VSS为地线,其中除了DB0-DB7为数据线外,另还有几个可操作引脚是RS,R/W,E,其操作方法请严格按照附图(3.8)的读写时序图。以上液晶的资料较为简单,详细的资料和测试程序另有收录,下面只列出可参照1602的如何写的程序
写命令子函数:
void write_cmd(uchar cmd) //带要写的命令,无返回值
{
uchar CMD;
CMD=cmd;
while(lcd_busy()); //判忙标志,这里也可以用一个普通的延时解决
rs=0; //参照时序图
rw=0;
cs=1;
nop(); //稍微延时
P0=CMD; //给P0口附值
cs=0;
}
写数据子函数:
void write_data(uchar data1) //带要写的数据,无返回值
{
uchar DATA;
DATA=data1;
while(lcd_busy());
rs=1; //参照时序图
rw=0;
cs=1;
nop();
P0=DATA;
cs=0;
}
1602液晶显示效果见附图(3.10)
附图(3.10)
从附图(3.10)中可看见中有个00显示不亮,这不是液晶本身的问题,而是程序处理延时时间的不准确所造成的。如果显示的是数码管,延时不好会造成闪烁的现象
2)128带中文字库点阵型液晶
A、128实物图见附图(3.11)
附图(3.11)
B、128引脚定义及时序见附图(3.12,3.13)
附图(3.12)
读时序
写时序
附图(3.13)
从原理附图(3.7)和128接口附图(3.12)中我们应注意一点,(3.12)中128的17脚是液晶的复位引脚,在(3.7)中我们把它直接接到了MCU的P2^7中.。这个问题大家在编程需注意。
我们在操作液晶的时候一般只是让它显示需要的内容,那就是写数据/命令,下面将列出128的写子函数,以做参考,其它测试程序另有收录。
写命令子函数:
void lcd_wcmd(uchar cmd) //写命令 RS=L,RW=L,E=高脉冲,D0-D7=指令码。
{
while(lcd_busy()); //判忙
LCD_RS = 0; //参照时序图
LCD_RW = 0;
LCD_EN = 0;
_nop_();
_nop_();
P0 = cmd;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}
写数据子函数
void lcd_wdat(uchar dat) //写数据 RS=H,RW=L,E=高脉冲,D0-D7=数据。
{
while(lcd_busy());
LCD_RS = 1;
LCD_RW = 0;
LCD_EN = 0;
P0 = dat;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}
以上只是列出了它的写时序。
128显示效果见附图(3.14)
附图(3.14)
这个液晶不但能显示汉字也能显示图画,而且汉字不用自己编码,都是芯片自带了的。操作很方便很实用、
上面的图片因为相机的问题,不清楚,大家谅解
5)键盘操作
键盘的操作在这里分为两种,键盘和距阵编码键盘
A、键盘的实物见附图(5.1)
附图(5.1)
上面附图中按键共有21个,在左边的上面4排4*4个为距阵键盘,下面1排4个为4位按键,在右边为一个复位 按键
B、键盘的原理图见附图(5.2)
附图(5.2)
C、先说简单的键盘吧,就是原理附图(5.2)上的最下面的4个按键,这4个按键分别连接在MCU的P30,P31,P32,P33,上,我们可以先让这几个脚为高电平,当有键按下时某个被按下的按键所连接到的MCU引脚就变成了低电平,在编程时我们不论是采用哪种方法都很容易的判别出来。这里就不列出源程序了
D、距阵键盘就要复杂得多了
1),原理图分析:原理附图(5.2)上的上面16个按键,每4个列连在了P30、P31、P32、P33和每4个行连在了P34、P35、P36、P37上
2)编程思路:由P30-P33送出扫描信号,而由P34-P37读取按键数据返回代码,具体如下:
以程序扫描的方式来检查那一按键被按下,一次扫描一行4个按键,扫描的顺序如下:
a、送出扫描信号1110以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;
b、送出扫描信号1101以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;
c、送出扫描信号1011以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;
d、送出扫描信号0111以扫描第一行的4个按键,读取按键数据,判断该行是否有键按下,如有则连接被按下的该键返回线为0;
e、回到步凑a,继续做按键扫描。
列出键盘扫描子程序:
uchar Keyboard() //扫描子函数
{
uchar i,j,pc;
for(i=0;i<4;i++) //循环4次扫描4行
{
P3=keyboard_Scan[i]; //送行扫描代码
pc=P3;
pc=pc>>4|0xf0; //假如说有按键按下
for(j=0;j<4;j++) //将扫描值与扫描按键值比较
{
if(keyboard_Scan[j]==pc)in=i+j*4; //计算按键值
while(keyboard_Scan[i]!=P3) //松手检测
{
P3=keyboard_Scan[i]; 将扫描后的值返回MCU
}
}
}
return in; //返回按键值
}
以上的程序在实列测试程序中(列子)中加入另外一些代码,就可以通过按下某个按键后让这个值在LED上显示出来
6)、步进电机
A、步进电机的实物见附图(6.1)
附图(6.1)
附图(6.1)是本开发板选配的高精度2(4)相5(6)线制步进电机,全新(30元)
八成新(8元)。
B、步进电机内部原理图见附图(6.2)
附图(6.2)
附图(6.2)为一个两相步进电机的内部原理图,这和附图(6.1)的电机是一样的。
附图(6.3)为开发板步进电机连线原理图
附图(6.3)
附图(6.4)为开发板步进电机连线实物图
C、怎样通过单片机来控制步进电机
本开发板中使用的步进电机为二(四)相步进电机。转子小齿数为。
系统中采用四路I/O 进行并行控制,MCU 控制器直接发出多相脉冲信号,在通过功率放大芯片ULN2003后,进入步进电机的各相绕组。
四相步距电机的控制方法有四相单四拍,四相单、双八拍和四相双四拍三种控制方式。
步距角的计算公式为:
θb=3600/mCk
其中:m 为相数,控制方法是四相单四拍和四相双四拍时C 为1,控制方法是四相单、双八拍时C 为2,Zk 为转子小齿数。
在本开发板所列出的步进电机测试程序:采用的是四相单、双八拍控制方法,所以步距角为360°/512。但步进电机经过一个1/8 的减速器引出,实际的步距角应为360°/512/8。
开发平台中使用P1口 的高四位控制四相步进电机的四个相。按照四相单、双八拍控制方法,电机正转时的控制顺序为A→AB→B→BC→C→CD→D→DA。P1口 的高四位的值参见下表:
| 十六进制 | 二进制 | 通电状态 |
| 1H | 0001 | A |
| 3H | 0011 | AB |
| 2H | 0010 | B |
| 6H | 0110 | BC |
| 4H | 0100 | C |
| CH | 1100 | CD |
| 8H | 1000 | D |
| 9H | 1001 | DA |
反转时,只要将控制信号按相反的顺序给出即可。
本实验使作的是1-2相励磁方式,还可以使用1相励磁方式和2相励磁方式。
1相励磁方式的顺序是ABCD,因此只要设置数组
char stepdata[]={0x10,0x20,0x400x,0x80} 即可
2相励磁方式的顺序是AB,BC,CD,DA, 因此只要设置数组
char stepdata[]={0x30,0x60,0xc0,0x90} 即可
要实现电机的反转,只需将上面数组的值按相反的顺序排列即可
先列出MCU控制步进电机子程序如下(励磁方式为1-2相):
uchar plus[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09,0x00}; //电机正转
uchar minu[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09,0x00}; //电机反转
void T_move() //控制子函数
{
uchar i;
for(i=0;i<8;i++) //电机转动控制字
{
P1=plus[i]; //给P1口附值
delay(50); //延时再控制
}
}
以上程序只是控制了电机的转动,并不附带转动时的速度、方向、角度效准、等等,总之要想很好的控制步进电机使其真正的运用到实际场合,还要很多资料需要查询(实列程序在测试程序中,有两个,还有一个利用了MCU的定时器实现其速度的精度控制)
7)八位并行传输D/A芯片DAC0832
A、DAC0832的结构、引脚及操作时序
DAC0832是八位输入寄存器、八位DAC寄存器、八位D/A转换器所构成。芯片中有两级锁存器,第一级即输入寄存器,第二级即DAC寄存器。因为有两级锁存器,DAC0832可以工作在双缓冲方式下,这样在输出模拟信号的同时可以采集下一个数字量,这样可以有效地提高转换速度(响应速度仅为2us),另外,有了两级锁存器,可以在多个D/A转换器同时工作时,利用第二级锁存信号实现多路D/A的同时输出。
DAC0832即可以工作在双缓冲方式,也可以工作在单缓冲方式,无论哪种方式,只要数据进入DAC寄存器,便启动D/A转换
1)、结构、引脚、MCU-DAC0832接口、操作时序见附图(7-1)、(7-2)、(7-3)、(7-4)
附图(7-1)
附图(7-2)
附图(7-3)
附图(7-3)中的DA扩展端口的2、3脚应用短路子连接(实际已连接),这样我们在进行数模转换的时候模拟量就可通过D16直观的反映出来。
在实列程序中反映的效果是,我们通过不断的给DAC0832两个数字量,一个最大值0XFF,一个最小值0,就会在D16上亮灭、亮灭的反映出来,当然你也可以给出一个循环渐进的数字亮,让D16由亮-渐亮-渐暗-暗的一个变化过程
控制某一个时刻的D16显示效果见附图(7-5)
附图(7-5)
附图(7-4)中最下面亮的那个灯则为D16(现在是MCU给出最大值D16被点亮的状况)
8)八位并行传输A/D芯片DAC0804
所谓 A/D 转换器就是模拟/数字转换器(ADC),是将输入的模拟信号转换成数字信号。信号输入端可以是传感器或转换器的输出,而ADC 的数字信号也可能提供给微处理器,以便广泛地应用
ADC0804是8位COMS依次逼近型A/D转换器、三态锁定输出、存取时间135US、分辨率8位、转换时间100US、总误差正负1LSB。
A、ADC0804的结构、引脚、开发板接线原理图及操作时序分别见俯图(8.1)(8.2)(8.3)(8.4)
附图(8.1)
附图(8.1)表示ADC0804的AD转换原理为逐次逼近式
附图(8.2)
附图(8.3)
从原理图中R36为10K的高精度线圈式微调电阻,调节它可以改变ADC0804的VIN输入检测电阻,在测试程序中我们的演示实列就是通过螺丝刀调节R36让的电压值的改变在数码管上显示出来。
附图(8.4)为ADC0804的启动和转换操作时序图,在时列程序中我们并没有对INTR进行操作,只是等待了一段时间默认为它时间到了,当然这没有运行INTR时能有效的利用ADC0804的快速响应的特性,但是作为一个演示,我们已经展示出了ADC0804的功能和操作方法。
附图(8.4)
9) DS1302时钟芯片电路
10) IIC(AT24C02)总线电路
11)红外线遥控SM0038电路
12)单总线温度传感器18B20
13)MOC3063光电耦合及BTA06双向可控硅输出
14)继电器控制和蜂鸣器唱歌
15)在线(串口)下载电路及串口通信及调试软件
16)位扩展电路(单片机的所有IO口都将扩展,并且在开发板的顶部,这是独有的布局安排,方便您的二次开发更方便您与万能板直接连接)
17)AC-DC5V外接电源转换电路
整个单片机的操作手册就先做到这里吧,(9-17)没有具体介绍到的芯片在开发板所附送的资料中都有很详细的PDF资料及相关的演示测试程序以供大家在购买后测试开发板以便验证其性能和对开发板作为多功能有个基本的了解.
另外我们还附送了大量的软件,包括液晶的取字模软件、K51软件、串口调试软件,等等,等等,很多。。。。。。。
最后感谢大家关注!!!!!
