搜索
您的当前位置:首页正文

电子专业技能综合训练报告

来源:汇智旅游网


专业技能综合训练

总结报告

班 级:_电子0891 姓 名:__金钊_ 学 号:_2008943027 同 组:__王佛长___ 学 号:_2008943025 组 号: 19组

指 导: 信息工程学院电子教研室 地 点: 信息工程学院电子实验室

2011年12月19日~2011年1月13日

一、 实习目的与要求:

1、对典型单片机仿真软件PROTUS与开发套件进行熟悉与训练,结合具体

应用电路解剖分析,并通过分小组的专题实践,掌握单片机应用系统的调试与开发过程,同时规范设计的文档格式。为毕业设计储备必要的电路板设计工艺知识和软件编程的操作技能。 2、通过具体焊接实物PCB板,掌握实际工作中经常碰到的测试与调试的方法,从而达到进一步熟练掌握电子系统的开发全过程。

二、 实习内容: 12月19号

1、要求在一周的实践时间里,完成用PROTUS仿真一个单片机电路系统。

Sch9v-5v

2 、 AT89X51_74HC164_1

程序:

//////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////// #include

/////////////////////////////////////////////////////////////////////////////////////////// #define disp_clk P0_0 #define disp_dat P0_1

void disp_74HC164_1(unsigned char dat); //显示0-9的数字

void delay1ms(unsigned int Nms);

////disp_table[10]: 0,1,2,3,4,5,6,7,8,9共阳 const unsigned dispTable[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// void main(void) {

char

unsigned char x; while(1) { x++; if(x>9) x = 0; disp_74HC164_1(x); delay1ms(500); } }

////////////////////////////////////////////////////////////////////////////////////////// ////------------------------------------------------------------------ ////////////////////////////////////////////////////////////////////////////////////////// void delay1ms(unsigned int Nms) {

unsigned int i; unsigned char j;

for(i=0;i///////////////////////////////////////////////////////////////////////////////// //void disp_74HC164_4(unsigned int dat) void disp_74HC164_1(unsigned char dat) {

unsigned char i;

unsigned char tempdat;

tempdat = dispTable[dat]; for(i=0;i<8;i++) { disp_clk = 0;

disp_dat = (tempdat&0x80)?1:0; tempdat = tempdat<<1; disp_clk = 1; } }

///////////////////////////////////////////////////////////////////////////////// 3、 AT89X51_74HC164_4

程序:

void disp_74HC164_4(unsigned int dat) {

int x1,x2,x3,x4; unsigned char i; unsigned char tempdat; x1=dat%10; x2=(dat/10)%10; x3=(dat/100)%10; x4=(dat/1000)%10; tempdat=dispTable[x1]; for(i=0;i<8;i++) { disp_clk=0; disp_dat=(tempdat&0x80)?1:0; tempdat=tempdat<<1; disp_clk=1; } tempdat=dispTable[x2]; for(i=0;i<8;i++) { disp_clk=0; disp_dat=(tempdat&0x80)?1:0; tempdat=tempdat<<1; disp_clk=1; }

}

tempdat=dispTable[x3]; for(i=0;i<8;i++) { disp_clk=0; disp_dat=(tempdat&0x80)?1:0; tempdat=tempdat<<1; disp_clk=1; }

tempdat=dispTable[x4]; for(i=0;i<8;i++) { disp_clk=0; disp_dat=(tempdat&0x80)?1:0; tempdat=tempdat<<1; disp_clk=1; }

12月20号 4、键盘显示

程序:

#include \"AT89x52.h\" #define disp_clk P0_0 #define disp_dat P0_1

void disp_74HC164_4(unsigned int value); //显示0-9数字

void delay1ms(unsigned int Nms); //disp_table[10]:0,1,2,3,4,5,6,7,8,9共阳

const unsigned char dispTable[10]={0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/}; #define keyport P3

unsigned char key_cnt=0; unsigned int value=0; unsigned char timerx=0; ////////////////////////////////// void main(void) {

/* unsigned int x; while(1) { x++; if(x>99) x=0; disp_74HC164_1(x); delay1ms(500); } */ TMOD=0x10; TH1=0x3c; TL1=0xb0; ET1=1; EA=1; TR1=1; while(1) {

disp_74HCl64_4(); delaylms(300); } }

unsigned char key scan() {

unsigned char key1,key2;

keyport=0xff; key1=~keyport; delaylms(20); key2=~keyport

if(key1!=key2) return 555;

if(key1==0x00) return 555; if(key1==0x01) return 0; if(key1==0x02) return 1; if(key1==0x04) return 2; if(key1==0x08) return 3; if(key1==0x10) return 4; if(key1==0x20) return 5; if(key1==0x40) return 6; if(key1==0x80) return 7; }

void tlint() interrupt 3 {

unsigned int key; TH1=0x3c; TL1=0xb0; timerx++; if(timerx!=4) return; timerx=0;

key=keyscan();

if(key==222) return; if(key==7) {

key_cnt=0; value=0; return; } (if key_cnt<4) key_cnt++; else return;

if (key_cnt==1) value=key;

if (key_cnt==2) value=value*10+key; if (key_cnt==3) value=value*10+key; if (key_cnt==4) value=value*10+key; }

void delay1ms(unsigned int Nms) {

unsigned int i; unsigned char j; for(i=0;i; } }

///////////////显示

void disp_74HC164_4(unsigned int value) {

int x1,x2,x3,x4; unsigned char i;

unsigned char tempdat; x1=value%10; x2=(value/10)%10; x3=(value/100)%10; x4=(value/1000)%10;

tempdat=dispTable[x1]; for(i=0;i<8;i++) { disp_clk=0; disp_dat=(tempdat&0x80)?1:0; tempdat=tempdat<<1; disp_clk=1; }

tempdat=dispTable[x2]; for(i=0;i<8;i++) { disp_clk=0; disp_dat=(tempdat&0x80)?1:0; tempdat=tempdat<<1; disp_clk=1; }

tempdat=dispTable[x3]; for(i=0;i<8;i++) { disp_clk=0; disp_dat=(tempdat&0x80)?1:0; tempdat=tempdat<<1; disp_clk=1; }

tempdat=dispTable[x4]; for(i=0;i<8;i++) {

disp_clk=0; disp_dat=(tempdat&0x80)?1:0; tempdat=tempdat<<1; disp_clk=1; } }

5、去零按键显示

程序:

#include <74HC164.h> #define up P3_6 #define down P3_7

void delay1ms(unsigned int Nms);

