找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2766|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

用單片機(jī)開發(fā)板做了個定時發(fā)送命令程序,有些疑問調(diào)不通

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:4021 發(fā)表于 2018-9-30 14:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 shui206 于 2018-9-30 15:59 編輯

本人是一個電力從業(yè)者,主業(yè)為強(qiáng)電,最近想做一個小設(shè)備,用51單片機(jī)加四個按鍵和6位共陰極數(shù)碼管
要求功能是,用定時器中斷在設(shè)定的時間,循環(huán)發(fā)送一個分閘脈沖命令  延時后再發(fā)送合閘命令,一次循環(huán)后計數(shù)加1;
分閘和合閘脈沖的延時時間可調(diào),并且在按下設(shè)置按鍵后,數(shù)碼管分別用3位顯示分閘設(shè)定時間,3位顯示合閘設(shè)定時間并且循環(huán)先停止
時間可以加減,
在常規(guī)循環(huán)發(fā)送分 合閘命令時  顯示的是循環(huán)次數(shù)
程序?qū)懥撕,循環(huán)信號暫停,但是顯示的還是循環(huán)次數(shù),本人是野路子  程序貼出來大家俅俅,有時間的幫看下
//程序功能包含分合閘脈沖輸出,延時時間可調(diào),及每次輸出一輪分合閘信號,計數(shù)。
//程序設(shè)置參數(shù)時 分合閘脈沖輸出暫停

