• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

尤小翠的数控单片机纯正弦波逆变的单片机可以用STC12C5A60S2代换吗

大家好!我是菜鸟,目前在学单片机特别崇拜尤小翠大师的这篇单片机的逆变器http://bbs.dianyuan.com/topic/916798,我看了N遍程序终于能看懂一点点了,但是我没有现成的STC12C5410AD的单片机,但手中有一个STC12C5A60S2的单片机。我是想把STC12C5410AD的程序改为STC12C5A60S2用,我改了头文件后报错SPWM2 SPWM3,于是我根据程序对照2个单片机的PDF资料,发现自带AD中的寄存器也不同5410的ADC_DATA和5A60S2的RES不一样,我就把源程序呢里AD寄存器的ADC_DATA改为RES,具体修改的程序待会我贴出来。我是想问我这样修改程序为STC12C5A60S2可以直接用吗?同时希望有哪个高手有尤小翠的这程序的配套电路图吗?能给我一份吗?修改后的程序:

#include "STC12C5A60S2.H"
#include "math.h"
#include "intrins.h"

sbit beep=P3^4;
sbit stop=P3^3;
sbit stopo=P3^2;
sbit short_protection=P2^3;
sbit short_indicator=P2^4;
sbit hv_indicator=P1^5;
sbit lv_indicator=P1^6;
sbit w_indicator=P1^7;

#define FOSC 12000000L     //System Clock Frquency(12MHz)
#define BAUD 2400          //UART baudrate   2400
#define v_c       724  //
#define Protection_time 10 //

#define Kp            5
#define Ki            0
#define Kd            0
#define sf            77

#define AD_FEEDBACK   1    //Output Voltage Feedback
#define AD_BATTERY    0    //Battery Voltage Watcher

#define MIN_BAT       9    //Mininum Battery Voltage
#define MAX_BAT       15   //Maxium Battery Voltage
#define WARN_BAT      10   //Low Battery Warning Voltage
#define MAX_IOUT   5    //Maxium Output Current
#define MAX_VOUT      245  //Maxium Output Voltage
#define MIN_VOUT      200  //Mininum Output Voltage
#define PW_SHORT      10   //Pulse Width when short occurs

#define NONE_PARITY   0
#define ODD_PARITY    1
#define EVEN_PARITY   2
#define MARK_PARITY   3
#define SPACE_PARITY  4

#define PARITYBIT     EVEN_PARITY

typedef unsigned char   BYTE;
typedef unsigned int    WORD;

unsigned int m,pwm_1,pwm_2,vr;       //用m来控制整体占空比//

int k=0,i,j,pwm1,pwm2,t=0;
unsigned char code pwm[159]={0,4,8,13,17,21,25,29,34,38,42,46,50,54,59,63,67,71,75,79,83,86,90,94,98,102,105,109,113,116,120,123,127,130,134,137,140,143,147,150,153,156,159,161,164,167,170,172,175,177,179,182,184,186,188,190,192,194,196,198,199,201,203,204,205,207,208,209,210,211,212,213,213,214,214,215,215,216,216,216,216,216,216,215,215,214,214,213,213,212,211,210,209,208,207,205,204,203,201,199,198,196,194,192,190,188,186,184,182,179,177,175,172,170,167,164,161,159,156,153,150,147,143,140,137,134,130,127,123,120,116,113,109,105,102,98,94,90,86,83,79,75,71,67,63,59,54,50,46,42,38,34,29,25,21,17,13,8,4};

bit busy;
char itc_result[3];

int v_bat,v_out;
unsigned char protecting;


bit esend=0;

//INT to CHAR//
void inttochar(unsigned int num){
 itc_result[0]=num/100+48;    
 itc_result[1]=(num/10)%10+48; 
 itc_result[2]=num%10+48;
}

//延时函数//
void delay(unsigned int time){
    unsigned int a=0,b;
    for(a=0;a   for(b=0;b<1200;b++);
}

//PWM initiallize//
void pwm_init(){
   CMOD=0X02; //设置PCA计数器工作频率为F/2//
   CCON=0X00; //清0计数器和溢出标志位 

 CL=0X00;//计数器高8位和低八位清0
   CH=0X00;
   CCAPM0=0X42;  //设置PWM口//
   CCAPM1=0X42;
   //CCAPM2=0X42;//以下两句是被我注释掉的,5A60S2没有此功能
   //CCAPM3=0X42;
   CCAP0L=0X00;  
   CCAP0H=0X00;
   CCAP1L=0X00;
   CCAP1H=0X00;
   //CCAP2L=0X00;//以下4句被我注释掉的,5A60S2没有此功能
   //CCAP2H=0X00;
   //CCAP3L=0X00;
   //CCAP3H=0X00;
   CR=1;//开启PCA计数器 
}

 //Timer initiallize//
void time_init()

{
  #if(PARITYBIT==NONE_PARITY)
   SCON=0x50;
  #elif (PARITYBIT==ODD_PARITY)||(PARITYBIT==EVEN_PARITY)||(PARITYBIT==MARK_PARITY)
 SCON=0xDA;
  #elif (PARITYBIT==SPACE_PARITY)
    SCON=0xD2;
  #endif

  TMOD=0X00;//定时器0工作模式0//
  TMOD|=0x20;
  ET0=1; //开启定时器0中断

  TH0=0XFE;
  TL0=0X09;   //160点晶振12M,50Hz*2*159=15900Hz   调整TL0使输出频率为50HZ//
  TR0=1开启定时器0//      
 
  TH1=TL1=-(FOSC/12/32/BAUD);
  TR1=1;

  ES=1;
 }


//发送数据//           
void SendData(BYTE dat)

{
  while(busy);
  ACC=dat;
  if(P)

{
  #if(PARITYBIT==ODD_PARITY)
     TB8=0;
  #elif(PARITYBIT==EVEN_PARITY)
     TB8=1;
     #endif
  }else{
  #if(PARITYBIT==ODD_PARITY)
     TB8=1;
  #elif(PARITYBIT==EVEN_PARITY)
     TB8=0;
     #endif 
  }
  busy=1;
  SBUF=ACC;
}

//发送字符串void SendString(char *s)

{
   while(*s)

{
   SendData(*s++);
   }
}

//UART串口//
void Uart_Isr() interrupt 4 using 1
{
   if(RI)
 {
      RI=0;
   esend=1;
   }
   if(TI)
  {
   TI=0;
   busy=0;
   }
}

//软启动

void soft_start(void)

{
 m=0;
 do{
  m=m+27;
     delay(12);
 }
  while(m<210);  
 }


//AD初始化//
void AD_init()

{

P1ASF=0X04;//设置5A60S2的P1.2为AD功能
 //P1M0=0X07;//以下为三个5410AD功能设置
 //P1M1=0XF0;
 //P1=0xFF;   //设置P1口为高阻输出//
 ADC_CONTR = 0x80|0x00; //270个时钟周期转换一次//
 delay(4);
 }

//AD采样函数//
//AD 转换0------7对应P1.0到P1.7,0----charge,1---u_bat,2---0ut,3---input,4---load//
unsigned int ad(unsigned char i)
{
 ADC_RES  =0;//被我修改为5A60S2的寄存器
 //ADC_DATA=0;//源程序代码被我注释了
 //ADC_LOW2=0;//源程序已经注释
 ADC_CONTR=0x80|0x00|i|0x08;//0000,1010开启AD转换P1.2//
 _nop_();
 _nop_();
 _nop_();
 _nop_();
 while(!(ADC_CONTR&0X10));//等待转换结束//
  ADC_CONTR&=~0x10;
  return  ADC_RES;//ADC_DATA;
}


//SPWM实现//
void int_time0(void) interrupt 1{
 TH0=0XFE;
 TL0=0X09;//重装初值//

 TR0=1;
 CCAP0H=pwm1;
 //CCAP2H=pwm1;
 CCAP1H=pwm2; //装入脉宽  //

CCAP3H=pwm2;
 
  k++;
    if(k<159)

{//正半周//
  i=k;
  if(protecting==0){
   pwm_1=m*pwm[i]/216;
      pwm1=(unsigned char)pwm_1;
  }
  else{
   pwm1=0;
  }
  pwm2=0;
  
 }
   else if(k<318){//负半周//
  j=k-159;
  pwm1=0;
  if(protecting==0){ 
   pwm_2=m*pwm[j]/216;
      pwm2=(unsigned char)pwm_2;
  }
  else{
   pwm2=0;
  }
  pwm1=0;
  
    }
   else{//周期结束//
  k=0;
  i=k;
  if(protecting==0){
   pwm_1=m*pwm[i]/216;
   pwm1=(unsigned char)pwm_1;
  }
  else{
   pwm1=PW_SHORT;
  }
        pwm2=0;
  
  vr=ad(AD_FEEDBACK);
  if (fabs(vr-79)>3){
   if (vr>79)
    m=m-4;
   else
    m=m+4;
  }
  if (m>255)
   m=255;
  if (m<1)
   m=1;

  if(t<10)     //指示灯闪烁计时

   t++;
    
  v_out=vr*v_c/256;
  v_bat=ad(AD_BATTERY)*400/256; //取10倍电池电压的值

 }
}


//主程序//
void main()

{
 //初始化P3//
    P3M0=0x00;
 P3M1=0x10;

    beep=0;
 stop=0;
 stopo=1;
 short_indicator=0;
 hv_indicator=0;
 lv_indicator=0;
 w_indicator=0;

 protecting=0;

 //各种初始化//

 pwm_init();
 time_init();
 
 AD_init();
 EA=1;
 soft_start();
 m=216;       //m初始值// 
 SendString("ready\r\n");
 while(1){              //死循环  
  
     
  if((stop==1)|((v_bat<(10*MIN_BAT)))|(v_bat>(10*MAX_BAT))|(short_protection==0))

{  //电池电压异常或者输出短路或者外部要求停止报警

   beep=1;
  }
  else{
   beep=0;          
  }
  if((stop==1)|((v_bat<(10*MIN_BAT)))|(v_bat>(10*MAX_BAT)))

{  //电池电压异常或者外部要求停止时关闭输出

   stopo=0;
  }
  else{
   stopo=1;          
  }

  //输出电压检测

  if (v_out

{       //低压

   if(t==10){
    w_indicator=~w_indicator;
   }
  }
  else{
   if (v_out>MAX_VOUT){        //过压

    w_indicator=1;
   }
   else{
    w_indicator=0;      //正常

   }
  }

  //短路动作

  if(short_protection==0){
   protecting=Protection_time;
  }
  if(protecting==0){
   short_indicator=0;
  }
  else{ 
   short_indicator=1;
   if (short_protection==1)
    if(t==10)
     protecting-=1;    
  }  

  
  //电压指示

  lv_indicator=(v_bat<(10*MIN_BAT));    
  if (((10*MIN_BAT)   if(t==10)
    lv_indicator=~lv_indicator;    
  }
  hv_indicator=(v_bat>(10*MAX_BAT));

  //清0闪烁计数器

  if(t==10) t=0;   


  if(esend==1){
  esend=0;
  inttochar(v_bat);
  SendString("in:");
  SendString(itc_result);
  inttochar(v_out);
  SendString("vout:");
  SendString(itc_result);
  SendString("\r\n");
  }
 }
}

全部回复(17)
正序查看
倒序查看
LSHNIU
LV.6
2
2013-06-04 21:10
看尤小翠大师的图纸是20管脚的STC12C5410AD的也只用到PWM0和PWM1功能,所以把源程序修改了下,不知道能不能用,还望各位大师多多指教。
0
回复
2013-06-04 21:23
@LSHNIU
看尤小翠大师的图纸是20管脚的STC12C5410AD的也只用到PWM0和PWM1功能,所以把源程序修改了下,不知道能不能用,还望各位大师多多指教。

 /*************spwm产生程序******/
/*单片机STC12C5A60S2,晶振11.0592M,正弦波50Hz,spwm波形21.6KHz*/
#include
#define uchar unsigned char
#define uint unsigned int
uchar code pwm[54]={255,240,226,211,196,182,168,154,141,128,115,103,91,80,69,59,50,42,34,27,20,15,10,6,3,1,0,
     0,1,3,6,10,15,20,27,34,42,50,59,69,80,91,103,115,128,141,154,168,182,196,211,226,240,255
     }; // 反正弦变化
int index=0;
sbit P13=P1^3;        //PCA模块0输出
sbit P14=P1^4;        //PCA模块1输出
sbit P17=P1^7;
sbit P16=P1^6;
bit zf=0;           //前后半周期标志
void init_pca(void)//pca计数器初始化函数
{
CMOD=0x08;//PCA计数器的时钟源无分频,不允许pca中断使能
CCON=0x00;
CCAPM0=0x42;//8位PWM输出,无中断
CCAPM1=0x42;//8位PWM输出,无中断
CL=0x00;//清零pca计数器
CH=0x00;
CCAP0L=pwm[0];    //初始化spwm输出的占空比
CCAP0H=pwm[0];
CCAP1L=pwm[0];    //初始化spwm输出的占空比
CCAP1H=pwm[0];
CR=1;//运行pca计数器
}
void init_timer(void)//计数器初始化函数
{
TMOD= 0x01; //计数器0工作在方式模式1
TH0 = 0XF7;//T1的计数值为2048,若是11.0592M晶振,则中断频率为11.0592M/2048=5.4K
TL0 = 0xFF;    //T1的计数值低位
AUXR=0xC0;//计数器均工作在1T模式。计数频率11.0592M
ET0 = 1; //开中计数器0断
TR0 = 1; //开启计数器0
}
void int_timer0(void) interrupt 1//计数器1中断函数
 {
 TH0=0xF7; //重装计数值
 TL0=0xFF;
 index++; //查表索引
 
 if(index==54) //半周期转换,每半周期分为54份
  {  P17=!P17;
  P16=!P16;
     CR=0;    //关PCA计数
     index=0;
     zf=~zf;  //半周期标志,zf=0,前半周期,zf=1,后半周期 
        if(zf)   //设置后半周期
        {
           P13=0;                   
        CCAPM0=0X00;   //关闭模块0
        CCAPM1=0X42;   //设置模块1工作方式
         }
        else               //设置前半周期
         {
           P14=0;
        CCAPM1=0X00;   //关闭模块1
        CCAPM0=0X42;   //设置模块0工作方式
         }
      CR=1;           //开PCA计数               
  }
 
 if(zf)          //将下一小格的占空比赋给相应值
  {
  CCAP1H=pwm[index];
  }
 else
  {
    CCAP0H=pwm[index];
 }
 }
void main(void)
{ P16=0;
P14=0;
P13=0;
EA=1;//开总中断
init_pca();
init_timer();
while(1)//主循环
{//彩灯程序  和1602显示程序
}
}

 

0
回复
LSHNIU
LV.6
4
2013-06-04 21:27
@wwpwwp20088
 /*************spwm产生程序******//*单片机STC12C5A60S2,晶振11.0592M,正弦波50Hz,spwm波形21.6KHz*/#include#defineucharunsignedchar#defineuintunsignedintucharcodepwm[54]={255,240,226,211,196,182,168,154,141,128,115,103,91,80,69,59,50,42,34,27,20,15,10,6,3,1,0,    0,1,3,6,10,15,20,27,34,42,50,59,69,80,91,103,115,128,141,154,168,182,196,211,226,240,255    };//反正弦变化intindex=0;sbitP13=P1^3;       //PCA模块0输出sbitP14=P1^4;       //PCA模块1输出sbitP17=P1^7;sbitP16=P1^6;bitzf=0;          //前后半周期标志voidinit_pca(void)//pca计数器初始化函数{CMOD=0x08;//PCA计数器的时钟源无分频,不允许pca中断使能CCON=0x00;CCAPM0=0x42;//8位PWM输出,无中断CCAPM1=0x42;//8位PWM输出,无中断CL=0x00;//清零pca计数器CH=0x00;CCAP0L=pwm[0];   //初始化spwm输出的占空比CCAP0H=pwm[0];CCAP1L=pwm[0];   //初始化spwm输出的占空比CCAP1H=pwm[0];CR=1;//运行pca计数器}voidinit_timer(void)//计数器初始化函数{TMOD=0x01;//计数器0工作在方式模式1TH0=0XF7;//T1的计数值为2048,若是11.0592M晶振,则中断频率为11.0592M/2048=5.4KTL0=0xFF;   //T1的计数值低位AUXR=0xC0;//计数器均工作在1T模式。计数频率11.0592MET0=1;//开中计数器0断TR0=1;//开启计数器0}voidint_timer0(void)interrupt1//计数器1中断函数 { TH0=0xF7;//重装计数值 TL0=0xFF; index++;//查表索引  if(index==54)//半周期转换,每半周期分为54份 { P17=!P17; P16=!P16;    CR=0;   //关PCA计数    index=0;    zf=~zf; //半周期标志,zf=0,前半周期,zf=1,后半周期        if(zf)  //设置后半周期       {          P13=0;                          CCAPM0=0X00;  //关闭模块0       CCAPM1=0X42;  //设置模块1工作方式        }       else              //设置前半周期        {          P14=0;       CCAPM1=0X00;  //关闭模块1       CCAPM0=0X42;  //设置模块0工作方式        }     CR=1;          //开PCA计数                }  if(zf)         //将下一小格的占空比赋给相应值 {  CCAP1H=pwm[index]; } else {   CCAP0H=pwm[index]; } }voidmain(void){ P16=0;P14=0;P13=0;EA=1;//开总中断init_pca();init_timer();while(1)//主循环{//彩灯程序 和1602显示程序}} 
你这程序我看到过,但是没有尤大师的好,所以我选择了尤大师的程序。我只是想问问我那样修改能用吗?
0
回复
IGBT2010
LV.8
5
2013-06-04 22:42
@wwpwwp20088
 /*************spwm产生程序******//*单片机STC12C5A60S2,晶振11.0592M,正弦波50Hz,spwm波形21.6KHz*/#include#defineucharunsignedchar#defineuintunsignedintucharcodepwm[54]={255,240,226,211,196,182,168,154,141,128,115,103,91,80,69,59,50,42,34,27,20,15,10,6,3,1,0,    0,1,3,6,10,15,20,27,34,42,50,59,69,80,91,103,115,128,141,154,168,182,196,211,226,240,255    };//反正弦变化intindex=0;sbitP13=P1^3;       //PCA模块0输出sbitP14=P1^4;       //PCA模块1输出sbitP17=P1^7;sbitP16=P1^6;bitzf=0;          //前后半周期标志voidinit_pca(void)//pca计数器初始化函数{CMOD=0x08;//PCA计数器的时钟源无分频,不允许pca中断使能CCON=0x00;CCAPM0=0x42;//8位PWM输出,无中断CCAPM1=0x42;//8位PWM输出,无中断CL=0x00;//清零pca计数器CH=0x00;CCAP0L=pwm[0];   //初始化spwm输出的占空比CCAP0H=pwm[0];CCAP1L=pwm[0];   //初始化spwm输出的占空比CCAP1H=pwm[0];CR=1;//运行pca计数器}voidinit_timer(void)//计数器初始化函数{TMOD=0x01;//计数器0工作在方式模式1TH0=0XF7;//T1的计数值为2048,若是11.0592M晶振,则中断频率为11.0592M/2048=5.4KTL0=0xFF;   //T1的计数值低位AUXR=0xC0;//计数器均工作在1T模式。计数频率11.0592MET0=1;//开中计数器0断TR0=1;//开启计数器0}voidint_timer0(void)interrupt1//计数器1中断函数 { TH0=0xF7;//重装计数值 TL0=0xFF; index++;//查表索引  if(index==54)//半周期转换,每半周期分为54份 { P17=!P17; P16=!P16;    CR=0;   //关PCA计数    index=0;    zf=~zf; //半周期标志,zf=0,前半周期,zf=1,后半周期        if(zf)  //设置后半周期       {          P13=0;                          CCAPM0=0X00;  //关闭模块0       CCAPM1=0X42;  //设置模块1工作方式        }       else              //设置前半周期        {          P14=0;       CCAPM1=0X00;  //关闭模块1       CCAPM0=0X42;  //设置模块0工作方式        }     CR=1;          //开PCA计数                }  if(zf)         //将下一小格的占空比赋给相应值 {  CCAP1H=pwm[index]; } else {   CCAP0H=pwm[index]; } }voidmain(void){ P16=0;P14=0;P13=0;EA=1;//开总中断init_pca();init_timer();while(1)//主循环{//彩灯程序 和1602显示程序}} 
加油楼主!!!
0
回复
LSHNIU
LV.6
6
2013-06-05 11:52
@IGBT2010
加油楼主!!!
我再看了下源程序好像还要设置AUXR1=0X40到P4口,求大师帮忙指点迷津啊!我只是玩玩而已,如果有涉及个人利益问题不便公开,可以QQ:469025821或者邮箱469025821@QQ.COM。我发誓不会告诉别人的!
0
回复
LSHNIU
LV.6
7
2013-06-05 20:04
@LSHNIU
我再看了下源程序好像还要设置AUXR1=0X40到P4口,求大师帮忙指点迷津啊!我只是玩玩而已,如果有涉及个人利益问题不便公开,可以QQ:469025821或者邮箱469025821@QQ.COM。我发誓不会告诉别人的!

刚才我拿普中科技的试验板试了下,带两个LED灯,两个都是渐亮渐暗,要把源程序的开头把P1口的P1.3 P1.4换过来就可以了。只是没有这程序的配套电路图,不知道哪位大师能提供一份?谢谢!

0
回复
LSHNIU
LV.6
8
2013-06-05 20:07
@LSHNIU
刚才我拿普中科技的试验板试了下,带两个LED灯,两个都是渐亮渐暗,要把源程序的开头把P1口的P1.3P1.4换过来就可以了。只是没有这程序的配套电路图,不知道哪位大师能提供一份?谢谢!
已经将程序声明部分更改过来了,PWM0 PWM1口为P1.3和P1.4,用试验板带两个LED灯,都会渐亮渐暗,没有实际做成品,因此仅供参考!同时恳求哪位大师给个电路图!谢谢!
0
回复
2013-06-05 22:48
楼主不错哦!顶起来!
0
回复
LSHNIU
LV.6
10
2013-06-06 00:26
@chen2011qian
楼主不错哦!顶起来!

大家互相学习,我只是菜鸟,还希望各位多多指教!

0
回复
2013-06-06 18:54
@LSHNIU
大家互相学习,我只是菜鸟,还希望各位多多指教![图片]

你的程序成功了吗?

如果成功了可以发来让小弟学习学习!1353694643@qq.com

0
回复
LSHNIU
LV.6
12
2013-06-06 19:32
@chen2011qian
你的程序成功了吗?如果成功了可以发来让小弟学习学习!1353694643@qq.com
就是修改了PWM和位声明部分,用开发板接流水灯中的2个灯会渐亮渐暗,没有做过样机,所以不知道能不能用,你自己看看吧,都在上面我贴出来的那里了。
0
回复
LSHNIU
LV.6
13
2013-06-06 20:17
@LSHNIU
就是修改了PWM和位声明部分,用开发板接流水灯中的2个灯会渐亮渐暗,没有做过样机,所以不知道能不能用,你自己看看吧,都在上面我贴出来的那里了。
尤大师的源程序我修改用STC12C5A60S2的目的是利用更多的IO口实现更多的扩展功能,比如按键,12864液晶18B20之类的,目前只是用单片机开发板连接流水灯中的2个LED会渐亮渐暗,其他没有去试,有兴趣的朋友可以自己试作或者扩展其他功能。以上只供参考!
0
回复
yinxiangtuo
LV.5
14
2013-06-06 21:44
@LSHNIU
尤大师的源程序我修改用STC12C5A60S2的目的是利用更多的IO口实现更多的扩展功能,比如按键,12864液晶18B20之类的,目前只是用单片机开发板连接流水灯中的2个LED会渐亮渐暗,其他没有去试,有兴趣的朋友可以自己试作或者扩展其他功能。以上只供参考!
STC12C5A60S2的RAM和ROM都比4052要大很多。我之前用4052实现串口液晶、测频、驱动、检测输入电压输出电压电流,加3个按键程序直接写爆了。各种优化太纠结了。不过两个片子的其他硬件资源都差不多的。大同小异。可以尝试用430或者STM32开发下。我觉得STM32的可行性更高一点,可以用软件实现死区,运算速度也更快,可以实现相位跟踪、MPPT这些一系列控制了。
0
回复
niyuan1990
LV.1
15
2013-08-23 19:46

尤的程序可以有四路pwm  60s只有两路 怎么破?

0
回复
2013-08-28 15:46
@niyuan1990
尤的程序可以有四路pwm 60s只有两路怎么破?
学习
0
回复
2014-05-24 16:24
@LSHNIU
看尤小翠大师的图纸是20管脚的STC12C5410AD的也只用到PWM0和PWM1功能,所以把源程序修改了下,不知道能不能用,还望各位大师多多指教。
你的程序可以用么,这上面有好多错误的    
0
回复
LSHNIU
LV.6
18
2014-05-24 19:29
@zww15281877925
你的程序可以用么,这上面有好多错误的  
不知道啊,我没有用过,我当时只是玩玩而已的!
0
回复