佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1732|回复: 16

Arduino 和8x8 dot matrix 问题

[复制链接]
发表于 6-9-2013 03:41 PM | 显示全部楼层 |阅读模式


Uploaded with ImageShack.us

  1. const char matrix[][8] = {
  2.   {0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00,0x00}, //1

  3.   
  4. };
  5. int latchPin_col = 9 ;  //Pin connected to SH_CP of 74HC595
  6. int clockPin_col = 10 ;//Pin connected to DS of 74HC595
  7. int dataPin_col = 8;
  8. <span style="line-height: 1.5;">int latchPin_row = 5;   </span>//Pin connected to SH_CP of 74HC595
  9. int clockPin_row = 6;  //Pin connected to DS of 74HC595
  10. int dataPin_row = 7;
  11. int x,y;

  12. void setup()                                 //set pins to output because they are addressed in the main loop
  13.   pinMode(latchPin_col, OUTPUT);
  14.   pinMode(clockPin_col, OUTPUT);
  15.   pinMode(dataPin_col, OUTPUT);

  16.   pinMode(latchPin_row, OUTPUT);
  17.   pinMode(clockPin_row, OUTPUT);
  18.   pinMode(dataPin_row, OUTPUT);
  19. }


  20. void loop()
  21. {
  22.   for (int row = 0; row < 8; row++)   
  23.   {
  24.     int rowbit = 1 << row;
  25.     digitalWrite(latchPin_row, LOW);  //Hold latchPin LOW for as long as we're transmitting data
  26.     shiftOut(dataPin_row, clockPin_row, MSBFIRST, rowbit);   //Transmit data
  27.     digitalWrite(latchPin_row, LOW);  //Hold latchPin LOW for as long as we're transmitting dat

  28.     digitalWrite(latchPin_col, LOW);
  29.     shiftOut(dataPin_col, clockPin_col, MSBFIRST, matrix[0][row]);
  30.      digitalWrite(latchPin_col, LOW);

  31.     digitalWrite(latchPin_col, HIGH);
  32.     digitalWrite(latchPin_row, HIGH);

  33.     delayMicroseconds(500);

  34.   }
  35.   
  36. }


复制代码
我做了很久,当我现在只要可以显示1号时。可是不懂为什么那个1号不能在我准确的位子。 我想是array的问题。请求大家的帮忙。谢谢
本帖最后由 wilson16 于 6-9-2013 03:44 PM 编辑

回复

使用道具 举报


ADVERTISEMENT

发表于 7-9-2013 07:38 PM | 显示全部楼层
什么是1号不能在我准确的位子
建议显示4号,比较容易分析问题。


回复

使用道具 举报

 楼主| 发表于 8-9-2013 05:12 PM | 显示全部楼层
好不容易可以显示到一个A字。但看会去自己的programming, array很奇怪。其实我只是要做比如两个input(Active low),当第一个input1 trigger时,会显示A。如果是input2 trigger 时会显示B。大概是这样。但写到这边,不会了。 我用两个74HC595。一个col,一个给Row。




Uploaded with ImageShack.us
  1. int latchPin = 5;
  2. int clockPin = 6;
  3. int dataPin = 4;
  4. int i,j;

  5. int row;
  6. int rowlatchPin = 10;
  7. int rowclockPin = 9;
  8. int rowdataPin = 8;
  9. byte colMatrix[][1] = {

  10. {0x00},
  11. {0x3f},
  12. {0x44},
  13. {0x44},
  14. {0x44},
  15. {0x44},
  16. {0x3f},
  17. {0x00}

  18. };                     
  19. void setup()
  20. {
  21.   pinMode(latchPin, OUTPUT);
  22.   pinMode(dataPin, OUTPUT);  
  23.   pinMode(clockPin, OUTPUT);
  24.   
  25.    pinMode(rowlatchPin, OUTPUT);
  26.   pinMode(rowdataPin, OUTPUT);  
  27.   pinMode(rowclockPin, OUTPUT);
  28. }

  29. void loop()
  30. {
  31. for(row = 0; row <8; row++)
  32.    {
  33.     int rowbit= 1<<row;
  34.     digitalWrite(rowlatchPin, LOW);
  35.     shiftOut(rowdataPin, rowclockPin, MSBFIRST,rowbit);
  36.    
  37.     digitalWrite(latchPin, LOW);
  38.    
  39.     for(int j =7; j>=0; j--)
  40.     {
  41.     shiftOut(dataPin, clockPin, MSBFIRST, colMatrix[row][j]);
  42.     }
  43.      digitalWrite(latchPin, HIGH);
  44.      digitalWrite(rowlatchPin, HIGH);
  45.      delayMicroseconds(500);  
  46.    }   
  47. }
复制代码
本帖最后由 wilson16 于 8-9-2013 05:21 PM 编辑

回复

使用道具 举报

发表于 9-9-2013 10:44 AM | 显示全部楼层
wilson16 发表于 8-9-2013 05:12 PM
好不容易可以显示到一个A字。但看会去自己的programming, array很奇怪。其实我只是要做比如两个input(Act ...

  1. const int buttonA = 2;     // the number of the pushbutton pin
  2. const int buttonB = 3; // the number of the pushbutton pin

  3. // variables will change:
  4. int buttonAstate = 0;         // variable for reading the pushbuttonA status
  5. int buttonBstate = 0;         // variable for reading the pushbuttonB status

  6. void setup() {
  7.    
  8.   // initialize the pushbutton pin as an input:
  9.   pinMode(buttonA, INPUT);  
  10.   pinMode(buttonB, INPUT);
  11.   
  12.   // turn on pull-up resistor
  13.   digitalWrite(buttonA, HIGH);
  14.   digitalWrite(buttonB, HIGH);  
  15. }

  16. void loop(){
  17.   // read the state of the pushbutton value:
  18.   buttonAstate = digitalRead(buttonA);
  19.   buttonBstate = digitalRead(buttonB);

  20.   // check if the pushbutton is pressed.
  21.   // if it is, the buttonState is LOW:
  22.   if (buttonAstate == LOW) {     
  23.     // do something  
  24.   }

  25.   // check if the pushbutton is pressed.
  26.   // if it is, the buttonState is LOW:
  27.   if (buttonBstate == LOW) {     
  28.     // do something  
  29.   }
  30. }
复制代码
回复

使用道具 举报

 楼主| 发表于 9-9-2013 02:29 PM | 显示全部楼层
西门庆33 发表于 9-9-2013 10:44 AM

谢谢你的回复。你给的也是我将会加进去的。 可是我先要解决一个问题,就是我不明白3D array的原理。目前我用的是2D array,所以只能显示一个字母。就算加进去array里,跟本loop不到。请问3D array怎样跑得?google过了,不是很明白。
  1. #define A {0x00},{0x3f},{0x44},{0x44},{0x44},{0x44},{0x3f},{0x00}
  2. #define B {0x05},{0x3f},{0x44},{0x44},{0x44},{0x44},{0x3f},{0x00}

  3. int latchPin = 5;
  4. int clockPin = 6;
  5. int dataPin = 4;
  6. int i,j;

  7. int row;
  8. int rowlatchPin = 10;
  9. int rowclockPin = 9;
  10. int rowdataPin = 8;


  11. byte colMatrix[][1]={A};//PUT YOU TEXT HERE

  12. <span style="line-height: 1.5;">void setup() </span>
  13. {
  14.   pinMode(latchPin, OUTPUT);
  15.   pinMode(dataPin, OUTPUT);  
  16.   pinMode(clockPin, OUTPUT);
  17.   
  18.   pinMode(rowlatchPin, OUTPUT);
  19.   pinMode(rowdataPin, OUTPUT);  
  20.   pinMode(rowclockPin, OUTPUT);

  21. }

  22. void loop()
  23. {


  24. update();

  25. }

  26. void update()
  27. {
  28.    for(row = 0; row <8; row++)
  29.    {
  30.     int rowbit= 1<<row;
  31.     digitalWrite(rowlatchPin, LOW);
  32.     shiftOut(rowdataPin, rowclockPin, MSBFIRST,rowbit);
  33.     digitalWrite(latchPin, LOW);
  34.     for(int j =7; j>=0; j--)
  35.     {
  36.     shiftOut(dataPin, clockPin, MSBFIRST, colMatrix[row][j]);
  37.     }
  38.      digitalWrite(latchPin, HIGH);
  39.      digitalWrite(rowlatchPin, HIGH);
  40.      delayMicroseconds(500);  
  41.     }      
  42. }

复制代码
上面的是用2D array。我要用3D array 是因为当

int numberpattern;
byte colMatrix[numberpattern][8][1]={A,B,C};


如果numberpattern=0, colMatrix[numberpattern][8][1] =='A'
如果numberpattern=1, colMatrix[numberpattern][8][1] =='B'
如果numberpattern=2, colMatrix[numberpattern][8][1] =='C'

有错的话,请纠正我吧。
回复

使用道具 举报

发表于 9-9-2013 11:15 PM | 显示全部楼层
wilson16 发表于 9-9-2013 02:29 PM
谢谢你的回复。你给的也是我将会加进去的。 可是我先要解决一个问题,就是我不明白3D array的原理。目前我 ...

使用single dimension array可以完全工作。比如四个字母(4x8=32)的array可以这样写
每行row乘八就是个别的字母
  1. unsigned char colMatrix[32] =
  2. {
  3.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,       
  4.         0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,       
  5.         0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E,       
  6.         0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00,         
  7. };
复制代码
回复

使用道具 举报

Follow Us
 楼主| 发表于 10-9-2013 12:04 AM | 显示全部楼层
西门庆33 发表于 9-9-2013 11:15 PM
使用single dimension array可以完全工作。比如四个字母(4x8=32)的array可以这样写
每行row乘八就是个 ...

如果全部都在一起的话,要分开显示出来好像更难。因为要跟着input来显示那些字。
回复

使用道具 举报

发表于 10-9-2013 09:26 AM | 显示全部楼层
wilson16 发表于 10-9-2013 12:04 AM
如果全部都在一起的话,要分开显示出来好像更难。因为要跟着input来显示那些字。

你想得太复杂了。

这里lineNumber当着是你的字母,lineNumber为0时是第一个字母,lineNumber为1时是第二个字母,由此类推。用回你之前的代码必需加 lineNumber 乘8。 本帖最后由 西门庆33 于 10-9-2013 09:36 AM 编辑

回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 12-9-2013 12:41 AM | 显示全部楼层
西门庆33 发表于 10-9-2013 09:26 AM
你想得太复杂了。

这里lineNumber当着是你的字母,lineNumber为0时是第一个字母,lineNumber为1时是第 ...

做到半死,终于有点成果了。谢谢你的指点。



Uploaded with ImageShack.us

评分

参与人数 1人气 +5 收起 理由
西门庆33 + 5 努力再努力

查看全部评分

回复

使用道具 举报

发表于 12-9-2013 07:35 PM | 显示全部楼层
wilson16 发表于 12-9-2013 12:41 AM
做到半死,终于有点成果了。谢谢你的指点。

可以分享你的代码吗?
回复

使用道具 举报

 楼主| 发表于 17-9-2013 10:46 AM | 显示全部楼层
西门庆33 发表于 12-9-2013 07:35 PM
可以分享你的代码吗?

可以啊,给我时间整理一下下。
回复

使用道具 举报

 楼主| 发表于 17-9-2013 07:09 PM | 显示全部楼层
西门庆33 发表于 12-9-2013 07:35 PM
可以分享你的代码吗?

  1. #define UP { \
  2.     {0x08}, \
  3.     {0x10}, \
  4.     {0x20}, \
  5.     {0x40}, \
  6.     {0x40}, \
  7.     {0x20}, \
  8.     {0x10}, \
  9.     {0x08}  \
  10. }   

  11. #define DOWN { \
  12.     {0x10}, \
  13.     {0x08}, \
  14.     {0x04}, \
  15.     {0x02}, \
  16.     {0x02}, \
  17.     {0x04}, \
  18.     {0x08}, \
  19.     {0x10}  \
  20. }   

  21. #define PL1_1 { \
  22.     {0}, \
  23.     {0x7f}, \
  24.     {0x48}, \
  25.     {0x48}, \
  26.     {0x30}, \
  27.     {0}, \
  28.     {0x7f}, \
  29.     {0x01}  \
  30. }
  31. #define PL1_2 { \
  32.     {0x01}, \
  33.     {0x01}, \
  34.     {0x01}, \
  35.     {0}, \
  36.     {0x21}, \
  37.     {0x7f}, \
  38.     {0x01}, \
  39.     {0}  \
  40. }

  41. #define A { \
  42.     {0}, \
  43.     {0x3f}, \
  44.     {0x44}, \
  45.     {0x44}, \
  46.     {0x44}, \
  47.     {0x44}, \
  48.     {0x3f}, \
  49.     {0}  \
  50. }

  51. #define B { \
  52.     {0}, \
  53.     {0}, \
  54.     {0x7f}, \
  55.     {0x49}, \
  56.     {0x49}, \
  57.     {0x49}, \
  58.     {0x3e}, \
  59.     {0}  \
  60. }

  61. #define C { \
  62.     {0}, \
  63.     {0}, \
  64.     {0x3E}, \
  65.     {0x41}, \
  66.     {0x41}, \
  67.     {0x41}, \
  68.     {0x22}, \
  69.     {0}  \
  70. }

  71. #define D { \
  72.     {0}, \
  73.     {0x7F}, \
  74.     {0x41}, \
  75.     {0x41}, \
  76.     {0x41}, \
  77.     {0x41}, \
  78.     {0x3E}, \
  79.     {0}  \
  80. }

  81. #define SPACE { \
  82.     {0}, \
  83.     {0}, \
  84.     {0}, \
  85.     {0}, \
  86.     {0}, \
  87.     {0}, \
  88.     {0}, \
  89.     {0}  \
  90. }

  91. int latchPin = 5;
  92. int clockPin = 6;
  93. int dataPin = 4;

  94. int latchPin1 = 12;
  95. int clockPin1 = 13;
  96. int dataPin1 = 11;
  97. int i,j;

  98. int row;
  99. int rowlatchPin = 10;
  100. int rowclockPin = 9;
  101. int rowdataPin = 8;

  102. int buttonAstate = 0;         // variable for reading the pushbuttonA status
  103. int buttonBstate = 0;         // variable for reading the pushbuttonB status

  104. const int buttonA = 0;     // the number of the pushbutton pin
  105. const int buttonB = 1; // the number of the pushbutton

  106. int count;
  107. byte colMatrix1[4][16][1]={SPACE,   PL1_2, D         ,D};//PUT YOU TEXT HERE
  108. byte colMatrix2[3][16][1]={SPACE,   PL1_1, B           };//PUT YOU TEXT HERE
  109. byte colMatrix3[3][16][1]={SPACE,   D,     C           };//PUT YOU TEXT HERE
  110. byte colMatrix4[3][16][1]={SPACE,   B,     B           };//PUT YOU TEXT HERE

  111. int a;


  112. void setup()
  113. {
  114.   pinMode(latchPin, OUTPUT);
  115.   pinMode(dataPin, OUTPUT);  
  116.   pinMode(clockPin, OUTPUT);
  117.   
  118.   pinMode(rowlatchPin, OUTPUT);
  119.   pinMode(rowdataPin, OUTPUT);  
  120.   pinMode(rowclockPin, OUTPUT);
  121.   
  122.   pinMode(latchPin1, OUTPUT);
  123.   pinMode(dataPin1, OUTPUT);  
  124.   pinMode(clockPin1, OUTPUT);
  125.   
  126.   
  127.   pinMode(buttonA, INPUT);  
  128.   pinMode(buttonB, INPUT);

  129.   
  130.   digitalWrite(buttonA, HIGH);
  131.   digitalWrite(buttonB, HIGH);
  132.   
  133. }

  134. void loop()
  135. {
  136. buttonAstate = digitalRead(buttonA);
  137. buttonBstate = digitalRead(buttonB);

  138.   
  139.   
  140. if (buttonAstate == LOW){  
  141.         for(int refreshcount=0; refreshcount<10; refreshcount++) ;
  142.          {
  143.            update(2);
  144.          
  145.          }
  146.          }
  147.      }

  148.   
  149.   else
  150.    for(int refreshcount=0; refreshcount<10; refreshcount++)
  151.    {
  152.      update(0);
  153.    }
  154.    

  155. }
  156.   


  157. void update(int count)
  158. {  
  159.    for(row = 0; row <8; row++)
  160.    {i++;
  161.     int rowbit= 1<<row;
  162.     digitalWrite(rowlatchPin, LOW);
  163.     shiftOut(rowdataPin, rowclockPin, MSBFIRST,rowbit);
  164.     digitalWrite(latchPin, LOW);
  165.     digitalWrite(latchPin1, LOW);
  166.    
  167.     for(int j =8; j>=0; j--)
  168.    {
  169.     shiftOut(dataPin, clockPin, MSBFIRST, colMatrix1[count][row][j]);
  170.    }
  171.     shiftOut(dataPin, clockPin, MSBFIRST, colMatrix2[count][row][j]);
  172.     shiftOut(dataPin, clockPin, MSBFIRST, colMatrix3[count][row][j]);
  173.     shiftOut(dataPin, clockPin, MSBFIRST, colMatrix4[count][row][j]);
  174.     shiftOut(dataPin1, clockPin1, MSBFIRST, LED[row][j]);
  175.    
  176.    
  177.     digitalWrite(latchPin, HIGH);
  178.     digitalWrite(rowlatchPin, HIGH);
  179. }
  180.    }   

