I. GIỚI THIỆU
Ở chương này khảo sát vi điều khiển giao tiếp với vi mạch chuyển đổi tương tự sang số (ADC) và vi điều khiển có tích hợp ADC để thực hiện các ứng dụng trong đo lường và điều khiển.
Sau khi kết thúc chương này bạn có thể kết nối vi điều khiển không có tích hợp bộ chuyển đổi ADC với các vi mạch ADC, sử dụng được vi điều khiển có tích hợp ADC, biết trình tự thực hiện quá trình chuyển đổi ADC, biết tính toán độ phân giải, chuyển đổi và tính trung bình kết quả.
II. ADC CỦA VI ĐIỀU KHIỂN PIC 16F887
Vi điều khiển PIC 16F877A có bộ chuyển đổi tín hiệu tương tự sang tín hiệu số ADC 10 bit đa hợp 8 kênh và PIC 16F887 có 14 kênh. Mạch ADC dùng cho các ứng dụng giao tiếp với tín hiệu tương tự có thể nhận từ các cảm biến như cảm biến nhiệt độ LM35, cảm biến áp suất, cảm biến độ ẩm, cảm biến khoảng cách, …
Phần này sẽ khảo sát chi tiết khối ADC của PIC, các thanh ghi của khối ADC, trình tự thực hiện chuyển đổi, tập lệnh lập trình C cho ADC và ứng dụng ADC để đo nhiệt độ.

1. KHẢO SÁT ADC CỦA PIC 16F887
ADC của PIC16F887 có sơ đồ khối như hình 7-1:

Chức năng các thành phần:
AN0 đến AN13 (analog) là 14 ngõ vào của 14 kênh tương tự được đưa đến mạch đa hợp.
CHS<3:0> là các ngõ vào chọn kênh của bộ đa hợp tương tự.
Tín hiệu kênh tương tự đã chọn sẽ được đưa đến bộ chuyển đổi ADC.
Điện áp tham chiếu dương Vref+ có thể lập trình nối với nguồn cung cấp dương AVDD
hoặc điện áp tham chiếu bên ngoài nối với ngõ vào Vref+ của chân AN3, bit lựa chọn là
VCFG0.
Điện áp tham chiếu âm Vref- có thể lập trình nối với nguồn cung cấp AV
SS hoặc điện áp tham chiếu bên ngoài nối với ngõ vào Vre- của chân AN2, bit lựa chọn là VCFG1.
Hai ngõ vào Vref+ và Vref- có chức năng thiết lập độ phân giải cho ADC.
Bit ADON có chức năng cho phép ADC hoạt động hoặc tắt bộ ADC khi không hoạt
động để giảm công suất tiêu tán, ADON bằng 1 thì cho phép, bằng 0 tắt.
Kết quả chuyển đổi là số nhị phân 10 bit sẽ lưu vào cặp thanh ghi 16 bit có tên là ADRESH và ADRESL, 10 bit kết quả lưu vào thanh ghi 16 bit nên có dạng lưu là canh lề trái và canh lề phải tùy thuộc vào bit lựa chọn có tên ADFM.
ADC có 14 kênh nhưng mỗi thời điểm chỉ chuyển đổi 1 kênh và chuyển đổi kênh nào thì phụ thuộc vào 4 bit chọn kênh CHS4:CHS0. Hai ngõ vào điện áp tham chiếu dương và âm có thể lập trình nối với nguồn VDD và VSS hoặc nhận điện áp tham chiếu từ bên ngoài qua 2 chân RA3 và RA2.
Khối ADC độc lập với CPU nên có thể hoạt động khi CPU đang ở chế độ ngủ do xung cung cấp cho ADC lấy từ dao động RC bên trong của khối ADC.
2. KHẢO SÁT CÁC THANH GHI CỦA PIC 16F887
Khối ADC có 4 thanh ghi:
Thanh ghi lưu kết quả byte cao: ADRESH (A/D Result High Register)
Thanh ghi lưu kết quả byte thấp: ADRESL (A/D Result Low Register)
Thanh ghi điều khiển ADC thứ 0: ADCON0 (A/D Control Register 0)
Thanh ghi điều khiển ADC thứ 1: ADCON1 (A/D Control Register 1)
a. Thanh ghi ADCON0 (ADC Control register)chứa các bit điều khiển khối ADC như sau:

