1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài 5: ADC pot

18 233 0

Đ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

Định dạng
Số trang 18
Dung lượng 417,31 KB

Nội dung

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

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 ư ể

• 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 ấ ả

• 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: 08/08/2014, 08:22

Xem thêm

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w