[VI ĐIỀU KHIỂN PIC] - BÀI 7: ANALOG (ADC) CỦA PIC TRONG CCS - BeeLab

Sunday, June 4, 2017

[VI ĐIỀU KHIỂN PIC] - BÀI 7: ANALOG (ADC) CỦA PIC TRONG CCS


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 độ.

pic-microcontrollers-examples-in-assembly-language-chapter-07-fig7-6

1.  KHẢO SÁT ADC CỦA PIC 16F887

ADC của PIC16F887 có sơ đồ khối như hình 7-1:


pic-microcontrollers-examples-in-assembly-language-chapter-07-fig7-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:
pic-microcontrollers-examples-in-assembly-language-chapter-07-fig7-4


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. 

pic-microcontrollers-examples-in-assembly-language-chapter-07-fig7-5


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ả:

pic-microcontrollers-examples-in-assembly-language-chapter-07-fig7-2

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
pic-microcontrollers-examples-in-assembly-language-chapter-07-fig7-7
pic-microcontrollers-examples-in-assembly-language-chapter-07-fig7-3


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:
  • 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áchKiể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_ANALOGNO_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
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();
read_adc();
set_adc_channel();
ADC overview
3. Chỉ rõ những kênh dung để sử dụng cho việc gọi Analog/Digital
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
4. Bắt đầu quá trình chuyển đổi và đọc giá trị.Chế độ này có thể cũng điều khiển chức năng.
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
INT_ADOF: Ngắt xảy ra khi quá trình chuyển đổi trong thời gian chờ
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 dinh
      bientro=read_adc();//doc gia tri AN0
      lcd_gotoxy(1,1);
      printf(lcd_putc,"ADC: %f",bientro);
   }
}

Thế nào là ADC và sử dụng nhiều ADC 