Bit 7-6 ADCS<1:0>: Các bit lựa chọn xung chuyển đổi AD (AD Conversion Clock Select bits) :
00 = FOSC/201 = FOSC/810 = FOSC/3211 = FRC (xung clock lấy từ bộ dao động nội bên trong có tần số lớn nhất là 500 kHz)
Bit 5-3 CHS<3:0>: Các bit lựa chọn kênh tương tự (Analog Channel Select bits) như bảng 7-1:
Bit 1 DONE/GO: bit báo trạng thái chuyển đổi ADC (A/D Conversion status bit)
Khi cho GO/DONE = 1 để bắt đầu thực hiện quá trình chuyển đổi.
Sau khi chuyển đổi xong thì mạch chuyển đổi làm bit GO/DONE xuống mức 0.
Bit 0 ADON: bit mở nguồn cho ADC hoạt động (AD ON bit):
ADON = 1 có chức năng mở nguồn cho khối chuyển đổi ADC hoạt động.
ADON = 0 sẽ tắt nguồn khối chuyển đổi ADC để giảm công suất tiêu thụ.
b. Thanh ghi ADCON1 thiết lập các chân của port là tương tự hoặc xuất nhập số IO.

Bit 7 ADFM: bit lựa chọn định dạng kết quả ADC (AD Result Format Select bit):
ADFM = 1: có chức năng canh lề phải, 6 bit MSB của ADRESH có giá trị là "0".
ADFM = 0: có chức năng canh lề trái, 6 bit LSB của ADRESL có giá trị là "0".
Bit 5 VCFG1: bit lựa chọn điện áp tham chiếu (Voltage reference bit)
VCFG1 = 1: có chức năng nối điện áp tham chiếu Vref- với ngõ vào AN3.
VCFG1 = 0: có chức năng nối điện áp tham chiếu Vref- với VSS.
Bit 4 VCFG0: bit lựa chọn điện áp tham chiếu (Voltage reference bit)
VCFG0 = 1: có chức năng nối điện áp tham chiếu Vref+ với ngõ vào AN3.
VCFG0 = 0: có chức năng nối điện áp tham chiếu Vref+ với VDD
Bit 6, 3-0: chưa dùng nếu đọc sẽ có giá trị là „0‟
c. Thanh ghi ADRESH và ADRESL
Cặp thanh ghi 16 bit ADRESH: ADRESL dùng để lưu kết quả chuyển đổi 10 bit của ADC sau khi chuyển đổi xong. Do kết quả chỉ có 10 bit nhưng lưu trong cặp thanh ghi 16 bit nên có 2 kiểu định dạng tùy thuộc vào bit ADFM (ADC Format).
Hình sau trình bày 2 kiểu định dạng của cặp thanh ghi kết quả:

Chức năng của canh lề phục vụ cho 2 khả năng xử lý kết quả: nếu lấy kết quả 10 bit để xử lý thì nên chọn chế độ canh lề phải, còn nếu lấy kết quả 8 bit thì chọn chế độ canh lề trái và chỉ lấy kết quả của thanh ghi byte cao ADRESH, bỏ đi 2 bit có trọng số thấp nhất của thanh ghi ADRESL và chú ý đến tính toán giá trị, trong chương trình C nếu không khai báo thuộc tính ADC 10 bit thì phần mềm tự động lấy giá trị 8 bit cao.
3. LỰA CHỌN NGUỒN XUNG CHO CHUYỂN ĐỔI ADC
Tần số xung clock cho bộ chuyển đổi ADC được lựa chọn bằng phần mềm bởi các bit ADCS nằm trong thanh ghi ADCON0. Có 4 lựa chọn cho nguồn xung clock như sau:
FOSC/2
FOSC/8
FOSC/32
FRC lấy từ bộ dao động bên trong.
Tần số xung clock tùy chọn phụ thuộc vào tần số bộ dao động như bảng 7-2:
Thời gian chuyển đổi ADC cho mỗi bit được xác định bởi chu kỳ TAD. Để chuyển đổi hoàn tất 10 bit sẽ dùng tối thiểu 11 chu kỳ TAD


4. TRÌNH TỰ THỰC HIỆN CHUYỂN
Để thực hiện chuyển đổi ADC thì phải thực hiện các bước sau:
III.ADC trong CCS:
- Bước 1: Cấu hình cho port:Cấu hình cho các port ở chế độ ngõ vào tương tự.Không được định cấu hình cho các port ở chế độ xuất dữ liệu.
- Bước 2: Cấu hình cho module ADC: Chọn xung clock cho chuyển đổi ADC.Định cấu hình cho điện áp chuẩn.Chọn kênh ngõ vào tương tự cần chuyển đổi.Chọn định dạng cho 2 thanh ghi lưu kết quả.Mở nguồn cho ADC.
- Bước 3: Thiết lập cấu hình ngắt ADC nếu sử dụng: Xóa cờ báo ngắt ADIF của ADC.Cho bit ADIE bằng 1 để cho phép ADC ngắt.Cho bit PEIE bằng 1 để cho phép ngắt ngoại vi.Cho bit GIE bằng 1 để cho phép ngắt toàn cục.
- Bước 4: Chờ hết thời gian ổn định theo yêu cầu.
- Bước 5: Bắt đầu chuyển đổi bằng cách cho bit GO/DONE lên 1.
- Bước 6: Kiểm tra chuyển đổi ADC kết thúc bằng cách: Kiểm tra liên tục bit GO/DONE nếu về 0 thì quá trình chuyển đổi kết thúc. Nếu dùng ngắt thì chờ ngắt ADC xảy ra.
- Bước 7: Đọc cặp thanh ghi kết quả (ADRESH: ADRESL), xóa bit ADIF nếu dùng ngắt.
- Bước 8: Thực hiện chuyển đổi kế tiếp.
III.ADC trong CCS:
Những sự lựa chọn này cho phép người sử dụng định hình thể và sử dụng bộ chuyển đổi từ tín hiệu tương tự sang tín hiệu số.Chúng chỉ có sẵn trên thiết bị với phần cứng ADC.Sự lựa chọn cho những chức năng và chỉ dẫn thay đổi phụ thuộc vào con chip và đã được liệt kê trong phần header file của thiết bị.Trên 1 vài thiết bị có 2 bộ ADC độc lập. đối với những chip này bộ ADC thứ 2 được định hình thể để sử dụng chức năng cài đặt ADC thứ cấp(Ví dụ setup_ADC2)
Những chức năng có liên quan:
1. Cài đặt chế độ ADC
Cú pháp: setup_adc (mode);
setup_adc2(mode);
Thông số: mode - chế độ tín hiệu tương tự sang tín hiệu số.Sự lựa chọn hợp lý thay đổi phụ thuộc vào thiết bị. Xem những thiết bị có tập tin .h cho tất cả sự lựa chọn.Một vài sự lựa chọn tiêu biểu bao gồm:
ADC_OFFADC_CLOCK_INTERNALADC_CLOCK_DIV_32
- Trả về: Không được định nghĩa
- Chức năng: Định hình thể chuyển từ tín hiệu tương tự sang tín hiệu số
- Tiện lợi:Chỉ có trong những thiết bị có bộ chuyển đổi tín hiệu tương tự sang tín hiệu số
- Yêu cầu:Những hằng số đã được định nghĩa trong tập tin .h của thiết bị
Ví dụ:
setup_adc_ports( ALL_ANALOG );
setup_adc(ADC_CLOCK_INTERNAL );
set_adc_channel( 0 );
value = read_adc();
setup_adc( ADC_OFF );
Ví dụ những tập tin: ex_admm.c
Xem thêm:
setup_adc_ports(),
set_adc_channel(),
read_adc(),
#device, ADC overview, xem tập tin header của thiết bị đã được chọn
2. Thiết lập những chân ADC có sẵn để chuyển từ tín hiệu tương tự sang tín hiệu số
Cú pháp:
setup_adc_ports (value)
- Thông số: value Một hằng số được định nghĩa trong tập tin .h của thiết bị
- Trả về: Không được định nghĩa
- Chức năng:Cài đặt những chân ADC là tín hiệu tương tự,tín hiệu số hoặc một sự kết hợp và điện áp tham chiếu để sử dụng khi tính tóan giá trị ADC.Sự kết hợp các chân tín hiệu tương tự đã được cho phép thay đổi phụ thuộc vào con chip và được định nghĩa bằng cách sử dụng từng bit OR để ghép những chân đã được chọn cùng với nhau.Kiểm tra thiết bị bao gồm tập tin các chân và điện áp tham chiếu đã được sắp đặt trong danh sách hòan chỉnh.
- Hằng số:
ALL_ANALOG và NO_ANALOG là hợp lý cho tất cả con chip.
Một vài ví dụ khác định nghĩa chân là:
- Hằng số:
ALL_ANALOG và NO_ANALOG là hợp lý cho tất cả con chip.
Một vài ví dụ khác định nghĩa chân là:
ANALOG_RA3_REF Kích họat tất cả các chân tín hiệu tương tự và chân RA3 là điện áp tham chiếu
RA0_RA1_RA3_ANALOG Chỉ có chân RA0,RA1,RA3 là tín hiệu tương tự
- Tiện lợi: Chức năng này có sẵn trong các thiết bị với phần cứng Analog/Digital
- Yêu cầu: Những hằng số đã được định nghĩa trong tập tin .h của thiết bị
Ví dụ:
- Tất cả các chân analog
- Tất cả các chân analog
setup_adc_ports( ALL_ANALOG );
- Chân A0,A1,A3 là analog,và tất cả các chân còn lại là digital. Điện áp +5V được sử dụng như điện áp tham chiếu
setup_adc_ports( RA0_RA1_RA3_ANALOG );- Chân A0,A1 là analog,chân A3 được sử dụng cho điện áp tham chiếu và tất cả các chân còn lại là digital
setup_adc_ports( A0_RA1_ANALOGRA3_REF );
Ví dụ những tập tin: ex_admm.c
Xem thêm:
setup_adc();3. Chỉ rõ những kênh dung để sử dụng cho việc gọi Analog/Digital
read_adc();
set_adc_channel();
ADC overview
Cú pháp:
set_adc_channel (chan);
- Thông số: Chân là số kênh được chọn.Số chân bắt đầu tại 0 và đã được đặt nhãn trong datasheet AN0,AN1
Trả về:Không được định nghĩa
- Chức năng: Chỉ rõ những kênh được sử dụng cho việc gọi lệnh READ_ADC().Hãy biết rằng bạn phải chờ 1 khoảng thời gian ngắn sau khi thay đổi kênh trước khi bạn có thể nhận được giá trị đọc hợp lý.Thời gian thay đổi phụ thuộc vào trở kháng của nguồn đầu vào.Khỏang 10us nói chung là tốt cho hầu hết các ứng dụng.Bạn không cần thay đổi kênh trước mỗi lần đọc nếu kênh không thay đổi
- Tiện lợi: Chức năng này có sẵn trong các thiết bị với phần cứng Analog/Digital
- Yêu cầu: Không cần thứ gì
Ví dụ:
set_adc_channel(2);
delay_us(10);
value = read_adc();
Ví dụ những tập tin: ex_admm.c
Xem thêm:
read_adc(), setup_adc(), setup_adc_ports(), ADC overview
Cú pháp:
value = read_adc ([mode])
- Thông số: mode là một thông số không bắt buộc.Nếu được sử dụng giá trị có thể:
ADC_START_AND_READ (Liên tục đọc,và đây là mặc định)
ADC_START_ONLY (Bắt đầu quá trình chuyển đổi và trả về giá trị)
ADC_READ_ONLY (Đọc kết quả chuyển đổi cuối cùng)
- Trả về: 8 bit hoặc 16 bit số nguyên phụ thuộc vào #DEVICE ADC= directive (directive:lời chỉ dẫn,8 hoặc 16).
- Chức năng: Đây là chức năng đọc giá trị số từ bộ chuyển đổi tín hiệu tương tự sang tín hiệu số. Gọi lệnh setup_adc(), setup_adc_ports() and set_adc_channel() nên được làm vài lần trước khi chức năng này được gọi. Dãy giá trị trả về phụ thuộc vào số lượng bit bộ chuyển đổi Analog/Digital trong con chip và sự sắp đặt trong DEVICE ADC= directive như sau:
#DEVICE 8 bit 10 bit 11 bit 12 bit 16 bit
ADC=8 00-FF 00-FF 00-FF 00-FF 00-FF
ADC=10 x 0-3FF X 0-3FF x
ADC=11 x x 0-7FF x x
ADC=16 0-FF00 0-FFC0 0-FFEO 0-FFF0 0-FFFF
Lưu ý: X không được định nghĩa
Tiện lợi: Chức năng này có sẵn trong các thiết bị với phần cứng Analog/Digital
Yêu cầu: Những chân cố định đã được định nghĩa trong tập tin .h của thiết bị
Ví dụ:
setup_adc( ADC_CLOCK_INTERNAL );
setup_adc_ports( ALL_ANALOG );
set_adc_channel(1);
while ( input(PIN_B0)
{
delay_ms( 5000 );
value = read_adc();
printf("A/D value = %2x\n\r", value);
}
read_adc(ADC_START_ONLY);
sleep();
value=read_adc(ADC_READ_ONLY);
Ví dụ tập tin: ex_admm.c, ex_14kad.c
Xem thêm :
setup_adc(),
set_adc_channel(),
setup_adc_ports(),
#DEVICE, ADC overview
ADC_done():Trả về 1 nếu bộ chuyển đổi đã hòan thành việc chuyển đổi của nó
Tiền xử lý có liên quan:
#DEVICE ADC=xx : Định hình thể read_adc rồi trả về kính thước.Ví dụ, sử dụng 1 con PIC với 10 bit A/D bạn có thể sử dụng 8 hoặc 10 cho xx- 8 sẽ trả về bye có trọng số cao nhất,10 sẽ trả về tòan bộ giá trị đọc A/D 10 bit
Các ngắt có liên quan:
INT_AD: Ngắt xảy ra khi quá trình chuyển đổi đã hòan tất
Các tập tin có liên quan:
Không có,tất cả chức năng được cài đặt sẵn
Các thông số getenv() có liên quan:
ADC_CHANNELS Số kênh Analog/Digital
ADC_RESOLUTION Số lượng bit trả về bởi lệnh read_adc
code mẫu
float bientro;
void main()
{
setup_adc_ports(AN0);//chon port AN0
setup_adc(ADC_CLOCK_DIV_2);//thoi gian 0.1us
lcd_init();
while(TRUE)
{
//TODO: User Code
set_adc_channel(0);//chon kenh 0
delay_us(100);//on dinhbientro=read_adc();//doc gia tri AN0lcd_gotoxy(1,1);printf(lcd_putc,"ADC: %f",bientro);}}
Thế nào là ADC và sử dụng nhiều ADC
hey there and thank you for your info – I have definitely picked
ReplyDeleteup anything new from right here. I did however expertise several technical points using this site, since I experienced to reload the
web site many times previous to I could get it to load properly.
I had been wondering if your web hosting is
OK? Not that I am complaining, but sluggish loading instances times will often affect
your placement in google and could damage your high-quality score if advertising and marketing with Adwords.
Well I am adding this RSS to my email and can look out for much more of your respective intriguing content.
Ensure that you update this again soon.
I like what you guys tend to be up too. This type of clever work and exposure!
ReplyDeleteKeep up the wonderful works guys I've added you guys to my blogroll.
Superb website you have here but I was wondering if you knew of any forums that cover the same topics discussed here?
ReplyDeleteI'd really like to be a part of group where I can get advice from other knowledgeable people that share the same interest.
If you have any suggestions, please let me know.
Thanks a lot!
It's impressive that you are getting thoughts from this post as well as from our dialogue made at
ReplyDeletethis place.
Hi there just wanted to give you a quick heads up.
ReplyDeleteThe text in your post seem to be running off the screen in Safari.
I'm not sure if this is a formatting issue or something to do with web browser compatibility but I thought I'd post to let you know.
The design look great though! Hope you get the problem resolved soon. Cheers
It's an remarkable post in favor of all the web viewers; they will get benefit from it I am sure.
ReplyDeletePretty nice post. I just stumbled upon your blog and wished to say that I've truly enjoyed browsing your blog posts.
ReplyDeleteAfter all I'll be subscribing to your feed and I hope you write again soon!
I visit day-to-day a few web sites and sites to read
ReplyDeletecontent, however this webpage presents feature based content.
I was more than happy to find this page. I wanted to thank
ReplyDeleteyou for ones time for this particularly wonderful
read!! I definitely loved every little bit of it
and i also have you saved to fav to look at new stuff in your site.
Great beat ! I wish to apprentice even as you amend
ReplyDeleteyour web site, how could i subscribe for a blog website? The
account aided me a appropriate deal. I had been tiny bit acquainted of this your broadcast provided shiny transparent concept
Excellent post however , I was wanting to know if you could write a litte more on this subject?
ReplyDeleteI'd be very thankful if you could elaborate a little
bit further. Thanks!
It's impressive that you are getting ideas from
ReplyDeletethis paragraph as well as from our dialogue made
at this place.
Hi there! I know this is kinda off topic however , I'd figured I'd ask.
ReplyDeleteWould you be interested in exchanging links or maybe
guest writing a blog article or vice-versa? My website goes over a lot
of the same subjects as yours and I think we could greatly
benefit from each other. If you are interested feel free to send me an e-mail.
I look forward to hearing from you! Awesome blog by the way!
We stumbled over here by a different web page and thought I should check
ReplyDeletethings out. I like what I see so i am just
following you. Look forward to going over your web
page for a second time.
Greate pieces. Keep posting such kind of information on your site.
ReplyDeleteIm really impressed by it.
Hello there, You have performed an incredible job. I will
definitely digg it and individually suggest to my friends.
I am sure they will be benefited from this site.
I'm really enjoying the design and layout of your site.
ReplyDeleteIt's a very easy on the eyes which makes it much more pleasant for me to come here and visit
more often. Did you hire out a developer to create your theme?
Exceptional work!
Incredible! This blog looks exactly like my old one!
ReplyDeleteIt's on a entirely different subject but it has pretty much the same page layout and design.
Superb choice of colors!
It's enormous that you are getting thoughts from this paragraph as well as from
ReplyDeleteour argument made at this place.
Everything is very open with a really clear explanation of the issues.
ReplyDeleteIt was definitely informative. Your website is very useful.
Many thanks for sharing!
I am actually glad to read this webpage posts which carries lots of helpful
ReplyDeleteinformation, thanks for providing these information.
It's a shame you don't have a donate button! I'd definitely donate to this brilliant blog!
ReplyDeleteI suppose for now i'll settle for book-marking and adding your RSS
feed to my Google account. I look forward to brand new
updates and will talk about this blog with
my Facebook group. Chat soon!
Hi! I could have sworn I've been to your blog before but after going
ReplyDeletethrough many of the articles I realized it's new to me.
Nonetheless, I'm definitely pleased I stumbled upon it and I'll be book-marking it and checking back frequently!
Amazing! This blog looks exactly like my old one!
ReplyDeleteIt's on a totally different topic but it has pretty much the same page layout and design. Outstanding choice
of colors!
Aw, this was a very good post. Taking the time and
ReplyDeleteactual effort to produce a superb article… but what can I say… I hesitate a
whole lot and never manage to get anything done.
Simply desire to say your article is as amazing.
ReplyDeleteThe clarity in your post is simply excellent and i could assume you are
an expert on this subject. Fine with your permission allow me to grab your RSS feed to keep
updated with forthcoming post. Thanks a million and please carry on the rewarding work.
Hi exceptional website! Does running a blog similar to this require a lot of work?
ReplyDeleteI have no knowledge of coding but I had been hoping to start my own blog in the near future.
Anyway, should you have any ideas or techniques for new blog owners please share.
I know this is off topic however I simply had to ask.
Thanks a lot!
Hi to every , for the reason that I am really eager
ReplyDeleteof reading this web site's post to be updated regularly. It contains good data.
I think everything composed was actually very reasonable.
ReplyDeleteHowever, think on this, what if you were to create a awesome
headline? I am not suggesting your content is not
solid, however suppose you added a post title that makes people want more?
I mean "[VI DIỀU KHIỂN PIC] - BAI 7: ANALOG (ADC) CỦA PIC TRONG CCS" is kinda plain. You might glance
at Yahoo's home page and note how they create post headlines to get people to
open the links. You might add a related video
or a related pic or two to get readers excited about
everything've written. Just my opinion, it would make your website
a little bit more interesting.
That is a very good tip especially to those fresh to the blogosphere.
ReplyDeleteShort but very accurate information… Thank you for sharing this one.
A must read article!
Good answer back in return of this issue with firm arguments and telling all on the topic of
ReplyDeletethat.
Heya! I'm at work browsing your blog from my new iphone
ReplyDelete4! Just wanted to say I love reading through your blog and look forward to all
your posts! Keep up the great work!
Hi it's me, I am also visiting this site regularly, this web site is really good and the visitors
ReplyDeleteare genuinely sharing pleasant thoughts.
Hello there! I know this is somewhat off topic but I was
ReplyDeletewondering which blog platform are you using for this website?
I'm getting sick and tired of Wordpress because I've had issues with hackers and I'm
looking at options for another platform. I
would be great if you could point me in the direction of a good platform.
Thanks a lot for sharing this with all people you really recognize what you're
ReplyDeletetalking about! Bookmarked. Please also discuss with my website =).
We will have a hyperlink trade arrangement among us
Thank you for the good writeup. It in fact was a amusement account it.
ReplyDeleteLook advanced to far added agreeable from you! By the way, how could we communicate?
Hi! I know this is kind of off topic but I was wondering if
ReplyDeleteyou knew where I could find a captcha plugin for my comment form?
I'm using the same blog platform as yours and I'm having trouble finding one?
Thanks a lot!
Yesterday, while I was at work, my sister stole
ReplyDeletemy iPad and tested to see if it can survive a 30 foot drop, just so she can be a youtube sensation. My apple ipad
is now destroyed and she has 83 views. I know this is completely off topic but I had to share it with someone!
I am sure this post has touched all the internet users, its really really pleasant piece of writing on building up new weblog.
ReplyDeleteI know this site provides quality based content and extra material, is there any other
ReplyDeleteweb page which offers these kinds of stuff in quality?
Pretty section of content. I just stumbled upon your site and in accession capital to assert that I acquire in fact enjoyed
ReplyDeleteaccount your blog posts. Any way I'll be subscribing to your feeds
and even I achievement you access consistently fast.
Howdy! I know this is kind of off topic but I was wondering
ReplyDeletewhich blog platform are you using for this website? I'm getting fed up of Wordpress because I've had issues with hackers and I'm looking at options for another platform.
I would be great if you could point me in the direction of a good platform.
Hey there! This is my first visit to your blog!
ReplyDeleteWe are a team of volunteers and starting a new initiative in a community in the
same niche. Your blog provided us valuable information to
work on. You have done a wonderful job!
What i don't understood is if truth be told how
ReplyDeleteyou're no longer actually a lot more neatly-appreciated than you might be now.
You are so intelligent. You realize therefore significantly in the
case of this topic, produced me individually
believe it from so many varied angles. Its like women and men are not
fascinated unless it is something to do with Girl gaga!
Your personal stuffs excellent. All the time handle it up!
I'm not sure where you're getting your information, but good
ReplyDeletetopic. I needs to spend some time learning more or understanding more.
Thanks for great information I was looking for this information for my mission.
I'm not sure exactly why but this weblog
ReplyDeleteis loading very slow for me. Is anyone else having this
problem or is it a problem on my end? I'll check back later on and see if the problem still exists.
Hello just wanted to give you a quick heads up.
ReplyDeleteThe words in your content seem to be running off the screen in Ie.
I'm not sure if this is a formatting issue or something to do with internet browser compatibility but I figured I'd post to let you
know. The design and style look great though! Hope you get the problem solved soon. Cheers
My spouse and I stumbled over here by a different page and thought I may
ReplyDeleteas well check things out. I like what I see so i am just following you.
Look forward to exploring your web page for a second time.
Hi there, just became alert to your blog through Google, and found that it's really informative.
ReplyDeleteI'm gonna watch out for brussels. I will appreciate if you
continue this in future. Many people will be benefited from your writing.
Cheers!
With havin so much content do you ever run into any issues
ReplyDeleteof plagorism or copyright violation? My website has a lot of completely unique content
I've either written myself or outsourced but it appears a lot of it is popping it up
all over the web without my authorization. Do you know any solutions to help prevent content from being ripped off?
I'd really appreciate it.
There's certainly a great deal to know about this issue.
ReplyDeleteI like all the points you made.
I could not refrain from commenting. Well written!
ReplyDeleteI have been browsing online more than 3 hours these
ReplyDeletedays, yet I never discovered any interesting article like yours.
It's lovely price enough for me. In my view,
if all site owners and bloggers made just right content material as you
did, the web will be a lot more useful than ever before.
Nice post. I learn something totally new and challenging on websites I stumbleupon every day.
ReplyDeleteIt will always be helpful to read articles from other writers
and use something from their sites.
I like it whenever people get together and share ideas.
ReplyDeleteGreat website, continue the good work!
Hurrah! After all I got a web site from where I be able to actually obtain useful
ReplyDeletefacts concerning my study and knowledge.
Hey! Do you know if they make any plugins to safeguard against
ReplyDeletehackers? I'm kinda paranoid about losing everything I've worked hard on. Any recommendations?
But wanna comment that you have a very decent website, I
ReplyDeleteenjoy the design it really stands out.
loc ban be it tuong tacIt's going to be ending of mine day, however before end I
ReplyDeleteam reading this wonderful article to improve my
experience.
bookmɑrked!!, I really like yoᥙr ѕite!
ReplyDeleteN᧐rmallʏ І do not read post on blogs, but I would like to say that this write-up
ReplyDeletevery cоmpelⅼed me to try and do it! Your writing tаste
һas ƅeen surprised me. Thanks, ѵery nice post.
loc ban be fbIncredible points. Outstanding arguments.
ReplyDeleteKeep up the good work.
loc ban be it tuong tacThank you, I have just been searching for information about this topic for a while
ReplyDeleteand yours is the best I have came upon till now.
But, what about the bottom line? Are you positive in regards to the supply?
loc ban be khong tuong tacExcellent goods from you, man. I've understand your
ReplyDeletestuff previous to and you are just extremely excellent.
I actually like what you have acquired here, certainly like what you're stating and
the way in which you say it. You make it enjoyable and you still care for to keep
it smart. I can't wait to read much more from you.
This is really a wonderful web site.
huy ket ban fbI am really enjoying the theme/design of your weblog.
ReplyDeleteDo you ever run into any internet browser compatibility issues?
A couple of my blog readers have complained about my site not operating correctly in Explorer but looks great in Chrome.
Do you have any tips to help fix this problem?
loc ban be fbI'm really loving the theme/design of your blog.
ReplyDeleteDo you ever run into any web browser compatibility issues?
A few of my blog readers have complained about my site not
operating correctly in Explorer but looks great in Safari.
Do you have any solutions to help fix this problem?
huy ket ban fbTouche. Sound arguments. Keep up the good spirit.
ReplyDeleteloc ban be it tuong tacSpot on with this write-up, I truly think this site needs far more attention. I?ll probably be back again to read through more, thanks for the information!
ReplyDeleteMy coder is trying to convince me to move to .net
ReplyDeletefrom PHP. I have always disliked the idea because of the
expenses. But he's tryiong none the less. I've been using WordPress
on several websites for about a year and am concerned about switching to another platform.
I have heard great things about blogengine.net.
Is there a way I can transfer all my wordpress content
into it? Any kind of help would be really appreciated!
huy ket ban fbI have recently started a website,
ReplyDeletethe info you provide on this web site has helped me greatly.
Thank you for all of your time & work.
loc ban be it tuong tacHi there, I check your new stuff on a regular basis.
ReplyDeleteYour story-telling style is witty, keep it up!
This is a great tip especially to those new to the
ReplyDeleteblogosphere. Brief but very accurate information...
Thank you for sharing this one. A must read article!
Thanks , I've just been searching for info approximately this subject for a long time and
ReplyDeleteyours is the greatest I have came upon so far.
But, what concerning the conclusion? Are you sure about the supply?
Everyone loves what you guys are usually up too. This kind of clever work and
ReplyDeletecoverage! Keep up the very good works guys I've added you
guys to my personal blogroll.
I'm really loving the theme/design of your web site.
ReplyDeleteDo you ever run into any browser compatibility issues? A small number of my blog audience have complained about my site
not operating correctly in Explorer but looks great in Safari.
Do you have any tips to help fix this problem?
Its like you read my mind! You seem to know so much about this, like you wrote
ReplyDeletethe book in it or something. I think that you could do with a few pics to drive the message
home a bit, but instead of that, this is magnificent blog.
A fantastic read. I'll certainly be back.
Hello, i think that i saw you visited my weblog so i came to “return the favor”.I am trying to find things
ReplyDeleteto improve my website!I suppose its ok to use a few
of your ideas!!
loc ban be khong tuong tacHello! Do you know if they make any plugins
ReplyDeleteto protect against hackers? I'm kinda paranoid about losing everything
I've worked hard on. Any recommendations?
First of all I want to say wonderful blog! I had
ReplyDeletea quick question that I'd like to ask if you don't mind.
I was curious to know how you center yourself
and clear your mind prior to writing. I have had difficulty clearing my mind in getting my ideas out there.
I truly do enjoy writing but it just seems like the first
10 to 15 minutes are usually lost just trying to figure
out how to begin. Any ideas or tips? Appreciate it!
Hey there would you mind letting me know which webhost you're
ReplyDeleteusing? I've loaded your blog in 3 completely different browsers and I must say this blog loads a
lot quicker then most. Can you recommend a good
internet hosting provider at a reasonable price?
Thanks a lot, I appreciate it!
It's nearly impossible to find experienced people for this
ReplyDeletesubject, however, you sound like you know what you're talking about!
Thanks
Just wanna comment that you have a very decent site, I the style and design it actually stands out.
ReplyDeletePost writing is also a excitement, if you know then you can write if not it is difficult to write.
ReplyDeleteGood post. I learn something totally new and challenging on sites I stumbleupon every day.
ReplyDeleteIt will always be useful to read through content from other authors and practice a little something from other
sites.
I have read some excellent stuff here. Certainly
ReplyDeleteprice bookmarking for revisiting. I surprise how a lot effort you set to
create this kind of magnificent informative site.
Hmm it looks like your blog ate my first comment (it was super long) so I guess
ReplyDeleteI'll just sum it up what I submitted and say, I'm thoroughly enjoying your blog.
I as well am an aspiring blog blogger but I'm still new to the whole thing.
Do you have any tips for newbie blog writers? I'd really appreciate it.
It's very effortless to find out any topic on net as compared to textbooks, as I found this piece of writing at this
ReplyDeleteweb site.
I like it whenever people come together and share ideas.
ReplyDeleteGreat website, continue the good work!
loc ban beGreat delivery. Sound arguments. Keep up the great spirit.
ReplyDeleteMerely wanna input on few general things, The website design and style is perfect,
ReplyDeletethe content material is rattling fantastic :D.
loc ban beThis excellent website really has all of the information I needed about this subject and didn?t
ReplyDeleteknow who to ask.
This is a great tip especially to those
ReplyDeletefresh to the blogosphere. Short but very accurate information...
Many thanks for sharing this one. A must read post!
huy ket ban fbHi there, I read your blogs on a regular basis.
ReplyDeleteYour humoristic style is witty, keep it up!
Nice post. I learn something new and challenging on sites I stumbleupon every day.
ReplyDeleteIt will always be exciting to read articles from other authors and practice something
from other websites.
loc ban be fbI am really loving the theme/design of your weblog.
ReplyDeleteDo you ever run into any web browser compatibility issues? A small number of my blog readers have complained
about my blog not operating correctly in Explorer but looks great in Firefox.
Do you have any recommendations to help fix this problem?
Hi there, I do believe your website could possibly be having internet browser compatibility problems.
ReplyDeleteWhen I take a look at your site in Safari, it looks fine however,
when opening in I.E., it's got some overlapping issues.
I just wanted to give you a quick heads up! Apart from that, great site!
Simply wanna input on few general things, The website
ReplyDeletedesign is perfect, the written content is very excellent :D.
loc ban be fbGood write-up, I am normal visitor
ReplyDeleteof one's website, maintain up the nice operate, and It's going to be a regular visitor for a lengthy time.
loc ban beAn impressive share! I've just forwarded this
ReplyDeleteonto a co-worker who has been doing a little homework
on this. And he actually ordered me breakfast
simply because I found it for him... lol. So allow me to
reword this.... Thank YOU for the meal!! But yeah, thanx for
spending the time to talk about this matter here
on your website.
My partner and I absolutely love your blog and find many of
ReplyDeleteyour post's to be just what I'm looking for. Would you offer guest writers to write content to suit your needs?
I wouldn't mind publishing a post or elaborating on a lot of the subjects you write in relation to here.
Again, awesome web site!
loc ban be khong tuong tacSpot on with this write-up, I actually believe that this website
ReplyDeleteneeds a great deal more attention. I?ll probably be back again to read through
more, thanks for the advice!
loc ban be fbThanks , I have recently been looking for information about this topic for ages and yours is the greatest I have discovered till now.
ReplyDeleteHowever, what concerning the conclusion? Are
you positive concerning the supply?
loc ban be fbI've recently started a blog, the info
ReplyDeleteyou offer on this site has helped me greatly.
Thanks for all of your time & work.
Very interesting points you have mentioned, thanks for putting up.
ReplyDelete