PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > MPASM

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

MPASM Lập trình bằng hợp ngữ là một việc làm vô cùng vất vả, tuy nhiên, để hiểu và làm việc với vi điều khiển, hợp ngữ trở thành một công cụ khá đắc lực ...

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 23-05-2007, 02:49 PM   #1
nguyen.geo
Đệ tử 2 túi
 
Tham gia ngày: Jan 2007
Bài gửi: 27
:
Capture Mode

Code:
;		PIC16F877A HOAT DONG O CHE DO CAPTURE MODE
;                        
WAIT	EQU		0x22
WAIT1	EQU		0x23
WAIT2	EQU		0x24
	include <p16f877a.inc>
	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC	& _LVP_OFF
	org 0x000 
	CLRF   	    STATUS
;			DOAN CHUONG TRINH KHOI TAO CHO CAPTURE MODE
	BSF  		STATUS,RP0 
	BSF			TRISC,2 	;		RC2 IN-PUT CHON CHAN RC2 LAM CHAN DUA XUNG VAO
	CLRF		TRISB
	BCF  		STATUS,RP0 
	CLRF		CCP1CON		;		KHOI TAO CHO CHE DO CAPTURE MODE 
	MOVLW		.4			;		NAP GIA TRI TRUYEN VAO THANH GHI CCP1CON
	MOVWF		CCP1CON		;		CHI KIEM TRA SUON XUNG XUONG
									
	CLRF		T1CON		;		KHOI DONG CHO TIMER1
	BSF			T1CON,TMR1ON
Loop
	CLRF		CCPR1H		;		XOA THANH GHI CCPR1
	CLRF		CCPR1L
	BCF			PIR1,CCP1IF	;		XOA CO NGAT DE TIEP TUC.
	NOP
	BTFSS		PIR1,CCP1IF	;		DOI CCP1IF SET LEN 1
	GOTO		$-1
	MOVF		CCPR1H,0	;		DOC GIA TRI TU THANH GHI CCPR1L
	MOVWF		PORTB		;		HIEN THI RA PORTB
	CALL		DELAY
	MOVF		CCPR1L,0	;		DOC GIA TRI TU THANH GHI CCPR1L
	MOVWF		PORTB		;		HIEN THI RA PORTB
	CALL		DELAY
	GOTO 		Loop		;		LAP VO THOI HAN

DELAY		;		DOAN CHUONG TRINH TAO THOI GIAN TRE
	MOVLW		.250
	MOVWF		WAIT
D1	
	MOVLW		.250
	MOVWF		WAIT1
D2	
	MOVLW		.250
	MOVWF		WAIT2
	DECFSZ		WAIT2,1
	GOTO		$-1	
	DECFSZ		WAIT1,1
	GOTO		D2	
	DECFSZ		WAIT,1
	GOTO		D1	
	RETURN
	END
Em da thu phat xung vao chan RC2 tan so la 10KHz.nhung no khong chay va khong hieu la no sai o cho nao. cac anh giup em voi.

thay đổi nội dung bởi: falleaf, 23-05-2007 lúc 04:16 PM.
nguyen.geo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 23-05-2007, 08:46 PM   #2
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Bạn nên cho biết bạn muốn làm gì với đoạn code này.

Tốt nhất bạn mô tả bài toán, sau đó là các thao tác cần thiết (theo bạn), rồi mới đến code. Từ đó sẽ dễ dàng đối chiếu code của bạn với các thao tác, cũng như kiểm tra các thao tác dựa vào datasheet.

Bạn chỉ đưa đoạn code lên thì sẽ rất khó cho người đọc. Theo tôi thì bạn viết code không tốt, bạn đang phát xung 10 kHz, nghĩa là sẽ có sự kiện được capture mỗi 100 us (bạn thiết lập để capture mỗi cạnh xuống tại RC2), trong khi đó vòng lặp của bạn lại có đến 2 lần delay với thời gian không dưới 100 us mỗi lần, như vậy sẽ xảy ra sự kiện tiếp theo trước khi bạn đọc giá trị CCPR1L, và CCPR1L sẽ bị ghi đè bởi giá trị mới. Bạn phát biểu rằng 'nó không chạy', nhưng theo bạn như thế nào là 'không chạy'?

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-05-2007, 11:54 AM   #3
nguyen.geo
Đệ tử 2 túi
 
Tham gia ngày: Jan 2007
Bài gửi: 27
:
Trích:
Nguyên văn bởi namqn View Post
Bạn nên cho biết bạn muốn làm gì với đoạn code này.

Tốt nhất bạn mô tả bài toán, sau đó là các thao tác cần thiết (theo bạn), rồi mới đến code. Từ đó sẽ dễ dàng đối chiếu code của bạn với các thao tác, cũng như kiểm tra các thao tác dựa vào datasheet.

Bạn chỉ đưa đoạn code lên thì sẽ rất khó cho người đọc. Theo tôi thì bạn viết code không tốt, bạn đang phát xung 10 kHz, nghĩa là sẽ có sự kiện được capture mỗi 100 us (bạn thiết lập để capture mỗi cạnh xuống tại RC2), trong khi đó vòng lặp của bạn lại có đến 2 lần delay với thời gian không dưới 100 us mỗi lần, như vậy sẽ xảy ra sự kiện tiếp theo trước khi bạn đọc giá trị CCPR1L, và CCPR1L sẽ bị ghi đè bởi giá trị mới. Bạn phát biểu rằng 'nó không chạy', nhưng theo bạn như thế nào là 'không chạy'?

Thân,
chao anh namqn!
thu nhat em rat cam on anh da nhiet tinh giup em va em xin trinh bay van de nhu the nay anh xem va giup em cai nhe. Thu nhat em se tra loi tung cau hoi cua anh nhu sau:
Mo Ta Bai Toan:
Bai toan chi don gian la do tan so bang cach khi phat xung vao chan RC2. cho CCP1 hoat dong o che do Capture Mode va gia tri nhan duoc se nam trong thanh ghi CCPR1H va CCPR1L dung khong anh. Du lieu nay khong can xu ly ma dua truc tiep ra PortB luon . de hien thi gia tri trong thanh ghi CCPR1H ca CCPR1L ra PortB.
Con van de anh bao la 2 Delay:
Em xin duoc noi the nay anh nhe. Theo em doc trong Datasheet thi Sau moi lan do xung va khi hoan tat qua trinh thi co bao ket thuc la PIR1<2> tuc la CCP1IF se duoc set. Va no se khong bi xoa Neu khong co lenh xoa boi phan men. Va khi co CCP1IF =1 thi che do Capture Mode dung hoat dong va doi cho den khi CCP1IF duoc xoa. Trong thoi gian CCP1IF chua duoc xoa. thi em doc gia tri cua CCPR1H ra PortB va quan sat bang mat qua may con LED tre 1 khoang thoi gian du de nguoi quan sat thay duoc gia tri trong CCPR1H thi tiep tuc truyen gia tri CCPR1L ra PortB de quan sat. khi quan sat lan 2 nay xong dong thoi cung la luc ta bat dau vong lap chuong trinh tiep theo. Ta xoa Thanh ghi CCPR1x va PIR1<CCP1IF> = 0.
Chac le den day em da tra loi cau hoi Ve di lay cua anh roi dung khong. Va la no se khong anh huong den chuong ket qua chuong trinh.

Con cau hoi ? The nao moi la chay ?
Hien tai no chay rat linh tinh va so dem trong CCPR1x rat linh tinh khi thi chi 2.000 khi thi 40-50.000 trong khi do xung cua em phat la xung chuan 10Khz va sai so xung nay chi la 1 xung (neu co).
Con trong doan Code em da viet rat day du ve mat chu thich tung cau lenh cung nhu tung buoc thuc hien che do Capture Mode. Nhung em cung xin noi lai nhu sau :
1. dat chan RC2 lam chan InPut.
2. khoi dong Timer1
3. xoa thanh ghi CCPR1x va PIR1<CCP1IF>
4. Dat gia tri Cho che do Capture Mode la 4 de bat dau qua trinh
5. doi co CCP1IF bao ket thuc duoc SET.
6. Doc va hien thi Ket Qua ra PortB
7. Chu trinh lap lai.
Mong Cac anh chi giup em nhe.
nguyen.geo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-05-2007, 11:56 AM   #4
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Nhớ viết tiếng Việt có dấu. Diễn đàn có bộ gõ tiếng Việt.

Chúc vui
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 24-05-2007, 07:59 PM   #5
namqn
Trưởng lão PIC bang
 
Tham gia ngày: Feb 2006
Nơi Cư Ngụ: Tp. HCM, Việt Nam
Bài gửi: 3,025
:
Send a message via Yahoo to namqn
Trích:
Nguyên văn bởi nguyen.geo View Post
...
Con van de anh bao la 2 Delay:
Em xin duoc noi the nay anh nhe. Theo em doc trong Datasheet thi Sau moi lan do xung va khi hoan tat qua trinh thi co bao ket thuc la PIR1<2> tuc la CCP1IF se duoc set. Va no se khong bi xoa Neu khong co lenh xoa boi phan men. Va khi co CCP1IF =1 thi che do Capture Mode dung hoat dong va doi cho den khi CCP1IF duoc xoa. Trong thoi gian CCP1IF chua duoc xoa. thi em doc gia tri cua CCPR1H ra PortB va quan sat bang mat qua may con LED tre 1 khoang thoi gian du de nguoi quan sat thay duoc gia tri trong CCPR1H thi tiep tuc truyen gia tri CCPR1L ra PortB de quan sat. khi quan sat lan 2 nay xong dong thoi cung la luc ta bat dau vong lap chuong trinh tiep theo. Ta xoa Thanh ghi CCPR1x va PIR1<CCP1IF> = 0.
Chac le den day em da tra loi cau hoi Ve di lay cua anh roi dung khong. Va la no se khong anh huong den chuong ket qua chuong trinh.

Con cau hoi ? The nao moi la chay ?
Hien tai no chay rat linh tinh va so dem trong CCPR1x rat linh tinh khi thi chi 2.000 khi thi 40-50.000 trong khi do xung cua em phat la xung chuan 10Khz va sai so xung nay chi la 1 xung (neu co).
...
Bạn hiểu là như vậy, còn trong datasheet thì có đoạn sau (mục 8.1):
Trích:
The type of event is configured by control bits, CCP1M3:CCP1M0 (CCPxCON<3:0>). When a capture is made, the interrupt request flag bit, CCP1IF (PIR1<2>), is set. The interrupt flag must be cleared in software. If another capture occurs before the value in register CCPR1 is read, the old captured value is overwritten by the new value.
Như vậy datasheet không hề nói đến chuyện CCP1IF được set thì quá trình capture bị ngưng, mà họ chỉ nói rằng giá trị của CCPR1 sẽ bị ghi đè nếu có một capture khác xảy ra.

Kết quả chạy chương trình của bạn cũng xác nhận điều đó, vì số đếm bạn đọc ra được nhảy lung tung. Nghĩa là nó capture liên tục, và nếu bạn xóa CCP1RH và CCP1RL ở những mốc thời gian khác nhau thì bạn sẽ capture được những giá trị khác nhau.

Tôi gợi ý thế này, trước tiên bạn chỉ capture đúng một lần và hiển thị kết quả. Thử chạy nhiều lần chương trình đó xem kết quả thế nào. Sau đó bạn thử capture lần đầu, sau đó tắt Timer 1, hiển thị kết quả, và bật Timer 1 trở lại để bắt đầu capture lần thứ hai, so sánh kết quả. Tạm thời là như thế.

Thân,
__________________
Biển học mênh mông, sức người có hạn.

Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau:
http://www.picvietnam.com/forum/showthread.php?t=1263
namqn vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-05-2007, 12:42 AM   #6
tdm
Đệ tử 7 túi
 
Tham gia ngày: May 2005
Bài gửi: 258
:
Sao khong dung duoc tieng viet nhi
ban dung thu nhe!
PIC16F877A HOAT DONG O CHE DO CAPTURE MODE
;
WAIT EQU 0x22
WAIT1 EQU 0x23
WAIT2 EQU 0x24
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF
org 0x000
CLRF STATUS
; DOAN CHUONG TRINH KHOI TAO CHO CAPTURE MODE
BSF STATUS,RP0
BSF TRISC,2 ; RC2 IN-PUT CHON CHAN RC2 LAM CHAN DUA XUNG VAO
CLRF TRISB
BCF STATUS,RP0
CLRF CCP1CON ; KHOI TAO CHO CHE DO CAPTURE MODE
MOVLW .4 ; NAP GIA TRI TRUYEN VAO THANH GHI CCP1CON
MOVWF CCP1CON ; CHI KIEM TRA SUON XUNG XUONG

CLRF T1CON ; KHOI DONG CHO TIMER1
Loop
CLRF TMR1H
CLRF TMR1L
CLRF CCPR1H ; XOA THANH GHI CCPR1
CLRF CCPR1L
BCF PIR1,CCP1IF ; XOA CO NGAT DE TIEP TUC.
NOP
;CHO PHAT HIEN CANH LEN DE LAY MAU CHO CHUAN
BTFSS PIR1,CCP1IF ; DOI CCP1IF SET LEN 1
GOTO $-1
BCF PIR1,CCP1IF ; XOA CO NGAT DE TIEP TUC.
;BAT DAU LAY MAU
BSF T1CON,TMR1ON
;CHO CANH LEN LAN NUA DE LAY CA CHU KI
BTFSS PIR1,CCP1IF ; DOI CCP1IF SET LEN 1
GOTO $-1
BCF T1CON,TMR1ON
MOVF CCPR1H,0 ; DOC GIA TRI TU THANH GHI CCPR1L
MOVWF PORTB ; HIEN THI RA PORTB
CALL DELAY
MOVF CCPR1L,0 ; DOC GIA TRI TU THANH GHI CCPR1L
MOVWF PORTB ; HIEN THI RA PORTB
CALL DELAY
GOTO Loop ; LAP VO THOI HAN

DELAY ; DOAN CHUONG TRINH TAO THOI GIAN TRE
MOVLW .250
MOVWF WAIT
D1
MOVLW .250
MOVWF WAIT1
D2
MOVLW .250
MOVWF WAIT2
DECFSZ WAIT2,1
GOTO $-1
DECFSZ WAIT1,1
GOTO D2
DECFSZ WAIT,1
GOTO D1
RETURN
END
tdm vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 26-05-2007, 12:31 PM   #7
nguyen.geo
Đệ tử 2 túi
 
Tham gia ngày: Jan 2007
Bài gửi: 27
:
Trích:
Nguyên văn bởi tdm View Post
Sao khong dung duoc tieng viet nhi
ban dung thu nhe!
PIC16F877A HOAT DONG O CHE DO CAPTURE MODE
;
WAIT EQU 0x22
WAIT1 EQU 0x23
WAIT2 EQU 0x24
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC & _LVP_OFF
org 0x000
CLRF STATUS
; DOAN CHUONG TRINH KHOI TAO CHO CAPTURE MODE
BSF STATUS,RP0
BSF TRISC,2 ; RC2 IN-PUT CHON CHAN RC2 LAM CHAN DUA XUNG VAO
CLRF TRISB
BCF STATUS,RP0
CLRF CCP1CON ; KHOI TAO CHO CHE DO CAPTURE MODE
MOVLW .4 ; NAP GIA TRI TRUYEN VAO THANH GHI CCP1CON
MOVWF CCP1CON ; CHI KIEM TRA SUON XUNG XUONG

CLRF T1CON ; KHOI DONG CHO TIMER1
Loop
CLRF TMR1H
CLRF TMR1L
CLRF CCPR1H ; XOA THANH GHI CCPR1
CLRF CCPR1L
BCF PIR1,CCP1IF ; XOA CO NGAT DE TIEP TUC.
NOP
;CHO PHAT HIEN CANH LEN DE LAY MAU CHO CHUAN
BTFSS PIR1,CCP1IF ; DOI CCP1IF SET LEN 1
GOTO $-1
BCF PIR1,CCP1IF ; XOA CO NGAT DE TIEP TUC.
;BAT DAU LAY MAU
BSF T1CON,TMR1ON
;CHO CANH LEN LAN NUA DE LAY CA CHU KI
BTFSS PIR1,CCP1IF ; DOI CCP1IF SET LEN 1
GOTO $-1
BCF T1CON,TMR1ON
MOVF CCPR1H,0 ; DOC GIA TRI TU THANH GHI CCPR1L
MOVWF PORTB ; HIEN THI RA PORTB
CALL DELAY
MOVF CCPR1L,0 ; DOC GIA TRI TU THANH GHI CCPR1L
MOVWF PORTB ; HIEN THI RA PORTB
CALL DELAY
GOTO Loop ; LAP VO THOI HAN

DELAY ; DOAN CHUONG TRINH TAO THOI GIAN TRE
MOVLW .250
MOVWF WAIT
D1
MOVLW .250
MOVWF WAIT1
D2
MOVLW .250
MOVWF WAIT2
DECFSZ WAIT2,1
GOTO $-1
DECFSZ WAIT1,1
GOTO D2
DECFSZ WAIT,1
GOTO D1
RETURN
END


Thứ nhất rất chân thành cảm ơn anh đã giúp đỡ để em có thể lập trình cho chế độ này.
Em biết sẽ có rất nhiều người gặp phải trường hợp như em. Chính vì vậy em Post lên bài đầy đủ về Capture Mode để những người như em có thể lấy làm tài liệu tham khảo. Chương trình dưới đây đã chạy tốt các bạn coi như đây là 1 Modul cho Capture Mode :

; ************************************************** *************
; Đặt chế độ cho Capture Mode
CLRF STATUS
BSF STATUS,RP0
BSF PORTC,2 ; RC2 IN-PUT
CLRF PORTB ; PORTB OUT-PUT
BCF STATUS,RP0
CLRF CCP1CON
MOVLW .4 ; NAP GIA TRI TRUYEN VAO THANH GHI CCP1CON
MOVWF CCP1CON ; CHI KIEM TRA SUON XUNG XUONG
CLRF T1CON
LOOP
BCF PIR1,CCP1IF ; XOA CO NGAT DE TIEP TUC.
BTFSS PIR1,CCP1IF ; DOI CCP1IF SET LEN 1
GOTO $-1
CLRF TMR1H ; XOA GIA TRI TRONG THANH GHI TIMER1
CLRF TMR1L ; GIA TRI TRONG THANH GHI CCPR1x SE TU DONG XOA
BCF PIR1,CCP1IF ; XOA CO NGAT DE TIEP TUC.
BSF T1CON,TMR1ON; BAT DAU LAY MAU
BTFSS PIR1,CCP1IF ; DOI CCP1IF SET LEN 1
GOTO $-1
BCF T1CON,TMR1ON
MOVFW CCPR1H ; DOC GIA TRI TU THANH GHI CCPR1L
MOVLW PORTB ; HIEN THI RA PORTB
CALL DELAY
MOVFW CCPR1L ; DOC GIA TRI TU THANH GHI CCPR1L
MOVLW PORTB ; HIEN THI RA PORTB
CALL DELAY
GOTO LOOP