103 comments:

  1. hey there and thank you for your info – I have definitely picked
    up 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.

    ReplyDelete
  2. I like what you guys tend to be up too. This type of clever work and exposure!
    Keep up the wonderful works guys I've added you guys to my blogroll.

    ReplyDelete
  3. Superb website you have here but I was wondering if you knew of any forums that cover the same topics discussed here?

    I'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!

    ReplyDelete
  4. It's impressive that you are getting thoughts from this post as well as from our dialogue made at
    this place.

    ReplyDelete
  5. Hi there just wanted to give you a quick heads up.
    The 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

    ReplyDelete
  6. It's an remarkable post in favor of all the web viewers; they will get benefit from it I am sure.

    ReplyDelete
  7. Pretty nice post. I just stumbled upon your blog and wished to say that I've truly enjoyed browsing your blog posts.
    After all I'll be subscribing to your feed and I hope you write again soon!

    ReplyDelete
  8. I visit day-to-day a few web sites and sites to read
    content, however this webpage presents feature based content.

    ReplyDelete
  9. I was more than happy to find this page. I wanted to thank
    you 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.

    ReplyDelete
  10. Great beat ! I wish to apprentice even as you amend
    your 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

    ReplyDelete
  11. Excellent post however , I was wanting to know if you could write a litte more on this subject?
    I'd be very thankful if you could elaborate a little
    bit further. Thanks!

    ReplyDelete
  12. It's impressive that you are getting ideas from
    this paragraph as well as from our dialogue made
    at this place.

    ReplyDelete
  13. Hi there! I know this is kinda off topic however , I'd figured I'd ask.
    Would 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!

    ReplyDelete
  14. We stumbled over here by a different web page and thought I should check
    things out. I like what I see so i am just
    following you. Look forward to going over your web
    page for a second time.

    ReplyDelete
  15. Greate pieces. Keep posting such kind of information on your site.
    Im 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.

    ReplyDelete
  16. I'm really enjoying the design and layout of your site.
    It'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!

    ReplyDelete
  17. Incredible! This blog looks exactly like my old one!
    It's on a entirely different subject but it has pretty much the same page layout and design.
    Superb choice of colors!

    ReplyDelete
  18. It's enormous that you are getting thoughts from this paragraph as well as from
    our argument made at this place.

    ReplyDelete
  19. Everything is very open with a really clear explanation of the issues.
    It was definitely informative. Your website is very useful.
    Many thanks for sharing!

    ReplyDelete
  20. I am actually glad to read this webpage posts which carries lots of helpful
    information, thanks for providing these information.

    ReplyDelete
  21. It's a shame you don't have a donate button! I'd definitely donate to this brilliant blog!
    I 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!

    ReplyDelete
  22. Hi! I could have sworn I've been to your blog before but after going
    through 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!

    ReplyDelete
  23. Amazing! This blog looks exactly like my old one!
    It's on a totally different topic but it has pretty much the same page layout and design. Outstanding choice
    of colors!

    ReplyDelete
  24. Aw, this was a very good post. Taking the time and
    actual effort to produce a superb article… but what can I say… I hesitate a
    whole lot and never manage to get anything done.

    ReplyDelete
  25. Simply desire to say your article is as amazing.
    The 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.

    ReplyDelete
  26. Hi exceptional website! Does running a blog similar to this require a lot of work?

    I 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!

    ReplyDelete
  27. Hi to every , for the reason that I am really eager
    of reading this web site's post to be updated regularly. It contains good data.

    ReplyDelete
  28. I think everything composed was actually very reasonable.
    However, 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.

    ReplyDelete
  29. That is a very good tip especially to those fresh to the blogosphere.
    Short but very accurate information… Thank you for sharing this one.
    A must read article!

    ReplyDelete
  30. Good answer back in return of this issue with firm arguments and telling all on the topic of
    that.

    ReplyDelete
  31. Heya! I'm at work browsing your blog from my new iphone
    4! Just wanted to say I love reading through your blog and look forward to all
    your posts! Keep up the great work!

    ReplyDelete
  32. Hi it's me, I am also visiting this site regularly, this web site is really good and the visitors
    are genuinely sharing pleasant thoughts.

    ReplyDelete
  33. Hello there! I know this is somewhat off topic but I was
    wondering 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.

    ReplyDelete
  34. Thanks a lot for sharing this with all people you really recognize what you're
    talking about! Bookmarked. Please also discuss with my website =).
    We will have a hyperlink trade arrangement among us

    ReplyDelete
  35. Thank you for the good writeup. It in fact was a amusement account it.
    Look advanced to far added agreeable from you! By the way, how could we communicate?

    ReplyDelete
  36. Hi! I know this is kind of off topic but I was wondering if
    you 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!

    ReplyDelete
  37. Yesterday, while I was at work, my sister stole
    my 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!

    ReplyDelete
  38. I am sure this post has touched all the internet users, its really really pleasant piece of writing on building up new weblog.

    ReplyDelete
  39. I know this site provides quality based content and extra material, is there any other
    web page which offers these kinds of stuff in quality?

    ReplyDelete
  40. Pretty section of content. I just stumbled upon your site and in accession capital to assert that I acquire in fact enjoyed
    account your blog posts. Any way I'll be subscribing to your feeds
    and even I achievement you access consistently fast.

    ReplyDelete
  41. Howdy! I know this is kind of off topic but I was wondering
    which 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.

    ReplyDelete
  42. Hey there! This is my first visit to your blog!
    We 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!

    ReplyDelete
  43. What i don't understood is if truth be told how
    you'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!

    ReplyDelete
  44. I'm not sure where you're getting your information, but good
    topic. I needs to spend some time learning more or understanding more.
    Thanks for great information I was looking for this information for my mission.

    ReplyDelete
  45. I'm not sure exactly why but this weblog
    is 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.

    ReplyDelete
  46. Hello just wanted to give you a quick heads up.

    The 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

    ReplyDelete
  47. My spouse and I stumbled over here by a different page and thought I may
    as 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.

    ReplyDelete
  48. Hi there, just became alert to your blog through Google, and found that it's really informative.
    I'm gonna watch out for brussels. I will appreciate if you
    continue this in future. Many people will be benefited from your writing.
    Cheers!

    ReplyDelete
  49. With havin so much content do you ever run into any issues
    of 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.

    ReplyDelete
  50. There's certainly a great deal to know about this issue.
    I like all the points you made.

    ReplyDelete
  51. I could not refrain from commenting. Well written!

    ReplyDelete
  52. I have been browsing online more than 3 hours these
    days, 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.

    ReplyDelete
  53. Nice post. I learn something totally new and challenging on websites I stumbleupon every day.
    It will always be helpful to read articles from other writers
    and use something from their sites.

    ReplyDelete
  54. I like it whenever people get together and share ideas.
    Great website, continue the good work!

    ReplyDelete
  55. Hurrah! After all I got a web site from where I be able to actually obtain useful
    facts concerning my study and knowledge.

    ReplyDelete
  56. Hey! Do you know if they make any plugins to safeguard against
    hackers? I'm kinda paranoid about losing everything I've worked hard on. Any recommendations?

    ReplyDelete
  57. But wanna comment that you have a very decent website, I
    enjoy the design it really stands out.

    ReplyDelete
  58. loc ban be it tuong tacIt's going to be ending of mine day, however before end I
    am reading this wonderful article to improve my
    experience.

    ReplyDelete
  59. bookmɑrked!!, I really like yoᥙr ѕite!

    ReplyDelete
  60. N᧐rmallʏ І do not read post on blogs, but I would like to say that this write-up
    very cоmpelⅼed me to try and do it! Your writing tаste
    һas ƅeen surprised me. Thanks, ѵery nice post.

    ReplyDelete
  61. loc ban be fbIncredible points. Outstanding arguments.
    Keep up the good work.

    ReplyDelete
  62. loc ban be it tuong tacThank you, I have just been searching for information about this topic for a while
    and yours is the best I have came upon till now.
    But, what about the bottom line? Are you positive in regards to the supply?

    ReplyDelete
  63. loc ban be khong tuong tacExcellent goods from you, man. I've understand your
    stuff 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.

    ReplyDelete
  64. huy ket ban fbI am really enjoying the theme/design of your weblog.
    Do 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?

    ReplyDelete
  65. loc ban be fbI'm really loving the theme/design of your blog.
    Do 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?

    ReplyDelete
  66. huy ket ban fbTouche. Sound arguments. Keep up the good spirit.

    ReplyDelete
  67. loc 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!

    ReplyDelete
  68. My coder is trying to convince me to move to .net
    from 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!

    ReplyDelete
  69. huy ket ban fbI have recently started a website,
    the info you provide on this web site has helped me greatly.

    Thank you for all of your time & work.

    ReplyDelete
  70. loc ban be it tuong tacHi there, I check your new stuff on a regular basis.
    Your story-telling style is witty, keep it up!

    ReplyDelete
  71. This is a great tip especially to those new to the
    blogosphere. Brief but very accurate information...
    Thank you for sharing this one. A must read article!

    ReplyDelete
  72. Thanks , I've just been searching for info approximately this subject for a long time and
    yours is the greatest I have came upon so far.
    But, what concerning the conclusion? Are you sure about the supply?

    ReplyDelete
  73. Everyone loves what you guys are usually up too. This kind of clever work and
    coverage! Keep up the very good works guys I've added you
    guys to my personal blogroll.

    ReplyDelete
  74. I'm really loving the theme/design of your web site.
    Do 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?

    ReplyDelete
  75. Its like you read my mind! You seem to know so much about this, like you wrote
    the 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.

    ReplyDelete
  76. Hello, i think that i saw you visited my weblog so i came to “return the favor”.I am trying to find things
    to improve my website!I suppose its ok to use a few
    of your ideas!!

    ReplyDelete
  77. loc ban be khong tuong tacHello! Do you know if they make any plugins
    to protect against hackers? I'm kinda paranoid about losing everything
    I've worked hard on. Any recommendations?

    ReplyDelete
  78. First of all I want to say wonderful blog! I had
    a 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!

    ReplyDelete
  79. Hey there would you mind letting me know which webhost you're
    using? 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!

    ReplyDelete
  80. It's nearly impossible to find experienced people for this
    subject, however, you sound like you know what you're talking about!
    Thanks

    ReplyDelete
  81. Just wanna comment that you have a very decent site, I the style and design it actually stands out.

    ReplyDelete
  82. Post writing is also a excitement, if you know then you can write if not it is difficult to write.

    ReplyDelete
  83. Good post. I learn something totally new and challenging on sites I stumbleupon every day.

    It will always be useful to read through content from other authors and practice a little something from other
    sites.

    ReplyDelete
  84. I have read some excellent stuff here. Certainly
    price bookmarking for revisiting. I surprise how a lot effort you set to
    create this kind of magnificent informative site.

    ReplyDelete
  85. Hmm it looks like your blog ate my first comment (it was super long) so I guess
    I'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.

    ReplyDelete
  86. It's very effortless to find out any topic on net as compared to textbooks, as I found this piece of writing at this
    web site.

    ReplyDelete
  87. I like it whenever people come together and share ideas.
    Great website, continue the good work!

    ReplyDelete
  88. loc ban beGreat delivery. Sound arguments. Keep up the great spirit.

    ReplyDelete
  89. Merely wanna input on few general things, The website design and style is perfect,
    the content material is rattling fantastic :D.

    ReplyDelete
  90. loc ban beThis excellent website really has all of the information I needed about this subject and didn?t
    know who to ask.

    ReplyDelete
  91. This is a great tip especially to those
    fresh to the blogosphere. Short but very accurate information...
    Many thanks for sharing this one. A must read post!

    ReplyDelete
  92. huy ket ban fbHi there, I read your blogs on a regular basis.

    Your humoristic style is witty, keep it up!

    ReplyDelete
  93. Nice post. I learn something new and challenging on sites I stumbleupon every day.

    It will always be exciting to read articles from other authors and practice something
    from other websites.

    ReplyDelete
  94. loc ban be fbI am really loving the theme/design of your weblog.
    Do 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?

    ReplyDelete
  95. Hi there, I do believe your website could possibly be having internet browser compatibility problems.
    When 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!

    ReplyDelete
  96. Simply wanna input on few general things, The website
    design is perfect, the written content is very excellent :D.

    ReplyDelete
  97. loc ban be fbGood write-up, I am normal visitor
    of one's website, maintain up the nice operate, and It's going to be a regular visitor for a lengthy time.

    ReplyDelete
  98. loc ban beAn impressive share! I've just forwarded this
    onto 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.

    ReplyDelete
  99. My partner and I absolutely love your blog and find many of
    your 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!

    ReplyDelete
  100. loc ban be khong tuong tacSpot on with this write-up, I actually believe that this website
    needs a great deal more attention. I?ll probably be back again to read through
    more, thanks for the advice!

    ReplyDelete
  101. 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.
    However, what concerning the conclusion? Are
    you positive concerning the supply?

    ReplyDelete
  102. loc ban be fbI've recently started a blog, the info
    you offer on this site has helped me greatly.
    Thanks for all of your time & work.

    ReplyDelete
  103. Very interesting points you have mentioned, thanks for putting up.

    ReplyDelete