單片機(jī)源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit hout=P1^0;  //合閘信號輸出
  5. sbit fout=P1^2;  //分閘信號輸出
  6. sbit seth=P1^1;  //分閘延時時間設(shè)置時指示
  7. sbit setf=P1^3;   //合閘延時時間設(shè)置指示
  8. sbit run=P1^7;    //運行指示燈
  9. sbit s1=P3^2;  //設(shè)置鍵,外部中斷位
  10. sbit s2=P3^5;  //減少鍵
  11. sbit s3=P3^6;   //增加鍵
  12. sbit s4=P3^7;   //清零鍵
  13. sbit dula=P2^6;      //段選
  14. sbit wela=P2^7;    //位選
  15. sbit beep=P2^3;  //蜂鳴器

  16. uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};    //數(shù)碼管顯示數(shù)字
  17. uchar code tablewei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};  //六位數(shù)碼管位選信號

  18. uchar count1,count2,s1num,numsetf,numseth,miaof,miaoh;
  19. uint numdis;  //定義循環(huán)次數(shù)
  20. void delayms(uchar z)  //12M晶振延時毫秒函數(shù)
  21. {
  22. uint x,y;
  23. for(x=z;x>0;x--)
  24.      for(y=123;y>0;y--);
  25. }

  26. //void delay(uchar z)  //12M晶振時秒函數(shù)
  27. //{
  28. // uint x,y,w;
  29. //for(x=z;x>0;x--)
  30.   //   for(y=123;y>0;y--)
  31. //            for(w=10;y>0;y--);

  32. //}

  33. void di()   //蜂鳴器發(fā)聲函數(shù)
  34. {
  35.   beep=0;
  36.   delayms(100);
  37.   beep=1;
  38. }

  39. void display(uint numdis) //顯示次數(shù)函數(shù)
  40. {
  41.   uchar wan,qian,bai,shi,ge;
  42.   wan=numdis/10000;
  43.   qian=numdis%10000/1000;
  44.   bai=numdis%1000/100;
  45.   shi=numdis%100/10;
  46.   ge=numdis%10;

  47.   dula=1;
  48.   P0=table[wan];
  49.   dula=0;
  50.   P0=0xff;
  51.   wela=1;
  52.   P0=tablewei[1];
  53.   wela=0;
  54.   delayms(5);

  55.   dula=1;
  56.   P0=table[qian];
  57.   dula=0;
  58.   P0=0xff;
  59.   wela=1;
  60.   P0=tablewei[2];
  61.   wela=0;
  62.   delayms(5);

  63.   dula=1;
  64.   P0=table[bai];
  65.   dula=0;
  66.   P0=0xff;
  67.   wela=1;
  68.   P0=tablewei[3];
  69.   wela=0;
  70.   delayms(5);

  71.   dula=1;
  72.   P0=table[shi];
  73.   dula=0;
  74.   P0=0xff;
  75.   wela=1;
  76.   P0=tablewei[4];
  77.   wela=0;
  78.   delayms(5);

  79.   dula=1;
  80.   P0=table[ge];
  81.   dula=0;
  82.   P0=0xff;
  83.   wela=1;
  84.   P0=tablewei[5];
  85.   wela=0;
  86.   delayms(5);
  87. }

  88. void display_setf(uchar numsettf) //顯示設(shè)置分閘延時時間的函數(shù)
  89. {
  90.   uchar bai,shi,ge;
  91.   bai=numsettf%1000/100;
  92.   shi=numsettf%100/10;
  93.   ge=numsettf%10;

  94.   dula=1;
  95.   P0=table[bai];
  96.   dula=0;
  97.   P0=0xff;
  98.   wela=1;
  99.   P0=tablewei[3];
  100.   wela=0;
  101.   delayms(5);

  102.   dula=1;
  103.   P0=table[shi];
  104.   dula=0;
  105.   P0=0xff;
  106.   wela=1;
  107.   P0=tablewei[4];
  108.   wela=0;
  109.   delayms(5);

  110.   dula=1;
  111.   P0=table[ge];
  112.   dula=0;
  113.   P0=0xff;
  114.   wela=1;
  115.   P0=tablewei[5];
  116.   wela=0;
  117.   delayms(5);
  118. }

  119. void display_seth(uchar numsetth) //顯示設(shè)置合閘延時時間的函數(shù)
  120. {
  121.   uchar bai,shi,ge;
  122.   shi=numsetth%100/10;
  123.   bai=numsetth%1000/100;
  124.   ge=numsetth%10;

  125.   dula=1;
  126.   P0=table[bai];
  127.   dula=0;
  128.   P0=0xff;
  129.   wela=1;
  130.   P0=tablewei[0];
  131.   wela=0;
  132.   delayms(5);

  133.   dula=1;
  134.   P0=table[shi];
  135.   dula=0;
  136.   P0=0xff;
  137.   wela=1;
  138.   P0=tablewei[1];
  139.   wela=0;
  140.   delayms(5);

  141.   dula=1;
  142.   P0=table[ge];
  143.   dula=0;
  144.   P0=0xff;
  145.   wela=1;
  146.   P0=tablewei[2];
  147.   wela=0;
  148.   delayms(5);
  149. }



  150. void keyscan()   //按鍵掃描函數(shù)
  151. {
  152.   if(s1==0)     
  153.    {
  154.      delayms(5);
  155.          if(s1==0)     //設(shè)置鍵啟動
  156.              {
  157.        s1num++;
  158.            run=1;
  159.            while(!s1);
  160.            di();
  161.            if(s1num==1)  //按一次設(shè)置鍵
  162.                {
  163.                  TR0=0;
  164.                  TR1=0;
  165.                  setf=0;       //分閘延時設(shè)置指示
  166.                  seth=1;   
  167.                  }
  168.        if(s1num==2)   //按兩次設(shè)置鍵
  169.                 {
  170.                   setf=1;
  171.                   seth=0;
  172.                   }
  173.        if(s1num==3)    //按三次設(shè)置鍵
  174.                 {
  175.                   s1num=0;   //設(shè)置按鍵計數(shù)清零
  176.                   display(numdis);   
  177.                   run=0;
  178.                   setf=1;
  179.                   seth=1;
  180.                   TR0=1;
  181.                 }
  182.           }
  183.    }
  184.   if(s1num!=0)
  185.    {
  186.       if(s2==0)
  187.         {
  188.            delayms(5);
  189.            if(s2==0)
  190.              {
  191.                   while(!s2);
  192.                   di();
  193.                   if(s1num==1)
  194.                    {
  195.                      display_setf(numsetf);   //顯示實時分閘延時時間
  196.                      numsetf++;               
  197.                      if(numsetf==201)
  198.                               numsetf=0;   //分閘延時最長200秒清零   
  199.                     }
  200.               if(s1num==2)
  201.                     {
  202.                       display_seth(numseth);   //顯示實時合閘延時時間
  203.                       numseth++;               
  204.                       if(numseth==201)
  205.                       numseth=0;   //合閘延時最長200秒清零
  206.                       }
  207.              }
  208.          }  
  209.        if(s3==0)
  210.            {
  211.               delayms(5);
  212.                if(s3==0)
  213.                  {
  214.                     while(!s3);
  215.                     di();
  216.                    if(s1num==1)
  217.                       {
  218.                         display_setf(numsetf);    //顯示實時分閘延時時間
  219.                         numsetf--;               
  220.                         if(numsetf==0)
  221.                         numsetf=200;   //分閘延時最長200秒清零   
  222.                        }
  223.                    if(s1num==2)
  224.                        {
  225.                         display_seth(numseth);   //顯示實時合閘延時時間
  226.                         numseth++;               
  227.                         if(numseth==0)
  228.                         numseth=200;   //合閘延時最長200秒清零
  229.                   }
  230.               }
  231.           }  
  232.        if(s4==0)
  233.             {
  234.              delayms(5);
  235.              if(s4==0)   
  236.              numdis=0;   //循環(huán)計數(shù)清零
  237.               }
  238.    }

  239. }

  240. void init()//初始化函數(shù)
  241. {
  242.     numdis=0;
  243.     numsetf=45;
  244.     numseth=45;
  245.     count1=0;
  246.         count2=0;
  247.         miaof=0;
  248.         miaoh=0;
  249.         fout=1;
  250.         hout=1;
  251.         run=0;
  252.         setf=1;
  253.         seth=1;
  254.         TMOD=0x11;
  255.         TH0=(65536-50000)/256;
  256.         TL0=(65536-50000)%256;
  257.         EA=1;   //打開總中斷
  258.         ET0=1;
  259.     ET1=1;
  260.         TR0=1;
  261.     TR1=0;
  262. }



  263. void main()   //主函數(shù)
  264. {
  265. init();
  266. while(1)
  267.   {
  268.   keyscan();
  269.   display(numdis);
  270.   }

  271. }




  272. void T0_time() interrupt 1
  273. {
  274.         TH0=(65536-45872)/256;
  275.         TL0=(65536-45872)%256;
  276.         count1++;
  277.     if(count1==2)
  278.                 {
  279.                         count1=0;
  280.                         miaof++;
  281.                         if(miaof==numsetf)  
  282.                    {
  283.                             miaof=0;
  284.                      fout=0;
  285.                          delayms(200);
  286.              fout=1;
  287.                          TR0=0;
  288.              TR1=1;         
  289.                     }
  290.                 }      
  291. }

  292. void T1_time() interrupt 3
  293. {
  294.         TH1=(65536-45872)/256;
  295.         TL1=(65536-45872)%256;
  296.         count2++;
  297.     if(count2==2)
  298.                 {
  299.                         count2=0;
  300.                         miaoh++;
  301.                         if(miaoh==numseth)  
  302.                    {
  303.                             miaoh=0;
  304.                      hout=0;
  305.                          delayms(200);
  306.              hout=1;
  307.                      numdis++;  
  308.                    TR0=1;
  309.                          TR1=0;
  310.                     }
  311.                 }      
  312. }
復(fù)制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:387733 發(fā)表于 2018-9-30 19:37 | 只看該作者
keyscan函數(shù)中顯示的內(nèi)容,到主循環(huán)立即被循環(huán)次數(shù)替代了。
建議去掉 keyscan()中的顯示語句,定義一個變量 xianshi, 設(shè)置合閘時, xianshi=1,設(shè)置分閘時,xianshi=2,正常工作時,xianshi=0,然后在主循環(huán)中,根據(jù)變量 xianshi 的值,分別調(diào)用三個不同的顯示程序。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2018-10-1 15:43 | 只看該作者
給你把程序框架調(diào)整了并優(yōu)化了顯示程序,用計數(shù)法代替軟件延時,在TX-1C實驗板上驗證無誤。算是送你的國慶節(jié)禮物。

//程序功能包含分合閘脈沖輸出,延時時間可調(diào),及每次輸出一輪分合閘信號,計數(shù)。
//程序設(shè)置參數(shù)時 分合閘脈沖輸出暫停*/
//S1鍵調(diào)整選擇,S2鍵+,長按連+,S3鍵-,長按連-,S4計數(shù)清0

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define key_S 20                //宏定義短按時間(約20ms)消抖
#define key_L 300        //宏定義長按時間(約2/3s)
#define key_M 150        //宏定義長按間隔(約1/3s)
sbit hout=P1^0;  //合閘信號輸出
sbit seth=P1^1;  //合閘延時時間設(shè)置指示
sbit fout=P1^2;  //分閘信號輸出
sbit setf=P1^3;  //分閘延時時間設(shè)置指示
sbit run=P1^7;    //運行指示燈
sbit s1=P3^4;  //設(shè)置鍵
sbit s2=P3^5;  //增加鍵
sbit s3=P3^6;   //減少鍵
sbit s4=P3^7;   //清零鍵
sbit dula=P2^6;      //段選
sbit wela=P2^7;    //位選
sbit beep=P2^3;  //蜂鳴器

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x39};//數(shù)碼管顯示數(shù)字
uchar code tablewei[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};  //六位數(shù)碼管位選信號
uchar data dis_buf[6];//循環(huán)次數(shù)顯示緩存
uchar data dis_fh[6];//分合時間設(shè)置顯示緩存
uchar s1num=0,numsetf,numseth,miaof,miaoh;
uint count=0;
uint numdis;  //定義循環(huán)次數(shù)
bit beep_sign=0;//蜂鳴器使能標(biāo)志
bit sec_sign=0;//秒標(biāo)志
bit half_sign=0;//半秒標(biāo)志
bit fh_sign=0;//分合標(biāo)志

