GVHD : Ngô Văn Bình Lớp : 09CD111
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
Phùng Tấn Đức Phan Thanh Tuyến
MSSV : 109000454 MSSV : 109000098
1
GVHD : Ngô Văn Bình Lớp : 09CD111
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à 25
o
2
GVHD : Ngô Văn Bình Lớp : 09CD111
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)
Phùng Tấn Đức Phan Thanh Tuyến
MSSV : 109000454 MSSV : 109000098
3
GVHD : Ngô Văn Bình Lớp : 09CD111
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.
Phùng Tấn Đức Phan Thanh Tuyến
MSSV : 109000454 MSSV : 109000098
delay_ms(300);
output_c(0xFF);
delay_ms(300);
}
}
{
Phùng Tấn Đức Phan Thanh Tuyến
MSSV : 109000454 MSSV : 109000098
5
GVHD : Ngô Văn Bình Lớp : 09CD111
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);
}
output_c(0x00);
delay_ms(300);
output_c(0x0F);
delay_ms(300);
output_c(0x00);
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);
Phùng Tấn Đức Phan Thanh Tuyến
MSSV : 109000454 MSSV : 109000098
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);
Phùng Tấn Đức Phan Thanh Tuyến
MSSV : 109000454 MSSV : 109000098
8
GVHD : Ngô Văn Bình Lớp : 09CD111
output_c(0xFE);
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)