基于MSP430的數(shù)字存儲(chǔ)示波器的設(shè)計(jì)與實(shí)現(xiàn)程序_第1頁(yè)
基于MSP430的數(shù)字存儲(chǔ)示波器的設(shè)計(jì)與實(shí)現(xiàn)程序_第2頁(yè)
基于MSP430的數(shù)字存儲(chǔ)示波器的設(shè)計(jì)與實(shí)現(xiàn)程序_第3頁(yè)
基于MSP430的數(shù)字存儲(chǔ)示波器的設(shè)計(jì)與實(shí)現(xiàn)程序_第4頁(yè)
基于MSP430的數(shù)字存儲(chǔ)示波器的設(shè)計(jì)與實(shí)現(xiàn)程序_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、/*方案1需要按復(fù)位鍵即每次只能采樣128次 方案2加一個(gè)軟件觸發(fā),從固定位置觸發(fā)各種中斷形成一個(gè) 循環(huán)!上一個(gè)中斷完成再觸發(fā)下一個(gè)中斷*/#include <msp430x16x.h>#include "math.h"extern unsigned int N_point; /點(diǎn)數(shù) extern unsigned char M_grade; /階數(shù) #define PI 3.14159265358979323#define uchar unsigned char#define uint unsigned int#define ulong unsigned lo

2、ng#define Num_of_Results 129#define CPU_F (double)8000000)#define delay_us(x) _delay_cycles(long)(CPU_F*(double)x/1000000.0)#define delay_ms(x) _delay_cycles(long)(CPU_F*(double)x/1000.0) float data_R128; /實(shí)部 float data_I128; /虛部uint N_point=128;uchar M_grade=7;uint results32;uchar fre4;uchar mami7=

3、"-0000mv"uchar h0 = "頻率"uchar h1 = "正在保存."uchar h2 = "歡迎使用本示波器"uchar h3 = "保存等待"uchar h4 = "不可保存"uchar h5 = "*"uint count,ad,start,end,biger,longer;ulong sum,max=0,min=4095,zhi;uchar index =0,h=1,temp,flag=1,m=0,c=1;uchar tem=0,nu

4、m=0;/中斷函數(shù)中的計(jì)數(shù)變量,定義成全局uchar tempH,tempL,color=1;uint wavey128;#define LCD_DataIn P4DIR=0x00 /數(shù)據(jù)口方向設(shè)置為輸入#define LCD_DataOut P4DIR=0xff /數(shù)據(jù)口方向設(shè)置為輸出#define LCD2MCU_Data P4IN#define MCU2LCD_Data P4OUT#define LCD_CMDOut P6DIR|=0xFF /P3口的低三位設(shè)置為輸出#define LCD_RS_H P6OUT|=BIT3 /P3 .0#define LCD_RS_L P6OUT&

5、;=BIT3 /P3.0#define LCD_RW_H P6OUT|=BIT4 /P3.1 #define LCD_RW_L P6OUT&=BIT4 /P3.1#define LCD_EN_H P6OUT|=BIT5 /P3.2#define LCD_EN_L P6OUT&=BIT5 /P3.2/*函數(shù)名稱:int_CAP()功 能:初始化觸發(fā)器!只打開(kāi)觸發(fā)引腳P13參 數(shù):無(wú)返回值 :無(wú)*/void int_CAP() P1SEL = 0x0C;/P12P13作為捕獲輸入端子 P1DIR = 0x00; TACCTL1|=CM_2+SCS+CAP;/P12下升沿觸發(fā)捕獲,同

6、步模式 不開(kāi)中斷 TACCTL2|=CM_1+SCS+CAP+CCIE;/P13上升沿觸發(fā)捕獲,同步模式 TACTL|=TASSEL_2+MC_2;/SMCLK作為計(jì)數(shù)脈沖,不分頻/*函數(shù)名稱:Clock_Init()功 能:初始化時(shí)鐘參 數(shù):無(wú)返回值 :無(wú)*/void Clock_Init() /時(shí)鐘初始化 uchar i; BCSCTL1&=XT2OFF; /打開(kāi)XT振蕩器 BCSCTL2|=SELM1+SELS+DIVS_3; /MCLK為8MHZ,SMCLK為1MHZ do IFG1&=OFIFG; /清除震蕩標(biāo)志 for(i=0;i<100;i+) _NOP()