void init()//初始化函數(shù)
{
        numdis=0;                //循環(huán)次數(shù)
        numsetf=45;                //分閘設(shè)定初始時間
        numseth=45;                //合閘設(shè)定初始時間
        run=0;                          //運行指示燈亮
        miaof=numsetf;
        miaoh=numseth;
        TMOD= 0x01;                //設(shè)置定時器模式
        TH0 = 0xFC;                //設(shè)置定時初值 1毫秒@11.0592MHz
        TL0 = 0x66;                //設(shè)置定時初值
        TR0 = 1;                        //定時器0開始計時
        EA=1;                                //開總中斷
        ET0=1;                        //開T0中斷
}

void keyscan()   //按鍵掃描函數(shù)
{
        static bit key1_sign,key4_sign;                        //按鍵自鎖標(biāo)志
        static uint count_1,count_2,count_3=0,count_4=0;//消抖計數(shù)變量
        if(s1==0)     
        {
                count_1++;
                if((count_1>=key_S)&&(key1_sign==0))     //設(shè)置鍵啟動
                {
                        key1_sign=1;                        //按鍵1自鎖標(biāo)志置1
                        s1num++;
                        run=1;                   //運行指示燈熄滅
                        if(s1num==1)  //按一次設(shè)置鍵
                        {
                                setf=0;       //分閘延時設(shè)置指示
                                seth=1;   
                        }
                        if(s1num==2)   //按兩次設(shè)置鍵
                        {
                                setf=1;
                                seth=0;       //合閘延時設(shè)置指示
                        }
                        if(s1num==3)    //按三次設(shè)置鍵
                        {
                                s1num=0;   //設(shè)置按鍵計數(shù)清零  
                                run=0;                //運行指示燈亮
                                setf=1;
                                seth=1;
                                miaof=numsetf;
                                miaoh=numseth;
                        }
                        beep_sign=1; //提示音
                }
        }
        else
        {
                key1_sign=0;                                //按鍵1自鎖標(biāo)志清0
                count_1=0;                                        //消抖計數(shù)count1清0
        }
        if(s1num!=0)
        {
                if(s2==0)
                {
                        count_2++;
                        if(count_2>=key_L)                        //長按快調(diào)
                        {
                                if(s1num==1)
                                {
                                        if(numsetf<200)
                                                numsetf++;                  
                                }
                                if(s1num==2)
                                {
                                        if(numseth<200)
                                                numseth++;               
                                }
                                count_2=key_M;
                                beep_sign=1; //提示音
                        }
                }  
                else                                                        //按鍵抬起
                {  
                        if(count_2>key_S && count_2<key_L)//短按
                        {
                                if(s1num==1)
                                {
                                        if(numsetf<200)
                                                numsetf++;                  
                                }
                                if(s1num==2)
                                {
                                        if(numseth<200)
                                                numseth++;               
                                }
                                beep_sign=1; //提示音
                        }
                        count_2=0;                                        //count_2清0
                }

                if(s3==0)
                {
                        count_3++;
                        if(count_3>=key_L)                        //長按
                        {
                                if(s1num==1)
                                {
                                        if(numsetf>0)
                                                numsetf--;                  
                                }
                                if(s1num==2)
                                {
                                        if(numseth>0)
                                                numseth--;
                                }
                                count_3=key_M;
                                beep_sign=1; //提示音
                        }
                }  
                else                                                        //按鍵抬起
                {  
                        if(count_3>key_S && count_3<key_L)//短按
                        {

                                if(s1num==1)
                                {
                                        if(numsetf>0)
                                                numsetf--;                  
                                }
                                if(s1num==2)
                                {
                                        if(numseth>0)
                                                numseth--;
                                }
                                beep_sign=1; //提示音
                        }
                        count_3=0;                                        //count_3清0
                }
        }
        if(s4==0)
        {
                count_4++;
                if((count_4>=key_S)&&(key4_sign==0))  
                {
                        key4_sign=1;                        //按鍵1自鎖標(biāo)志置1
                        numdis=0;                           //循環(huán)計數(shù)清零
                        beep_sign=1; //提示音
                }
        }
        else
        {
                key4_sign=0;                                //按鍵4自鎖標(biāo)志清0
                count_4=0;                                        //消抖計數(shù)count_4清0
        }
}

void Control()//控制程序
{
        if((sec_sign==1)&&(s1num==0))       
        {
                sec_sign=0;
                if(fh_sign==0)
                {
                        fout=0;                        //分閘信號輸出
                        hout=1;                        //合閘信號輸出
                        setf=0;                        //分閘指示燈亮
                        seth=1;                        //合閘指示燈熄
                        miaof--;
                        if(miaof==0)
                        {
                                fh_sign=1;
                                miaoh=numseth;
                                numdis++;                //循環(huán)次數(shù)累加
                                if(numdis>=10000)//限制溢出
                                        numdis=0;
                        }
                }
                else
                {
                        fout=1;                        //分閘信號輸出
                        hout=0;                        //合閘信號輸出
                        setf=1;                        //分閘指示燈熄
                        seth=0;                        //合閘指示燈亮
                        miaoh--;
                        if(miaoh==0)
                        {
                                fh_sign=0;
                                miaof=numsetf;
                        }
                }
        }
}

void decompose()//數(shù)據(jù)分解保存
{
        dis_buf[0]=16;//顯示C
        dis_buf[1]=numdis/10000;
        dis_buf[2]=numdis%10000/1000;
        dis_buf[3]=numdis%1000/100;
        dis_buf[4]=numdis%100/10;
        dis_buf[5]=numdis%10;

        dis_fh[0]=numsetf/100;
        dis_fh[1]=numsetf%100/10;
        dis_fh[2]=numsetf%10;
        dis_fh[3]=numseth/100;
        dis_fh[4]=numseth%100/10;
        dis_fh[5]=numseth%10;
}