; DOAN CHUONG TRINH TAO THOI GIAN TRE
DELAY
MOVLW .250
MOVWF WAIT
D1
MOVLW .250
MOVWF WAIT1
D2
MOVLW .250
MOVWF WAIT2
DECFSZ WAIT2,1
GOTO $-1
DECFSZ WAIT1,1
GOTO D2
DECFSZ WAIT,1
GOTO D1
RETURN
END

Một lần nữa chân thành cảm ơn mọi người. Tôi đã hỏi và mọi người trả lời bây giờ tôi chưa có câu hỏi nào nhờ mọi người. Nhưng nếu ai có câu hỏi mà tôi có thể trả lời được thì tôi rất sẵn sang. Tôi làm về thiết kế mạch Analog và lập trình.. Trước đây thường lập trình cho 89C52 nay chuyển sang PIC nên còn hơi mắc.
Có gì mong anh em giúp đỡ. Chào và chúc thành công.
nguyen.geo vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 01-10-2008, 04:07 PM   #8
anh_gioi
Đệ tử 6 túi
 
Tham gia ngày: Oct 2006
Bài gửi: 147
:
xin hỏi, em cũng đang làm về modul capture và lập trình trên CCS với đoạn code sau:
công việc của em là hiển thị khoảng cách mà SRF05 đo được khi gặp vật cản. em dùng bộ capture để đọc tín hiệu đầu vào:
Trích:
// RC2--ECHO
// RD1 --TRIGGER
#include "F:\NCKH 2009\PIC 16\count_timer2\count_timer2.h"
#include <lcd_lib_4bit.c>
#include <F:\NCKH 2009\PIC 16\count_timer2\def_877a.h>
#define CONVERT_TO_MICROSECONDS (20000000/((4*4)*1000000))
//BOOLEAN CCP1Captured;
int8 tram,chuc,donvi,nghin;
void convert_bcd(int8 x)
{
donvi=x%10; //chia lay phan du, so hang don vi
tram=x/100; //tach hang tram va hang chuc
chuc=x/10%10;
nghin = x/1000;
tram = tram + 0x30;
chuc = chuc + 0x30;
donvi = donvi + 0x30;
nghin = nghin +0x30;
}
/////////
#int_ccp1
void main()
{
int8 x,s;
int16 t;
LCD_init();
convert_bcd(x);
trisd = 0x02;
trisc = 0x04;

//---hien thi LCD---
LCD_putchar("anh_gioi");
LCD_putcmd(0xC0);
LCD_putchar("S = ");
LCD_putcmd(0xC9);
LCD_putchar(" Cm");

//-- khai bao timer-capture ----
setup_timer_1(T1_INTERNAL | T1_DIV_BY_4);
setup_ccp1(CCP_CAPTURE_RE);
enable_interrupts(INT_CCP1); // Setup interrupt on falling edge
enable_interrupts(GLOBAL);
while(true)
{

//---- 10uS cho trgger ----
output_high(pin_d1);
delay_us(10);
output_low(pin_d1);
//-- Wait for senser output to go high ----

if(input(pin_c2)==0)
{
t = 0;
//set_timer1(0);
LCD_putcmd(0xCE);
LCD_putchar("NO");
}


else
{

t = CCP_1;
s = t/58;
convert_bcd(s);
//time = get_timer1();
LCD_putcmd(0xCE);
LCD_putchar("CO");
//time = time/CONVERT_TO_MICROSECONDS; //chuyen doi ra mcrogiay
}

///// hien thi len gia tri LCD//////
LCD_putcmd(0xC4);
LCD_putchar(nghin);
LCD_putcmd(0xC5);
LCD_putchar(tram);
LCD_putcmd(0x6);
LCD_putchar(chuc);
LCD_putcmd(0xC7);
LCD_putchar(donvi);
}
}

sau khi test thì LCD của em hiển thị 0000, em ko bít tại sao hay em đã khai báo và cách đọc hàm capture sai???
mong mọi người giúp em ???
anh_gioi 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à 12:15 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