复制代码
回复

使用道具 举报

 楼主| 发表于 18-9-2013 09:13 AM | 显示全部楼层
其实我写到很乱水下。
回复

使用道具 举报

发表于 20-9-2013 10:00 PM | 显示全部楼层
wilson16 发表于 17-9-2013 07:09 PM

谢谢分享

不能用以下方法(array)完成吗?
  1. unsigned char colMatrix[32] =
  2. {
  3.         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,        
  4.         0x7E, 0x81, 0xA5, 0x81, 0xBD, 0x99, 0x81, 0x7E,        
  5.         0x7E, 0xFF, 0xDB, 0xFF, 0xC3, 0xE7, 0xFF, 0x7E,        
  6.         0x10, 0x38, 0x7C, 0xFE, 0x7C, 0x38, 0x10, 0x00,         
  7. };
复制代码
回复

使用道具 举报

 楼主| 发表于 20-9-2013 11:28 PM | 显示全部楼层
西门庆33 发表于 20-9-2013 10:00 PM
谢谢分享

不能用以下方法(array)完成吗?

可以的。但我做不到。
所以就越想越复杂。


回复

使用道具 举报

发表于 27-9-2013 10:55 PM | 显示全部楼层
wilson16 发表于 10-9-2013 12:04 AM
如果全部都在一起的话,要分开显示出来好像更难。因为要跟着input来显示那些字。

