|
51hei.png (49.96 KB, 下載次數(shù): 49)
下載附件
2021-3-9 00:50 上傳
單片機(jī)源程序如下:- #include <reg52.H>
- #include <string.h>
- #include <stdio.h>
- #include <intrins.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define LCD_Bus P0 //P0口輸出數(shù)據(jù)
- #define LCD_Busy 0x80
- //---------定義接口----------//
- sbit LCD_RS=P2^7;
- sbit LCD_RW=P2^6;
- sbit LCD_E =P2^5;
- sbit LCD_RST=P2^4;
- sbit key4=P1^0; sbit key8=P1^1; //定義按鍵的輸入端
- sbit key12=P1^2; sbit key16=P1^3;
- sbit key3=P1^4; sbit key7=P1^5;
- sbit key11=P1^6; sbit key14=P1^7;
- sbit key2=P3^0; sbit key6=P3^1;
- sbit key10=P3^2; sbit key15=P3^3;
- sbit key1=P3^4; sbit key5=P3^5;
- sbit key9=P3^6; sbit key13=P3^7;
- sbit key17=P2^1;
- sbit ds=P2^0; //溫度傳感器信號(hào)線
- int tvalue,num1=0;//溫度值
- uchar tflag;//溫度正負(fù)標(biāo)志
- uchar table[5];
- code char table1[]={"溫度:"};
- //--------函數(shù)定義區(qū)--------//
- void delay (uint t); //延時(shí)函數(shù)
- void LCD_Rest(); //LCD驅(qū)動(dòng)函數(shù)
- void LCD_Init();
- void LCD_Wdata(uchar d);
- void LCD_Wcode(char c);
- void LCD_Rbusy();
- char get_key(); //拼音及漢字輸出函數(shù)
- display_hanzi(struct t9py_list *ptr);
- display_output_hanzi(struct t9py_list *ptr);
- void display_pinyin(struct t9py_list *ptr);
- void LCD_ShowString(char *st);
- void t9py_result_clear(); //拼音及漢字輸出輔助函數(shù)
- void t9py_result_add(struct t9py_index *idx);
- void t9py_result_select_next();
- void t9py_result_select_prev();
- void t9py_result_select_reset();
- void t9py_result_hanzi_init();
- void t9py_result_hanzi_select_prev();
- void t9py_result_hanzi_select_next();
- uint t9_table_search();
- char is_t9_key(char e); //字符串處理輔助函數(shù)
- void str_uncat_char(char *s);
- void str_cat_char(char *s, char c);
- void str_clear(char *s);
- void LCD_qingchu_34( ); //清除三四行
- void LCD_qingchu_12( );
- void LCD_Clear( );
- int key;
- int weizhi=0;
- char Fkey[8]={""};
- char key_str[8]={""}; // 從鍵盤輸入的T9數(shù)字序列
- char *zimu_str;
- char *biaodian_str;
- char pos=0;
- // T9數(shù)字字母索引表項(xiàng)
- struct t9py_index {
- char code *t9_str; //按鍵數(shù)字序列
- char code *py_str; //拼音編碼字符串
- char code *py_mb; //該拼音對(duì)應(yīng)的漢字碼表地址
- };
- // T9數(shù)字字母索引結(jié)果(多重表項(xiàng))
- struct t9py_list {
- struct t9py_index * entry[8];
- int ele_num; // 拼音個(gè)數(shù)
- char ele_idx; // 當(dāng)前選中的拼音(index)
- int hanzi_num; // 當(dāng)前選中漢字中的漢字個(gè)數(shù)
- char hanzi_idx; // 當(dāng)前選中拼音中的選中的漢字(index)
- char code *hanzi_ptr; // 當(dāng)前讀音候選漢字字符串指針
- };
- //"拼音輸入法漢字排列表,碼表(mb)"
- code char PY_mb_a[] ={"阿啊"};
- code char PY_mb_ai[] ={"哎哀唉埃挨皚癌愛"};
復(fù)制代碼
51hei.png (25.31 KB, 下載次數(shù): 45)
下載附件
2021-3-9 00:51 上傳
- char code zimu[][9]={"AaBbCc","DdEeFf","GgHhIi","JjKkLl","MmNnOo","PpQqRrSs","TtUuVv","WwXxYyZz"};
- char code biaodian[]={".,?!:;\"'"};
- // 每次查詢T9索引表得到的表項(xiàng)結(jié)果
- struct t9py_list t9py_result;
- //-------延時(shí)函數(shù)--------//
- void delay(uint t)
- {
- uint j , k , l;
- for (j=0;j<t;j++)
- for (k=0;k<2;k++)
- for (l=0;l<255;l++);
- }
- //--------寫命令--------//
- void LCD_Wcode(char c)
- {
- LCD_Rbusy(); //檢測(cè)忙信號(hào),如果忙碌,一直在這里循環(huán)
- LCD_RS=0;
- LCD_RW=0;
- LCD_Bus=c;
- LCD_E =1;
- delay(10); //延時(shí)
- LCD_E=0;
- }
- //---------寫數(shù)據(jù)------//
- void LCD_Wdata(char d)
- {
- LCD_Rbusy();
- LCD_RS=1;
- LCD_RW=0;
- LCD_Bus=d;
- LCD_E =1;
- delay(10);
- LCD_E=0;
- }
- //-------初始化函數(shù)------//
- void LCD_Init()
- {
- LCD_RST=1;
- // LCD_PSB=1;
- delay(2);
- LCD_Clear(); //清顯示
- delay(2);
- LCD_Wcode(0x06); //地址復(fù)位
- delay(2);
- LCD_Wcode(0x0c); //整體顯示,關(guān)游標(biāo),不反白
- delay(2);
- LCD_Wcode(0x30); //基本指令集,選擇八位數(shù)據(jù)流
- delay(2);
- }
- /*DS18B20復(fù)位,初始化*/
- void chu18b20()
- {
- uint i;
- ds=0;
- i=103;
- while(i>0)i--;
- ds=1;
- i=4;
- while(i>0)i--;
- }
- /*讀1位數(shù)據(jù)函數(shù)*/
- bit du18b20bit()
- {
- uint i;
- bit dat;
- ds=0;i++; //i++延時(shí)
- ds=1;i++;i++;
- dat=ds;
- i=8;while(i>0)i--;
- return(dat);
- }
- /*讀1個(gè)字節(jié)數(shù)*/
- uchar du18b20()
- {
- uchar i,j,dat;
- dat=0;
- for(i=1;i<=8;i++) //讀一個(gè)字節(jié)數(shù)據(jù)
- {
- j=du18b20bit();
- dat=(j<<7)|(dat>>1); //讀出數(shù)據(jù)的最低位在前
- }
- return(dat);
- }
- /*向DS18B20寫一個(gè)字節(jié)數(shù)據(jù)*/
- void xie18b20(uchar dat)
- {
- uint i;
- uchar j;
- bit wei; //定義一個(gè)位型變量
- for(j=1;j<=8;j++)
- {
- wei=dat&0x01;
- dat=dat>>1;
- if(wei) //寫位'1'
- {
- ds=0;
- i++;i++;
- ds=1;
- i=8;
- while(i>0)i--; //延時(shí)
- }
- else
- {
- ds=0; ////寫位'0'
- i=8;
- while(i>0)i--;
- ds=1;
- i++;i++;
- }
- }
- }
- /*讀取溫度值并轉(zhuǎn)換*/
- zh18b20()
- {
- uint a,b;
- chu18b20(); //DS18B20初始化
- delay(1);
- xie18b20(0xcc);//跳過讀序列號(hào)
- xie18b20(0x44);//啟動(dòng)溫度轉(zhuǎn)換
- chu18b20();
- delay(1);
- xie18b20(0xcc);//跳過讀序列號(hào)
- xie18b20(0xbe);//讀取溫度
- a=du18b20();
- b=du18b20();
- tvalue=b;
- tvalue<<=8; //組合兩個(gè)字節(jié)
- tvalue=tvalue|a;
- if(tvalue<0x08ff) //判斷溫度符號(hào)
- tflag=0;
- else
- {
- tvalue=~tvalue+1;
- tflag=1;
- }
- tvalue=tvalue*(0.0625)*10;//溫度值擴(kuò)大10倍,精確到1位小數(shù)
- return(tvalue);
- }
- /*溫度值顯示*/
- void xs18b20()
- {
- uchar space,num;
- table[0]=tvalue/1000+0x30;//百位數(shù)
- table[1]=tvalue%1000/100+0x30;//十位數(shù)
- table[2]=tvalue%100/10+0x30;//個(gè)位數(shù)
- table[3]=tvalue%10+0x30;//小數(shù)位
- if(tflag==0)
- space=0x20;//正溫度不顯示符號(hào)
- else
- space=0x2d;//負(fù)溫度顯示負(fù)號(hào):-
- if(table[0]==0x30)
- {
- table[0]=0x20; //如果百位為0,不顯示
- if(table[1]==0x30)
- table[1]=0x20; //十位為0也不顯示
- }
- LCD_Wcode(0x98+2); //0x80+0x40=0xc0,+4為前面空四列
- for(num=0;num<5;num++)
- LCD_Wdata(table1[num]);
- LCD_Wdata(space);//顯示符號(hào)位
- LCD_Wdata(table[0]);//顯示百位
- LCD_Wdata(table[1]);//顯示十位
- LCD_Wdata(table[2]);//顯示個(gè)位
- LCD_Wdata(0x2e);//顯示小數(shù)點(diǎn)
- LCD_Wdata(table[3]);//顯示小數(shù)位
- }
- //-------復(fù)位函數(shù)-------//
- void LCD_Rest()
- {
- LCD_RST=1;
- delay(10);
- LCD_RST=0;
- delay(10);
- LCD_RST=1;
- delay(10);
- }
- //------檢查忙碌函數(shù)-----//
- void LCD_Rbusy(void)
- {
- LCD_RS=0;
- LCD_RW=1;
- LCD_E=1;
- LCD_Bus=0xff;
- while ((LCD_Bus&LCD_Busy)==LCD_Busy);
- LCD_E=0;
- }
- //-----清屏函數(shù)--------//
- void LCD_Clear()
- {
- LCD_Wcode(0x01);
- }
- //-----清除一二行-------//
- void LCD_qingchu_12( )
- {
- uint i,j ;
- LCD_Wcode(0x80);
- for(i=16;i>0;i--)
- LCD_Wdata(' ');
- LCD_Wcode(0x90);
- for(j=16;j>0;j--)
- LCD_Wdata(' ');
- }
- //-----清除三四行-------//
- void LCD_qingchu_34( )
- {
- uint i,j ;
- LCD_Wcode(0x88);
- for(i=16;i>0;i--)
- LCD_Wdata(' ');
- LCD_Wcode(0x98);
- for(j=16;j>0;j--)
- LCD_Wdata(' ');
- }
- //按鍵查詢函數(shù)
- char get_key()
- {
- while(1)
- {
- if(key17==0)
- {
- zh18b20();
- xs18b20();
- }
- if (key1==0)
- {
- delay(10);
- if (key1==0)
- {while(key1==0);
- return 1;}
- }
- else if (key2==0)
- {
- delay(10);
- if (key2==0)
- {while(key2==0);
- return 2;}
- }
- else if (key3==0)
- {
- delay(10);
- if (key3==0)
- {while(key3==0);
- return 3;}
- }
- else if (key4==0)
- {
- delay(10);
- if (key4==0)
- {while(key4==0);
- return 4;}
- }
- else if (key5==0)
- {
- delay(10);
- if (key5==0)
- {while(key5==0);
- return 5;}
- }
- else if (key6==0)
- {
- delay(10);
- if (key6==0)
- {while(key6==0);
- return 6;}
- }
- else if (key7==0)
- {
- delay(10);
- if (key7==0)
- {while(key7==0);
- return 7;}
- }
- else if (key8==0)
- {
- delay(10);
- if (key8==0)
- {while(key8==0);
- return 8;}
- }
- else if (key9==0)
- {
- delay(10);
- if (key9==0)
- {while(key9==0);
- return 9;}
- }
- else if (key10==0)
- {
- delay(10);
- if (key10==0)
- {while(key10==0);
- return 0;}
- }
- else if (key11==0)
- {
- delay(10);
- if (key11==0)
- {while(key11==0);
- return 11;}
- }
- else if (key12==0)
- {
- delay(10);
- if (key12==0)
- {while(key12==0);
- return 12;}
- }
- else if (key13==0)
- {
- delay(10);
- if (key13==0)
- {while(key13==0);
- return 13;}
- }
- else if (key14==0)
- {
- delay(10);
- if (key14==0)
- {while(key14==0);
- return 14;}
- }
- else if (key15==0)
- {
- delay(10);
- if (key15==0)
- {while(key15==0);
- return 15;}
- }
- else if (key16==0)
- {
- delay(10);
- if (key16==0)
- {while(key16==0);
- return 16;}
- }
- }
- }
- /***********************************
- * T9輔助函數(shù) *
- ***********************************/
- // 清空t9py_result
- void t9py_result_clear()
- {
- int i;
- for (i = 0; i < 8; i++)
- t9py_result.entry[i] = NULL;
- t9py_result.ele_num = 0;
- t9py_result.ele_idx = 0;
- t9py_result.hanzi_num = 0;
- t9py_result.hanzi_idx = 0;
- }
- // 判斷t9py_result是否為空,空返回1
- uint t9py_result_is_empty()
- {
- if (t9py_result.ele_num == 0)
- return 1;
- return 0;
- }
- // 在t9py_result中增加一項(xiàng)
- void t9py_result_add(struct t9py_index *idx)
- {
- int n=0;
- while (t9py_result.entry[n] != NULL)
- n++;
- t9py_result.entry[n] = idx;
- t9py_result.ele_num++;
- }
- // 在t9py_result中選擇下一項(xiàng)(作為當(dāng)前拼音)
- void t9py_result_select_next()
- {
- if (t9py_result.ele_num == 0) // 無元素,沒法選
- return;
- t9py_result.ele_idx++;
- if (t9py_result.ele_idx > t9py_result.ele_num - 1)
- t9py_result.ele_idx = t9py_result.ele_num - 1;
- }
- // 在t9py_result中選擇上一項(xiàng)(作為當(dāng)前拼音)
- void t9py_result_select_prev()
- {
- if (t9py_result.ele_num == 0) // 無元素,沒法選
- return;
- t9py_result.ele_idx--;
- if (t9py_result.ele_idx < 0)
- t9py_result.ele_idx = 0;
- }
- // 復(fù)位t9py_result中的拼音選擇
- void t9py_result_select_reset()
- {
- t9py_result.ele_idx = 0;
- }
- // 初始化當(dāng)前選中拼音所對(duì)應(yīng)的漢字選擇結(jié)構(gòu)
- void t9py_result_hanzi_init()
- {
- if (t9py_result.ele_num == 0)
- return;
- t9py_result.hanzi_ptr =( (t9py_result.entry)[t9py_result.ele_idx])->py_mb;
- t9py_result.hanzi_num = strlen(t9py_result.hanzi_ptr)/2 ;
- t9py_result.hanzi_idx = 0;
- }
- // 選擇上一個(gè)當(dāng)前讀音的漢字
- void t9py_result_hanzi_select_prev()
- {
- pos--;
- if (pos<0)
- pos=0;
- if (t9py_result.hanzi_num == 0) // 無元素,沒法選
- return;
- t9py_result.hanzi_idx--;
- if (t9py_result.hanzi_idx < 0)
- t9py_result.hanzi_idx = 0;
- LCD_Wcode(0x0f);
- LCD_Wcode(0x98+pos);
- }
- // 選擇下一個(gè)當(dāng)前讀音的漢字
- void t9py_result_hanzi_select_next()
- {
- pos++;
- if(pos==8)
- pos=0;
- if (t9py_result.hanzi_num== 0) // 無元素,沒法選
- return;
- t9py_result.hanzi_idx++;
- if (t9py_result.hanzi_idx > (t9py_result.hanzi_num - 1))
- t9py_result.hanzi_idx = t9py_result.hanzi_num - 1;
- LCD_Wcode(0x0f);
- LCD_Wcode(0x98+pos);
- }
- // 查詢T9索引表 t9py_table[]
- // 查找數(shù)字序列與t9_str字符串相同的表項(xiàng)
- // 如找到匹配項(xiàng),返回1,將結(jié)果存在t9py_result中
- // 如未找到匹配項(xiàng),返回0,不改變t9py_result
- uint t9_table_search()
- {
- int success;
- char *str;
- struct t9py_index *idx;
- success = 0;
- idx = &(t9py_table[0]);
- str = idx->t9_str;
- t9py_result_clear(); // 清空原來的結(jié)果
- for (;strcmp(str,"");)
- {
- if (!strcmp(str, key_str))
- {
- success=1;
- t9py_result_add(idx);
- }
- idx++;
- str = idx->t9_str;
- }
- return success;
- }
- /***********************************
- * 字符串輔助函數(shù) *
- ***********************************/
- // 判斷T9數(shù)字按鍵
- char is_t9_key(char e)
- {
- if (e>=2&&e<=9)
- return 1;
- return 0;
- }
- // 刪除字符串末尾的字符
- void str_uncat_char(char *s)
- {
- if (!(*s))
- return;
- while (*s)
- s++;
- s--;
- *s = 0;
- }
- // 在字符串末尾添加字符
- void str_cat_char(char *s, char c)
- {
- while (*s)
- s++;
- *s = c;
- s++;
- *s = 0;
- }
- // 清除字符串
- void str_clear(char *s)
- {
- *s = 0;
- }
- /***********************************
- * 顯示漢字拼音函數(shù) *
- ***********************************/
- void LCD_ShowString(char *st)
- {
- uint i;
- for(i=0;*st!='\0';i++,st++)
- {
- LCD_Wdata(*st);
- }
- delay(50);
- LCD_Wdata(' ');
- }
- void display_pinyin(struct t9py_list *ptr)
- {
- char *dizhi;
- int j;
- LCD_Wcode(0x88);
- for(j=0;j<ptr->ele_num;j++)
- {
- dizhi=ptr->entry[j]->py_str;
- LCD_ShowString(dizhi);
- }
- }
- //顯示選中拼音對(duì)應(yīng)的漢字
- display_hanzi(struct t9py_list *ptr)
- {
- int i, char_num;
- char *hanzi;
- hanzi=ptr->hanzi_ptr;
- char_num=ptr->hanzi_num*2;
- LCD_Wcode(0x98);
- for(i=0;i<char_num;i++)
- LCD_Wdata(*hanzi++);
- }
- //顯示最后輸出的字
- display_output_hanzi(struct t9py_list *ptr)
- {
- char *hanzi;
- int i;
- char xx=0;
- if(weizhi<=7)
- LCD_Wcode(0x80+weizhi);
- else if(weizhi==16)
- {
- weizhi=0;
- LCD_qingchu_12( );
- LCD_Wcode(0x80+weizhi);
- }
- else
- LCD_Wcode(0x90+weizhi-8);
- xx=(ptr->hanzi_idx)*2;
- hanzi=ptr->entry[ptr->ele_idx]->py_mb+xx;
- for(i=0;i<2;i++)
- LCD_Wdata( *hanzi++);
- delay(5);
- weizhi++;
- }
- /***********************************
- * 主函數(shù) *
- ***********************************/
- #define STATE_PINYIN 1 // 輸入拼音階段
- #define STATE_HANZI 2 // 選擇漢字階段
- #define STATA_ZIMU 3 // 選擇字母階段
- #define STATA_BIAODIAN 4 // 選擇標(biāo)點(diǎn)階段
- void main()
- {
- uint ok, input_state, i,j;
- LCD_Clear();
- LCD_Rest();
- LCD_Init();
- while (1)
- {
- key = get_key();//獲取鍵盤輸入
- if(key==0) //**********數(shù)字輸入模塊*********//
- {
- key=get_key();
- if(key>=0&&key<=9)
- sprintf(Fkey, " %d" , key);
- else
- break;
- if(weizhi<=7)
- LCD_Wcode(0x80+weizhi);
- else if(weizhi==16)
- {
- weizhi=0;
- LCD_qingchu_12( );
- LCD_Wcode(0x80+weizhi);
- }
- else
- { LCD_Wcode(0x90+weizhi-8); }
- LCD_Wdata(Fkey[1]);
- weizhi++;
- }
- if(key==11) //********字母輸入模塊********//
- {
- input_state=STATA_ZIMU;
- while(1)
- {
- if(input_state==STATA_ZIMU)
- {
- key=get_key();
- if(key>=2&&key<=9)
- {
- zimu_str=zimu[key-2];
- LCD_Wcode(0x98);
- LCD_ShowString(zimu_str);
- }
- else if(key==14) //下鍵
- {
- zimu_str++;
- }
- else if(key==15) //上鍵
- {
- zimu_str--;
- }
- else if(key==16)
- {
- if(weizhi<=7)
- LCD_Wcode(0x80+weizhi);
- else if(weizhi==16)
- {
- weizhi=0;
- LCD_qingchu_12( );
- LCD_Wcode(0x80+weizhi);
- }
- else
- LCD_Wcode(0x90+weizhi-8);
- LCD_Wdata(*zimu_str);
- weizhi++;
- LCD_qingchu_34();
- input_state = STATE_PINYIN;
- }
- }
- if(input_state == STATE_PINYIN) break;
- }
- }
- if(key==12) //********標(biāo)點(diǎn)輸入模塊*********//
- {
- input_state=STATA_BIAODIAN;
- biaodian_str=biaodian;
- LCD_Wcode(0x98);
- LCD_ShowString(biaodian_str); //把所有的標(biāo)點(diǎn)符號(hào)顯示在第四行
- while(1)
- {
- if(input_state==STATA_BIAODIAN)
- {
- key=get_key();
- if(key==14)
- biaodian_str++;
- else if(key==15)
- biaodian_str--;
- else if(key==16)
- {
- if(weizhi<=7)
- LCD_Wcode(0x80+weizhi);
- else if(weizhi==16)
- {
- weizhi=0;
- LCD_qingchu_12( );
- LCD_Wcode(0x80+weizhi);
- }
- else
- LCD_Wcode(0x90+weizhi-8);
- LCD_Wdata(*biaodian_str);
- weizhi++;
- LCD_qingchu_34();
- input_state = STATE_PINYIN;
- }
- }
- if(input_state == STATE_PINYIN) break;
- }
- }
- if(key==13) //13鍵表示退格,把選出來的字或字母或數(shù)字刪除
- {
- weizhi--;
- if(weizhi<=7)
- LCD_Wcode(0x80+weizhi);
- else
- LCD_Wcode(0x90+weizhi-8);
- for(j=0;j<=1;j++)
- LCD_Wdata(' ');
- }
- if(key==1) //*********漢字輸入程序模塊********//
- {
- input_state = STATE_PINYIN;
- while(1)
- {
- key = get_key();
- sprintf(Fkey, " %d" , key);
- if (input_state == STATE_PINYIN)
- {
- if (is_t9_key(key))
- {
- str_cat_char(key_str, Fkey[1]); // 將新輸入的字符添加到末尾
- ok = t9_table_search();
- if(ok==1)
- t9py_result_select_reset(); // 新輸入成功,復(fù)位拼音選擇
- display_pinyin(&t9py_result); // 刷新備選拼音顯示
- }
- else {
- if (key == 15) //15表示上鍵
- {
- t9py_result_select_prev();
- }
- else if (key == 14) //14表示下鍵
- {
- t9py_result_select_next();
- }
- else if(key==13) //按下13退格鍵把三四行清
- {
- LCD_qingchu_34(); //清屏三四行
- for (i = 0; i < 8; i++)
- key_str[i] = NULL; //復(fù)位key_str
- }
- else if (key == 16)
- {
- t9py_result_hanzi_init(); //16表示確定鍵
- input_state = STATE_HANZI; // 切換為顯示漢字模式
- display_hanzi(&t9py_result); // 刷新備選漢字顯示
- }
- }
- }
- else if (input_state == STATE_HANZI)
- {
- if (key == 15)
- { //15表示上鍵
- t9py_result_hanzi_select_prev();
- }
- else if (key == 14) //14表示下鍵
- {
- t9py_result_hanzi_select_next();
- }
- else if (key == 16) //16表示確定鍵
- {
- pos=0;
- LCD_Wcode(0x0c);
- input_state = STATE_PINYIN;
- display_output_hanzi(&t9py_result); // 輸出選中的漢字
- delay(100);
- LCD_qingchu_34(); //清屏三四行
- for (i = 0; i < 8; i++)
- key_str[i] = NULL; //復(fù)位key_str
- }
- }
- if(key==1) break; //當(dāng)按下10或11或12或13時(shí)跳出漢字顯示模塊 再按相應(yīng)鍵進(jìn)入其他顯示模塊
- }
- }
- }
- }
復(fù)制代碼
|
-
-
輸入法+溫度.zip
2021-3-9 00:39 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
78.87 KB, 下載次數(shù): 13, 下載積分: 黑幣 -5
評(píng)分
-
查看全部評(píng)分
|