PDA

View Full Version : hỏi về ADC


anh_gioi
03-02-2008, 05:21 PM
mọi người cho hỏi về ADC với???
tớ thấy trên diễn đàn nói nhiều về ADC cho con 16F877A.nhưng chưa thấy 2 lập trình cho cả 2 chân ADC chạy cùng 1 lúc nhỉ.như tớ muốn điều khiển đồng thời ADC chân AN0 -->>portb,AN1 -->> portd.
liệu như vậy có dược ko nhỉ?
nếu được thì phải lập trình như thế nào nhỉ?
rất cám ơn mọi người.
chúc mừng năm mới...

namqn
03-02-2008, 05:53 PM
mọi người cho hỏi về ADC với???
tớ thấy trên diễn đàn nói nhiều về ADC cho con 16F877A.nhưng chưa thấy 2 lập trình cho cả 2 chân ADC chạy cùng 1 lúc nhỉ.như tớ muốn điều khiển đồng thời ADC chân AN0 -->>portb,AN1 -->> portd.
liệu như vậy có dược ko nhỉ?
nếu được thì phải lập trình như thế nào nhỉ?
rất cám ơn mọi người.
chúc mừng năm mới...
Đơn giản thôi, bạn có thể dùng hết 8 ngõ vào ADC cũng được, tất nhiên là tốc độ chuyển đổi của riêng mỗi kênh đều bị giảm xuống, vì chỉ có 1 bộ chuyển đổi trong PIC. Các bước cần làm để dùng nhiều ngõ vào ADC (giả thiết bạn dùng ngắt).

1. Cấu hình module ADC: các chân analog, điện áp tham chiếu, xung clock cho bộ chuyển đổi, chọn kênh ngõ vào, bật module ADC

2. Cấu hình ngắt A/D: xóa về '0' bit ADIF, bật lên '1' các bit ADIE, PEIE, GIE

3. Chờ đủ thời gian thu thập

4. Bắt đầu chuyển đổi: bật lên '1' bit GO/DONE của ADCON0

5. Chờ cho việc chuyển đổi hoàn tất bằng cách chờ ngắt A/D

6. Khi có kết quả (có ngắt A/D), đọc kết quả chuyển đổi A/D, xóa về '0' cờ ngắt ADIF

7. Chọn kênh ngõ vào tiếp theo, quay lại bước 3

Quá trình cứ như thế diễn ra, và bạn sẽ có thể lần lượt chuyển đổi những kênh ngõ vào mà bạn quan tâm. Nếu dùng cùng lúc 2 kênh ngõ vào (AN0 và AN1 như trường hợp của bạn), tốc độ chuyển đổi chung sẽ giảm còn một nửa tốc độ chuyển đổi khi chỉ dùng 1 kênh ngõ vào (nếu với 1 kênh ngõ vào bạn có thể thực hiện 30000 chuyển đổi/giây thì với 2 kênh ngõ vào bạn cũng chỉ có thể thực hiện tổng cộng 30000 chuyển đổi/giây, nghĩa là 15000 chuyển đổi/giây cho mỗi kênh ngõ vào).

Thân,

pucapuca123
13-07-2011, 12:27 AM
Đơn giản thôi, bạn có thể dùng hết 8 ngõ vào ADC cũng được, tất nhiên là tốc độ chuyển đổi của riêng mỗi kênh đều bị giảm xuống, vì chỉ có 1 bộ chuyển đổi trong PIC. Các bước cần làm để dùng nhiều ngõ vào ADC (giả thiết bạn dùng ngắt).

1. Cấu hình module ADC: các chân analog, điện áp tham chiếu, xung clock cho bộ chuyển đổi, chọn kênh ngõ vào, bật module ADC

2. Cấu hình ngắt A/D: xóa về '0' bit ADIF, bật lên '1' các bit ADIE, PEIE, GIE

3. Chờ đủ thời gian thu thập

4. Bắt đầu chuyển đổi: bật lên '1' bit GO/DONE của ADCON0

5. Chờ cho việc chuyển đổi hoàn tất bằng cách chờ ngắt A/D

6. Khi có kết quả (có ngắt A/D), đọc kết quả chuyển đổi A/D, xóa về '0' cờ ngắt ADIF

7. Chọn kênh ngõ vào tiếp theo, quay lại bước 3

Quá trình cứ như thế diễn ra, và bạn sẽ có thể lần lượt chuyển đổi những kênh ngõ vào mà bạn quan tâm. Nếu dùng cùng lúc 2 kênh ngõ vào (AN0 và AN1 như trường hợp của bạn), tốc độ chuyển đổi chung sẽ giảm còn một nửa tốc độ chuyển đổi khi chỉ dùng 1 kênh ngõ vào (nếu với 1 kênh ngõ vào bạn có thể thực hiện 30000 chuyển đổi/giây thì với 2 kênh ngõ vào bạn cũng chỉ có thể thực hiện tổng cộng 30000 chuyển đổi/giây, nghĩa là 15000 chuyển đổi/giây cho mỗi kênh ngõ vào).

Thân,

mình đọc mà ko hiểu lém
bác nào viết bằng hitech PIC thì làm VD code nhỏ cho em hiểu được ko?
cách khởi tạo như thế nào?và cách quét các cổng như thế nào?
vì có 4bits CHS0>>CHS3 để chọn các cổng adc.
vậy quét thế nào cho hết 4bits này?
cám ơn!