PIC Vietnam

Go Back   PIC Vietnam > Các Đề Tài > PIC Việt Nam - Chuyên nghiệp

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

PIC Việt Nam - Chuyên nghiệp Chúng ta sẽ thảo luận ở đây nhưng vấn đề về phương pháp nghiên cứu, cách làm việc và tổ chức công việc...

 
 
Ðiều Chỉnh Xếp Bài
Prev Previous Post   Next Post Next
Old 27-07-2012, 12:20 PM   #7
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Trích:
Nguyên văn bởi sontvak42 View Post
Các phần thiết lập LCD và hiển thị ký tự hoặc giá trị lên LCD thì em đã làm được rồi, chỉ có phần lúc em tạo file ảnh từ phần mềm fastLCD xong em ra được mảng mã hex đó rồi nhưng khi em sử dụng vòng lặp for cho nó chạy nhưng nó lại báo lỗi, vì em viết trên CCS nên cấu trúc phần ctrinh trên này các lệnh em ko hiểu cho lắm. Anh đã từng viết qua chương trình CCS chưa,nếu viết rồi có thể giúp em phần hiển thị khung màn hình ở đoạn cuối được không anh.
Em cám ơn anh nhiều!
code tham khảo:
Code:
#include <16F877A.h>
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=4000000)
//#use rs232(baud=9600,parity=n,xmit=PIN_C6,rcv=PIN_C7)
// ------------------------------------------------------  
// Picture name: mikro_bmp            
// GLCD Model: Nokia3310 Like            
// ------------------------------------------------------  

unsigned char const mikro_bmp[504] = {
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0, 255, 255,   0, 255, 255, 255,   7,  71,  99,  99,  99, 
 99,  99,  99,  99, 103,   7, 143, 255, 255,  63,  63,  31, 
 15,  15,   7,   7,   7,   3,   3,   3,   3,   3,   3,   3, 
  3,   3,   7,   7,   7,  15,  15,  31,  31,  63, 255, 255, 
255, 255, 255, 255, 255,   0, 255, 255,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0, 255, 255,   0, 255, 255, 255,  14,  12,  12,  28,  60, 
 60,  60,  60,  60, 252, 254, 255,   3,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0, 248, 254, 254, 254, 252, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1, 
 15, 255, 255, 255, 255,   0, 255, 255,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0, 255, 255,   0, 255, 255, 255,  34, 102,   6,   6,  30, 
 14,   6,   6,  34, 255, 255, 255,   0,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   1,   3,   3,   3,   3, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0, 255, 255, 255, 255,   0, 255, 255,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0, 255, 255,   0, 255, 255, 255, 196, 254, 222, 198, 198, 
198, 198, 198, 198, 255, 255, 255,   0,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0, 254, 255, 255, 255, 255, 
255,   7,   7,   7,   7,   7,   7,   7,   7,   7,   7,   7, 
  7, 255, 255, 255, 255,   0, 255, 255,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0, 255, 255,   0, 255, 255, 255,  16,  24,  24,  24,  24, 
 24,  24,  24,  24,  27,  63, 255, 224, 128,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,  15,  63, 127,  63,  63, 
 15,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 128, 
240, 255, 255, 255, 255,   0, 255, 255,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0, 
  0, 255, 255,   0, 255, 255, 255, 224, 227, 227, 227, 227, 
227, 227, 227, 227, 227, 227, 227, 227, 231, 238, 252, 248, 
248, 240, 240, 224, 224, 224, 224, 224, 224, 224, 224, 224, 
224, 224, 224, 224, 224, 240, 240, 248, 252, 254, 255, 255, 
255, 255, 255, 255, 127, 128, 255, 255,   0,   0,   0,   0, 
  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0
};