void main(void) {

unsigned int x; x==0;

disp_74HC164_4(x); delay1ms(500); while(1) {

if(up==0) {

while(up==0); x++; if(x>9999) x=0;

disp_74HC164_4(x);

//delay1ms(500); }

if(down==0) {

while(down==0); if(x<1) x=10000; x--;

disp_74HC164_4(x); //delay1ms(500); } } }

void delay1ms(unsigned int Nms) { unsigned int i; unsigned int j;

for(i=0;i12月21号 6、74HC573_1

程序:

#include \"AT89x52.h\" #define dispdat P0 #define dispLE_1 P3_0

void disp_74HC573_1(unsigned char dat); //显示0-9数字

void delay1ms(unsigned int Nms); //disp_table[10]:0,1,2,3,4,5,6,7,8,9共阳

const unsigned char dispTable[10]={0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/};

void main(void) {

unsigned char x; while(1) { dispLE_1=0; x++; if(x>9) x=0; disp_74HC573_1(x); delay1ms(500);

} } void delay1ms(unsigned int Nms) {

unsigned int i; unsigned char j; for(i=0;i///////////////显示

void disp_74HC573_1(unsigned char dat) {

dispLE_1=0;

dispdat=dispTable[dat]; dispLE_1=1; dispLE_1=0;

}

7、74HC573_4

程序:

#include \"AT89x52.h\"

#define dispDat P0 #define dispLE_1 P3_0 #define dispLE_2 P3_1 #define dispLE_3 P3_2 #define dispLE_4 P3_3 #define keyport P1

unsigned char key_cnt=0;//按键计数器 unsigned int value=0;

unsigned int temp1=0;//KEY14加计数标志位 unsigned int temp2=0;//KEY11减记数标志位 unsigned char timerx=0;

unsigned char keyscan(); //矩阵扫描

void disp_74hc573_4(unsigned int dat);

void delay1ms(unsigned int Nms);

const unsigned char dispTable[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void main(void) {

TMOD=0x01; TH0=0x3C; TL0=0x0B; ET0=1; EA=1; TR0=1; value=0; dispLE_1=0;

while(1) {

disp_74hc573_4(value); delay1ms(400);

if(temp1==1) //KEY14标志位=1,开始加计数

{

value++;

if(value>9999) value=0; }

if(temp2==1) //KEY11标志位=1,开始减计数 {

value--;

if(value<0 ) value=9999; } } }

//////////////////////////////////////////////////////////////////////////////////////////////// unsigned char keyscan() {

unsigned char key1, key2, keyA, keyB; keyport = 0xf0; key1 = ~keyport; keyport = 0x0f; key2 = ~keyport;

keyA = (key1&0xf0) + (key2&0x0f); delay1ms(20);

keyport = 0xf0; key1 = ~keyport; keyport = 0x0f; key2 = ~keyport;

keyB = (key1&0xf0) + (key2&0x0f); if(keyA != keyB) return 222;

if(keyA==0x11) return 0; if(keyA==0x21) return 1; if(keyA==0x41) return 2; if(keyA==0x81) return 3; if(keyA==0x12) return 4; if(keyA==0x22) return 5; if(keyA==0x42) return 6; if(keyA==0x82) return 7; if(keyA==0x14) return 8;

if(keyA==0x24) return 9; if(keyA==0x18) return 10; if(keyA==0x28) return 11; if(keyA==0x48) return 12; if(keyA==0x44) return 13; }

///////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////// void t0int() interrupt 1 //定时 {

unsigned int key=0; TH0=0x3C; TL0=0xB0; timerx++; if(timerx!=4) return;

timerx=0;

key=keyscan(); if(key==222) return;

if(key ==10 ) {

temp1=0; //按下KEY13 停止计数 ,并清0 key_cnt=0; value=0; return; }

if(key==12) {

temp1=~temp1;} //按下KEY15停止计数 值保持不变

if(key==11) //按下KEY14开始加计数 temp1=1;

if(key==13) //按下KEY11开始减计数 temp2=1; if(key!=15) {

if(key_cnt<4) key_cnt++; else return;

if(key_cnt==1)value=key;

if(key_cnt==2)value=value*10+key; if(key_cnt==3)value=value*10+key; if(key_cnt==4)value=value*10+key; } }

/////////////////////////////////////////////////////////////////////////////////////////////////////////

void delay1ms(unsigned int Nms) {

unsigned int i; unsigned char j; for(i=0;ifor(j=0;j<200;j++); } }

void disp_74hc573_4(unsigned int dat) {

unsigned char i;

unsigned char x1,x2,x3,x4; unsigned char tempdat;

x1=dat%10; x2=(dat/10)%10; x3=(dat/100)%10;

x4=(dat/1000)%10;

dispLE_1=0;

dispDat=dispTable[x1]; dispLE_1=1; dispLE_1=0;

dispLE_2=0;

dispDat=dispTable[x2]; dispLE_2=1; dispLE_2=0;

dispLE_3=0;

dispDat=dispTable[x3]; dispLE_3=1; dispLE_3=0;

dispLE_4=0;

dispDat=dispTable[x4]; dispLE_4=1; dispLE_4=0; } 8、

2Led_delay

#include

void Port_Init(void); // Port initialization routine void SYSCLK_Init(void); void delay(unsigned int dl);

//----------------------------------------------------------------------------- sbit LED = P1^6; // LED='1' means ON

sbit SW1 = P3^7; // SW1='0' means switch pressed //----------------------------------------------------------------------------- void main(void)

{

WDTCN = 0xDE; // Disable watchdog timer WDTCN = 0xAD;

SYSCLK_Init(); //switch to external crystal Port_Init(); // Init Ports

while (1){ LED = 1; delay(0xffff); LED = 0; delay(0xffff); }; }

//----------------------------------------------------------------------------- void SYSCLK_Init(void) {

unsigned int i;

OSCICN |= 0x03; //configure internal oscillator for its highest frequency (16MHz)

// Step 1. Enable the external oscillator.

OSCXCN = 0x60; //b01100000; // external crystal mode, not divided by 2

OSCXCN |= 0x07; //b00000111; //crystal 10 MHz < f <= 30 MHz

// Step 2. Wait at least 1 ms.

for (i = 9000; i > 0; i--); // at 16 MHz, 1 ms = 16000 SYSCLKs, DJNZ = 2 SYSCLKs

// Step 3. Poll for XTLVLD => ??

while ((OSCXCN & 0x80) != 0x80){};

// Step 4. Switch the system clock to the external oscillator. OSCICN |= 0x08; }

//----------------------------------------------------------------------------- void Port_Init(void) {

XBR0 = 0x04; // Route UART0 to crossbar

XBR2 |= 0x40; // Enable crossbar, weak pull-ups P0MDOUT |= 0x01; // enable TX0 as a push-pull output P1MDOUT |= 0x40; // enable LED as push-pull output

P0MDOUT |= 0x01; // Set TX1 pin to push-pull P1MDOUT |= 0x40; // Set P1.6(LED) to push-pull }

//----------------------------------------------------------------------------- void delay(unsigned int dl) { do{ dl--;

}while(dl>0); }

//----------------------------------

12月22号

程序1:按键按一次亮一次

#include \"c8051F020.h\" sbit led1=P1^6; sbit key1=P3^7;

void delay(unsigned int n) {

unsigned int i,j; for(i=0;i//////////////////////////////////// main() {

//////////////////////////////////// // OSCICN = 0x06; P1MDOUT=0X40; XBR2=0X40;

////////////////////////////////////

while(1) { if(key1==0)

{ led1=1; } else { led1=0; } /* led1=1; delay(800) ; led1=0; delay(800); */ } }

程序2:闪烁,延时 #include \"C8051F020.h\" sbit LED1 = P1^6; // LED='1' means ON

sbit key1 = P3^7; // SW1='0' means switch pressed //----------------------------------------------------------------------------- void delay(unsigned int n) { unsigned int i,j; for(i=0;iP1MDOUT=0X40; XBR2=0X40; ///// while(1) { LED1=1; delay(500); LED1=0; delay(500); }

}

程序3:按键,中断,闪烁 #include \"c8051F020.h\" sbit led1=P1^6; sbit key1=P3^7;

unsigned int cntInt;

void Timer_Init() {

TMOD = 0x02; TL0 = 0x01; TH0 = 0x01; }

void Interrupts_Init() {

IE = 0x82; }

void Timer0_ISR(void) interrupt 1 {

cntInt++; if(cntInt>100) {cntInt=0; led1=~led1; } }

//////////////////////////////////// main() {

//////////////////////////////////// // OSCICN = 0x06; P1MDOUT=0X40; XBR2=0X40;

////////////////////////////////////

Timer_Init(); Interrupts_Init(); while(1) { if(key1==0) { led1=1; } else { led1=0; } /* led1=1; delay(800) ; led1=0; delay(800); */ } }

12月23号

程序1: 2_led1_delay #include

void Port_Init(void); // Port initialization routine void SYSCLK_Init(void); void delay(unsigned int dl);

//----------------------------------------------------------------------------- sbit LED = P1^6; // LED='1' means ON

sbit SW1 = P3^7; // SW1='0' means switch pressed //----------------------------------------------------------------------------- void main(void) {

WDTCN = 0xDE; // Disable watchdog timer WDTCN = 0xAD;

// SYSCLK_Init(); //switch to external crystal Port_Init(); // Init Ports

while (1){ LED = 1; delay(0xffff); LED = 0;

delay(0xffff); }; }

//----------------------------------------------------------------------------- void SYSCLK_Init(void) {

unsigned int i;

OSCICN |= 0x03; //configure internal oscillator for its highest frequency (16MHz)

// Step 1. Enable the external oscillator.

OSCXCN = 0x60; //b01100000; // external crystal mode, not divided by 2

OSCXCN |= 0x07; //b00000111; //crystal 10 MHz < f <= 30 MHz

// Step 2. Wait at least 1 ms.

for (i = 9000; i > 0; i--); // at 16 MHz, 1 ms = 16000 SYSCLKs, DJNZ = 2 SYSCLKs

// Step 3. Poll for XTLVLD => ??

while ((OSCXCN & 0x80) != 0x80){};

// Step 4. Switch the system clock to the external oscillator. OSCICN |= 0x08; }

//----------------------------------------------------------------------------- void Port_Init(void) {

XBR0 = 0x04; // Route UART0 to crossbar

XBR2 |= 0x40; // Enable crossbar, weak pull-ups P0MDOUT |= 0x01; // enable TX0 as a push-pull output P1MDOUT |= 0x40; // enable LED as push-pull output

P0MDOUT |= 0x01; // Set TX1 pin to push-pull P1MDOUT |= 0x40; // Set P1.6(LED) to push-pull }

//----------------------------------------------------------------------------- void delay(unsigned int dl) {

do{ dl--;

}while(dl>0); }

//-----------------------------------------------------------------------------

程序2:3_led1_timer

#include

//----------------------------------------------------------------------------- void Port_Init(void); // Port initialization routine void SYSCLK_Init(void); void timer3(void);

//-----------------------------------------------------------------------------

unsigned char stepXXmsfactor = 40; //stepXXmsfactor * 25ms = XXms sbit LED = P1^6; // LED='1' means ON //----------------------------------------------------------------------------- void main(void) {

WDTCN = 0xDE; // Disable watchdog timer WDTCN = 0xAD;

SYSCLK_Init(); //switch to external crystal Port_Init(); // Init Ports

CKCON = 0x08; //use sysclk

TMR3H = 0x4c; //25ms TMR3L = 0x00;

TMR3RLH = TMR3H; TMR3RLL = TMR3L;

IE = 0x80;

EIE2 = 0x01; //enabled int: t3, ea

TMR3CN |= 0x04; //TR3 = 1;

while (1){}; }

