You are on page 1of 11

BÁO CÁO THỰC TẬP MẠCH SỐ ỨNG DỤNG

ĐỀ TÀI: MẠCH ĐO NHIỆT ĐỘ DÙNG CẢM BIẾN


NHIỆT LM35DZ VÀ CHIP VDK PIC16F887A HIỂN
THỊ TRÊN 2 LED 7 ĐOẠN.

I. Giới thiệu sơ lược về Chip VDK Pic16F877A:

Bộ vi điều khiển viết tắc là Micro-controller là mạch tích hợp trên một chip có
thể lập trình được,dùng để điều khiển hoạt động của hệ thống .Theo các tập
lệnh của người lập trình, bộ vi điêu khiển tiến hành đọc, lưu trữ thông tin, xử lý
thông tin, đo thời gian và tiến hành đóng mở một cơ cấu nào đó .

Trong các thiết bị điện và điện tử các bộ vi điều khiển điều khiển hoạt động của
ti vi, máy giặt, đầu đọc lase, lò vi ba, điện thoại …Trong hệ thống sản xuất tự
động, bộ vi điều khiển sử dụng trong robot, các hệ thống đo lường giám sát
.Các hệ thống càng thông minh thì vai trò của vi điều khiển ngày càng quan
trọng. Hiện nay trên thị trường có rất nhiều họ vi điều khiển như: 6811 của
Motorola, 8051 của Intel, Z8 của Zilog, PIC 16* của Microchip Technology …
Trong đề tài này chỉ trình bày một bộ vi điều khiển trong số trên (Pic 16F877A).

Hiện nay có khá nhiều dòng PIC và có rất nhiều khác biệt về phần cứng, nhưng
chúng ta có thể điểm qua một vài nét như sau :

• 8/16 bit CPU, xây dựng theo kiến trúc Harvard


• Flash và Rom có thể tuỳ chọn 256 byte đến 256 kbybe
• Các cổng xuất/nhập (mức lôgic thường từ 0v đến 5v, ứng với mức logic 0 và 1)
• 8/16 bit timer
• Các chuẩn giao tiếp ngoại vi nối tiếp đồng bộ/ không đồng bộ
• Bộ chuyển đổi ADC
• Bộ so sánh điện áp
• MSSP Pripheral dùng cho các giao tiếp I2C, SPI
• Bộ nhớ nội EEPROM - có thể ghi/ xoá lên tới hàng triệu lần
• Modul điều khiển động cơ, đọc encoder
• Hỗ trợ giao tiếp USB
• Hỗ trợ điều khiển Ethernet
• Hỗ trợ giao tiếp CAN
• Hỗ trợ giao tiếp LIN
• Hỗ trợ giao tiếp IRDA
• DSP những tính năng xử lý tín hiệu số
Sơ đồ chân của PIC 16F877A:

Các thông số về vi điều khiển PIC16F877A

CPU tốc độ cao :

• Chỉ có 35 cấu trúc lệnh


• Hầu hết các cấu trúc lệnh chỉ mất một chu kỳ máy, ngoại trừ lệnh rẻ nhánh
chương trình mất hai chu kỳ máy
• Tốc độ làm việc: xung clock đến 20MHz, tốc độ thực thi lệnh 200ns
• 8K*14 words của bộ nhớ chương trình ( flash program memory)
• 368*8 byte bộ nhớ dữ liệu RAM
• 256*8 byte bộ nhớ dữ liệu EEPROM
Đặc điểm ngoại vi:

• Timer 0: 8 bit timer/counter với 8 bít bộ chia tỉ lệ


• Timer 1: 16 bit timer/counter với bộ chia tỉ lệ có thể tăng lên trong chế độ
Sleep theo xung đồng hồ bên ngoài
• Timer2 : 8 bit timer/counter
• Hai Modul capture, compare, PWM
+ Capturre 16 bit có độ phân giải 12,5ns

+ Compare 16 bit có độ phân giải 200ns

+ PWM 16 bít có độ phân giải 10 bit.

• Cổng giao tiếp nối tiếp đồng bộ với chế độ Master và Master/ Slave.
• Bộ truyền nhận nối tiếp vạn năng.
• Cổng Slave song song 8 bit được điều khiển đọc ghi từ bên ngoài.
Đặc điểm tương tự:

• Độ phân giải 10 bit với 8 kênh chuyển đổi tương tự- số.
• Modul so sánh tương tự gồm:
+ Hai modul so sánh tương tự.

+ Modul tham chiếu điện áp trên chip(VEF) có thể lập trình được ,có thể lập
trình nhiều chức năng đầu vào từ các đầu vào và điện áp bên trong.

+ Hai đầu ra so sánh có thể sử dụng bên ngoài.

Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:

+ Bộ nhớ Flash có khả năng ghi xoá được 100.000 lần.

+ Bộ nhớ EEPROM với khả năng ghi xoá được 1.000.000 lần.
+ Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.

+ Khả năng tự nạp chương trình với sự điều khiển của phần mềm.

+ Nạp được chương trình ngay trên mạch điện ICSP (In Cicuit Serial
Programming) thông qua hai chân.

+ Watchdog timer với bộ dao động trong.

+ Chức năng bảo mật mã chương trình .

+ Chế độ SLEEP

+ Có thể hoạt động với nhiều dạng Oscillator khác nhau.


Sơ đồ khối của vi điều khiển PIC16F877A
Sơ đồ bộ nhớ dữ liệu của PIC16F877A

II. Giới thiệu về cảm biến nhiệt LM35DZ:

LM35DZ là loại cảm biến nhiệt độ được sử dụng rộng rãi trong công nghiệp,bởi
giá thành thấp và cách vận hành đơn giản.LM35DZ có mức điện áp thay đổi
trực tiếp theo độ C (10mV/*C).
Sơ đồ chân của LM35DZ:

Chân +Vs là chân cung cấp điện áp cho LM35DZ hoạt động (4—20V).

Chân Vout là chân điện áp ngõ ra của LM35DZ,được đưa vào chân Analog của
các bộ ADC.

Chân GND là chân nối mass,lưu ý cần nối mass chân này để trành làm hỏng
cảm biến cũng như làm giảm sai số trong quá trình đo.

III. Giới thiệu về Led 7 đoạn Anode chung dùng trong mạch hiển thị:

LED 7 đoạn là một công cụ thông dụng được dùng để hiển thị các thông số dưới
dạng các số từ 0 đến 9. Mặc dù công cụ LCD giúp ta thể hiện các thông số một
cách linh động hơn nhưng LED 7 đoạn vẫn được sử dụng nhiều trong công
nghiệp do các ưu thế của nó như: ít chịu ảnh hưởng của nhiệt độ, dễ tạo sự chú
. và góc nhìn rộng.

LED 7 đoạn bao gồm 7 đoạn LED được đánh dấu là các kí tự a, b, c, d, e, f, g và
một dấu chấm thập phân kí hiệu là dp. Ta có thể xem LED 7 đoạn là một tổ hợp
gồm 8 LED. 8 LEDnày có một đầu (Anode hoặc Cathode) được nối chung và
được bố trí theo mộtqui tắc nhất định dùng để hiển thị các chữ số thập phân.
a

f b
g
e
c
d
d
p
Có hai loại LED 7 đoạn, đó là loại Anode chung (cực Anode của các LED được
nối chung với nhau) và loại Cathode chung (cực Cathode của các LED được nối
chung với nhau). Tùy theo từng loại LED mà ta có các phương pháp điều khiển
các LED trong tổ hợp đó sáng tắt một cách thích hợp. Đối với loại Anode chung,
một LED sẽ được bật sang nếu mức logic đưa vao chan điều khiển đoạn LED đo
la mức logic 0. Đối với loại Cathode chung, một LED sẽ được bật sang nếu mức
logic đưa vao chan điều khiển đoạn LED đo là mức logic 1.

IV. Sơ đồ nguyên lí mạch đo nhiệt độ dùng PIC 16F877A + Sensor nhiệt


LM35DZ hiển thị trên 2 led 7 đoạn Anode chung:

V. Mã nguồn chương trình:


//++++++++++++++++++++++++++++++++++++++++++++++
+++++|
//| CHUONG TRINH HIENTHI NHIET DO TREN 2 LED 7 DOAN
//| BAO CAO THUC TAP MACH SO UNG DUNG
//| NGUYEN TIEN CHUAN-071250520207-07DT2
//| //|++++++++++++++++++++++++++++++++++++++
+++++++++++++|

// ||||||||||||---------------------- KET NOI PHAN CUNG --------------------||||||||||||||||

//+++++++++++++++++++++++++++++++++++++++++++++++
++++++
//| RB0->6 KET NOI DEN CAC CHAN A,B,C,D,E,F,G CUA 2 LED 7 DOAN ANODE
CHUNG.
//| CHAN 8(VCC) CUA 2 LED 7 D0AN DUOC DIEU KHIEN BOI 2 BJT THUAN PNP:
A1015
//| CHAN C CUA 2 BJT NOI VOI CHAN VCC CUA 2 LED 7 DOAN DE DIEU KHIEN
QUET LED
//| CHAN E CUA BJT NOI VOI NGUON
//| CHAN B (BAM DIEN TRO 10K )CUA BJT HANG CHUC VA DON VI NOI LAN LUOT
VOI CHAN RD1,RD0

//|---------------------------------------------------------------------------------------------------------+
//| SU DUNG TRINH BIEN DICH PCWH COMPLIER VER:4.018
//| SU DUNG TRINH WINPIC800 DE NAP FILE HEX LEN PIC QUA CHUAN GIAO TIEP
ICSP
//|++++++++++++++++++++++++++++++++++++++++++++++
+++++++

#include <16F877A.h> // KHAI BAO SU DUNG PIC 16F877A

#include <def_877a.h> // FILE DINH NGHIA CAC THANH GHI VA CAC BIT

#device *=16 adc=10 // KHAI BAO SU DUNG CON TRO 16 BIT VA ADC 10 BIT

// KHAI BAO CAU HINH CHO PIC 16F877A


#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP,
NOCPD, NOWRT

// KHAI BAO SU DUNG DELAY VOI TAN SO DAO DONG NGOAI


#use delay(clock=20000000)

int8 high,low; // KHAI BAO CAC BIEN SO NGUYEN 1 BYTE

// KHAI BAO BANG MA LED 7 DOAN ANODE CHUNG


int8 const a[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

// CHUONG TRINH CON TACH SO HANG CHUC VA HANG DON VI


void convert_bcd(int8 x)
{
low=x%10; // CHU SO HANG DON VI
high=x/10; // CHU SO HANG CHUC

}
// CHUONG TRINH CON HIEN THI RA 2 LED 7 DOAN
void display()
{
PORTB=a[low];
RD0=0;
delay_us(500);
RD0=1;
PORTB=a[high];
RD1=0;
delay_us(500);
RD1=1;
}

void main()
{
float value;
int16 i;
trisb = 0x00; // THIET LAP CAC CHAN PORTB LA OUTPUT
trisd = 0x00; // THIET LAP CAC CHAN PORT D LA OUTPUT
trise = 0x00; // THIET LAP CAC CHAN PORT E LA OUTPUT
trisa = 0xff; // THIET LAP CAC CHAN PORT A LA INPUT

// KHOI TAO ADC

setup_adc(ADC_CLOCK_INTERNAL); // THIET LAP THOI GIAN LAY MAU BANG


XUNG CLOCK
setup_adc_ports(AN0); // THIET LAP CHAN AN0 LA CHAN VAO ADC
set_ADC_channel(0) ;
delay_us(10); // TRE 10US

value=(float)read_adc(); // DOC GIA TRI ADC


value = value/2.048;
convert_bcd((int8)value); // GOI CHUONG TRINH CON CONVERT_BCD

i=0;
while(1)
{
i++;
value =(float) read_adc();
value = value/2.048;
if (i==2000)
{
convert_bcd((int8)value);
i=0;
}
display();
}
}

VI. Lời kết:


Vì kiến thức còn nhiều hạn chế ,nên đề tài mạch đo nhiệt độ của chúng em
không thể tránh khỏi những sai sót,cũng như chức năng của mạch còn nhiều
hạn chế.Sau 4 tuần triển khai làm việc nhóm,với sự hướng dẫn của Thầy LÊ
NGỌC QUÝ VĂN ,nhóm của chúng em đã hoàn thành mạch đúng theo mục đích
ban đầu ,với thời gian theo yêu cầu.

XIN CHÂN THÀNH CẢM ƠN THẦY !

Nhóm Sinh viên thực hiện:

 Nguyễn Tiến Chuẩn


 Trần Chút
 Lê Văn Cầu
 Nguyễn Mạnh Khởi
 Lương Bảo Phước.

You might also like