CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN11.1.GIỚI THIỆU ĐỀ TÀI11.2.MỤC ĐÍCH NGHIÊN CỨU11.3.ĐỐI TƯỢNG NGHIÊN CỨU11.4.PHẠM VI NGHIÊN CỨU11.5.DỰ KIẾN KẾT QUẢ2CHƯƠNG 2: CƠ SỞ LÝ THUYẾT32.1. ADC LÀ GÌ?32.2. ĐỘ PHÂN GIẢI3CHƯƠNG 3: GIẢI THUẬT43.1. LƯU ĐỒ GIẢI THUẬT43.1.1.Khối nguồn.43.1.2.Khối cảm biết nhiệt độ.43.1.3.Khối trung tâm điều khiển.63.1.4.LED ma trận.83.2. SƠ ĐỒ ĐẤU NỐI DÂY9CHƯƠNG 4. GIẢI THUẬT VÀ ĐIỀU KHIỂN104.1.HOẠT ĐỘNG CỦA HỆ THỐNG.104.2.LƯU ĐỒ GIẢI THUẬT TRÊN VI ĐIỀU KHIỂN.10CHƯƠNG 5. KẾT LUẬN115.1. ƯU ĐIỂM.115.2. NHƯỢC ĐIỂM.115.3. HƯỚNG PHÁT TRIỂN11TÀI LIỆU THAM KHẢO12PHỤ LỤC : CODE CCS13
Trang 1MẠCH ĐO NHIỆT ĐỘ HIỂN THỊ LED
MA TRẬN SỬ DỤNG VI ĐIỀU KHIỂN
PIC CODE PHẦN CUỐI TRANG
Trang 2CÁC TỪ VIẾT TẮT
LED Light Emitting Diode
Trang 3Mục Lục
Trang 4Hình 3.1.5 LED ma trận và sơ đồ đấu chân LED
Hình 3.2 Sơ đồ đấu nối dây
Hình 4.2 lưu đồ giải thuật của vi điều khiển
Trang 5CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN
1.1 Giới thiệu đề tài
- PIC là một họ vi điều khiển RISC được sản xuất bởi công ty MicrochipTechnology
- Trong đề tày này, tập trung vào việc đọc giá trị từ cảm biến nhiệt độ bằng
vi điều khiển PIC 16f877a
- Sau khi giá trị ADC được tính toán thì giá trị nhiệt độ được hiển thị trênLED ma trận 8x8
1.2 Mục đích nghiên cứu
- Sử dụng kiến thức môn kĩ thuật vi điều khiển đã học nhằm tạo ra sản phẩm
- Hoạt động của LED ma trận 8x8
1.3 Đối tượng nghiên cứu
- Phần mềm: PIC-C Compiler,Proteus 8 Professional
Trang 61.5 Dự kiến kết quả
Chương trình có thể xữ lý giá trị ADC từ cảm biến LM35 và hiển thị giá trị
đó lên LED ma trận
Trang 7CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 ADC là gì?
ADC là một cụm từ viết tắt của (Analog to Digital Converter), là bộ chuyểnđổi tín hiệu tương tự analog (nhiệt độ, độ ẩm, âm thanh, ) sang tín hiệu số digital.Trong đề tài này ADC được dùng để chuyển tối tín hiệu là nhiệt độ sang điện ápdùng cảm biến LM35
2.2 Độ phân giải
Step size của PIC 16f877A là:
SS = = 4,887 mV
Thông số 210 là do sử dụng ADC 10 bit
Độ phân giải của LM35 là 10mV trên 1 đơn vị nhiệt độ đo
Tỉ lệ chênh lệch giữa LM35 và PIC16f877A là
= 2.046
Để có được kết quả nhiệt độ chính xác ta lấy kết quả chuyển đổi ADC chia cho tỉ lệ chênh lệch
Trang 8CHƯƠNG 3: GIẢI THUẬT
3.1 Lưu đồ giải thuật
Hình 3.1 Lưu đồ giải thuật của hệ thống.
3.1.1 Khối nguồn.
Chức năng: Cung cấp nguồn điện cho toàn bộ hệ thống hoạt động: LM35,PIC16F877a, 74HC595, LED matrix
3.1.2 Khối cảm biết nhiệt độ.
Chức năng: Đo nhiệt độ
Khối nguồn
Khối cảm biếnnhiệt độ
Khối trung tâmđiều khiển
Hiển thị lên LCD
Ma trận
Trang 9Thông số kỹ thuật linh kiện chính:
+ LM35:
Hình 3.1.2 Cảm biến nhiệt độ LM35
-Dãi điện áp hoạt động: 4~20VDC
-Công suất tiêu thụ: khoảng 60uA
-Khoảng nhiệt độ đo được: -55°C đến 150°C
Trang 10-Điện áp tuyến tính theo nhiệt độ: 10mV/°C
-Sai số: 0.25°C
3.1.3 Khối trung tâm điều khiển.
Chức năng: thu nhận tín hiệu đầu vào từ cảm biến nhiệt độ và xử lí thông tin sau đóđưa giá trị nhiệt độ để hiện thị lên LED ma trận
Linh kiện: Pic 16f877A, nút nhấn, điện trở 10kΩ
Thông số kỹ thuật linh kiện chính:
+Pic 16f877A:
Hình 3.1.3 vi điều khiển PIC 16f877a
Dãi điện áp hoạt động từ 2V – 5.5V
Số chân gồm: 40 chân
Trang 123.1.4 LED ma trận.
Hình 3.1.5 LED ma trận và sơ đồ đấu chân LED
Trang 13Hình 3.2 Sơ đồ đấu nối dây
Trang 14Chương 4 Giải thuật và điều khiển
4.1 Hoạt động của hệ thống.
Cảm biến nhiệt độ LM35 sẽ đo được nhiệt độ sau đó truyền thông tin về bộ xử lý
Bộ xử lý có nhiệm vụ tính toán và đưa tín hiệu đầu ra hiển thị nhiệt độ lên LED matrận
4.2 Lưu đồ giải thuật trên vi điều khiển.
Hình 4.2 lưu đồ giải thuật của vi điều khiển
Trang 155.1 Ưu điểm.
-Linh kiện dễ dàng tìm kiếm mua, giá rẻ
-Hoạt động tương đối tốt
-Dễ dàng tiếp cận và thực hiện
5.2 Nhược Điểm.
-Độ chính xác không cao
5.3 Hướng phát triển
Trang 16TÀI LIỆU THAM KHẢO
Trang 17unsigned int8 x,y;
const unsigned char chuc[]=
{
0x00,0x00,0x41,0xFF,0xFF,0x01,0x00,0x00, //10x00,0x43,0xC7,0x8D,0x99,0xF1,0x61,0x00, //20x00,0x42,0xC3,0x91,0x91,0xFF,0x6E,0x00, //30x00,0x0C,0x14,0x24,0x7F,0xFF,0x04,0x00, //40x00,0x02,0xF3,0xF1,0x91,0x9F,0x8E,0x00, //50x00,0x7E,0xFF,0x91,0x91,0x9F,0x0E,0x00, //60x00,0x80,0x80,0x87,0xBF,0xF8,0xC0,0x00, //70x00,0x6E,0xFF,0x91,0x91,0xFF,0x6E,0x00, //8
Trang 180x00,0x70,0xF9,0x89,0x89,0xFF,0x7E,0x00 //9};
const unsigned char dv[]={
0x00,0x7E,0xFF,0x81,0x81,0xFF,0x7E,0x00,//00x00,0x00,0x41,0xFF,0xFF,0x01,0x00,0x00, //10x00,0x43,0xC7,0x8D,0x99,0xF1,0x61,0x00, //20x00,0x42,0xC3,0x91,0x91,0xFF,0x6E,0x00, //30x00,0x0C,0x14,0x24,0x7F,0xFF,0x04,0x00, //40x00,0x02,0xF3,0xF1,0x91,0x9F,0x8E,0x00, //50x00,0x7E,0xFF,0x91,0x91,0x9F,0x0E,0x00, //60x00,0x80,0x80,0x87,0xBF,0xF8,0xC0,0x00, //70x00,0x6E,0xFF,0x91,0x91,0xFF,0x6E,0x00, //80x00,0x70,0xF9,0x89,0x89,0xFF,0x7E,0x00 //9};
Trang 20xuly();
while(true)
{
for(delay=0;delay<20;delay++) {