1. THÔNG BÁO TUYỂN ADMIN DIỄN ĐÀN 2013
    Tìm kiếm nhà trọ - Ở ghép
    THÔNG BÁO BÁN ÁO SPKT.NET CHO THÀNH VIÊN DIỄN ĐÀN


    HÃY TÌM KIẾM Ở ĐÂY TRƯỚC KHI ĐẶT CÂU HỎI
    {xen:phrase loading}

Các bạn lớp Cơ Điện Tử 07111CLC vô đây để post bài làm về cảm biến giữa kỳ nha

Thảo luận trong 'Thảo luận môn học' bắt đầu bởi tranhongphucdt, 9 Tháng sáu 2010.

  1. tranhongphucdt Member

    Số bài viết: 86
    Đã được thích: 2
    Điểm thành tích: 8
    Mình sẽ bắt đầu bằng bài làm của mình=d>
  2. tranhongphucdt Member

    Số bài viết: 86
    Đã được thích: 2
    Điểm thành tích: 8
    [FONT=&quot] CẢM BIẾN NHIỆT ĐỘ- GIAO TIẾP PC- VẼ ĐỒ THỊ
    [/FONT]
    [FONT=&quot]1. [/FONT][FONT=&quot]Nhu cầu thực tế:[/FONT]
    [FONT=&quot]Như được biết, các thành phần chính trong máy tính gồm: CPU, RAM, HDD[/FONT]( ổ cứng )[FONT=&quot], … trong số đó ổ cứng là thiết bị khá quan trọng, toàn bộ dữ liệu và các thông tin cần thiết đều được lưu trong ổ cứng. Nhưng mà, một khi máy tính làm việc ở tốc độ cao, truy xuất dữ liệu nhiều thì làm cho nhiệt độ ổ cứng tăng lên, đó cũng là nguyên nhân chính làm chết ổ cứng. [/FONT]
    [FONT=&quot]Xuất phát từ nhu cầu hạn chế ổ cứng bị chết tôi đã thực hiện một bài làm nho nhỏ để góp phần hạn chế hỏng ổ cứng.( cũng là bài làm giữa kỳ môn cảm biến của thầy Cường).[/FONT]
    [FONT=&quot]2. [/FONT][FONT=&quot]Yêu cầu:[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]Về phía VĐK: dùng Atmega32, lấy PORTA ADC để đọc giá trị cảm biến, gởi nhiệt độ thực lên máy tính, nhận dữ liệu từ máy tính gởi xuống, đối chiếu với nhiệt độ thực, xong tác động hợp lý lên 2 quạt làm mát.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]Về phía máy tính: Thiết kế giao diện tương tác với người dùng, trong đó có thể cho người dùng set giới hạn nhiệt độ gởi xuống VĐK, hiển thị nhiệt độ hiện hành, vẽ đồ thị nhiệt độ thực nhận được từ VĐK.[/FONT]
    [FONT=&quot]3. [/FONT][FONT=&quot]Yêu cầu về phần cứng:[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 Máy tính bàn hoặc xách tay.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 Cáp chuyển tín hiệu USB-COM ( nếu dùng Laptop).[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 Mạch nạp AVR.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 Cáp ISP nối mạch nạp với VĐK.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 Chân cắm 5x2 ( đế nạp VĐK).[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 Atmega 32.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]2 led kiểm tra đỏ, vàng( +2 trở 330 Ohm).[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]6 tụ 10 uF.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 LM35.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 Max232.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]Chân cắm COM- female ( loại hàn board).[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]2 relay( loại 5 chân, 1 cặp tiếp điểm, 1 ampere).[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]2 transitor 2N2222.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]2 trở 680 Ohm.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]5 domino.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]2 quạt làm mát loại 12VDC.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 cáp nguồn 5 VDC.[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]1 nguồn 12 VDC.[/FONT]
    [FONT=&quot]4. [/FONT][FONT=&quot]Yêu cầu về phần mềm:[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]Máy tính có cài sẵn VB ( Visual Basic)[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]Avrprog[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]Codevision[/FONT]
    [FONT=&quot]5. [/FONT][FONT=&quot]Mạch điện[/FONT]
    [FONT=&quot]- [/FONT][FONT=&quot]Mạch điện giao tiếp VĐK- PC[/FONT]
    + Nguyên lý
    [IMG]

    + Mạch in
    [IMG]

    [FONT=&quot]- [/FONT][FONT=&quot]Mạch điều khiển quạt[/FONT]
    + Mạch nguyên lý
    [IMG]

    + Mạch in
    [IMG]

    [FONT=&quot]6. [/FONT][FONT=&quot]Mã nguồn:[/FONT]
    [FONT=&quot]a. [/FONT][FONT=&quot]Mã cho VĐK:[/FONT]


    Mã:
                                 /*****************************************************
    This program was produced by the
    CodeWizardAVR V1.24.6 Professional
    Automatic Program Generator
    © Copyright 1998-2005 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    e-mail:office@hpinfotech.com
    
    Project : 
    Version : 
    Date    : 31/05/2010
    Author  : F4CG                            
    Company : F4CG                            
    Comments: 
    
    
    Chip type           : ATmega32
    Program type        : Application
    Clock frequency     : 8.000000 MHz
    Memory model        : Small
    External SRAM size  : 0
    Data Stack size     : 512
    *****************************************************/
    
    #include <mega32.h>
    #include <stdio.h>
    
    #include <delay.h>
    
    #include <stdlib.h>
    #include <math.h>
    #define RXB8 1
    #define TXB8 0
    #define UPE 2
    #define OVR 3
    #define FE 4
    #define UDRE 5
    #define RXC 7
    
    #define FRAMING_ERROR (1<<FE)
    #define PARITY_ERROR (1<<UPE)
    #define DATA_OVERRUN (1<<OVR)
    #define DATA_REGISTER_EMPTY (1<<UDRE)
    #define RX_COMPLETE (1<<RXC)
    
    // USART Receiver buffer
    #define RX_BUFFER_SIZE 8
    char rx_buffer[RX_BUFFER_SIZE];
    
    #if RX_BUFFER_SIZE<256
    unsigned char rx_wr_index,rx_rd_index,rx_counter;
    #else
    unsigned int rx_wr_index,rx_rd_index,rx_counter;
    #endif
    
    // This flag is set on USART Receiver buffer overflow
    bit rx_buffer_overflow;
    
    // USART Receiver interrupt service routine
    interrupt [USART_RXC] void usart_rx_isr(void)
    {
    char status,data;
    status=UCSRA;
    data=UDR;
    if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
       {
       rx_buffer[rx_wr_index]=data;
       if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
       if (++rx_counter == RX_BUFFER_SIZE)
          {
          rx_counter=0;
          rx_buffer_overflow=1;
          };
       };
    }
    
    #ifndef _DEBUG_TERMINAL_IO_
    // Get a character from the USART Receiver buffer
    #define _ALTERNATE_GETCHAR_
    #pragma used+
    char getchar(void)
    {
    char data;
    while (rx_counter==0);
    data=rx_buffer[rx_rd_index];
    if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
    #asm("cli")
    --rx_counter;
    #asm("sei")
    return data;
    }
    #pragma used-
    #endif
    
    // USART Transmitter buffer
    #define TX_BUFFER_SIZE 8
    char tx_buffer[TX_BUFFER_SIZE];
    
    #if TX_BUFFER_SIZE<256
    unsigned char tx_wr_index,tx_rd_index,tx_counter;
    #else
    unsigned int tx_wr_index,tx_rd_index,tx_counter;
    #endif
    
    // USART Transmitter interrupt service routine
    interrupt [USART_TXC] void usart_tx_isr(void)
    {
    if (tx_counter)
       {
       --tx_counter;
       UDR=tx_buffer[tx_rd_index];
       if (++tx_rd_index == TX_BUFFER_SIZE) tx_rd_index=0;
       };
    }
    
    #ifndef _DEBUG_TERMINAL_IO_
    // Write a character to the USART Transmitter buffer
    #define _ALTERNATE_PUTCHAR_
    #pragma used+
    void putchar(char c)
    {
    while (tx_counter == TX_BUFFER_SIZE);
    #asm("cli")
    if (tx_counter || ((UCSRA & DATA_REGISTER_EMPTY)==0))
       {
       tx_buffer[tx_wr_index]=c;
       if (++tx_wr_index == TX_BUFFER_SIZE) tx_wr_index=0;
       ++tx_counter;
       }
    else
       UDR=c;
    #asm("sei")
    }
    #pragma used-
    #endif
    
    // Standard Input/Output functions
    #include <stdio.h>
    
    #define ADC_VREF_TYPE 0xE0
    
    // Read the 8 most significant bits
    // of the AD conversion result
    unsigned char read_adc(unsigned char adc_input)
    {
    ADMUX=adc_input|ADC_VREF_TYPE;
    // Start the AD conversion
    ADCSRA|=0x40;
    // Wait for the AD conversion to complete
    while ((ADCSRA & 0x10)==0);
    ADCSRA|=0x10;
    return ADCH;
    }
    
    // Declare your global variables here
    unsigned char adc_value; 
    float vin,h;
    char txt[12];
    int temp;
    void main(void)
    {
    PORTA=0x00;
    DDRA=0x00;
    
    PORTB=0x00;
    DDRB=0x00;
    
    PORTC=0x00;
    DDRC=0x00;
    
    PORTD=0x00;
    DDRD=0xFF;
    
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    MCUCR=0x00;
    MCUCSR=0x00;
    
    
    TIMSK=0x00;
    
    UCSRA=0x00;
    UCSRB=0xD8;
    UCSRC=0x86;
    UBRRH=0x00;
    UBRRL=0x33;
    
    ACSR=0x80;
    SFIOR=0x00;
    
    ADMUX=ADC_VREF_TYPE;
    ADCSRA=0x86;
    
    // Global enable interrupts
    #asm("sei")
     PORTD=0; 
    while (1)
          {   
               char outstr[100]; 
            
             adc_value=read_adc(0); 
             vin=((float)adc_value*2.56*1000)/256;    //doi sang mV
             h=vin/10; 
             itoa(h,outstr);
             puts(outstr);
             delay_ms(500);
             if (rx_counter>0)
             {
                    gets(txt,2);
                    temp=atoi(txt);
                    if (h>temp)
                    { 
                      PORTD.6=0;     
                      PORTD.7=1;
                    }   
                    else if (h<temp)
                    { 
                      PORTD.7=0;      
                      PORTD.6=1;
                    } 
             }
            else 
            {
                    PORTD.6=0;     
                    PORTD.7=0;
            }
                  
          };
    }
    
    
    [FONT=&quot]b. [/FONT][FONT=&quot]Mã VB:[/FONT]
    Mã:
    Dim s As Long
    Dim i, j, dem As Integer
    Dim a(10) As Long
    
    Private Sub Form_Load()
        MSComm1.CommPort = 8
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.PortOpen = True
        txttruyen.Text = 33
         With tc1.Series(0)
            .Clear
            End With
            j = 0
            a(1) = 0
            a(2) = 16711680
            a(3) = 16776960
            a(4) = 65280
            a(5) = 16711935
            a(6) = 255
            a(7) = 16777215
            a(8) = 65535
       lblauthor.Left = 4200
    End Sub
    
    Private Sub lblauthor_Click()
        'MsgBox "Tran Hong Phuc " + vbCrLf + "07111121" + vbCrLf + " Co Dien Tu" + vbCrLf + "07111CLC", vbCritical, "Tac Gia"
    End Sub
    
    Private Sub lblexit_DblClick()
        End
    End Sub
    
    Private Sub lblreset_Click()
         With tc1.Series(0)
                .Clear
         End With
         lblreset.ForeColor = vbGreen
    End Sub
    
    Private Sub lblstop_Click()
        dem = dem + 1
        If dem Mod 2 <> 0 Then
            Timer1.Enabled = False
            Timer2.Enabled = False
            Timer3.Enabled = False
            MSComm1.PortOpen = False
        Else
            Timer1.Enabled = True
            Timer2.Enabled = True
            Timer3.Enabled = True
             MSComm1.PortOpen = True
            
        End If
        
    End Sub
    
    Private Sub Timer1_Timer()
         i = i + 1
         j = j + 1
         MSComm1.Output = txttruyen.Text
         lblnhan.Caption = MSComm1.Input
         s = Val(lblnhan.Caption)
         If ((s > 10) And (s < 200)) Then
            With tc1.Series(0)
                 .Add s, "", vbgray
            End With
         End If
         If i > 100 Then
            With tc1.Series(0)
                .Clear
            End With
            i = 0
         End If
         lblreset.ForeColor = a(j)
         lblstop.ForeColor = a(9 - j)
         If j > 8 Then
            j = 0
         End If
    End Sub
    
    Private Sub Timer2_Timer()
        lblauthor.Left = lblauthor.Left - 5
        If lblauthor.Left = 0 Then
           Timer2.Enabled = False
           Timer3.Enabled = True
        End If
        
    End Sub
    
    Private Sub Timer3_Timer()
        lblauthor.Left = lblauthor.Left + 5
        If lblauthor.Left = 4200 Then
           Timer2.Enabled = True
           Timer3.Enabled = False
        End If
    End Sub
    
    
    7. Các hình ảnh:
    - Giao diện

    [IMG]
    - Board:
    [IMG]

    [IMG]

    8. Các Video:

    Isv1193p7Fc
    ArR3iuwZvJk&feature=channel
  3. tranhongphucdt Member

    Số bài viết: 86
    Đã được thích: 2
    Điểm thành tích: 8
  4. hello020389 New Member

    Số bài viết: 77
    Đã được thích: 0
    Điểm thành tích: 0
  5. tranhongphucdt Member

    Số bài viết: 86
    Đã được thích: 2
    Điểm thành tích: 8
  6. thuanmin New Member

    Số bài viết: 55
    Đã được thích: 0
    Điểm thành tích: 0
    Khà khà,vừa báo cáo thầy Cường hôm thứ tư ,định hôm nay rảnh mới up lên mà chú Phúc bí nhà ta nhanh tay lẹ chân quá.>:D<
    Theo mình thấy,sau mỗi học kỳ,những lớp học cảm biến,vi điều khiển,Kỹ thuật số... buộc phải làm sản phẩm để báo cáo ,lấy điểm giữa kỳ.Mình thấy như vậy rất hay vì vừa học lý thuyết và vừa thực hành và cũng chợt nhận ra một chân lý rằng : lý thuyết và thực cách rất xa nhau (hình như là nửa vòng trái đất ấyx_x).Nhưng,sẽ hay hơn nếu sản phẩm đó như chia sẻ,báo cáo trên diễn đàn(như cách thầy Cường đã làm),điều đó sẽ rất có ích cho những người đi sau đỡ phải mất công tìm kiếm tài liệu,sản phẩm lại được cải tiến,phát triển,và nhiều cái "có ích" khác nữa.<:p
    Theo tinh thần đó ,mình mạo muội chia sẻ một số kinh nghiệm và tài liệu về sản phẩm khi làm cảm biến giữa kỳ.
    Bước đầu tiên là chọn đề tài và bắt đầu tìm kiếm tài liệu.Cái này đối với những đề tài dễ,phổ biến thì ko khó để tìm,nhưng đối với những đề tài khó,lạ thì tìm hơi cực một tý.Ở đây dễ hay khó là tùy vào khả năng sẵn có của mỗi người,nếu ai đã nghiên cứu hay đã từng làm qua ,hay đã từng làm mạch in,vẽ orcad hoặc thầy đã hướng dẫn chút chút thì các bước này sẽ rất dễ,ngược lại thì ....(trước đó do chưa từng làm nên buộc tui phải chọn cái vế "ngược lại thì...",nhưng được cái an ủi là thầy cũng đã hướng dẫn sơ sơ và quan trọng là rất nhiều đứa trong lớp xúm nhau làm đề tài này trên tinh thần chia sẻ,làm cùng nhau nên cũng đỡ đôi chút,khà khà:D).
    Giai đoạn típ theo là cắm thử trên test board,cái này cầm phải nắm rõ nguyên lý,coi kỹ sơ đồ chân các linh kiện dựa trên nhưng tài liệu đã kiếm ở trên.Nếu chạy được thì mừng lém,nhưng nếu ko chạy thì cả một vấn đề, có thể nguyên lý sai ,cắm dây sai và lý do mà mình mất nữa ngày mới tìm ra,được mô tả trong 3 chữ : "chết linh kiện"(riêng mình thì bay 1 cái Lờ Cê Đê:-<,mấy đứa khác trong lớp cũng bay vài em...).Làm bước này phải kiên nhẫn,tỉnh táo,kiểm tra từng lỗi,từng bước nhỏ,ko được vội vàng,rờ xem có con nào nóng quá ko,nếu có thì phải tắt nguồn ngay(một số đứa trong lớp làm LM35 mà hỏi đứa nào cũng từng cắm ngược chân,cầm vào là phỏng lun,nhưng cũng may,vận lớn nên chưa chết).Xong cái này thì có thể thở phào,yên tâm nằm ngoài vùng ảnh hưởng 2 chữ "học lại".
    Giai đoạn 3 cũng lắm gian :vẽ mạch in và thi công mạch.Cái này cũng nhìu chiện bi hài lém,cắm test board chạy ngon ơ,qua PCB thì cà giựt ,lúc được lúc ko,chết IC,IC bị thương tật ...,riêng mình thì vẽ nguyên lý bên Orcad Capture sai nên xuất sang layout sai,(lúc in ra rồi mới biết,khà khà),cũng may là phế phẩm sửa được.Vẽ sơ đồ nguyên lý thì kiểm tra cho chắc ,qua bên layout thì phải tìm thư viện cho đúng kích thước chân,rồi đi dây,in ra giấy offset( nếu có loại giấy bóng bóng,láng láng và máy in laser thì làm tại nhà lun),sau đó ủi rồi rửa mạch,rồi khoan chân,rồi gắn linh kiện,rồi gắn nguồn chạy thử và ...ko chạy:)) .Lại một thử thách bắt đầu.Thầy Cường có nói vui là trước khi chạy thì đốt 3 cây nhang, [-o< miệng lẩm bẩm "mày chạy nha" hay đại loại là "mày hư chỗ nào chỉ tao với" ^:)^,thầy còn kêu mua thêm 1 miếng mút trắng để làm nơi yên nghỉ những em đã ra đi... :(

    Tên đề tài :Cảm biến nhiệt độ,hiển thị qua LCD,kết hợp quang trở.



    Phần cứng:
    -Atmega32 (trong bài của bạn "Tran Phuc" đã nói khá chi tiết).
    -LCD 16x2
    -quang trở
    -2 biến trở(chỉnh độ tương phản LCD và độ nhạy quang trở).
    -loa
    -điện trở,tụ ,led..
    Nguyên lý:có thể túm gọn như sau
    Sử dụng LM35 đo nhiệt độ và cho ra tín hiệu anolog (10mV/độ)-->sử dụng ADC 10 bit (-->sai số khoảng 0.2 độ) tích hợp sẵn trong Atmega32 (ở Port A)-->xử lý -->xuất ra giá trị nhiệt độ ra LCD (xuất qua Port B);báo động bằng đèn Led+loa(PortD.6),chữ LCD chớp tắt khi nhiệt độ cao.
    Ngoài ra còn sử dụng quang trở để bật tắt đèn nền LCD tương ứng trời sáng,tối.
    Phần code được viết bằng CodeVision,cách nạp,mạch nạp...tương tự như bạn
    "Tran Phuc"


    [IMG]

    Mình dùng Protues mô phỏng,bảng 7.5 Sp3
    Vì trong Protues ko điều khiển đèn nền LCD được (chân 15-16,xuất từ PortD.7)

    nên mình đưa ra con led

    trích Code:
    //chèn thư viện
    #include <mega32.h>
    #include<delay.h>
    #include<stdlib.h>

    //khai báo biến
    unsigned short adc_value,a ;
    double tem,as;
    char mystr[4],a1[4];

    //code lập trình
    Mã:
    while (1)
          { 
            //hien thi nhiet do 
          adc_value=read_adc(0); 
            tem=((double)adc_value*256)/1023-0.5;      
            ftoa(tem,1,mystr);
            lcd_gotoxy(0,0) ;
            lcd_puts(mystr); 
            lcd_gotoxy(4,0) ;
            lcd_putsf(" ");
            delay_ms(200);
            
          //phan quang tro  
             a=read_adc(4);
             as=(int)a; 
                    if(as<700 |((int)tem>=40))     //troi toi hoac nhiet do cao               
                    PORTD.6=1;      // bat nen LCD       
                    else            //troi sang
                    PORTD.6=0;      //tat nen LCD
             ftoa(a,0,a1);  
           /*  lcd_gotoxy(0,1) ;  // hien thi ADC quang tro
             lcd_puts(a1);    */
             
    
            //phan LCD,bao dong nhiet do cao
             
                    if((int)tem>=40 & (int)tem <70)
                    {          
                    PORTD.7=1;      //chuong keu va den bao dong 
                            lcd_gotoxy(5,0);   //xuat chu canh bao
                            lcd_putsf(" nhiet do");
                            lcd_gotoxy(0,1);   //xuat chu canh bao
                            lcd_putsf("cao , nguy hiem  ");
                            
                    delay_ms(300); //keu trong 0.3s   
                            lcd_gotoxy(5,0);  //chop tat chu canh bao
                            lcd_putsf("             ");   
                            lcd_gotoxy(0,1);  //chop tat chu canh bao
                            lcd_putsf("                  ");        
                            
                            
                    PORTD.7=0;
                    }
                    else 
                    if((int)tem>=70)
                    {
                    PORTD.7=1;
                            lcd_gotoxy(4,0); 
                            lcd_putsf("            ");
                            lcd_gotoxy(0,1);  //chop tat chu canh bao
                            lcd_putsf("                  ");    
                                            
                    delay_ms(100); 
                            lcd_gotoxy(5,0);   //xuat chu canh bao
                            lcd_putsf("  bao dong ");
                            lcd_gotoxy(0,1);   //xuat chu canh bao
                            lcd_putsf("chuan bi goi 114"); 
                            
                    PORTD.7=0;
                
                    }
                    else 
                    {   
                    PORTD.7=0; 
                            //xoa LCD
                            lcd_gotoxy(4,0); 
                            lcd_putsf("             ");
                            lcd_gotoxy(0,1);  
                            lcd_putsf("                   ");  
                                     
                    }
    
    Link :

    Mã:
    [/URL]
    [URL="http://spkt.net/redirect/?url=http%3A%2F%2Fwww.mediafire.com%2F%3Fgtmzyyhzyyd"]http://www.mediafire.com/?gtmzyyhzyyd[/URL][URL="http://spkt.net/redirect/?url=http%3A%2F%2Fwww.mediafire.com%2F%3Fgtmzyyhzyyd"] [/URL]
    [URL="http://spkt.net/redirect/?url=http%3A%2F%2Fwww.mediafire.com%2F%3Fgtmzyyhzyyd"]
  7. thuanmin New Member

    Số bài viết: 55
    Đã được thích: 0
    Điểm thành tích: 0
    Cảm ơn ku Phúc,bữa nào chắc phải qua nhà nhờ chỉ giáo.:-@
  8. tranhongphucdt Member

    Số bài viết: 86
    Đã được thích: 2
    Điểm thành tích: 8
    Hoan hô tinh thần xả thân vì nghĩa của M Thuận. Ta phải đi tìm cái j j đó để tặng cho Min Thuận lớp mình mới được.............
    À có rồi (*)(*)(*)(*) + ||
    =d>=d>=d>=d>=d>=d>=d>=d>=d>=d>=d>
  9. dungpic New Member

    Số bài viết: 1
    Đã được thích: 0
    Điểm thành tích: 0
    Em Chào anh tranhongphuccdt !, anh có thể up project của anh làm lên mediafire được không anh. Cho em tham khảo với. Cám ơn anh Tran Phuc
  10. 09dv111 New Member

    Số bài viết: 6
    Đã được thích: 0
    Điểm thành tích: 0

Chia sẻ trang này