#include <lcd_3310.c>
void main()
{
 nokia_init(); 
 nokia_gotoxy(0,0); //cot,hang
 int16 bien;
 for(bien=0;bien<=504;bien++)
 {
 nokia_write_data(mikro_bmp[bien]);}
// printf(nokia_printchar,"test???"); 
 while(1)
 {};
}
<lcd_3310.c>
Code:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
        /* 

        Graphic LCD Nokia 3310 (LPH7779) routines v3 
        CCS compiler 


        by Michel Bavin 2004 --- bavin@skynet.be --- http://users.skynet.be/bk317494/ --- 
        august 29, 2004 

        */ 

        // ex: 
        // 
        // ... 
        // nokia_init(); 
        // ... 
        // nokia_gotoxy(0,0); 
        // printf(nokia_printchar,"test???"); 
        // ... 
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

        #define nok_sclk  PIN_D4 
        #define nok_sda   PIN_D3 
        #define nok_dc    PIN_D2 
        #define nok_cs    PIN_D1 
        #define nok_res   PIN_D0 

        char char_row,charsel,charpos,chardata;       // for nokia_3310 lcd 
        int16 ddram; 
        char plot_value; 
        int32 plot_value32; 
        int32 plot_umsb,plot_lmsb,plot_ulsb,plot_llsb; 

        BYTE const TABLE5[240]=            {0x00,0x00,0x00,0x00,0x00,   // 20 space          ASCII table for NOKIA LCD: 96 rows * 5 bytes= 480 bytes 
          0x00,0x00,0x5f,0x00,0x00,   // 21 ! 
          0x00,0x07,0x00,0x07,0x00,   // 22 " 
          0x14,0x7f,0x14,0x7f,0x14,   // 23 # 
          0x24,0x2a,0x7f,0x2a,0x12,   // 24 $ 
          0x23,0x13,0x08,0x64,0x62,   // 25 % 
          0x36,0x49,0x55,0x22,0x50,   // 26 & 
          0x00,0x05,0x03,0x00,0x00,   // 27 ' 
          0x00,0x1c,0x22,0x41,0x00,   // 28 ( 
          0x00,0x41,0x22,0x1c,0x00,   // 29 ) 
          0x14,0x08,0x3e,0x08,0x14,   // 2a * 
          0x08,0x08,0x3e,0x08,0x08,   // 2b + 
          0x00,0x50,0x30,0x00,0x00,   // 2c , 
          0x08,0x08,0x08,0x08,0x08,   // 2d - 
          0x00,0x60,0x60,0x00,0x00,   // 2e . 
          0x20,0x10,0x08,0x04,0x02,   // 2f / 
          0x3e,0x51,0x49,0x45,0x3e,   // 30 0 
          0x00,0x42,0x7f,0x40,0x00,   // 31 1 
          0x42,0x61,0x51,0x49,0x46,   // 32 2 
          0x21,0x41,0x45,0x4b,0x31,   // 33 3 
          0x18,0x14,0x12,0x7f,0x10,   // 34 4 
          0x27,0x45,0x45,0x45,0x39,   // 35 5 
          0x3c,0x4a,0x49,0x49,0x30,   // 36 6 
          0x01,0x71,0x09,0x05,0x03,   // 37 7 
          0x36,0x49,0x49,0x49,0x36,   // 38 8 
          0x06,0x49,0x49,0x29,0x1e,   // 39 9 
          0x00,0x36,0x36,0x00,0x00,   // 3a : 
          0x00,0x56,0x36,0x00,0x00,   // 3b ; 
          0x08,0x14,0x22,0x41,0x00,   // 3c < 
          0x14,0x14,0x14,0x14,0x14,   // 3d = 
          0x00,0x41,0x22,0x14,0x08,   // 3e > 
          0x02,0x01,0x51,0x09,0x06,   // 3f ? 
          0x32,0x49,0x79,0x41,0x3e,   // 40 @ 
          0x7e,0x11,0x11,0x11,0x7e,   // 41 A 
          0x7f,0x49,0x49,0x49,0x36,   // 42 B 
          0x3e,0x41,0x41,0x41,0x22,   // 43 C 
          0x7f,0x41,0x41,0x22,0x1c,   // 44 D 
          0x7f,0x49,0x49,0x49,0x41,   // 45 E 
          0x7f,0x09,0x09,0x09,0x01,   // 46 F 
          0x3e,0x41,0x49,0x49,0x7a,   // 47 G 
          0x7f,0x08,0x08,0x08,0x7f,   // 48 H 
          0x00,0x41,0x7f,0x41,0x00,   // 49 I 
          0x20,0x40,0x41,0x3f,0x01,   // 4a J 
          0x7f,0x08,0x14,0x22,0x41,   // 4b K 
          0x7f,0x40,0x40,0x40,0x40,   // 4c L 
          0x7f,0x02,0x0c,0x02,0x7f,   // 4d M 
          0x7f,0x04,0x08,0x10,0x7f,   // 4e N 
          0x3e,0x41,0x41,0x41,0x3e    // 4f O 
        };    


        BYTE const TABLE6[240]=            {0x7f,0x09,0x09,0x09,0x06,   // 50 P 
          0x3e,0x41,0x51,0x21,0x5e,   // 51 Q 
          0x7f,0x09,0x19,0x29,0x46,   // 52 R 
          0x46,0x49,0x49,0x49,0x31,   // 53 S 
          0x01,0x01,0x7f,0x01,0x01,   // 54 T 
          0x3f,0x40,0x40,0x40,0x3f,   // 55 U 
          0x1f,0x20,0x40,0x20,0x1f,   // 56 V 
          0x3f,0x40,0x38,0x40,0x3f,   // 57 W 
          0x63,0x14,0x08,0x14,0x63,   // 58 X 
          0x07,0x08,0x70,0x08,0x07,   // 59 Y 
          0x61,0x51,0x49,0x45,0x43,   // 5a Z 
          0x00,0x7f,0x41,0x41,0x00,   // 5b [ 
          0x02,0x04,0x08,0x10,0x20,   // 5c 
          0x00,0x41,0x41,0x7f,0x00,   // 5d 
          0x04,0x02,0x01,0x02,0x04,   // 5e 
          0x40,0x40,0x40,0x40,0x40,   // 5f 
          0x00,0x01,0x02,0x04,0x00,   // 60 
          0x20,0x54,0x54,0x54,0x78,   // 61 a 
          0x7f,0x48,0x44,0x44,0x38,   // 62 b 
          0x38,0x44,0x44,0x44,0x20,   // 63 c 
          0x38,0x44,0x44,0x48,0x7f,   // 64 d 
          0x38,0x54,0x54,0x54,0x18,   // 65 e 
          0x08,0x7e,0x09,0x01,0x02,   // 66 f 
          0x0c,0x52,0x52,0x52,0x3e,   // 67 g 
          0x7f,0x08,0x04,0x04,0x78,   // 68 h 
          0x00,0x44,0x7d,0x40,0x00,   // 69 i 
          0x20,0x40,0x44,0x3d,0x00,   // 6a j 
          0x7f,0x10,0x28,0x44,0x00,   // 6b k 
          0x00,0x41,0x7f,0x40,0x00,   // 6c l 
          0x7c,0x04,0x18,0x04,0x78,   // 6d m 
          0x7c,0x08,0x04,0x04,0x78,   // 6e n 
          0x38,0x44,0x44,0x44,0x38,   // 6f o 
          0x7c,0x14,0x14,0x14,0x08,   // 70 p 
          0x08,0x14,0x14,0x18,0x7c,   // 71 q 
          0x7c,0x08,0x04,0x04,0x08,   // 72 r 
          0x48,0x54,0x54,0x54,0x20,   // 73 s 
          0x04,0x3f,0x44,0x40,0x20,   // 74 t 
          0x3c,0x40,0x40,0x20,0x7c,   // 75 u 
          0x1c,0x20,0x40,0x20,0x1c,   // 76 v 
          0x3c,0x40,0x30,0x40,0x3c,   // 77 w 
          0x44,0x28,0x10,0x28,0x44,   // 78 x 
          0x0c,0x50,0x50,0x50,0x3c,   // 79 y 
          0x44,0x64,0x54,0x4c,0x44,   // 7a z 
          0x00,0x08,0x36,0x41,0x00,   // 7b 
          0x00,0x00,0x7f,0x00,0x00,   // 7c 
          0x00,0x41,0x36,0x08,0x00,   // 7d 
          0x10,0x08,0x08,0x10,0x08,   // 7e 
          0x78,0x46,0x41,0x46,0x78    // 7f 
        };  


        // 

        void    nokia_init(void); 
        void    nokia_write_command(char bytefornokia_command); 
        void    nokia_write_data(char bytefornokia_data); 
        void    nokia_write_dorc(char bytefornokia); 
        void    nokia_gotoxy(int8 xnokia, int8 ynokia); 
        void    nokia_erase_y(int8 ynokia); 
        void    nokia_erase_x(int8 xnokia); 
        void    nokia_printchar(int8 cvar); 
        void    nokia_clean_ddram(void); 
        void    table_to_nokialcd(void); 
        void    nokia_plot(int8 xnokia,int8 plot_value8); 
        void    nokia_write_data_inv(char bytefornokia_data_inv); 
        void    nokia_clear_screen(void); 
        void    nokia_clear_xy(int8 xnokia, int8 ynokia); 
        void    nokia_print_uparrow(void); 
        void    nokia_print_downarrow(void); 
        void    nokia_print_leftarrow(void); 
        void    nokia_print_rightarrow(void); 
        void    nokia_print_degree(void); 
        void    nokia_print_lowbatdegree(void); 
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
        void nokia_init(void) 
        { 
          output_high(nok_dc);            // bytes are stored in the display data ram, address counter, incremented automatically 
          output_high(nok_cs);            // chip disabled 

          output_low(nok_res);            // reset chip during 250ms 
          delay_ms(10);         // works with less..... 
          output_high(nok_res); 

          nokia_write_command(0x21);   // set extins extended instruction set 
          nokia_write_command(0xc2);   // Vop  v1: 0xc8 (for 3V)// v2: 0xa0 (for 3V) // v3: 0xc2 (2v6-5v)   ******************************************************************************************************************** 
          nokia_write_command(0x13);   // bias 
          nokia_write_command(0x20);   // horizontal mode from left to right, X axe are incremented automatically , 0x22 for vertical addressing ,back on normal instruction set too 
          nokia_write_command(0x09);   // all on 

          nokia_clean_ddram();      // reset DDRAM, otherwise the lcd is blurred with random pixels 

          nokia_write_command(0x08);   // mod control blank change (all off) 

          nokia_write_command(0x0c);   // mod control normal change 

        } 

        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
        void nokia_clean_ddram(void) 
        { 
          nokia_gotoxy(0,0);         // 84*6=504      clear LCD 
          for (ddram=504;ddram>0;ddram--){nokia_write_data(0x00);} 

        } 
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

        void nokia_write_command(char bytefornokia_command) 
        { 

          output_low(nok_dc);   // byte is a command it is read with the eight SCLK pulse 
          output_low(nok_cs);   // chip enabled 
          nokia_write_dorc(bytefornokia_command); 
          output_high(nok_cs);   // chip disabled 

        } 
        ///////////////////////////////////////////////////////////////////////////////// 
        void nokia_write_data(char bytefornokia_data) 
        { 

          output_high(nok_dc); 
          output_low(nok_cs);   // chip enabled 
          nokia_write_dorc(bytefornokia_data); 
          output_high(nok_cs);   // chip disabled 

        } 
        ////////////////////////////////////////////////////////////////////////////////// 
        void nokia_write_dorc(char bytefornokia)         // serial write data or command subroutine 
        { 
          char caa; 
          for (caa=8;caa>0;caa--) { 
            output_low(nok_sclk); 
            // delay_us(2); 
            if ((bytefornokia&0x80)==0){output_low(nok_sda);} 
            else {output_high(nok_sda);} 
            output_high(nok_sclk); 
            bytefornokia=bytefornokia<<1; 
          } 
        } 
        ////////////////////////////////////////////////////////////////////////////////// 
        void nokia_gotoxy(int8 xnokia, int8 ynokia)      // Nokia LCD 3310 Position cursor 
        { 
          nokia_write_command(0x40|(ynokia&0x07));   // Y axe initialisation: 0100 0yyy 

          nokia_write_command(0x80|(xnokia&0x7f));   // X axe initialisation: 1xxx xxxx 
        } 
        ////////////////////////////////////////////////////////////////////////////////// 
        void nokia_erase_y(int8 ynokia) 
        { 
          nokia_gotoxy(0,ynokia); 
          printf(nokia_printchar,"              "); 
        } 
        ////////////////////////////////////////////////////////////////////////////////// 
        void nokia_erase_x(int8 xnokia) 
        { 
          char column; 

          for (column=0;column!=6;column++){ 
            nokia_gotoxy(xnokia,column); 
            nokia_write_data(0x00); 
            nokia_write_data(0x00); 
            nokia_write_data(0x00); 
            nokia_write_data(0x00); 
            nokia_write_data(0x00); 
            nokia_write_data(0x00); 

          } 
        } 
        ////////////////////////////////////////////////////////////////////////////////// 

        void nokia_printchar(int8 cvar)               // Write 1 character to LCD 
        { 
          charsel=cvar; 
          table_to_nokialcd(); 
        } 
        ////////////////////////////////////////////////////////////////////////////////// 
        void table_to_nokialcd(void)   // extract ascii from tables & write to LCD 
        { 
          if (charsel<0x20)return; 
          if (charsel>0x7f)return; 

          for (char_row=0;char_row<5;char_row++) {      // 5 bytes 

            if (charsel<0x50){charpos=(((charsel&0xff)-0x20)*5);chardata=TABLE5[(charpos+char_row)];}            // use TABLE5 
            else if (charsel>0x4f){charpos=(((charsel&0xff)-0x50)*5);chardata=TABLE6[(charpos+char_row)];}            // use TABLE6 


            nokia_write_data(chardata);      // send data to nokia 
          } 

          nokia_write_data(0x00);      //    1 byte (always blank) 

        } 
        /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

        void nokia_plot(int8 xnokia,int8 plot_value8) 
        { 
          char i; 

          plot_value32=0; 
          // plot_value32|=1;         // unremark this if you want dotgraph instead of bargraph 

          for (i=0;i!=plot_value8;i++){ 

            plot_value32|=1;         // remark this if you want dotgraph instead of bargraph 
            plot_value32<<=1; 
          } 

          plot_value32|=2;            // bottom line is always filled 

          plot_llsb=(plot_value32&0xff); 
          plot_ulsb=((plot_value32>>8)&0xff); 
          plot_lmsb=((plot_value32>>16)&0xff); 
          plot_umsb=((plot_value32>>24)&0xff); 

          nokia_gotoxy(xnokia,1); 
          nokia_write_data_inv(plot_umsb); 

          nokia_gotoxy(xnokia,2); 
          nokia_write_data_inv(plot_lmsb); 

          nokia_gotoxy(xnokia,3); 
          nokia_write_data_inv(plot_ulsb); 

          nokia_gotoxy(xnokia,4); 
          nokia_write_data_inv(plot_llsb); 

        } 
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 


        void nokia_write_data_inv(char bytefornokia_data_inv) 
        { 
          char caa; 

          output_high(nok_dc); 
          output_low(nok_cs);   // chip enabled 

          for (caa=8;caa>0;caa--) { 
            output_low(nok_sclk); 
            delay_us(2); 
            if ((bytefornokia_data_inv&0x01)==0){output_low(nok_sda);} 
            else {output_high(nok_sda);} 
            output_high(nok_sclk); 
            bytefornokia_data_inv=bytefornokia_data_inv>>1; 
          } 

          output_high(nok_cs);   // chip disabled 
        } 
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

        void nokia_clear_screen(void) 
        { 
          nokia_erase_y(0); 
          nokia_erase_y(1); 
          nokia_erase_y(2); 
          nokia_erase_y(3); 
          nokia_erase_y(4); 
          nokia_erase_y(5); 

        } 

        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 


        void nokia_clear_xy(int8 xnokia, int8 ynokia) 
        { 

          nokia_gotoxy(xnokia,ynokia); 
          nokia_printchar(" "); 


        } 
        //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
        void nokia_print_uparrow(void) 
        { 
          nokia_write_data(0x04); 
          nokia_write_data(0x02); 
          nokia_write_data(0x7f); 
          nokia_write_data(0x02); 
          nokia_write_data(0x04); 
          nokia_write_data(0x00); 
        } 
        // 
        void nokia_print_downarrow(void) 
        { 
          nokia_write_data(0x10); 
          nokia_write_data(0x20); 
          nokia_write_data(0x7f); 
          nokia_write_data(0x20); 
          nokia_write_data(0x10); 
          nokia_write_data(0x00); 
        } 
        // 
        void nokia_print_leftarrow(void) 
        { 
          nokia_write_data(0x08); 
          nokia_write_data(0x1c); 
          nokia_write_data(0x2a); 
          nokia_write_data(0x08); 
          nokia_write_data(0x08); 
          nokia_write_data(0xf8); 
        } 
        // 
        void nokia_print_rightarrow(void) 
        { 
          nokia_write_data(0x08); 
          nokia_write_data(0x08); 
          nokia_write_data(0x2a); 
          nokia_write_data(0x1c); 
          nokia_write_data(0x08); 
          nokia_write_data(0x00); 
        } 
        // 
        void nokia_print_degree(void) 
        { 
          nokia_write_data(0x00); 
          nokia_write_data(0x06); 
          nokia_write_data(0x09); 
          nokia_write_data(0x09); 
          nokia_write_data(0x06); 
          nokia_write_data(0x00); 

          // nokia_printchar("  "); 
        } 
        // 
        void nokia_print_lowbatdegree(void) 
        { 
          nokia_write_data(0x00); 
          nokia_write_data(0x06); 
          nokia_write_data(0x0f); 
          nokia_write_data(0x0f); 
          nokia_write_data(0x06); 
          nokia_write_data(0x00); 

          // nokia_printchar("  "); 
        } 
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Hình Kèm Theo
File Type: jpg hien_thi.jpg (167.3 KB, 10 lần tải)
__________________
viết chương trình cho vdk chạy ổn định là cả một vấn đề.
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
 


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 06:42 AM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam