Trích:
Nguyên văn bởi anh_gioi
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,