打印

求助 串口传送数据后 定时器不工作

[复制链接]
2111|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
909254|  楼主 | 2013-5-24 15:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
909254|  楼主 | 2013-5-24 15:29 | 只看该作者
/*****************************************************
*****功能:                单片机串口2取GPS时间经纬度等,然后通过GSM发送出去,同时显示发送出去的数据
                                串口1用于与GSM通信
*****单片机型号:        STC12C5A32S2
*****调试者:                启蒙电子
*****调试日期:                2010.10.21
*****************************************************/

#include<STC_NEW_8051.H>
#include <absacc.h>
#include <intrins.h>

#define uint unsigned int
#define uchar unsigned char
/****************************************************************************/
//128*64引脚定义,串行控制显示
sbit   RS    =  P2^6;   //此管脚没用
sbit   SID   =  P2^5;        //数据
sbit   SCLK  =  P1^1;        //时钟
sbit   PSB   =  P2^4;//0-串行,1-并行
#define comm  0
#define dat   1
#define x1    0x80
#define x2    0x88
#define y     0x80
#define comm  0
#define dat   1
//*****************************************************************//
sbit START_SIM=P1^4;        //启动SIM300的控制端
sbit Key_sendMes=P3^4;//发短信息键
sbit KEY2=P3^5;//phone
/*****GPS取数据变量参数定义*****/
uchar idata comma;//逗号变量存储
//////////以下4个数组最后一个作为0,字符串结束标志/////////
uchar idata Time[11];//时间hour-2 bytes, minute-2 bytes,second-6 bytes
uchar idata Data_YMD[7]; //日期
uchar idata Longitude[11];//经度
uchar idata Latitude[10];//纬度
uchar idata haoma[16];          //收到短信的手机号码
////////时分秒///////////////
uchar idata hour[3];//最后一个作为0,字符串结束标志,显示时使用
uchar idata minute[3];
uchar idata second[7];

////////日月年///////////////
uchar idata day[3];//最后一个作为0,字符串结束标志
uchar idata month[3];
uchar idata year[3];

////////////////////////////////////////////////////////////
uchar count_T,count_Lati,count_Longi,count_Data;//串口接收 时间 纬度 经度 日期 接收数组计数 接收到的短信号码计数
uchar haoma_k=0;
uchar duanxin_sz;//短信设置
uchar zhentou_t=0,jiahao_a=0,kcz=0,kcz2=0,kcz3=0,duanxin_neirong=0,neirong_a,neirong_b,neirong_c,duanxin_js=0;           //判断短信内容时的变量
uchar end_a,end_b,end_c;
uchar changdu=0;                 //经纬度长度计数                                                                                           //判断短信内容时的变量
uchar num_comma;//逗号计数
uchar dudouhao=0;//读短信逗号计数
uchar GPS_state;//GPS资料可用状态
uchar N_or_S,E_or_W;//半球标志数据存储
uchar frame_flag;//接收到帧头标志
uchar data_flag;//接收数据标志
uchar duanxin_flag=0;//接收短信代码标志
uchar haoma_flag=0;//接收短信的手机号码标志
uchar fasong_flag=0;//发送短信代码标志
uchar duduanxin_flag=0;//读短信代码标志
uchar faduanxin_flag=0;//发送 读短信代码 标志
uchar shezhi_flag=0;        //接受 “短信设置参数”        标志
uchar star_flag=0;// gps开始工作码标志
uchar shanduanxin_flag=0;// 删短信 标志
uchar Frame_header[5];
uchar duanxin_tishi[5];         //短信提示帧头存放数组
uchar overflow_count;//定时器0溢出中断计数

//////////////GSM使用////////////////////////////////////////
uchar code PhoneCall[]={"ATD15846613967;"};//打电话数据
uchar code TxtMode[9]={"AT+CMGF=1"}; //AT+CMGF=1短信模式设置Text模式;AT+CMGF=0PDU模式
uchar code duanxintishi[17]={"AT+CNMI=2,1,0,0,0"}; //短信提醒模式设置
uchar code MessCom_PhoneNum[21]={"AT+CMGS=\"13654545434\""};//发送短信AT指令头+接收短信号码
uchar code CenterNum[24]={"AT+CSCA=\"+8613800451500\""};//24个数(短信息中心号码设置)格式:\位转义字符,将""转移成字符
uchar code RecNum[11]={"13654545434"};//11个数(短信接收手机号码设置)
uchar code message[6] = {"Heoaa!"};//发送的短信内容
uchar code huixian[4] = {"ATE0"};//关 回显 代码
uchar code AT[2]={"AT"};         //联机命令
uchar code Enter[1]={0x0D};//回车键"\r"
uchar code duduanxin[9]={"AT+CMGR=1"}; //读短信命令
uchar code shanduanxin[9]={"AT+CMGD=1"}; //删短信命令
//uchar idata send_data[11]={0x41,0x42,0x43,0x44,0x45,0x46,0x35,0x36,0x37,0x38,0};
uchar idata Frequency[5]={0x35,0x30,0x2E,0x30,0x30};//测试使用
uchar idata Voltage[6]={0x32,0x32,0x35,0x2E,0x36,0x30};
/****************************************************************************/
//函数声明
void lcm_w_word(uchar addr,unsigned char *str) ;  //写字符  例:lcm_w_word("您好!");
void lcm_w_test(bit start,unsigned char ddata);  //(0,指令) (1,数据)
void lcm_w_byte(unsigned char bbyte);  //写一个字节给lcm
void lcm_w_char(unsigned char add,unsigned char value);  //写一个字符给lcm
void delaynms(unsigned int di);  //延时
void lcm_init(void); //lcm初始化
void lcm_clr(void);  //清屏
delay_Xms(uint t)
{
        uint i,j;
          for(i=t;i>0;i--)
             for(j=920;j>0;j--);//89:113;12:920
}
/**************串口1程序**********/
void serial_port_one_initial()//初始化串口
{
  EA=0;
  ES=0;
  TMOD=0x21;
  TH1=0xfd;// 波特率9600 11.0592M
  TL1=0xfd;
  PCON=0x00;
  SCON=0x50;//方式1,10位(1起始8数据1停止),允许接受
  TR1=0x01;//启动定时器
  EA=1;
  ES=1;
}
/*********串口发送程序*********************
bb为数据缓冲区,count为要发送的字节数
******************************************/
void sendSer_one(uchar *bb,uchar count)
{
  uchar i;
  TI=0;
  for(i=0;i<count;i++)
  {
    TI=0;
    SBUF=bb[i];
    while(!TI)
      _nop_();
  }
}
/*******************************************************/
Send_Char(uchar ch)//串口1发送单个字符
{
        ES = 0;
        SBUF = ch; //送入缓冲区
        while(TI == 0); //等待发送完毕
        TI = 0; //软件清零
        ES = 1;
}
Send_Str(uchar * str,uint len)//串口1发送字符串,调用Send_Char() len字符串长度
{
        while(len--)
        {
                Send_Char(*str++);
    }

}

//串口接收中断函数  
void recv_serial_one() interrupt 4 using 1
{

        uchar temp=0;
        RI=0;//清除标志位
        if(shezhi_flag==1)
        {
                shezhi_flag=0;
                duduanxin_flag=0;
                duanxin_sz=SBUF;
        //        Send_Char(duanxin_sz);
                star_flag=1;//开始工作
                shanduanxin_flag=1;
                                       
        }       

        if(duduanxin_flag==0)
        {
                //第一位
                if(SBUF==0X2B && zhentou_t==0)
                {
                        jiahao_a=1;//判断是否接到 “+”
                        duanxin_tishi[zhentou_t] = SBUF;
                        zhentou_t++;
       
                }
                //第二位
                if(jiahao_a==1 && zhentou_t==1 && SBUF==0x43 )
                {
                        duanxin_tishi[zhentou_t] = SBUF;
                        zhentou_t++;
                }
                //第三位
                if(jiahao_a==1 && zhentou_t==2 && SBUF==0x4D )
                {
                        duanxin_tishi[zhentou_t] = SBUF;
                        zhentou_t++;
                }
                //第四位
                if(jiahao_a==1 && zhentou_t==3 && SBUF==0x54 )
                {
                        duanxin_tishi[zhentou_t] = SBUF;
                        zhentou_t++;
                }
                //第五位
                if(jiahao_a==1 && zhentou_t==4 && SBUF==0x49 )
                {
                        duanxin_tishi[zhentou_t] = SBUF;
                }

                 ////判断收到的帧头是否是 +CMTI        *****
                if((duanxin_tishi[0]==0x2B)&&(duanxin_tishi[1]==0x43)&&(duanxin_tishi[2]==0x4D)&&(duanxin_tishi[3]==0x54)&&(duanxin_tishi[4]==0x49))
                {
                        if(kcz<8)
                        {       
                                kcz++;        //空操作
                        }
                        else
                        {
                                kcz=0;
                                duanxin_tishi[0]=0;
                                duanxin_tishi[1]=0;
                                duanxin_tishi[2]=0;
                                duanxin_tishi[3]=0;
                                duanxin_tishi[4]=0;
                                faduanxin_flag=1;//发送 读短信代码  标志
                                duduanxin_flag=1;       
                                zhentou_t=0;
                        }
                }
        }
        if(duduanxin_flag==1)
        {
               
                if(dudouhao==1)
                {         
                       
                        haoma[haoma_k] = SBUF;  
                        haoma_k++;
                }
                if(dudouhao==4)        //如果接到4个“逗号" 清零
                {
                        kcz2++;         //空操作
                        if(kcz2==15)
                        {
                                kcz2=0;
                                dudouhao=0;
                                haoma_k=0;
                                duanxin_neirong=1;                               
                        }
                               
                }
       
               
                if(duanxin_neirong==1)
                {
                        duanxin_js++;
                        if(duanxin_js==1)
                        {         
                                if(SBUF==0x21)//如果接收到 感叹号 “!” -ASCCII码0x21
                                {
                                        neirong_a=1;
                                        end_a=1;
                                }
                                else
                                {         
                                        duanxin_js=0;
                                        duduanxin_flag=0;
                                        duanxin_neirong=0;
                                        shanduanxin_flag=1;        //垃圾短信删掉
                                }
                        }
                        if(neirong_a==1 )
                        {
                               
                                if(SBUF==0x73)                 //"s"
                                {
                                        neirong_b=1;                                       
                                }
                                if(neirong_b==1 )
                                {
                                        if(SBUF==0x74)         //"t"
                                        {
                                                duanxin_js=0;
                                                duanxin_neirong=0;
                                                neirong_a=0;
                                                neirong_b=0;
                                                neirong_c=0;
                                                shezhi_flag=1; //接收 “短信设置参数”        标志
                                        }       
                                                          
                                       
                                }
                        }
                        if(end_a==1)
                        {
                                if(SBUF==0x65)        // "e"
                                {
                                        end_b=1;
                                }
                                if(end_b==1)
                                {
                                        if(SBUF==0x6E)        //"n"
                                        {
                                                end_c=1;
                                        }
                                }
                                if(end_c==1)
                                {
                                        if(SBUF==0x64)           //"d"
                                        {
                                                end_a=0;
                                                end_b=0;
                                                end_c=0;
                                                duduanxin_flag=0;
                                                Send_Char('u');
                                                shanduanxin_flag=1;
                                        }
                                }
                        }
                }
               
                if(SBUF==0x2C)//帧起始符号 "逗号" -ASCCII码0x2c
                {
                        dudouhao++;//逗号计数加1
                       
                }
               
       
        }

/*        if(jiahao_a==1)
        {
                if(zhentou_t<5)
                {
                        duanxin_tishi[zhentou_t] = SBUF;        //接收短信提示帧头
                        zhentou_t++;
                }
                if(zhentou_t==5)
                {
                        jiahao_a=0;
                         ////判断收到的帧头是否是 +CMTI        *****
                        if((duanxin_tishi[0]==0x2B)&&(duanxin_tishi[1]==0x43)&&(duanxin_tishi[2]==0x4D)&&(duanxin_tishi[3]==0x54)&&(duanxin_tishi[4]==0x49))
                        {
                                faduanxin_flag=1;//发送 读短信代码  标志
                       
                                zhentou_t=0;
                        }
                        //**********判断收到的帧头是否是  +CMGR          *********************
                        if((duanxin_tishi[0]==0x2B)&&(duanxin_tishi[1]==0x43)&&(duanxin_tishi[2]==0x4D)&&(duanxin_tishi[3]==0x47)&&(duanxin_tishi[4]==0x52))
                        {
                                zhentou_t=0;
                        //        duduanxin_flag=1;
                                Send_Char('s');       
                                               
                        }
                }
                       
        }

       
       
/*       
        if(duduanxin_flag==1)
        {
                if(dudouhao==1)
                {
                        haoma[haoma_k] = SBUF;  
                        haoma_k++;
                }
                if(dudouhao>=4)        //如果接到4个“逗号" 清零
                {
                        dudouhao=0;
               
                        haoma_k=0;
                        t=0;
                }
                if(duanxin_flag==1)//开始接收短内容代码       
                {                            
                        if(SBUF==0x73)                 //"s"
                        {
                                temp=1;
                        }                         
                        if(temp==1)
                        {
                                if(SBUF==0x74)         //"t"
                                {
                                        star_flag=1 ;//gps开始工作标志位
                                        duanxin_flag=0;
                                        duduanxin_flag=0;
                                        temp=0;
                                }                                               
                        }                       
                }
                if(SBUF==0x2C)//帧起始符号 "逗号" -ASCCII码0x2c
                {
                        dudouhao++;//逗号计数加1
                }
                if(SBUF==0x21)//如果接收到 感叹号 “!” -ASCCII码0x21
                {
                        duanxin_flag = 1;
                       
                }
        }*/                                                               
//   else
//   {
//            TI = 0;
//   }
}

//串口查询接收函数
/*uchar recvSer()
{
        uchar dat;
          RI=0x00;
          while(!RI)
          {
                  _nop_();
                 
          }
          dat=SBUF;
          return(dat);      
}*/
/*************************************************************/


/**********************GSM/GPRS模块程序**********************************/

start_SIM300()  //启动SIM300的函数
{
        START_SIM=1;//启动SIM300
        delay_Xms(2800);// 时间必须大于1500ms
        START_SIM=0;//完成启动 //此后一直保持高电平
}
void GSM_AT()        //发"AT"的函数       
{   
     Send_Str(AT,2);
     Send_Char('\r'); //以回车作为结束符号,手机才能识别
     ES=1;
     delay_Xms(100); //延时
}

/***************************短信**********************************/
void GSM_huixian() //ATE0         关闭 回显
{   
     Send_Str(huixian,4);
     Send_Char('\r');
     ES=1;
     delay_Xms(1000);
}
void GSM_TXT() //发送AT+cmgf=1         设置短信模式Text
{   
     Send_Str(TxtMode,9);
     Send_Char('\r');
     ES=1;
     delay_Xms(1000);
}
void GSM_tishi() //发送AT+CNMI=2,1,0,0,0         设置来短信提示模式
{   
     Send_Str(duanxintishi,17);
     Send_Char('\r');
     ES=1;
     delay_Xms(1000);
}
void GSM_CMGS()         //发送AT+cmgs=                (发短信的命令)
{   
     Send_Str(MessCom_PhoneNum,21);
     Send_Char('\r');
     ES=1;
     delay_Xms(100);   
}
void Mess_PhoneNum()//设置短信接收手机号码
{
        Send_Str(RecNum,11);
        delay_Xms(100);
}

void center_num()  //发中心号码
{
        Send_Str(CenterNum,24);
        Send_Char('\r');
        delay_Xms(100);
}
void Text_message()      ////短信内容message[]
{
        //Send_Str(message,6);
        //Send_Str(send_data,10);
        /*day[0] = ddata/10+0x30;//日
        day[1] = ddata%10+0x30;
        month[0] = mmonth/10+0x30;//月
        month[1] = mmonth%10+0x30;
        year[0] = yyear/10+0x30;//年
        year[1] = yyear%10+0x30;
        hour[0] = T_hour/10+0x30;//时
        hour[1] = T_hour%10+0x30;
        minute[0] = Time[2];//分
        minute[1] = Time[3];
        for(i=0;i<6;i++)        //秒               
                second[i] = Time[i+4];
        //////////////经纬度///////////////
        lcm_w_word(0x88,Latitude);//显示纬度
        lcm_w_char(0x8E,N_or_S);//lcm_w_test(1,N_or_S);//北南半球
        lcm_w_char(0x8F,GPS_state);//lcm_w_test(1,GPS_state);//显示GPS资料状态A-可用 V-不可用
        lcm_w_word(0x98,Longitude);//显示经度
        lcm_w_char(0x9E,E_or_W);//lcm_w_test(1,);//东西半球       
                 
//        Send_Str(Voltage,6);
//        Send_Str(Frequency,5);
//        Send_Str(hour,2);
//        Send_Str(minute,2);
//        Send_Str(second,6);
//        Send_Str(year,2);
//        Send_Str(month,2);
//        Send_Str(day,2);        */
        Send_Char(duanxin_sz);
        Send_Str(haoma,16);//测试
//        Send_Char(changdu);
        Send_Str(Latitude,9);//纬度
        Send_Char(N_or_S);
        Send_Str(Longitude,10);//经度
        Send_Char(E_or_W);       
        Send_Char(0x1a);  //发送结束标志位(CTRL+Z        )
        delay_Xms(1000);
}       