single dimension array与two dimension array示范

使用single dimension array
  1. const byte COL_COUNT = 8;
  2. const byte ROW_COUNT = 3;

  3. //array to hold the data
  4. unsigned char sequence[24] = {
  5. B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000,
  6. B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111,
  7. B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111
  8. };

  9. //Define which pins will be used for the shift register control
  10. //can be any digital pin on the Arduino
  11. int latchPin = 8;  //Pin connected to ST_CP(pin 12) of 74HC595
  12. int clockPin = 12; //Pin connected to SH_CP(pin 11) of 74HC595
  13. int dataPin = 11;  //Pin connected to DS(pin 14) of 74HC595

  14. void setup() {   
  15.   pinMode(latchPin, OUTPUT);
  16.   pinMode(clockPin, OUTPUT);
  17.   pinMode(dataPin, OUTPUT);
  18. }

  19. void loop()
  20. {
  21.   for (int row = 0; row < ROW_COUNT; row++)
  22.   {
  23.     for (int col = 0; col < COL_COUNT; col++)
  24.     {
  25.       digitalWrite(latchPin, LOW);
  26.       shiftOut(dataPin, clockPin, MSBFIRST, sequence[col + row*COL_COUNT]);
  27.       digitalWrite(latchPin, HIGH);
  28.       delay(200);
  29.     }
  30.   }
  31. }