7、; /延時(shí)等待 while(IFG1&OFIFG)!=0); /如果標(biāo)志為1,則繼續(xù)循環(huán)等待 IFG1&=OFIFG; /*函數(shù)名稱:int_adc()功 能:初始化ADC參 數(shù):無(wú)返回值 :無(wú)*/void int_adc() P6SEL |= 0x07; / P6.0 P6.1P6.2ADC option select P6DIR |=0XF8; ADC12CTL0 = SHT0_2 + ADC12ON+REF2_5V+REFON+MSH; / Set sampling time, turn on ADC12 ADC12CTL1 = SHP+CONSEQ_3;/ Use sa

8、mpling timer ADC12MCTL0 = 0X00;/參考電壓 AVCC AVSS ADC12MCTL1 = INCH_1; ADC12MCTL2 = INCH_2+EOS;/選擇通路,EOS停止第一輪轉(zhuǎn)化 ADC12IE = 0x04; /中斷最后一個(gè)使能 / Enable interrupt ADC12CTL0 |= ENC; / 轉(zhuǎn)化 enabled /*函數(shù)名稱:Delay_1ms功 能:延時(shí)約1ms的時(shí)間參 數(shù):無(wú)返回值 :無(wú)*/void Delay_1ms(void)uchar i; for(i = 150;i > 0;i-) _NOP(); /*函數(shù)名稱:fft_

9、128()功 能:fft變換參 數(shù):無(wú)返回值 :無(wú)*/void fft_128() float tab_sin_128128= /正玄表 旋轉(zhuǎn)因子所在 0.0000, 0.0491, 0.0980, 0.1467,0.1951, 0.2430, 0.2903, 0.3369, 0.3827, 0.4276, 0.4714, 0.5141, 0.5556, 0.5957, 0.6344, 0.6716, 0.7071, 0.7410, 0.7730, 0.8032, 0.8315, 0.8577, 0.8819, 0.9040, 0.9239, 0.9415, 0.9569, 0.9700, 0

10、.9808, 0.9892, 0.9952, 0.9988, 1.0000, 0.9988, 0.9952, 0.9892, 0.9808, 0.9700, 0.9569, 0.9415, 0.9239, 0.9040, 0.8819, 0.8577, 0.8315, 0.8032, 0.7730, 0.7410, 0.7071, 0.6716, 0.6344, 0.5957, 0.5556, 0.5141, 0.4714, 0.4276, 0.3827, 0.3369, 0.2903, 0.2430, 0.1951, 0.1467, 0.0980, 0.0491, 0.0000,-0.049

11、1,-0.0980,-0.1467,-0.1951,-0.2430,-0.2903,-0.3369,-0.3827,-0.4276,-0.4714,-0.5141,-0.5556,-0.5957,-0.6344,-0.6716,-0.7071,-0.7410,-0.7730,-0.8032,-0.8315,-0.8577,-0.8819,-0.9040,-0.9239,-0.9415,-0.9569,-0.9700,-0.9808,-0.9892,-0.9952,-0.9988,-1.0000,-0.9988,-0.9952,-0.9892,-0.9808,-0.9700,-0.9569,-0

12、.9415,-0.9239,-0.9040,-0.8819,-0.8577,-0.8315,-0.8032,-0.7730,-0.7410,-0.7071,-0.6716,-0.6344,-0.5957,-0.5556,-0.5141,-0.4714,-0.4276,-0.3827,-0.3369,-0.2903,-0.2430,-0.1951,-0.1467,-0.0980,-0.0491; int i; int L;/ the grade deal with now int J;/the point deal with now int B;/蝶形兩左翅 相距的距離 int var;/臨時(shí)變

