Microsoft PowerPoint huong dan thuc hanh ADC sv CHƯƠNG 6 MODUL ADC (ANALOG TO DIGITAL CONVERTER) Bộ môn Điện tử máy tínhKhoa Công Nghệ Điện Tử TỔNG QUAN VỀ MODUL ADC Module ADC chuyển đổi tín hiệu tươ.
Trang 1CHƯƠNG 6
MODUL ADC (ANALOG TO DIGITAL
CONVERTER)
Bộ môn:Điện tử máy tínhKhoa Công Nghệ Điện Tử
Trang 2TỔNG QUAN VỀ MODUL ADC
- Module ADC chuyển đổi tín hiệu tương tự thành tín hiệu
số và có độ phân giải 10 bit
- PIC16F887 có 14 ngõ vào tương tự (AN0 – AN13)
- Có khả năng chọn lựa điện áp tham chiếu bên trong hoặc bên ngoài
- Sự kiện ngắt có thể được tạo ra sau khi quá trình chuyển đổi hoàn tất
- Module 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
Trang 3Thanh ghi điều khiển module ADC : ADCON0
5
ADCS1 ADCS0 CHS3 CHS2 CHS1 CHS0 GO/DONE ADON
ADCON0
ADCS<1:0> Các bit chọn xung clock chuyển đổi A/D
00 = Fosc/2, 01 = Fosc/8, 10 = Fosc/32,
11 = FRC (Bộ dao động bên trong)CHS<3:0> Các bit chọn kênh tương tự
GO/DONE 1 = Bộ chuyển đổi A/D đang xử lý
0 = Bộ chuyển đổi A/D đã hoàn tất quá trình chuyển đổiADON Cho phép modul ADC hoạt động
1 Các thanh ghi liên quan đến MODUL ADC
Trang 4ADFM - VCFG1 VCFG0 - - -
-ADCON1
ADFM Điều chỉnh giá trị các thanh ghi kết quả
1 = Canh phải, 0 = Canh tráiVCFG1 Điện áp tham chiếu âm (VREF–)
1 = Nguồn ngoài tại chân Vref- 0 = Vss
Thanh ghi điều khiển module ADC : ADCON1
1 Các thanh ghi liên quan đến MODUL ADC
Trang 5• Sau khi chuyển đổi, kết quả ADC được đặt vào trong hai thanh ghi kết quả: ADRESH và ADRESL
• Kết quả ADC 10 bit có thể được canh trái hoặc canh phải
5
Canh phải (Right Justified)
Canh trái (Left Justified)
Kết quả ADC 10 bit
Kết quả ADC 10 bit
Cách đọc giá trị số sau khi chuyển đổi ADC
Trang 64 Điện áp tham chiếu của ADC
Giới hạn tốt nhất cho VREF+ và VREF- khi chọn từ nguồn bên ngoài
Trang 7Công thức tính giá trị số sau khi chuyển đổi ADC
Trong đó:
DV: Giá trị số sau khi chuyển đổi
VIN: Điện áp tương tự ngõ vào
VREF(+), VREF(-): Điện áp tham chiếu
n: Số bit của ADC (n = 10)
7
Trang 85 Các bước lập trình ADC
BƯỚC 1: Cấu hình Port
• Cấu hình chân PIC là ngõ vào (TRISx)
• Cấu hình chân PIC là tương tự (ANSLH, ANSEL)
BƯỚC 2: Cấu hình modul ADC
• Chọn xung clock chuyển đổi ADC (ADCSx)
• Chọn điện áp tham chiếu (VCFGx)
• Chọn kênh vào ADC (CHSx)
• Chọn định dạng kết quả (ADFM)
• Bật modul ADC (ADON).
Trang 95 Các bước lập trình ADC
• BƯỚC 3: Cấu hình ngắt ADC (tùy chọn)
• Xóa cờ ngắt ADC (ADIF)
• Cho phép ngắt ADC (ADIE)
• Cho phép ngắt ngoại vi (PEIE)
• Cho phép ngắt toàn cục (GIE)
• BƯỚC 4: Chờ một khoảng thời gian (khoảng 6s) để
modul ADC ổn định (t ACQ )
• BƯỚC 5: Đặt bit GO/DONE để bắt đầu quá trình chuyển đổi.
9
Trang 10BƯỚC 6: Chờ quá trình chuyển đổi AD hoàn tất bằng một trong các cách sau:
• Kiểm tra bit GO/DONE (GO/DONE = 0) Polling
• Chờ ngắt ADC (nếu ngắt được cho phép) Interrupt
BƯỚC 7: Đọc kết quả ADC
BƯỚC 8: Xóa cờ ngắt ADC (bỏ qua bước này nếu ngắt
không được cho phép).
5 Các bước lập trình ADC
Trang 11Ví dụ 1: viết chương trình đọc giá trị điện áp (0 5V) từ biến trở nối với chân RA0, chuyển đổi ADC và hiển thị kết quả chuyển đổi trên 10 LED Sử dụng modul ADC, led nối với PORTD và PORTC
Trang 12Lưu đồ giải thuật
Trang 13- PIC đọc giá trị điện áp (0 5V) từ biến trở nối với chân RA0
Chân RA0 là analog input
Code: TRISA0 = 1;
ANSEL = 0B00000001 = 0X01 ANSELH = 0X00;
- Chân RA0 là chân AN0
Chọn kênh tương tự số 0 để chuyển đổi ADC
Code: CHS3= 0; CHS2 = 0; CHS1 = 0; CHS0 = 0;
Trang 14GO = 1;
while(GO);
PORTD = ADRESH;PORTC = ADRESL;}
}
Trang 15Kết quả chuyển AD:
Vin Data out (binary) Data out (decimal)
1V 0011001101 205 2V 0110011001 409 3V 1001100110 614
Hãy kiểm tra kết quả bằng cách tính trực tiếp: Với: n = 10 ; Vref+ = 5V ; Vref- = 0V
Trang 16Ví dụ 2: viết chương trình đọc giá trị điện áp (0 5V) từ biến trở nối với chân RB2, chuyển đổi ADC và hiển thị kết quả chuyển đổi trên 10 LED Sử dụng modul ADC, led nối với PORTD và PORTC
Trang 17- PIC đọc giá trị điện áp (0 5V) từ biến trở nối với chân RB2
Chân RB2 là analog input
Code: TRISB2 = 1;
ANSEL = 0X00;
ANSELH = 0B00000001 = 0X01;
- Chân RA0 là chân AN12
Chọn kênh tương tự số 0 để chuyển đổi ADC
Code: CHS3= 1; CHS2 = 0; CHS1 = 0; CHS0 = 0;
Trang 18GO = 1;
while(GO);
PORTD = ADRESH;PORTC = ADRESL;}
}
Trang 19Ví dụ 3: viết chương trình điều khiển đọc giá trị điện áp từ cảm biến nhiệt độ LM35, chuyển đổi ADC thành giá trị số nhị phân 10 bit và hiển thị giá trị nhiệt độ lên LED
Trang 20Phân tích đề bài:
LM35 đo nhiệt độ từ 0 150
Giá trị điện áp 10mV tương đương với 1
Áp dụng công thức: Với n = 10; Vref+ = 5V; Vref- = 0V
Các bước làm:
Lấy giá trị điện áp tại LM35 chuyển AD tính giá trị nhiệt độ