1. Trang chủ
  2. » Luận Văn - Báo Cáo

mạch mô phỏng chuyển đổi dữ liệu từ analog sang digital (adc) sử dụng vi điều khiển pic

9 1,2K 10

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 186 KB

Nội dung

Chuyển đổi dữ liệu tương tự Analog sang dữ liệu số Digital 2.. Chuyển đổi dữ liệu tương tự Analog sang dữ liệu số Digital : - Trong các ứng dụng đo lường và điều khiển bằng vi điều khiển

Trang 1

TRƯỜNG ĐẠI HỌC LẠC HỒNG

KHOA CƠ ĐIỆN

<=O=>

Báo cáo môn thực tập Kỹ thuật số :

Mạch mô phỏng chuyển đổi dữ liệu

từ Analog sang Digital (ADC)

sử dụng vi điều khiển PIC

GVHD : Ngô Văn Bình

Lớp 09CD111

Phùng Tấn Đức MSSV : 109000454 Phan Thanh Tuyến MSSV : 109000098

Trong báo cáo này gồm :

1 Chuyển đổi dữ liệu tương tự (Analog)

sang dữ liệu số (Digital)

2 Vi điều khiển PIC16F876A

3 Sơ đồ nguyên lý

4 Source

5 Ứng dụng ADC

Trang 2

1 Chuyển đổi dữ liệu tương tự (Analog) sang dữ liệu số (Digital) :

- Trong các ứng dụng đo lường và điều khiển bằng vi điều khiển bộ chuyển đổi tương tự - số (ADC) là một thành phần rất quan trọng

Dữ liệu trong thế giới của chúng ta chính là các dữ liệu tương tự (analog)

- Ví dụ nhiệt độ không khí buổi sáng là 25oC và buổi trưa là 32oC, giữa hai mức giá trị này có vô số các giá trị liên tục mà nhiệt độ phải

“đi qua” để có thể đạt mức 32oC từ 25oC, đại lượng nhiệt độ như thế gọi là một đại lượng analog

- Trong khi đó, rõ ràng vi điều khiển là một thiết bị số (digital), các giá trị mà một vi điều khiển có thể thao tác là các con số rời rạc vì thực chất chúng được tạo thành từ sự kết hợp của hai mức 0 và 1

- Ví dụ chúng ta muốn dùng một thanh ghi 8 bit trong vi điều khiển

để lưu lại các giá trị nhiệt độ từ 0oC đến 255oC, như chúng ta đã biết, một thanh ghi 8 bit có thể chứa tối đa 256 giá trị nguyên từ 0 đến

255, như thế các mức nhiệt độ không nguyên như 28.123oC sẽ không được ghi lại

- Nói cách khác, chúng ta đã “số hóa” (digitalize) một dữ liệu analog thành một dữ liệu digital Quá trình “số hóa” này thường được thực hiện bởi một thiết bị gọi là “bộ chuyển đổi tương tự - số hay đơn giản là ADC (Analog to Digital Converter)

Trang 3

2 Vi điều khiển PIC16F876A :

Trong mạch này sử dụng các chân chức năng như sau :

1 MCLR (Reset)

5 AN3 (Analog 3)

9, 10 (Tạo xung Clock từ thạch anh cho VĐK, hoạt động tối đa

ở 20MHz)

21 INT (Ngắt ngoài)

20 VDD (5V)

8, 19 VSS (0V)

11->18 RC0 ->RC7 (Port C)

Trang 4

3 Sơ đồ Nguyên lý :

Nguyên lý hoạt động :

- Đây là mạch tạo xung analog bằng tay đưa vào chân AN3 ở mức thấp sử dụng biến trở VR 50K và xuất ra mức cao ở Port C dạng digital Port C sẽ hiển thị giá trị digital qua 8 LED LED sáng hiển thị giá trị 1 và tắt thể hiện giá trị 0 Các giá trị này từ 0 -> 255 (00000000 -> 11111111)

- Khi nhấn nút ngắt thì chân 21 (INT) sẽ nhận điện áp âm (ngắt mức thấp) và nhảy sang chương trình ngắt ngoài nháy LED, dịch LED từ phải sang trái và ngược lại

