Tài liệu Nội dung ADC ppt

18 596 8
Tài liệu Nội dung ADC ppt

Đ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

Bài 5: ADC Nội dung  Modul ADC PIC16F877A  Ứng dụng ADC Giới thiệu  ADC (Analog to Digital Converter) chuyển đổi tín hiệu tương tự sang số  PIC16F877A có ngõ vào analog ( AN7:AN0)  Hiệu điện chuẩn lựa chọn VDD, VSS hay hiệu điện thể chuẩn xác lập hai chân RA2 RA3 Giới thiệu  Kết chuyển đổi từ tín tiệu tương tự sang tín hiệu số 10 bit số tương ứng lưu hai ghi ADRESH:ADRESL  Khi q trình chuyển đổi hồn tất , bit (ADCON0) xóa cờ ngắt ADIF set Quy trình chuyển đổi ADC Thiết lập thơng số cho chuyển đổi ADC: -Chọn ngõ vào analog, chọn điện áp mẫu (dựa thông số ghi ADCON1) bit ADFM: A/D Result Format Select bit bit ADCS2: A/D Conversion Clock Select bit Thiết lập thông số cho ADC bit 3-0 PCFG3:PCFG0: A/D Port Configuration Control bits Thiết lập thông số cho ADC -Chọn kênh chuyển đổi AD (thanh ghi ADCON0) -Chọn xung clock cho kênh chuyển đổi AD (thanh ghi ADCON0) -Cho phép chuyển đổi AD hoạt động (thanh ghi ADCON0) Bit 7,6 ADCS1:ADCS0 A/D Conversion Clock Select bit Thiết lập thông số cho ADC Bit 5-3 CHS2:CHS0 - Analog Channel Select bit Các bit dùng để chọn kênh chuyển đổi ADC 000 kênh (AN0) 001 kênh (AN1)… 111 kênh (AN7) Bit A/D Conversion Status bit (Khi ADON = 1) =1 A/D hoạt động(set bit làm khởi động ADC tự xóa q trình chuyển đổi kết thúc) =0 A/D không hoạt động Bit ADON - A/D On bit(ADON = bật A/D) Quy trình chuyển đổi ADC Thiết lập cờ ngắt cho AD( khơng bắt buộc) • Clear bit ADIF(ADC Interrupt Flag bit =0 chưa hồn thành chuyển đổi) • Set bit ADIE( ADC Interrupt Enable bit=1 cho phép ngắt ADC ) • Set bit PEIE( Peripheral Interrupt Enable bit = cho phép tất ngắt ngoại vi) • Set bit GIE(Global Interrupt Enable bit= cho phép tất ngắt) Quy trình chuyển đổi ADC Đợi khoảng thời gian cần thiết( 20us) Bắt đầu trình chuyển đổi (set bit ) Đợi q trình chuyển đổi hồn tất cách: Dị bit GO/DONE có bị xóa chưa, chờ ngắt A/D( dùng ngắt) Đọc kết chuyển đổi xóa cờ ngắt ADIF ( dùng ngắt) , set bit GO/DONE ( cần tiếp tục chuyển đổi) CCS Các lệnh CCS - #device ADC=xx với xx số bit Với PIC16F877A xx=08 xx=10 - Setup_ADC(mode) Mode là: ADC_OFF ADC_CLOCK_DIV_2 ADC_CLOCK_DIV_4 ADC_CLOCK_DIV_8 ADC_CLOCK_DIV_16 ADC_CLOCK_DIV_32 ADC_CLOCK_DIV_64 ADC_CLOCK_INTERNAL // Tắt ADC //thời gian lấy mẫu xung Clock/2 //thời gian lấy mẫu xung Clock/4 //thời gian lấy mẫu xung Clock/8 //thời gian lấy mẫu xung Clock/16 //thời gian lấy mẫu xung Clock/32 //thời gian lấy mẫu xung Clock/64 //thời gian lấy mẫu 2-6us Các hàm CCS - Setup_ADC_ports(Value) Dùng để xác định chân lấy tín hiệu analog điện chuẩn sử dụng Value là: Các hàm CCS Set_ADC_channel(channel) chọn chân để đọc vào giá trị analog lệnh Read_adc().Với PIC16F877A channel=0->7 Read_adc([mode]) Dùng đọc giá trị ADC từ ghi(cặp ghi) chứa kết biến đổi ADC Mode không bắt buộc: ADC_START_AND_READ ADC_START_ONLY ADC_READ_ONLY - adc_done( ) Nó trả TRUE thực chuyển đổi A/D, FALSE cịn bận Bài tốn Đọc giá trị ADC bit chân AN0(điều chỉnh biến trở 10k), đọc xuất dãy led portd Sơ đồ thuật tốn Chương trình Đọc giá trị ADC Hiển thị ADC lên PORTD Chương trình #include #include #fuses NOWDT,HS,PUT,NOPROTECT #device 16f877a*=16 adc=8 #use delay(clock=20000000) int8 adc; main() { trisd=0;//dau setup_adc(adc_clock_internal);//thoi gian lay mau 2-6us setup_adc_ports(an0);//AN0 nhan analog set_adc_channel(0);//chon chan de doc delay_ms(10); while(1) {adc=read_adc(); portd=adc; } } Bài toán Đo nhiệt độ sử dụng LM35 chân AN1 ... #device ADC= xx với xx số bit Với PIC16F877A xx=08 xx=10 - Setup _ADC( mode) Mode là: ADC_ OFF ADC_ CLOCK_DIV_2 ADC_ CLOCK_DIV_4 ADC_ CLOCK_DIV_8 ADC_ CLOCK_DIV_16 ADC_ CLOCK_DIV_32 ADC_ CLOCK_DIV_64 ADC_ CLOCK_INTERNAL... PIC16F877A channel=0->7 Read _adc( [mode]) Dùng đọc giá trị ADC từ ghi(cặp ghi) chứa kết biến đổi ADC Mode không bắt buộc: ADC_ START_AND_READ ADC_ START_ONLY ADC_ READ_ONLY - adc_ done( ) Nó trả TRUE thực... #device 16f877a*=16 adc= 8 #use delay(clock=20000000) int8 adc; main() { trisd=0;//dau setup _adc( adc_clock_internal);//thoi gian lay mau 2-6us setup _adc_ ports(an0);//AN0 nhan analog set _adc_ channel(0);//chon

Ngày đăng: 13/12/2013, 08:15

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan