Hướng dẫn thực hành ADC môn Kỹ Thuật Vi Xử Lý

21 32 0
Tài liệu đã được kiểm tra trùng lặp
Hướng dẫn thực hành ADC môn Kỹ Thuật Vi Xử Lý

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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ươ.

CHƯƠNG MODUL ADC (ANALOG TO DIGITAL CONVERTER) Khoa Công Nghệ Điện Tử Bộ mơn:Điện tử máy tính TỔNG QUAN VỀ MODUL ADC - Module ADC chuyển đổi tín hiệu tương tự thành tín hiệu số có độ phân giải 10 bit - PIC16F887 có 14 ngõ vào tương tự (AN0 – AN13) - Có khả chọn lựa điện áp tham chiếu bên bên - Sự kiện ngắt tạo sau q trình chuyển đổi hồn tất - Module ADC dùng cho ứng dụng giao tiếp với tín hiệu tương tự, nhận từ cảm biến 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, … Các ghi liên quan đến MODUL ADC Thanh ghi điều khiển module ADC : ADCON0 ADCON0 ADCS1 ADCS0 CHS3 BIT ADCS CHS2 CHS1 CHS0 GO/DONE ADON Chức 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 Các bit chọn kênh tương tự GO/DONE = Bộ chuyển đổi A/D xử lý = Bộ chuyển đổi A/D hồn tất q trình chuyển đổi ADON Cho phép modul ADC hoạt động Các ghi liên quan đến MODUL ADC Thanh ghi điều khiển module ADC : ADCON1 ADCON1 ADFM - VCFG1 VCFG0 BIT - - - Chức ADFM Điều chỉnh giá trị ghi kết = Canh phải, = Canh trái VCFG1 Điện áp tham chiếu âm (VREF–) = Nguồn chân Vref- = Vss Điện áp tham chiếu dương (VREF+) = Nguồn chân Vref+ = Vdd VCFG0 Ghi chú: - Chân Vref+ chân RA3; Chân Vref- chân RA2; Cách đọc giá trị số sau chuyển đổi ADC • Sau chuyển đổi, kết ADC đặt vào hai ghi kết quả: ADRESH ADRESL • Kết ADC 10 bit canh trái canh phải Canh trái (Left Justified) ADRESH MSB LSB ADRESL 0 0 0 Kết ADC 10 bit Canh phải (Right Justified) ADRESH 0 0 0 MSB ADRESL LSB Kết ADC 10 bit Điện áp tham chiếu ADC Giới hạn tốt cho VREF+ VREF- chọn từ nguồn bên ngồi Cơng thức tính giá trị số sau chuyển đổi ADC Trong đó: DV: Giá trị số sau chuyển đổi VIN: Điện áp tương tự ngõ vào VREF(+), VREF(-): Điện áp tham chiếu n: Số bit ADC (n = 10) Các bước lập trình ADC BƯỚC 1: Cấu hình Port • Cấu hình chân PIC ngõ vào (TRISx) • Cấu hình chân PIC 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 (ADFM) • Bật modul ADC (ADON) 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 tồn cục (GIE) • BƯỚC 4: Chờ khoảng thời gian (khoảng 6s) để modul ADC ổn định (tACQ) • BƯỚC 5: Đặt bit GO/DONE để bắt đầu trình chuyển đổi Các bước lập trình ADC BƯỚC 6: Chờ trình chuyển đổi AD hoàn tất cách sau: • Kiểm tra bit GO/DONE (GO/DONE = 0)  Polling • Chờ ngắt ADC (nếu ngắt cho phép)  Interrupt BƯỚC 7: Đọc kết ADC BƯỚC 8: Xóa cờ ngắt ADC (bỏ qua bước ngắt không cho phép) 10 Ví 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 hiển thị kết chuyển đổi 10 LED Sử dụng modul ADC, led nối với PORTD PORTC Lưu đồ giải thuật Giải: - PIC đọc giá trị điện áp (0  5V) từ biến trở nối với chân RA0  Chân RA0 analog input Code: TRISA0 = 1; ANSEL = 0B00000001 = 0X01 ANSELH = 0X00; - Chân RA0 chân AN0  Chọn kênh tương tự số để chuyển đổi ADC Code: CHS3= 0; CHS2 = 0; CHS1 = 0; CHS0 = 0; #include #include CONFIG (FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF & LVP_OFF); #define _XTAL_FREQ 4000000 void main(void) { ANSEL = 0x01; //ANS0 = 1; ANSELH = 0x00; TRISA0 = 1; TRISC = 0; TRISD = 0; PORTD = 0; PORTC = 0; ADCS1= 0; ADCS0 = 1; // fadc = fosc/8 VCFG1 = 0; VCFG0 = 0; // Vref+ = 5v; Vref- = 0V CHS3= 0; CHS2 = 0; CHS1 = 0; CHS0 = 0; //chon kenh AN0 ADFM = 1; //canh phai ADON = 1; //cho phep ADC ADIF = 0; // xoa co ngat GIE = PEIE = ADIE =0; //cam ngat while(1) { delay_us(6); GO = 1; while(GO); PORTD = ADRESH; PORTC = ADRESL; } } Kết 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 cách tính trực tiếp: Với: n = 10 ; Vref+ = 5V ; Vref- = 0V Ví 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 hiển thị kết chuyển đổi 10 LED Sử dụng modul ADC, led nối với PORTD PORTC Giải: - PIC đọc giá trị điện áp (0  5V) từ biến trở nối với chân RB2  Chân RB2 analog input Code: TRISB2 = 1; ANSEL = 0X00; ANSELH = 0B00000001 = 0X01; - Chân RA0 chân AN12  Chọn kênh tương tự số để chuyển đổi ADC Code: CHS3= 1; CHS2 = 0; CHS1 = 0; CHS0 = 0; #include #include CONFIG (FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_ON & CP_OFF & CPD_OFF & BOREN_OFF & IESO_OFF & FCMEN_OFF & LVP_OFF); #define _XTAL_FREQ 4000000 void main(void) { ANSEL = 0x00; ANSELH = 0x01; //AN12 TRISB2 = 1; TRISC = 0; TRISD = 0; PORTD = 0; PORTC = 0; ADCS1= 0; ADCS0 = 1; // fadc = fosc/8 VCFG1 = 0; VCFG0 = 0; // Vref+ = 5v; Vref- = 0V CHS3= 1; CHS2 = 0; CHS1 = 0; CHS0 = 0; //chon kenh AN12 ADFM = 1; //canh phai ADON = 1; //cho phep ADC ADIF = 0; // xoa co ngat GIE = PEIE = ADIE =0; //cam ngat while(1) { delay_us(6); GO = 1; while(GO); PORTD = ADRESH; PORTC = ADRESL; } } Ví 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 hiển thị giá trị nhiệt độ lên LED Phân tích đề bài: LM35 đo nhiệt độ từ  150 Giá trị điện áp 10mV tương đương với Á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 LM35  chuyển AD  tính giá trị nhiệt độ  hiển thị lên led Ta có : nhietdo = DV*500/1023 ... Bộ chuyển đổi A/D xử lý = Bộ chuyển đổi A/D hoàn tất trình chuyển đổi ADON Cho phép modul ADC hoạt động Các ghi liên quan đến MODUL ADC Thanh ghi điều khiển module ADC : ADCON1 ADCON1 ADFM - VCFG1... khoảng cách, … Các ghi liên quan đến MODUL ADC Thanh ghi điều khiển module ADC : ADCON0 ADCON0 ADCS1 ADCS0 CHS3 BIT ADCS CHS2 CHS1 CHS0 GO/DONE ADON Chức Các bit chọn xung clock chuyển đổi... 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 (ADFM) • Bật modul ADC (ADON) Các bước lập trình ADC • BƯỚC 3: Cấu hình ngắt ADC (tùy chọn)

Ngày đăng: 22/11/2022, 20:29