13、量 int P,Q;/cos sin 在sintab中的位置 旋轉(zhuǎn)因子 float data_R_J,data_I_J,data_R_JB,data_I_JB;/臨時(shí)變量 存放data_R。等 for (i=0;i<N_point;i+) data_Ri=(float)waveyi; for(L=1;L<=M_grade;L+)/L級(jí) B=1; var=L-1;while(var>0)B=2*B;var-;/B=2(L-1); for(i=0;i<B;i+) / 交叉蝶形中的第i個(gè)蝶形 第J=J+2*B個(gè)交叉蝶形 因?yàn)闆](méi)兩個(gè)交叉蝶形相距2*B P=1;var=M_gra

14、de-L; while(var>0)P=2*P;var-; P=P*i; /P=J*2(M-L) ;J=i now if(P<3*N_point/4) Q=P+N_point/4; else Q=P-3*N_point/4; for(J=i;J<N_point;J=J+2*B)/128 N_point/2 第J個(gè)交叉蝶形 data_R_J=data_RJ; data_I_J=data_IJ; data_R_JB=data_RJ+B; data_I_JB=data_IJ+B;/ data_RJ=data_R_J+data_R_JB*tab_sin_128Q+data_I_JB*

15、tab_sin_128P; data_IJ=data_I_J+data_I_JB*tab_sin_128Q-data_R_JB*tab_sin_128P; data_RJ+B=data_R_J-data_R_JB*tab_sin_128Q-data_I_JB*tab_sin_128P; data_IJ+B=data_I_J-data_I_JB*tab_sin_128Q+data_R_JB*tab_sin_128P; /*函數(shù)名稱:Delay_Nms功 能:延時(shí)N個(gè)1ms的時(shí)間參 數(shù):n-延時(shí)長(zhǎng)度返回值 :無(wú)*/void Delay_Nms(uint n) uint i; for(i = n;i

16、 > 0;i-) Delay_1ms();/*函數(shù)名稱:Write_Cmd功 能:向液晶中寫控制命令參 數(shù):cmd-控制命令返回值 :無(wú)*/void Write_Cmd(uchar cmd) uchar lcdtemp = 0; LCD_RS_L; LCD_RW_H; LCD_DataIn; do /判忙 LCD_EN_H; _NOP(); lcdtemp = LCD2MCU_Data; LCD_EN_L; while(lcdtemp & 0x80); LCD_DataOut; LCD_RW_L; MCU2LCD_Data = cmd; LCD_EN_H; _NOP(); LCD

17、_EN_L;/*函數(shù)名稱:Write_Data功 能:向液晶中寫顯示數(shù)據(jù)參 數(shù):dat-顯示數(shù)據(jù)返回值 :無(wú)*/void Write_Data(uchar dat) uchar lcdtemp = 0; LCD_RS_L; LCD_RW_H; LCD_DataIn; do /判忙 LCD_EN_H; _NOP(); lcdtemp = LCD2MCU_Data; LCD_EN_L; while(lcdtemp & 0x80); LCD_DataOut; LCD_RS_H; LCD_RW_L; MCU2LCD_Data = dat; LCD_EN_H; _NOP(); LCD_EN_L;