//----------------------------------------------------------------------------- void SYSCLK_Init(void)

{

unsigned int i;

OSCICN |= 0x03; //configure internal oscillator for its highest frequency (16MHz)

// Step 1. Enable the external oscillator.

OSCXCN = 0x60; //b01100000; // external crystal mode, not divided by 2

OSCXCN |= 0x07; //b00000111; //crystal 10 MHz < f <= 30 MHz // Step 2. Wait at least 1 ms.

for (i = 9000; i > 0; i--); // at 16 MHz, 1 ms = 16000 SYSCLKs, DJNZ = 2 SYSCLKs

// Step 3. Poll for XTLVLD => ??

while ((OSCXCN & 0x80) != 0x80){};

// Step 4. Switch the system clock to the external oscillator. OSCICN |= 0x08; }

//----------------------------------------------------------------------------- void Port_Init(void) {

XBR0 = 0x04; // Route UART0 to crossbar

XBR2 |= 0x40; // Enable crossbar, weak pull-ups P0MDOUT |= 0x01; // enable TX0 as a push-pull output P1MDOUT |= 0x40; // enable LED as push-pull output

P0MDOUT |= 0x01; // Set TX1 pin to push-pull P1MDOUT |= 0x40; // Set P1.6(LED) to push-pull }

//----------------------------------------------------------------------------- void timer3(void) interrupt 14 {

stepXXmsfactor--;

if (stepXXmsfactor == 0) {

stepXXmsfactor = 40; LED = ~LED; }

TMR3CN &= 0x7f; //tf3=0, note that t3's interrupt flag must be cleared by software. this not like t0,t1 }

//-----------------------------------------------------------------------------

程序3:1_led_breathing

#include

//---------------------------------------------------------------------------------- void SYSCLK_Init(void); void Port_Init(void); void timer0(void); void timer3(void);

//----------------------------------------------------------------------------------

//pulse high time + low time = 1 pulse cycle, i define the pulse cycle relate to 250, any value big enough but 255 not. #define PulseCycle 250 unsigned char PulseHighCounts[] = {0,30,60,90,120,150,180,210,240,250,250,240,230,220,210,200,190,180,170,160,150,140,130,120,110,100,90,80,70,60,50,40,30,20,10,0,0,0,0,0}; unsigned char PulseHighCount, PulseLowCount; unsigned char index; unsigned char IsHigh;

unsigned char stepXXmsfactor = 2; //stepXXmsfactor * 25ms = XXms sbit LED = P1^6;

//---------------------------------------------------------------------------------- void main() {

WDTCN = 0xDE; // Disable watchdog timer WDTCN = 0xAD;

SYSCLK_Init(); Port_Init();

index = 0;

PulseHighCount = PulseHighCounts[index];

PulseLowCount = PulseCycle - PulseHighCount;

IsHigh = 1;

CKCON = 0x08; //use sysclk

TMOD = 0x02; //t0=mode 2, 8bit auto-reload

//TMR3CN = 0x02; //0x02 means t3 use sysclk, default 0x00 means sysclk/12

TH0 = 0xff; //as short as possible TL0 = 0xff;

TMR3H = 0x4c; //25ms TMR3L = 0x00;

TMR3RLH = TMR3H; TMR3RLL = TMR3L;

IE = 0x82;

EIE2 = 0x01; //enabled int: t0, t3, ea //t0=base pulse, t1=adjust time interval

EIP2 = 0x01; //timer3 priority high. IMPORTANT!! otherwise there's no time change for T3 to run it's int routine, cpu is busily interrupted by t0

TR0 = 1;

TMR3CN |= 0x04; //TR3 = 1;

while(1){}; }