void beep_di()   //蜂鳴器發(fā)聲函數(shù)
{
        static uint count_5;
        if(beep_sign==1)
        {
                beep=0;
                count_5++;
                if(count_5>=100)
                {
                        count_5=0;
                        beep_sign=0;
                        beep=1;
                }
        }
}

void display() //顯示函數(shù)
{
        static uint i=0;
        P0=0x00;                //送段碼消隱
        dula=1;
        dula=0;
/********顯示累加合閘次數(shù)***********/
        if(s1num==0)//
        {
                P0=tablewei[i];//送位碼
                wela=1;
                wela=0;
                if((half_sign==1)&&(i==0))
                {
                        P0=table[dis_buf[i]]|0x80;//送段碼+閃點
                        dula=1;
                        dula=0;
                }
                else
                {
                        P0=table[dis_buf[i]];//送段碼
                        dula=1;
                        dula=0;
                }
        }
/*******顯示設(shè)置參數(shù)**********/
        else
        {
                P0=tablewei[i];//送位碼
                wela=1;
                wela=0;
                if((half_sign==1)&&(i<=2)&&(s1num==1))//顯示設(shè)置分閘閃點
                {
                        P0=table[dis_fh[i]]|0x80;//送段碼+閃點
                        dula=1;
                        dula=0;
                }
                else if((half_sign==1)&&(i>=3)&&(s1num==2))//顯示設(shè)置合閘閃點
                {
                        P0=table[dis_fh[i]]|0x80;//送段碼+點
                        dula=1;
                        dula=0;
                }
                else
                        P0=table[dis_fh[i]];//送段碼
                        dula=1;
                        dula=0;
        }
        i++;
        if(i>5)
                i=0;
}

void main()   //主函數(shù)
{
        init();                //初始化
        while(1)
        {
                keyscan();//按鍵掃描
                Control();//控制程序
                decompose();//數(shù)據(jù)分解保存
                beep_di();//蜂鳴器發(fā)聲函數(shù)
        }
}
void T0_time() interrupt 1
{
        static uint i=0;
        TH0 = 0xFC;                //重裝初值 1毫秒@11.0592MHz
        TL0 = 0x66;                //重裝初值
        i++;
        if(i==500)
        {
                i=0;
                half_sign=~half_sign;//半秒閃點標(biāo)志取反
        }
        if(s1num==0)
        {
                count++;
                if(count>=1000)//1秒
                {
                        count=0;
                        sec_sign=1;//秒標(biāo)志置1
                }
        }      
        display();//顯示程序刷新
}

評分

參與人數(shù) 1黑幣 +35 收起 理由
angmall + 35 贊一個!

查看全部評分

回復(fù)

使用道具 舉報

地板
ID:4021 發(fā)表于 2019-4-29 09:22 | 只看該作者
謝謝各支持  從強(qiáng)電轉(zhuǎn)學(xué)弱電好多概念不清楚  去年用90C52畫了個板子干擾太大,死機(jī)。
現(xiàn)在又在試試STC12的單片機(jī)  加入24C20存儲次數(shù)《次數(shù)為2萬次最高》  可惜存儲次數(shù)一直調(diào)不好,重新上電有時候可以讀出上次次數(shù),有時候顯示隨機(jī)數(shù)字,閑暇時還在努力
回復(fù)

使用道具 舉報

5#
ID:213173 發(fā)表于 2019-4-29 11:10 | 只看該作者
shui206 發(fā)表于 2019-4-29 09:22
謝謝各支持  從強(qiáng)電轉(zhuǎn)學(xué)弱電好多概念不清楚  去年用90C52畫了個板子干擾太大,死機(jī)。
現(xiàn)在又在試試STC12的 ...

STC12自帶EEPROM,加入24C02純屬蛇足。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表