18、 uchar readData(void) uchar lcdtemp = 0; unsigned char RData; MCU2LCD_Data=0xff; LCD_RS_L; LCD_RW_H; LCD_DataIn; do /判忙 LCD_EN_H; _NOP(); lcdtemp = LCD2MCU_Data; LCD_EN_L; while(lcdtemp & 0x80); LCD_RS_H; LCD_RW_H; LCD_EN_L; LCD_EN_H; RData=LCD2MCU_Data; LCD_EN_L; return RData;/*函數(shù)名: drawPoint函數(shù)

19、說(shuō)明:畫點(diǎn)傳入?yún)?shù):打點(diǎn)位置(x0,y0);color=1,點(diǎn)亮;color=0,擦除傳出參數(shù):無(wú)返回值: 無(wú)*/void Draw_point(unsigned char x,unsigned char y,unsigned char color) uchar row,collum,cbite; Write_Cmd(0x34); Write_Cmd(0x36); collum=x>>4; cbite=x&0x0f; if(y<32) row=y; else row=y-32;collum+=8; Write_Cmd(0x80+row); Write_Cmd(0x80

20、+collum); readData(); tempH=readData(); tempL=readData(); Write_Cmd(0x80+row); Write_Cmd(0x80+collum); if (color) if(cbite<8) tempH|=(1<<(7-cbite); else tempL|=(1<<(15-cbite); else if(cbite<8) tempH&=(1<<(7-cbite); else tempL&=(1<<(15-cbite); Write_Data(tempH);

21、Write_Data(tempL); Write_Cmd(0x30);/*函數(shù)名: drawRowLine函數(shù)說(shuō)明:畫水平線傳入?yún)?shù):(x0,y0),水平線的起點(diǎn);(x1,y0)水平線的終點(diǎn)color=1,點(diǎn)亮;color=0,擦除傳出參數(shù):無(wú)返回值: 無(wú)*/void drawRowLine(uchar x0,uchar y0,uchar x1,uchar color) do Draw_point(x0, y0, color);/ 逐點(diǎn)顯示,描出垂直線 x0+; while(x1>=x0);/*函數(shù)名: drawCollumLine函數(shù)說(shuō)明:畫豎直線傳入?yún)?shù):(x0,y0),豎直線的起點(diǎn)

22、;(x1,y0)豎直線的終點(diǎn);color=1,點(diǎn)亮;color=0,擦除傳出參數(shù):無(wú)返回值: 無(wú)*/void drawCollumLine(uchar x0,uchar y0,uchar y1,uchar color) while (y0<=y1) Draw_point(x0,y0,color); y0+; /*函數(shù)名: drawLine函數(shù)說(shuō)明:使用Bresenham法,畫任意兩點(diǎn)間的直線傳入?yún)?shù):(x0,y0),豎直線的起點(diǎn);(x1,y1)豎直線的終點(diǎn) color=1,點(diǎn)亮;color=0,擦除傳出參數(shù):無(wú)返回值: 無(wú)*/void drawLine(uchar x0,uchar y0

23、,uchar x1,uchar y1,uchar color) uchar tempx,tempy; if(x0>x1) / 對(duì)x0、x1大小進(jìn)行排列,以便畫圖 tempx = x1; x1 = x0; x0 = tempx; if(y0>y1) tempy=y0; y0=y1; y1=tempy; int dx;/ 直線x軸差值變量 int dy; / 直線y軸差值變量 char dx_sym;/ x軸增長(zhǎng)方向,為-1時(shí)減值方向,為1時(shí)增值方向 char dy_sym;/ y軸增長(zhǎng)方向,為-1時(shí)減值方向,為1時(shí)增值方向 int dx_2;/ dx*2值變量,用于加快運(yùn)算速度 in

24、t dy_2;/ dy*2值變量,用于加快運(yùn)算速度 int di;/ 決策變量 dx = x1-x0;/ 求取兩點(diǎn)之間的差值 dy = y1-y0; if (dx<0)dx_sym=-1; else if(dx>0)dx_sym=1; else drawCollumLine(x0,y0,y1,color);return; if(dy>0)dy_sym=1; else if(dy<0)dy_sym=-1; else drawRowLine(x0,y0,x1,color);return; dx=dx_sym*dx; dy=dy_sym*dy; dx_2=dx*2; dy_2

25、=dy*2; if(dx>=dy) di=dy_2-dx;while(x0!=x1) Draw_point(x0,y0,color); x0+=dx_sym; if(di<0)di+=dy_2; elsedi+=dy_2-dx_2;y0+=dy_sym;Draw_point(x0,y0,color); else di=dx_2-dy; while(y0!=y1) Draw_point(x0,y0,color); y0+=dy_sym; if(di<0)di+=dx_2; elsedi+=dx_2-dy_2;x0+=dx_sym;Draw_point(x0,y0,color);

26、 /*函數(shù)名稱:Disp_HZ功 能:控制液晶顯示漢字參 數(shù):addr-顯示位置的首地址 pt-指向顯示數(shù)據(jù)的指針 num-顯示字符個(gè)數(shù)返回值 :無(wú)*/void Disp_HZ(uchar addr,const uchar * pt,uchar num) uchar i; Write_Cmd(addr); for(i = 0;i < (num*2);i+) Write_Data(*(pt+); /*數(shù)字*/void Disp_SZ(uchar addr,const uchar * pt,uchar num) uchar i; Write_Cmd(addr); for(i = 0;i &l

27、t; num;i+) Write_Data(*(pt+); void Ini_Lcd(void) /LCD_CMDOut; /液晶控制端口設(shè)置為輸出 / Delay_Nms(500); Write_Cmd(0x30); /基本指令集 Delay_1ms(); Write_Cmd(0x02); / 地址歸位 Delay_1ms(); Write_Cmd(0x0c); /整體顯示打開(kāi),游標(biāo)關(guān)閉 Delay_1ms(); Write_Cmd(0x01); /清除顯示 Delay_1ms(); Write_Cmd(0x06); /游標(biāo)右移 Delay_1ms(); Write_Cmd(0x80); /

28、設(shè)定顯示的起始地址/*函數(shù)名稱:Clear_GDRAM功 能:清除液晶GDRAM中的隨機(jī)數(shù)據(jù)參 數(shù):無(wú)返回值 :無(wú)*/void Clear_GDRAM() uchar i,j,k; Write_Cmd(0x34); /打開(kāi)擴(kuò)展指令集i = 0x80; for(j = 0 ;j < 32;j+) Write_Cmd(i+); Write_Cmd(0x80); for(k = 0;k < 16;k+) Write_Data(0x00); i = 0x80; for(j = 0;j < 32;j+) Write_Cmd(i+); Write_Cmd(0x88); for(k = 0

29、;k < 16;k+) Write_Data(0x00); Write_Cmd(0x30); /回到基本指令集/*函數(shù)名稱:Draw_TX功 能:顯示一個(gè)16*16大小的圖形參 數(shù):Yaddr-Y地址 Xaddr-X地址 dp-指向圖形數(shù)據(jù)存放地址的指針?lè)祷刂?:無(wú)*/void Draw_TX(uchar Yaddr,uchar Xaddr,const uchar * dp) uchar j; uchar k=0; / Write_Cmd(0x01); /清屏,只能清除DDRAM Write_Cmd(0x34); /使用擴(kuò)展指令集,關(guān)閉繪圖顯示 for(j=0;j<16;j+) W

30、rite_Cmd(Yaddr+); /Y地址 Write_Cmd(Xaddr); /X地址 Write_Data(dpk+); Write_Data(dpk+); Write_Cmd(0x36); /打開(kāi)繪圖顯示 / Write_Cmd(0x30); /回到基本指令集模式/*函數(shù)名稱:FRE()功 能:對(duì)定時(shí)器內(nèi)的數(shù)據(jù)進(jìn)行處理,得出頻率參 數(shù):返回值 :無(wú)*/void choose() zhi = (zhi*3200)/4095; zhi=zhi/2; mami1=zhi/1000+0X30; mami2=(zhi%1000)/100+0X30; mami3=(zhi%1000)%100/10

31、+0X30; mami4=(zhi%1000)%100%10+0X30; Disp_SZ(0x8d,mami+1,6); Disp_SZ(0x98,mami,7); max=0; min=4095;/*函數(shù)名稱:FRE()功 能:對(duì)定時(shí)器內(nèi)的數(shù)據(jù)進(jìn)行處理,得出頻率參 數(shù):返回值 :無(wú)*/void FRE() uint temp2; uchar temp1; temp2=1000000/sum; temp1=temp2/1000; fre0=temp1+0x30; temp2=temp2-temp1*1000; temp1=temp2/100; fre1=temp1+0x30; temp2=te

32、mp2-temp1*100; temp1=temp2/10; fre2=temp1+0x30; temp2=temp2-temp1*10; fre3=temp2+0x30;/*函數(shù)名稱:COMPA()功 能:比較器 參 數(shù):返回值 :無(wú)*/void COMPA() P2SEL = 0x1c; /P24 P23 P22分別為比較器輸入輸出 P2DIR = 0x04; / CACTL1 = CAON+CARSEL+CAREF_0 ; / 使用外部參考電壓 一腳可以接地 CACTL2 = P2CA0+P2CA1+CAF; / 使用 CA0 CA1/*函數(shù)名稱:timer()功 能:計(jì)數(shù)器處理 參 數(shù)

33、:返回值 :無(wú)*/void timer() TACCTL1&=CCIE; P1IE=(BIT0+BIT4+BIT5+BIT6+BIT7); flag=0; tem+; switch(tem) case 1:start=TACCR1;break; case 2:end=TACCR1; if(end>start) resultsnum=(end-start); else resultsnum=(65536-start+end); tem=0; num+; break; Delay_1ms(); TACCTL1|=CCIE;/以前是關(guān)總中斷 現(xiàn)在試試關(guān)定時(shí)器中斷 if(num=32)

34、uchar i; for(i = 0; i < num; i+) sum+=resultsi; sum >>=5; FRE(); Disp_SZ(0x8A,fre,4); sum=0; num=0; TACCTL1&=CCIE; Disp_HZ(0x9c,h3,4); delay_ms(1000); Disp_HZ(0x9c,h4,4); P1IE&=(BIT0+BIT4+BIT5+BIT6+BIT7); /ADC12IE |= 0x01; ADC12CTL0 |= ENC;/只能單位置位 TACCTL2 |=CCIE; /_EINT(); /*函數(shù)名稱:Ke

35、y功 能:存儲(chǔ)參 數(shù):返回值 :無(wú)*/void Key(void) P1DIR&=(BIT0+BIT4+BIT5+BIT6+BIT7); P1SEL&=(BIT0+BIT4+BIT5+BIT6+BIT7); P1IES = BIT0+BIT4+BIT5+BIT6+BIT7;/*函數(shù)名稱:change功 能:改變頻率和放大倍數(shù)參 數(shù):返回值 :無(wú)*/ void change() zhi=max-min; P5SEL = 0X00; P5DIR = 0XFF; ADC12CTL0 &= ENC;/置位0,DIV才能改 if(longer<512) ADC12CTL1

36、= ADC12DIV_0+SHP+CONSEQ_3; else if(longer<1024) ADC12CTL1 = ADC12DIV_1+SHP+CONSEQ_3; else if(longer<1536) ADC12CTL1 = ADC12DIV_2+SHP+CONSEQ_3; else if(longer<2048) ADC12CTL1 = ADC12DIV_3+SHP+CONSEQ_3; else if(longer<2560) ADC12CTL1 = ADC12DIV_4+SHP+CONSEQ_3; else if(longer<3072) ADC12

37、CTL1 = ADC12DIV_5+SHP+CONSEQ_3; else if(longer<3584) ADC12CTL1 = ADC12DIV_6+SHP+CONSEQ_3; else if(longer<4096) ADC12CTL1 = ADC12DIV_7+SHP+CONSEQ_3; ADC12CTL0 |= ENC; / if(biger<256) P5OUT = 0x06; zhi=zhi/156; else if(biger<512) P5OUT = 0x0e; zhi=zhi/143; else if(biger<786) P5OUT = 0x16; zhi=(zhi*27)/2600; else if(biger<1024) P5OUT = 0x1e; z

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論