//---------------------------------------------------------------------------------- void SYSCLK_Init(void) {

unsigned int i;

OSCICN |= 0x03; //configure internal oscillator for its highest frequency (16MHz)

// Step 1. Enable the external oscillator.

OSCXCN = 0x60; //b01100000; // external crystal mode, not divided by 2

OSCXCN |= 0x07; //b00000111; //crystal 10 MHz < f <= 30 MHz // Step 2. Wait at least 1 ms.

for (i = 9000; i > 0; i--); // at 16 MHz, 1 ms = 16000 SYSCLKs, DJNZ = 2 SYSCLKs

// Step 3. Poll for XTLVLD => ??

while ((OSCXCN & 0x80) != 0x80){};

// Step 4. Switch the system clock to the external oscillator. OSCICN |= 0x08; }

//---------------------------------------------------------------------------------- void Port_Init(void) {

XBR0 = 0x04; // Route UART0 to crossbar

XBR2 |= 0x40; // Enable crossbar, weak pull-ups P0MDOUT |= 0x01; // enable TX0 as a push-pull output P1MDOUT |= 0x40; // enable LED as push-pull output

P0MDOUT |= 0x01; // Set TX1 pin to push-pull P1MDOUT |= 0x40; // Set P1.6(LED) to push-pull }

//---------------------------------------------------------------------------------- void timer0(void) interrupt 1 {

if (IsHigh==1) //LED is on {

if (PulseHighCount == 0) //it's end for on, now change LED to off { LED = 0; IsHigh = 0; PulseHighCount = PulseHighCounts[index]; PulseLowCount = PulseCycle - PulseHighCount; } else PulseHighCount--; }

else //LED is off {

if (PulseLowCount == 0) //it's end for off, now change LED to on { LED = 1; IsHigh = 1; PulseHighCount = PulseHighCounts[index]; PulseLowCount = PulseCycle - PulseHighCount; } else PulseLowCount--; } }

//---------------------------------------------------------------------------------- void timer3(void) interrupt 14 {

stepXXmsfactor--;

if (stepXXmsfactor == 0) {

stepXXmsfactor = 2; index++; if (index==sizeof(PulseHighCounts)) index = 0; PulseHighCount = PulseHighCounts[index]; PulseLowCount = PulseCycle - PulseHighCount; }

TMR3CN &= 0x7f; //tf3=0, note that t3's interrupt flag must be cleared by software. this not like t0,t1 }

//----------------------------------------------------------------------------------

因篇幅问题不能全部显示,请点此查看更多更全内容

Top