复制代码
使用two dimension array
  1. const byte COL_COUNT = 8;
  2. const byte ROW_COUNT = 3;

  3. //array to hold the data
  4. unsigned char sequence[ROW_COUNT][COL_COUNT] = {
  5. B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000,
  6. B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111,
  7. B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111
  8. };

  9. //Define which pins will be used for the shift register control
  10. //can be any digital pin on the Arduino
  11. int latchPin = 8;  //Pin connected to ST_CP(pin 12) of 74HC595
  12. int clockPin = 12; //Pin connected to SH_CP(pin 11) of 74HC595
  13. int dataPin = 11;  //Pin connected to DS(pin 14) of 74HC595

  14. void setup() {   
  15.   pinMode(latchPin, OUTPUT);
  16.   pinMode(clockPin, OUTPUT);
  17.   pinMode(dataPin, OUTPUT);
  18. }

  19. void loop()
  20. {
  21.   for (int row = 0; row < ROW_COUNT; row++)
  22.   {
  23.     for (int col = 0; col < COL_COUNT; col++)
  24.     {
  25.       digitalWrite(latchPin, LOW);
  26.       shiftOut(dataPin, clockPin, MSBFIRST, sequence[row][col]);
  27.       digitalWrite(latchPin, HIGH);
  28.       delay(200);
  29.     }
  30.   }
  31. }