- Khi nhấn nút reset thì chân 1 (MCLR) sẽ nhận điện áp âm (reset mức thấp) và nhảy lại chương trình ban đầu

Trang 5

4 Source :

Đây là code chương trình của mạch viết bằng ngôn ngữ C

#include <16f876a.h>

#fuses hs

#device adc=8

#use delay(clock=12000000)

int a,b;

#INT_EXT

void dich_led_nhay_led()

{

set_tris_a(0xff);

set_tris_b(0xff);

set_tris_c(0x00);

while (1)

{

{

b=0xFF;

for(a=1;a<=8;a++)

{

output_c(b);

delay_ms(300);

b=b<<1;

}

}

{

for(a=0;a<=2;a++)

{

output_c(0x00);

delay_ms(300);

output_c(0xFF);

delay_ms(300);

}

}

{

Trang 6

for(a=1;a<=8;a++)

{

output_c(b);

delay_ms(300);

b=b>>1;

}

}

for(a=0;a<=2;a++)

{

output_c(0x00);

delay_ms(300);

output_c(0xFF);

delay_ms(300);

}

output_c(0x00);

delay_ms(300);

output_c(0x0F);

delay_ms(300);

output_c(0x00);

delay_ms(300);

output_c(0xF0);

delay_ms(300);

output_c(0x00);

delay_ms(300);

output_c(0x55);

delay_ms(300);

output_c(0x00);

delay_ms(300);

output_c(0xAA);

delay_ms(300);

output_c(0x00);

delay_ms(300);

output_c(0x33);

delay_ms(300);

output_c(0x00);

delay_ms(300);

Trang 7

delay_ms(300);

output_c(0x00);

delay_ms(300);

output_c(0x7E);

delay_ms(200);

output_c(0xBD);

delay_ms(200);

output_c(0xDB);

delay_ms(200);

output_c(0xE7);

delay_ms(200);

output_c(0xDB);

delay_ms(200);

output_c(0xBD);

delay_ms(200);

output_c(0x7E);

delay_ms(200);

delay_ms(200);

output_c(0xBD);

delay_ms(200);

output_c(0xDB);

delay_ms(200);

output_c(0xE7);

delay_ms(200);

output_c(0xDB);

delay_ms(200);

output_c(0xBD);

delay_ms(200);

output_c(0x7E);

delay_ms(200);

delay_ms(200);

output_c(0xBD);

delay_ms(200);

output_c(0xDB);

delay_ms(200);

output_c(0xE7);

Trang 8

output_c(0xDB);

delay_ms(200);

output_c(0xBD);

delay_ms(200);

output_c(0x7E);

delay_ms(200);

output_c(0xFE);

delay_ms(300);

output_c(0xFD);

delay_ms(300);

output_c(0xFB);

delay_ms(300);

output_c(0xF7);

delay_ms(300);

output_c(0xEF);

delay_ms(300);

output_c(0xDF);

delay_ms(300);

output_c(0xBF);

delay_ms(300);

output_c(0x7F);

delay_ms(300);

output_c(0x7F);

delay_ms(300);

output_c(0xBF);

delay_ms(300);

output_c(0xDF);

delay_ms(300);

output_c(0xEF);

delay_ms(300);

output_c(0xF7);

delay_ms(300);

output_c(0xFB);

delay_ms(300);

output_c(0xFD);

delay_ms(300);

Trang 9

delay_ms(300);

}

}

void main()

{

set_tris_a(0xff);

set_tris_b(0xff);

set_tris_c(0x00);

ext_int_edge(h_to_l);

enable_interrupts(int_ext);

enable_interrupts(global);

setup_adc_ports(ALL_ANALOG);

setup_adc(ADC_CLOCK_INTERNAL);

set_adc_channel(3);

delay_ms(10);

while (1)

{

a=read_adc();

for(b=1;b<=8;b++)

output_c(a);

}

}

5 Ứng dụng ADC :

- Dò line trong robot

- Đo nhiệt độ

- Điều khiển động cơ

-

Ngày đăng: 23/04/2014, 23:57

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w