void GSM_duduanxin() //读短信
{   
     Send_Str(duduanxin,9);
     Send_Char('\r');
     ES=1;
     delay_Xms(1000);
}
void GSM_shanduanxin() //删短信位置1
{   
     Send_Str(shanduanxin,9);
     Send_Char('\r');
     ES=1;
     delay_Xms(1000);
}
/**********************拨号的程序*********************************/
void phone()
{  
     Send_Str(PhoneCall,15);//{"ATD15846613967;"};//打电话数据
     Send_Char('\r');
     ES=1;
     delay_Xms(5000);
     delay_Xms(5000);
}


/**********************串口2程序*******************************/
void serial_port_two_initial()//初始化串口2
{
          // 波特率9600 11.0592M
          EA = 0;
        S2CON|= 0x50;//方式1,10位(1起始8数据1停止),允许串口2接收
          BRT  = 0xFD;//设置独立波特率发生器 BRT 的自动重装数
        AUXR|= 0x10;//BRTR位=1启用独立波特率发生器
        AUXR1= 0x00;
        IE2  = 0x01;//开串口2中断ES2=1;
        EA   = 1;//开总中断
}

使用特权

评论回复
板凳
909254|  楼主 | 2013-5-24 15:31 | 只看该作者
void send_UART_two(unsigned char value)
{
        uchar temp = 0;
        IE2 = 0x00;//关中断
        S2CON = S2CON & 0xFD;//B'11111101清零中断2完成发送中断请求标志位S2TI
        S2BUF = value;
        do
        {
                temp = S2CON;
                temp = temp & 0x02;
        }while(temp==0);//等待发送完一个字节
       
        S2CON = S2CON & 0xFD;//B'11111101清零中断2完成发送中断请求标志位S2TI
        IE2  = 0x01;//开串口2中断,ES2=1;
}
//串口接收中断函数  
void recv_serial_two() interrupt 8 using 0
{
        uchar temp =0;
        //IE2 = 0x00;//关中断       
        temp = S2CON;
        temp = temp & 0x01;
        //if(S2RI==1)
        if(temp==1)
        {
                S2CON = S2CON & 0xFE;//11111110清除标志位S2RI
                if(S2BUF==0x24)//帧起始符号$-ASCCII码0x24
                {
                        IE2 = 0x00;//关中断,去接收帧头
                        frame_flag = 1;
                }
                if(data_flag==1)//开始接收时间经纬度等数据
                {
                        if(S2BUF==0x2C)//判断是否收到逗号','
                        {
                                num_comma++;//逗号计数加1
                        }
                        if(S2BUF!=0x2C)//从逗号的下一个字节开始接收时间数据
                        {       
                                switch(num_comma)
                                {
                                        case 1:
                                                Time[count_T] = S2BUF;
                                                count_T++;
                                            break;
                                        case 2:
                                                GPS_state = S2BUF;//A(0x41)-GPS资料可用,V(0x56)-资料不可用
                                                break;
                                            case 3:
                                                Latitude[count_Lati] = S2BUF;//纬度
                                                count_Lati++;
                                                break;
                                            case 4:
                                                    N_or_S = S2BUF;//北半球还是南半球N(0x4E),S(0x53)
                                                break;
                                            case 5:
                                                    Longitude[count_Longi] = S2BUF;//经度
                                                count_Longi++;
                                                changdu++;    //经度长度计数
                                            break;
                                        case 6:
                                                E_or_W = S2BUF;//东半球还是西半球E(0x45),W(0x57)
                                            break;
                                        case 9:
                                                Data_YMD[count_Data] = S2BUF;//日期
                                                count_Data++;
                                            break;
                                        default:break;
                                       
                                }
                        }
                        else
                        {       
                                comma = S2BUF;//0x2C
                        }
                       
                        if(S2BUF==0x2A)//判断是否有‘*’符号
                        {        //接收数据结束
                                IE2 = 0x00;//关串行中断
                                data_flag = 0;
                                frame_flag = 0;
                                count_T = 0;//数据存入计数清零
                                count_Lati = 0;
                                count_Longi = 0;
                                count_Data = 0;
                                num_comma = 0;
                               
                        }
                }
            else
            {
                    S2CON = S2CON & 0xFD;//B'11111101清除标志位S2TI
            }
            //IE2 = 0x01;//开中断
        }

}