复制代码
shiftOut() 函数从loop()抽出,编写成单独的程序(procedure),可以随意呼叫
比如可以写成
# define A 0
# define B 1
# define C 2 等等等
然后这样呼叫
row = A; col_display();
当然这不是一个矩阵显示,你必须如你上面般加入扫描
  1. const byte COL_COUNT = 8;
  2. const byte ROW_COUNT = 3;

  3. //array to hold the data
  4. unsigned char sequence[ROW_COUNT][COL_COUNT] = {
  5. B00000001, B00000010, B00000100, B00001000, B00010000, B00100000, B01000000, B10000000,
  6. B00000001, B00000011, B00000111, B00001111, B00011111, B00111111, B01111111, B11111111,
  7. B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B01111111
  8. };

  9. //Define which pins will be used for the shift register control
  10. //can be any digital pin on the Arduino
  11. int latchPin = 8;  //Pin connected to ST_CP(pin 12) of 74HC595
  12. int clockPin = 12; //Pin connected to SH_CP(pin 11) of 74HC595
  13. int dataPin = 11;  //Pin connected to DS(pin 14) of 74HC595

  14. int row;

  15. void setup() {   
  16.   Serial.begin(9600);
  17.   pinMode(latchPin, OUTPUT);
  18.   pinMode(clockPin, OUTPUT);
  19.   pinMode(dataPin, OUTPUT);
  20. }

  21. void loop()
  22. {
  23.     row = 0; col_display();
  24.     row = 1; col_display();
  25.     row = 2; col_display();
  26.     row = 1; col_display();
  27.     row = 0; col_display();   
  28. }

  29. void col_display()
  30. {
  31.     for (int col = 0; col < COL_COUNT; col++)
  32.     {
  33.       digitalWrite(latchPin, LOW);
  34.       shiftOut(dataPin, clockPin, MSBFIRST, sequence[row][col]);
  35.       digitalWrite(latchPin, HIGH);
  36.       delay(200);
  37.     }  
  38. }
复制代码
如果想要使用single dimension array,把char sequence[]和shiftOut改为:
unsigned char sequence[24]
shiftOut(dataPin, clockPin, MSBFIRST, sequence[col + row*COL_COUNT]);
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 15-10-2013 01:45 PM | 显示全部楼层
谢谢分享,我会慢慢更改和试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 27-12-2024 01:19 AM , Processed in 0.154910 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表