1. Trang chủ
  2. » Công Nghệ Thông Tin

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

18 598 8

Đ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

Thông tin cơ bản

Tiêu đề Bài 5: ADC Nội dung
Thể loại Bài giảng
Định dạng
Số trang 18
Dung lượng 480 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu ADC Analog to Digital Converter là bộ chuyển đổi tín hiệu tương tự sang số.. Giới thiệu Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit số tương ứng và đư

Trang 1

Bài 5: ADC

Nội dung

 Modul ADC trong PIC16F877A

 Ứng dụng của ADC

Trang 2

Giới thiệu

 ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu tương tự sang số

 PIC16F877A có 8 ngõ vào analog ( AN7:AN0)

 Hiệu điện thế chuẩn có thể được lựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trên hai chân RA2

và RA3

Trang 3

Giới thiệu

 Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu

số là 10 bit số tương ứng và được lưu trong hai thanh ghi ADRESH:ADRESL

 Khi quá trình chuyển đổi hoàn tất , bit

(ADCON0<2>) được xóa về 0 và cờ ngắt ADIF được set

Trang 4

Quy trình chuyển đổi ADC

1 Thiết lập các thông số cho bộ chuyển đổi ADC:

-Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanh ghi ADCON1).

bit 7 ADFM: A/D Result Format Select bit bit 6 ADCS2: A/D Conversion Clock Select bit

Trang 5

1 Thiết lập các thông số cho ADC

bit 3-0 PCFG3:PCFG0: A/D Port Configuration Control bits

Trang 6

1 Thiết lập các 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 bộ chuyển đổi AD hoạt động (thanh ghi

ADCON0)

Bit 7,6 ADCS1:ADCS0 A/D Conversion Clock Select bit

Trang 7

1 Thiết lập các thông số cho ADC

Bit 5-3 CHS2:CHS0 - Analog Channel Select bit

Các bit này dùng để chọn kênh chuyển đổi ADC

000 kênh 0 (AN0)

001 kênh 1 (AN1)…

111 kênh 7 (AN7) Bit 2 A/D Conversion Status bit

(Khi ADON = 1)

=1 A/D đang hoạt động(set bit này sẽ làm khởi động ADC và tự xóa khi quá trình chuyển đổi kết thúc)

=0 A/D không hoạt động Bit 0 ADON - A/D On bit(ADON = 1 bật A/D)

Trang 8

Quy trình chuyển đổi ADC

2 Thiết lập các cờ ngắt cho bộ AD( không bắt buộc)

• Clear bit ADIF(ADC Interrupt Flag bit =0 chưa hoà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 = 1 cho phép tất cả các

ngắt ngoại vi)

• Set bit GIE(Global Interrupt Enable bit= 1 cho phép tất cả các ngắt)

Trang 9

Quy trình chuyển đổi ADC

3 Đợi 1 khoảng thời gian cần thiết( 20us).

4 Bắt đầu quá trình chuyển đổi (set bit )

5 Đợi cho tới khi quá trình chuyển đổi hoàn tất

bằng cách:

Dò bit GO/DONE có bị xóa chưa, hoặc chờ ngắt A/D( nếu dùng ngắt)

6 Đọc kết quả chuyển đổi và xóa cờ ngắt ADIF ( nếu dùng ngắt) , set bit GO/DONE ( nếu cần

tiếp tục chuyển đổi)

Trang 11

CCS

Trang 12

Các lệnh trong CCS

- #device ADC=xx

với xx là số bit Với PIC16F877A thì xx=08 hoặc xx=10

- Setup_ADC(mode)

Mode có thể là:

ADC_OFF // Tắt ADC

ADC_CLOCK_DIV_2 //thời gian lấy mẫu bằng xung Clock/2 ADC_CLOCK_DIV_4 //thời gian lấy mẫu bằng xung Clock/4 ADC_CLOCK_DIV_8 //thời gian lấy mẫu bằng xung Clock/8 ADC_CLOCK_DIV_16 //thời gian lấy mẫu bằng xung Clock/16 ADC_CLOCK_DIV_32 //thời gian lấy mẫu bằng xung Clock/32 ADC_CLOCK_DIV_64 //thời gian lấy mẫu bằng xung Clock/64 ADC_CLOCK_INTERNAL //thời gian lấy mẫu 2-6us

Trang 13

Các hàm trong CCS

- Setup_ADC_ports(Value)

Dùng để xác định chân lấy tín hiệu analog và điện thế chuẩn sử dụng Value là:

Trang 14

Các hàm trong CCS

- Set_ADC_channel(channel)

chọn chân để đọc vào giá trị analog bằng lệnh

Read_adc().Với PIC16F877A channel=0->7

- Read_adc([mode])

Dùng đọc giá trị ADC từ thanh ghi(cặp thanh ghi) chứa kết quả 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ả về TRUE nếu đã thực hiện chuyển đổi A/D, FALSE nếu vẫn còn bận

Trang 15

Bài toán

Đọc giá trị ADC 8 bit ở chân AN0(điều chỉnh bằng biến trở 10k), đọc và xuất ra dãy led ở portd

Trang 16

Sơ đồ thuật toán

Chương trình chính

Đọc giá trị ADC

Hiển thị ADC lên PORTD

Trang 17

Chương trình

#include<16f877a.h>

#include <def_877a.h>

#fuses NOWDT,HS,PUT,NOPROTECT

#device 16f877a*=16 adc=8

#use delay(clock=20000000)

int8 adc;

main()

{

trisd=0;//dau ra

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;

}

}

Trang 18

Bài toán

Đo nhiệt độ sử dụng LM35 trên chân AN1

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

HÌNH ẢNH LIÊN QUAN

Sơ đồ thuật toán - Tài liệu Nội dung ADC ppt
Sơ đồ thu ật toán (Trang 16)

TỪ KHÓA LIÊN QUAN

w