PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Các ngôn ngữ lập trình khác (CCS C, HT PIC,...)

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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 04-04-2009, 12:21 PM   #46
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
nếu bạn mô phỏng thì không cần max 232 đâu.
nối trực tiếp chân 2 , 3 với RC6 ,RC7 luôn
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 04-04-2009, 12:28 PM   #47
phandinh
Đệ tử 6 túi
 
Tham gia ngày: Nov 2008
Nơi Cư Ngụ: Di Linh
Bài gửi: 131
:
hà hà.cùng hợp tác nha Nuyennam888

bạn đang mo phỏng thằng proteus phải ko ?
bạn xem file sau nha. proteus 7.4 (sp3)
không cần max 232
File Kèm Theo
File Type: rar pic to pc.rar (27.2 KB, 253 lần tải)
phandinh vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 06-04-2009, 11:12 AM   #48
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
pic

[QUOTE=nguyennam8888;24308]các bác giúp em với, nghĩ mãi mà chưa làm được , chương trình của em nó chỉ nhận thôi, nhưng khi nhận xong thì PIC lại không thấy hiển thị, còn void main()
{
set_tris_a(0);
ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_RDA);
////////////////////////////
bạn chưa khởi tạo portc làm sao nó nhận hay gửi được
set_tris_c(0x80);
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2009, 12:18 PM   #49
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
các bạn cho mình hỏi vấn đề này nhé.
nếu mình dùng 2 bộ cổng Tin1 và Tin2, Rout1 và Rout2 cung nối vào một cổng COM của PC. 2 bộ còn lại được nối vào 2 con PIC. khi tuyền từ PC xuống thì cả 2 PIC cùng nhận. vấn đề này có ảnh hưỡng gì đến data nhận không hả các bác (phương pháp này có thực hiện được không). bác nào đã từng làm rồi xin chỉ giúp
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2009, 02:18 PM   #50
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Hình như bác đang nói tơi chân của con Max232. Vể lý thuyết thì không được phép làm như vậy vì RS232 chỉ cho phép truyền nhận giữa điểm và điểm. Tuy nhiên nếu như tốc độ truyền của bạn thấp thì mình nghĩ chắc nó cũng nhận được. Còn nếu muốn làm đúng chuẩn thì bạn có thể đưa nó sang chuẩn RS485 rồi nối với nhau thì không sao.
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2009, 03:33 PM   #51
tungtot_vl
Đệ tử 6 túi
 
tungtot_vl's Avatar
 
Tham gia ngày: Jul 2007
Bài gửi: 154
:
uh. mình đang nói đến Max232. mình hỏi xem bạn nào đã làm thực tế việc đó chưa. vì mình chỉ truyền cho 2 PIC nên nếu được thì tốt, ko cần phải tốn thêm Ma485. nếu bạn nào đã từng làm thì cho ý kiến thử nhé
tungtot_vl vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 22-04-2009, 06:32 PM   #52
mtuankct
Đệ tử 6 túi
 
Tham gia ngày: Apr 2006
Bài gửi: 125
:
Theo quy định về các chuẩn giao tiếp thì chắc chắn là không nối được theo cách này, nên nếu bạn đang làm đố án hoặc, bài tập thì không thể làm theo kiểu này được. Còn nếu để làm chơi thì cứ thử xem
mtuankct vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-11-2009, 09:57 AM   #53
phuong_dtk4s
Nhập môn đệ tử
 
Tham gia ngày: Apr 2009
Bài gửi: 2
:
em có câu hỏi muốn mọi người giúp đỡ":đó là code của em viết để truyền nhận dữ liệu nhung ma sao nó mời chỉ truyền từ máy tính xuống nhưng tù vi điều khiên thì chưa có truyền lên máy tính được..
code VB:
Private Sub cmdexit_Click()
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If
Unload Me
End Sub

Private Sub Cmdsend_Click()
MSComm1.Output = Text1.Text

End Sub

Private Sub Form_Load()
Dim t As Integer
Dim a As Integer
Me.BackColor = RGB(255, 155, 255) 'Returns Red
Label1.BackColor = RGB(255, 0, 0) 'Returns Red
Cmdsend.BackColor = RGB(255, 255, 0) 'Returns Red
MSComm1.CommPort = 1
MSComm1.Settings = "9600,o,8,1"
MSComm1.PortOpen = True
End Sub
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
text2.Text = MSComm1.Input
End If
End Sub
CODE VI DIEU KHIỂN
#include <16f877.h>
#FUSES NOWDT, HS, NOPUT,NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=20000000)
#byte portb =0x06
#byte portc =0x07
#byte porta =0x05
#use rs232(baud=9600, parity=N, xmit=pin_C6, rcv=pin_C7, bits=8)
char t;
int8 i;
#INT_RDA
void rda_isr()
{
t=getc() ;
if (t==103)
{
porta=0xff;
delay_ms(300);
porta=0x00;
putc(T);
}
//putc(t);
}
void main()
{
set_tris_b(0);
set_tris_c(0x80);
set_tris_a(0);
enable_interrupts(INT_RDA) ;
enable_interrupts(GLOBAL) ;
while(1)
{
portb=t;
;
}
}
phuong_dtk4s vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-11-2009, 10:52 AM   #54
dung h
Đệ tử 4 túi
 
Tham gia ngày: May 2009
Bài gửi: 74
:
trong chương trình của phương gặp vấn đề đó là:
chương trình vdk của bạn không vấn đề gì cả .pic có nhận được ký tự mã ascii là 103 và gủi lại máy tình
vấn đề khi nhận là trên chương trình vb của bạn . bạn nhận dữ liệu bằng ngắt on_comm

Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
text2.Text = MSComm1.Input
End If
End Sub

khi xẩy ra ngắt thì lấy dữ liệu ra hiển thị trên text2 nhưng khi nào thì xấy ra ngắt thì bạn chưa hiểu về nó .ở ct vb của bạn thì sẽ không bao giờ xẩy ra ngắt vì bạn chưa khai báo số byte nhận về ở bộ đệm để xẩy ra ngắt
mscomm1.rthreshohld = x ( số byte xẩy ra ngắt)
nếu bạn dặt x=1 thì cứ có 1 byte nhận đựoc thì sẽ xẩy ra ngắt...
khi bạn lấy ra và sử dụng active comm hỗ trợ truyền thông của visual basic thì khi chưa khai báo thì mscomm.rthreshold mặc định =0 tức là không cho phép ngắt nhận
nên ct của bạn o nhận được
bạn nên thêm mscomm1.rthreshold =1 vào private form_load()

có đúng hay không bạn kiểm tra sem! và lần sau bạn nên up cả file ct của bạn lên nhé để tiện kiểm tra!
dung h vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-12-2009, 12:26 AM   #55
mua_sao_bang
Nhập môn đệ tử
 
Tham gia ngày: Jul 2009
Bài gửi: 7
:
giao tiếp máy tính

em đang làm bài tập về giao tiếp máy tính, sử dụng 16f877(ngôn ngữ C) qua cổng Com.Nhưng em gặp vấn đề là khi truyền tín hiệu từ 1 cảm biến đến máy tính hiển thị trên 1 textbox.Nhưng khi có 2 tín hiệu cảm biến truyền đển máy tính hiển thị trên 2 textbox thì em không biêt đó là dữ liệu của textbox nào khi nhận được.(em sử dụng ngat MSComm1_OnComm)>
Mong các Pro giải thích giúp em.Thanks
mua_sao_bang vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 17-12-2009, 11:16 AM   #56
npbaoduy
Đệ tử 2 túi
 
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
:
Bạn có thể cho mọi người xem code của bạn, sẽ dễ góp ý hơn.
Mình ko hiểu rõ ý bạn lắm, nhưng theo cách mình hay làm, nếu phải truyền 2 giá trị từ 2 cảm biến lên, thì ứng với mỗi cảm biến, cần có một ký tự đi trước để báo hiệu. Ví dụ thay vì truyền 1 byte của cảm biến 1, mình sẽ truyền 2 byte, byte đầu là '@' chẳng hạn, báo hiệu giá trị sắp nhận được là của cảm biến 1, sau đó truyền byte giá trị, với cảm biến 2 thì truyền '#' + giá trị, như vậy trên máy tính sẽ nhận biết dễ dàng giá trị nào của cảm biến nào thôi.
npbaoduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-12-2009, 12:07 AM   #57
mua_sao_bang
Nhập môn đệ tử
 
Tham gia ngày: Jul 2009
Bài gửi: 7
:
Trích:
Nguyên văn bởi npbaoduy View Post
Bạn có thể cho mọi người xem code của bạn, sẽ dễ góp ý hơn.
Mình ko hiểu rõ ý bạn lắm, nhưng theo cách mình hay làm, nếu phải truyền 2 giá trị từ 2 cảm biến lên, thì ứng với mỗi cảm biến, cần có một ký tự đi trước để báo hiệu. Ví dụ thay vì truyền 1 byte của cảm biến 1, mình sẽ truyền 2 byte, byte đầu là '@' chẳng hạn, báo hiệu giá trị sắp nhận được là của cảm biến 1, sau đó truyền byte giá trị, với cảm biến 2 thì truyền '#' + giá trị, như vậy trên máy tính sẽ nhận biết dễ dàng giá trị nào của cảm biến nào thôi.
em cũng nghĩ như vậy, nhưng mà bên phía VB em không biết xử lý như thế nào.bình thường em nhận dữ liệu từ VDk bằng doan code:
"
Private Sub MSComm1_OnComm()
Dim a As Variant
If MSComm1.InBufferCount Then
a = MSComm1.Input
End If
Text2.Text = a
End Sub
"
Nhưng bây giờ bên VDK truyền byte bao hieu + byte gia tri thi ben VB em tách làm sao được chỉ lấy được byte gia tri thôi?
mua_sao_bang vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-12-2009, 01:44 PM   #58
npbaoduy
Đệ tử 2 túi
 
Tham gia ngày: Sep 2008
Nơi Cư Ngụ: Tp. HCM
Bài gửi: 38
:
Theo mình có 2 cách:
- Cách 1: Đặt bộ đệm Mscomm1.RThreshold = 2, có nghĩa là sau khi nhận được 2byte mới xảy ra ngắt oncomm, khi đó ta đọc 2 byte này, kiểm tra byte đầu, và giá trị là byte sau.
Có thể đọc 2 byte bằng cách sau:
Code:
Privat Sub MSComm1_onComm()
Dim buffer             'kiểu varriant
Dim Arr() as byte    ' mảng động
If MSComm1.CommEvent = comEvReiceive then
     buffer=MSComm1.Input
     Arr = buffer
     If (Arr(0)="@")then
....................
End Sub
- Cách 2: để bộ đệm 1 byte bình thường, khi ngắt oncomm nếu đó là byte báo hiệu thì đặt giá trị cho một biến toàn cục nào đó, lần ngắt oncomm sau kiểm tra biến này rồi xử lý, cách này khá dở , nhưng trong tình huống nào đó mà cách 1 ko thể sử dụng (ví dụ như vi xử lý truyền lên nhiều thứ chứ ko phải chỉ 2byte) thì sẽ rất hữu ích.

thay đổi nội dung bởi: npbaoduy, 18-12-2009 lúc 01:52 PM.
npbaoduy vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 10-09-2010, 08:20 PM   #59
hongson06d61132
Nhập môn đệ tử
 
Tham gia ngày: Oct 2009
Bài gửi: 2
:
nhờ các bác giải thích giùm đoạn lệnh này với.
Option Explicit

Private Sub btnClear_Click(Index As Integer)
Dim i As Integer

Select Case Index
Case 0:
For i = 0 To 11
txtHEX(i) = ""
Next i
Case 1:
txtTextOut = ""
Case 2:
txtResponse = ""
End Select

End Sub

Private Sub btnSend_Click(Index As Integer)
Dim i As Integer
Dim j As Integer
Dim Temp As Long
Dim OutString As String

OutString = ""
Select Case Index
Case 0 ' Send Hex character string
For i = 0 To 11
Temp = 0
If (Len(txtHEX(i)) > 0) Then
For j = 1 To Len(Left(txtHEX(i), 2))
Temp = Temp * 16 + HexChar(Mid(txtHEX(i), j, 1))
Next j
OutString = OutString & Chr(Temp)
End If
Next i
send (OutString)
Case 1 ' Send ascii string
send txtTextOut.Text
End Select

End Sub
Sub send(txtin As String)
If MSComm1.PortOpen = True Then
MSComm1.Output = txtin
End If
End Sub

Function HexChar(strData As String) As Integer

Select Case strData
Case "0" To "9"
HexChar = Val(strData) - Val("0")
Case "a", "A"
HexChar = 10
Case "b", "B"
HexChar = 11
Case "c", "C"
HexChar = 12
Case "d", "D"
HexChar = 13
Case "e", "E"
HexChar = 14
Case "f", "F"
HexChar = 15
Case Else
HexChar = 0
End Select

End Function

Private Sub Form_Load()
Dim i As Integer

For i = 0 To 2 ' Clear all input/output fields
btnClear_Click (i)
Next i
If Not ValidatePort Then
MsgBox "There are no available comm ports on this computer.", , "Commx"
End
End If
UpdateStatus
End Sub

Private Sub Form_Unload(Cancel As Integer)

If (MSComm1.PortOpen) Then
MSComm1.PortOpen = False
End If

End Sub

Private Sub mnuCom_Click(Index As Integer)
Dim i As Integer
Dim OldPort As Long

On Error Resume Next
With MSComm1
OldPort = .CommPort
If MSComm1.PortOpen Then
.PortOpen = False
.CommPort = Index
.PortOpen = True
If Err.Number <> 0 Then ' This should not happen...
MsgBox "Com" & Index & " is not available." & _
vbCrLf & Err.Description
Err.Clear
.CommPort = OldPort
Else
For i = 1 To 4
mnuCom(i).Checked = False
Next i
mnuCom(Index).Checked = True
End If
Else
.CommPort = Index
For i = 1 To 4
mnuCom(i).Checked = False
Next i
mnuCom(Index).Checked = True
End If
End With
UpdateStatus
End Sub

Private Sub mnuConnect_Click()

On Error Resume Next
With MSComm1
If .PortOpen = True Then
.PortOpen = False
Else
.PortOpen = True
If Err.Number <> 0 Then
MsgBox "Com" & .CommPort & " is not available." & vbCrLf & _
Err.Description
Err.Clear
End If
End If
End With
UpdateStatus

End Sub

Private Sub mnuDataBSel_Click(Index As Integer)
Dim i As Integer
Dim NewSettings As String

For i = 4 To 8
If (i = Index) Then
mnuDataBSel(i).Checked = True
Select Case Index
Case 4 ' 4
NewSettings = ",,4,"
Case 5 ' 5
NewSettings = ",,5,"
Case 6 ' 6
NewSettings = ",,6,"
Case 7 ' 7
NewSettings = ",,7,"
Case 8 ' 8
NewSettings = ",,8,"
End Select
Else
mnuDataBSel(i).Checked = False
End If
Next i
SetPort (NewSettings)

End Sub

Private Sub mnuHelpSel_Click(Index As Integer)
Select Case Index
Case 0 ' Basic Help
MsgBox "Basic Communications Program what you see is what you get." _
, vbInformation, "Help"
Case 1 ' About
MsgBox "Basic Communications Program Version 0.91", , "Help About"
End Select
End Sub

Private Sub mnuParitySel_Click(Index As Integer)
Dim i As Integer
Dim NewSettings As String

For i = 0 To 4
If (i = Index) Then
mnuParitySel(i).Checked = True
Select Case Index
Case 0 ' E
NewSettings = ",E,,"
Case 1 ' M
NewSettings = ",M,,"
Case 2 ' N
NewSettings = ",N,,"
Case 3 ' O
NewSettings = ",O,,"
Case 4 ' S
NewSettings = ",S,,"
End Select
Else
mnuParitySel(i).Checked = False
End If
Next i
SetPort (NewSettings)

End Sub

Private Sub mnuSpeedSel_Click(Index As Integer)
Dim i As Integer
Dim CurPortOpen As Boolean
Dim NewSettings As String

For i = 0 To 12
If (i = Index) Then
mnuSpeedSel(i).Checked = True
Select Case Index
Case 0 ' 110
NewSettings = "110,,,"
Case 1 ' 300
NewSettings = "300,,,"
Case 2 ' 600
NewSettings = "600,,,"
Case 3 ' 1200
NewSettings = "1200,,,"
Case 4 ' 2400
NewSettings = "2400,,,"
Case 5 ' 9600
NewSettings = "9600,,,"
Case 6 ' 14400
NewSettings = "14400,,,"
Case 7 ' 19200
NewSettings = "19200,,,"
Case 8 ' 28800
NewSettings = "28800,,,"
Case 9 ' 38400
NewSettings = "38400,,,"
Case 10 ' 56000
NewSettings = "56000,,,"
Case 11 ' 128000
NewSettings = "128000,,,"
Case 12 ' 256000
NewSettings = "256000,,,"
End Select
Else
mnuSpeedSel(i).Checked = False
End If
Next i
SetPort (NewSettings)

End Sub

Private Sub mnuStopSel_Click(Index As Integer)
Dim i As Integer
Dim NewSettings As String

For i = 0 To 2
If (i = Index) Then
mnuStopSel(i).Checked = True
Select Case Index
Case 0 ' 1
NewSettings = ",,,1"
Case 1 ' 1.5
NewSettings = ",,,1.5"
Case 2 ' 2
NewSettings = ",,,2"
End Select
Else
mnuStopSel(i).Checked = False
End If
Next i

SetPort (NewSettings)
End Sub

Private Sub MSComm1_OnComm()
Dim txtBuf As String
Dim i As Integer
Dim c As Integer

With MSComm1
Select Case .CommEvent
Case comEvReceive
txtBuf = .Input
For i = 1 To Len(txtBuf)
c = Asc(Mid(txtBuf, i, 1))
If (c < 32 Or c > 126) Then
txtResponse = txtResponse & "<" & Hex(c) & ">"
Else
txtResponse = txtResponse & Chr(c)
End If
Next i
End Select
End With
txtResponse.SelStart = Len(txtResponse)

End Sub

Private Sub UpdateStatus()

If MSComm1.PortOpen Then
StatusBar1.Panels(1).Text = "Connected"
mnuConnect.Caption = "Dis&connect"
btnSend(0).Enabled = True
btnSend(1).Enabled = True
Else
StatusBar1.Panels(1).Text = "Disconnected"
mnuConnect.Caption = "&Connect"
btnSend(0).Enabled = False
btnSend(1).Enabled = False
End If
StatusBar1.Panels(2).Text = "COM" & MSComm1.CommPort
StatusBar1.Panels(3).Text = MSComm1.Settings

End Sub
Private Function ValidatePort() As Boolean
Dim i As Integer

On Error Resume Next
ValidatePort = False
With MSComm1
For i = 4 To 1 Step -1
.CommPort = i
Err.Clear
.PortOpen = True
If (Err.Number <> 0) Then
mnuCom(i).Enabled = False
Else
ValidatePort = True
.PortOpen = False
End If
Next i
End With
End Function

Private Sub txtHEX_GotFocus(Index As Integer)

txtHEX(Index).SelStart = 0
txtHEX(Index).SelLength = Len(txtHEX(Index))

End Sub

Private Sub txtHEX_LostFocus(Index As Integer)
Dim Temp As String

Temp = txtHEX(Index)
Select Case Len(txtHEX(Index))
Case 0
txtHEX(Index) = ""
Case 1
txtHEX(Index) = "0" & LegalHex(Mid(txtHEX(Index), 1, 1))
Case Else
txtHEX(Index) = LegalHex(Mid(txtHEX(Index), 1, 1)) & _
LegalHex(Mid(txtHEX(Index), 2, 1))
End Select
If (Len(txtHEX(Index)) > 0) Then
Do While (Len(txtHEX(Index)) < 2)
txtHEX(Index) = "0" & txtHEX(Index)
Loop
End If
End Sub
Private Function LegalHex(c As String) As String
c = UCase(c)
Select Case c
Case "0" To "9", "A" To "F"
LegalHex = c
Case Else
LegalHex = ""
End Select
End Function
Private Sub SetPort(NewSettings As String)
Dim CurPortOpen As Boolean
Dim OldIndex As Integer
Dim OldLength As Integer
Dim NewIndex As Integer
Dim NewLength As Integer
Dim i As Integer
Dim Settings(0 To 3) As String
Dim Temp As String

With MSComm1
CurPortOpen = .PortOpen
If .PortOpen Then
.PortOpen = False
End If
OldIndex = 1
NewIndex = 1
For i = 0 To 3
NewLength = InStr(NewIndex, NewSettings, ",")
If (NewLength = 0) Then
NewLength = NewIndex + Len(Mid(NewSettings, NewIndex))
End If
OldLength = InStr(OldIndex, .Settings, ",")
If (OldLength = 0) Then
OldLength = OldIndex + Len(Mid(.Settings, OldIndex))
End If
If (NewLength = NewIndex) Then
Settings(i) = Mid(.Settings, OldIndex, OldLength - OldIndex)
Else
Settings(i) = Mid(NewSettings, NewIndex, NewLength - NewIndex)
End If
OldIndex = OldLength + 1
NewIndex = NewLength + 1
Next i
.Settings = Settings(0) & "," & Settings(1) & "," & _
Settings(2) & "," & Settings(3)
If CurPortOpen Then
.PortOpen = True
End If
End With
UpdateStatus

End Sub

Private Sub txtTextOut_GotFocus()

txtTextOut.SelStart = 0
txtTextOut.SelLength = Len(txtTextOut)

End Sub
hongson06d61132 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-11-2010, 02:15 PM   #60
lemtim
Nhập môn đệ tử
 
Tham gia ngày: Nov 2010
Bài gửi: 2
:
có sư huynh nào có làm giao tiếp USB cho em xin,mạch quang báo giao tiếp USB.
lemtim vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


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à 09:31 PM.


Đượ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