void timer0() interrupt 1 using 2 //定时50ms
{
        TH0=(65536-46080)/256;        //重载计数初值
        TL0=(65536-46080)%256;
        overflow_count++;//溢出计数加1
}
//*************************LCD串行工作方式程序*********************************/
/******************************************************************************/
//延时(LCM占用)
void delaynms(unsigned int di) {
        unsigned int da,db;
        for(da=0;da<di;da++);
                   for(db=0;db<10;db++);
}
/****************************************************************************/
//初始化LCM
void lcm_init(void)         {
        delaynms(100); //启动等待,等LCM讲入工作状态
          lcm_w_test(0,0x30);  //8 位介面,基本指令集
          lcm_w_test(0,0x0c);  //显示打开,光标关,反白关
          lcm_w_test(0,0x01);  //清屏,将DDRAM的地址计数器归零
        delaynms(100); //启动等待,等LCM讲入工作状态
}
/******************************************************************************/
//写指令或数据  (0,指令) (1,数据)
void lcm_w_test(bit start, unsigned char ddata) {
        unsigned char start_data,Hdata,Ldata;
          if(start==0)
                start_data=0xf8;         //0:写指令
    else   
            start_data=0xfa;  //1:写数据
  
          Hdata=ddata&0xf0;                  //取高四位
          Ldata=(ddata<<4)&0xf0;  //取低四位
          lcm_w_byte(start_data);          //发送起始信号
          delaynms(5); //延时是必须的
          lcm_w_byte(Hdata);              //发送高四位
          delaynms(5);  //延时是必须的
          lcm_w_byte(Ldata);                  //发送低四位
          delaynms(5);  //延时是必须的
}

/******************************************************************************/
//发送一个字节(底层函数)
void lcm_w_byte(unsigned char bbyte) {
        unsigned char i;
        for(i=0;i<8;i++){
                   SID=bbyte&0x80; //取出最高位
                SCLK=1;
                   SCLK=0;
                   bbyte<<=1; //左移
           }  
}

       
/*****************************************************************************/
//清屏函数
void lcm_clr(void){
        lcm_w_test(0,0x01);
        delaynms(40); //启动等待,等LCM讲入工作状态

}
/*****************************************************************************/
//向LCM发送一个字符串,长度64字符之内。
//应用:lcm_w_word(0x80,"您好!");
void lcm_w_word(uchar addr,unsigned char *str)
{
        lcm_w_test(0,addr);//写入显示地址
        while(*str != '\0')
        {
                lcm_w_test(1,*str++);
        }
                *str = 0;
}
/*****************************************************************************/
//向LCM发送一个字节数据
//应用:lcm_w_char(0x80,0x41);//向80H显示字符A
/**********************************************
add:字符的起始位置,范围为80到9F()
value:指向要显示的字符指针
***********************************************/
void lcm_w_char(uchar add,uchar value)
{
        lcm_w_test(0,add);//写入起始地址
        lcm_w_test(1,value);
}
////////////////////////////////

使用特权

评论回复
地板
ayb_ice| | 2013-5-24 15:36 | 只看该作者
看这段程序,问题多多
   if(jiahao_a==1 && zhentou_t==4 && SBUF==0x49 )
                {
                        duanxin_tishi[zhentou_t] = SBUF;
                }

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

1

粉丝