1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

THIẾT kế MẠCH ĐỒNG hồ số DÙNG PIC kết hợp đo NHIỆT độ (có code và sơ đồ mạch)

36 593 7

Đ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 36
Dung lượng 1,73 MB

Nội dung

THIẾT kế MẠCH ĐỒNG hồ số DÙNG PIC kết hợp đo NHIỆT độ (có code và sơ đồ mạch) THIẾT kế MẠCH ĐỒNG hồ số DÙNG PIC kết hợp đo NHIỆT độ (có code và sơ đồ mạch) THIẾT kế MẠCH ĐỒNG hồ số DÙNG PIC kết hợp đo NHIỆT độ (có code và sơ đồ mạch) THIẾT kế MẠCH ĐỒNG hồ số DÙNG PIC kết hợp đo NHIỆT độ (có code và sơ đồ mạch)

Trang 1

PIC KẾT HỢP ĐO NHIỆT ĐỘ

Trang 2

DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT IX

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI 1

1.1 Mục đích đề tài 1

1.2 Ứng dụng đề tài 1

1.3 Yêu cầu đề tài 1

CHƯƠNG 2 THIẾT KẾ HỆ THỐNG 2

2.1 Sơ đồ khối của mạch 2

2.2 Lưu đồ giải thuật 3

CHƯƠNG 3 GIỚI THIỆU LINH KIỆN VÀ CÁC CHUẨN GIAO TIẾP 4

3.1 Vi điều khiển PIC16F877A 4

3.2 IC thời gian thực DS1307 5

3.3 LCD 162 7

3.4 Cảm biến nhiệt độ LM35 9

3.5 Module SIM900A mini 9

3.6 Chuẩn giao tiếp I2C 10

3.7 Chuẩn giao tiếp USART 11

CHƯƠNG 4 NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH 12

4.1 Sơ đồ nguyên lý của mạch 12

4.2 Nguyên lý hoạt động của mạch 13

4.3 Sơ đồ mạch in 13

4.4 Hình ảnh mạch trong thực tế 14

4.5 Kết quả giao tiếp module SIM900A mini 14

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 15

Trang 3

PHỤ LỤC 17

DANH MỤC CÁC HÌNH VẼ

Trang 4

Hình 3-1: Kiến trúc Harvard của PIC16F877A 4

Hình 3-2: Sơ đồ chân vi điều khiển PIC16F877A 4

Hình 3-3: Sơ đồ chân IC DS1307 5

Hình 3-4: Hình ảnh thực tế IC DS1307 6

Hình 3-5: Tổ chức thanh ghi của IC DS1307 6

Hình 3-6: Sơ đồ chân của LCD 162 7

Hình 3-7: Hình ảnh thực tế và sơ đồ chân của LM35 9

Hình 3-8: Sơ đồ chân của module SIM900A mini 10

Hình 4-1: Sơ đồ nguyên lý của mạch 12

Hình 4-2: Mạch mô phỏng đồng hồ kết hợp đo nhiệt độ 12

Hình 4-3: Sơ đồ mạch in 13

Hình 4-4: Hình ảnh mạch trong thực tế 14

Hình 4-5: Kết quả nhiệt độ được gửi về điện thoại 14

Trang 5

Bảng 2: Bảng chi tiết các thanh ghi của IC DS1307 7

Bảng 3: Chức năng các chân của LCD 8

Bảng 4: Chức năng các chân của LM35 9

Bảng 5: Chức năng các chân của module SIM900A mini 10

Trang 6

ARM Advanced RISC Machine.

CPU Central Processing Unit

I2C InterIntergrated Circuit

IC Intergrated Circuit

LCD Liquid Crystal Display

LSB Least Significant Bit

MCU Multipoint Control Unit

MSB Most Significant Bit

PIC Programmable Intelligent Computer

PWM Pulse Width Modulation

RAM Random Access Memory

RTC Real–Time Clock

SIM Subscriber Identity Module

SMS Short Massage Services

Trang 7

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI

em chọn đề tài đồng hồ số kết hợp đo nhiệt độ hiển thị trên LCD và gửi kếtquả đo nhiệt độ về điện thoại qua module SIM

1.3 Yêu cầu đề tài

 Sử dụng vi điều khiển PIC16F877A để điều khiển

 Hiển thị thời gian và nhiệt độ trên LCD

 Gửi kết quả đo nhiệt độ về điện thoại qua module SIM

CHƯƠNG 2 THIẾT KẾ HỆ THỐNG1.4 Sơ đồ khối của mạch

Trang 8

Hình 2-1: Sơ đồ khối của mạch.

Chức năng từng khối:

 Khối nguồn: sử dụng nguồn một chiều 5VDC làm nhiệm cung cấp nguồncho các mạch hoạt động

 Khối điều khiển: sử dụng các nút nhấn để điều chỉnh thời gian

 Khối RTC: sử dụng IC DS1307 để ghi và đọc thời gian

 Khối vi xử lý: sử dụng PIC16F877A làm trung tâm xử lý, lấy dữ liệu từ cáckhối khác để xử lý sau đó hiển thị lên LCD 162

 Khối cảm biến: sử dụng cảm biến nhiệt độ LM35 để đo nhiệt độ môi trường

 Khối hiển thị: sử dụng LCD 162 để hiển thị thời gian và nhiệt độ

 Khối giao tiếp: sử dụng Module SIM900A mini để gửi kết quả đo nhiệt độ vềđiện thoại

Khởi tạo PIC, LCD,LM35, DS1307 và SIM

Trang 9

Hình 2-2: Lưu đồ giải thuật.

CHƯƠNG 3 GIỚI THIỆU LINH KIỆN VÀ CÁC CHUẨN GIAO TIẾP

1.6 Vi điều khiển PIC16F877A[1]

 Vi điều khiển PIC16F877A có tổ chức phần cứng theo kiến trúc Harvard

Sai

Vi xử lí

Thu thập dữ liệu từLM35 và DS1307

Module SIM gửi SMS

về điện thoại

Cập nhật và hiển thịthời gian và nhiệt độ

Kết thúc

Trang 10

Hình 3-1: Kiến trúc Harvard của vi điều khiển [1]

 Vi điều khiển PIC16F877A là vi điều khiển thuộc họ PIC16Fxxx có tập lệnh gồm 35 lệnh, độ dài 14 bit

 Vi điều khiển PIC16F877A gồm có 40 chân và có các chức năng sau:

 5 port xuất nhập (A, B, C, D, E) với tổng cộng 33 chân xuất nhập: dùng

để xuất/nhập dữ liệu

 3 bộ timer/counter: dùng để định thời hoặc đếm

 Timer 0: 8 bit

Trang 11

 Timer 1: 16 bit.

 Timer 2: 8 bit

 2 bộ input capture/output compare/PWM (CCP1 và CCP2):

 Input capture: đo tần số của một tín hiệu

 Output compare: tạo xung dao động

 PWM: điều chế độ rộng xung

 Các chuẩn giao tiếp nối tiếp của vi điều khiển PIC16F877A: USART, PSP, I2C, SPI

 ADC: bộ chuyển đổi tín hiệu giữa hai dạng tín hiệu analog và số,

PIC16F877A có 8 ngõ vào analog ( RA4:RA0, RE2:RE0)

1.7 IC thời gian thực DS1307[3]

 Có thể đếm thời gian theo định dạng 24h hoặc 12h

 Có 7 thanh ghi 8 bit chứa thời gian, 1 thanh ghi điều khiển ngõ ra phụ

và 56 thanh ghi trống có chức năng như RAM

 Được đọc và ghi bằng giao diện nối tiếp I2C

Trang 12

3 VBAT Chân kết nối với nguồn Pin 3V làm nguồn nuôi chip DS1307

5 SDA Chân vào dữ liệu của chip khi kết nối đến bus I2C

6 SCL Chân vào của xung Clock đồng bộ khi kết nối đến bus I2C

 Tổ chức các thanh ghi của IC DS1307:

Trang 13

Bảng 2: Bảng chi tiết các thanh ghi của DS1307 [5]

1.8 LCD 162[3]

Trang 14

 Chân cho phép LCD hoạt động khi có một tín hiệu vào.

 Chế độ đọc: dữ liệu được xuất ra khi có 1 xung L_to_H

 Chế độ ghi: dữ liệu được nhận vào khi có 1 xung H_to_ L

1.9 Cảm biến nhiệt độ LM35[2]

 Đơn vị đo nhiệt độ: C

 Nhiệt độ thay đổi tuyến tính: 10mV/C

Trang 15

 Dải nhiệt độ đo được của LM35 từ -55C đến 150C tùy thuộc vào điện ápngõ ra.

1 Vcc Chân nối với nguồn cung cấp có thể từ 4V đến 20V

2 Out Chân Vout cho giá trị ra thay đổi theo nhiệt độ môi trường

1.10 Module SIM900A mini[8]

 Module này sử dụng giao diện TTL, có thể được kết nối trực tiếp với MCU, ARM, mà không cần thiết bị chuyển đổi, và không sử dụng các liên kết máy tính như cổng USB, RS232, RS485 và liên kết nối tiếp khác, module sẽ bị hỏng

Trang 16

Hình 3-8: Sơ đồ chân của module SIM900A mini [6]

6 Mircophone Chận nhận âm thanh (phải gắn thêm Micro từ GND vào

chân này mới thu được tiếng)

1.11 Chuẩn giao tiếp I2C[2]

 Giao thức I2C là một giao thức gồm 2 chế độ: Master và Slave Mỗi I2C bus có

2 tín hiệu là: SCL (tín hiệu tạo xung clock) và SDA (tín hiệu dữ liệu)

 Với vi điều khiển PIC16F877A, I2C sử dụng 2 chân:

 Chân 18 (RC3/SCK/SCL): để truyền dẫn xung clock

 Chân 23 (RC4/SDI/SDA): để truyền dẫn dữ liệu

 Địa chỉ truyền đi sẽ gồm các bit địa chỉ và 1 bit R/W (đọc hoặc ghi) đối tượng cần truy xuất dữ liệu

 I2C có nhiều chế độ hoạt động, gồm:

 Master mode và Firmware Control Master mode

Trang 17

 Slave mode 7 bit địa chỉ và slave mode 7 bit địa chỉ ngắt khi phát hiện bit Start và bit Stop.

 Slave mode 10 bit địa chỉ và slave mode 10 bit địa chỉ ngắt khi phát hiện bit Start và bit Stop

 SDL và SDA luôn được kéo lên lên nguồn bằng một điện trở kéo lên, tùy vào khoảng cách truyền nhận và thường khoảng cách này là nhỏ hơn 1m nên ta chọngiá trị điện trở kéo lên là 4.7kΩ, khoảng cách càng xa thì giá trị điện trở kéo lêncàng nhỏ

1.12 Chuẩn giao tiếp USART[2]

 USART là chuẩn giao tiếp nối tiếp, thường là một tích hợp được sử dụng trong việc truyền dẫn dữ liệu Để bắt đầu cho việc truyền dữ liệu bằng USART, một Start bit được gửi đi, sau đó là các bit dữ liệu và kết thúc quá trình truyền là Stop bit

 Các thông số cơ bản trong truyền nhận USART:

 Baund rate: khoảng thời gian dành cho 1 bit truyền

 Frame: khung truyền quy định về số bit trong mỗi lần truyền

 Start bit: là bit đầu tiên được truyền trong 1 Frame

 Data: dữ liệu cần truyền Bit LSB được truyền trước sau đó đến bit MSB

 Parity bit: kiểm tra dữ liệu truyền có đúng không

 Stop bit: là 1 hoặc các bit báo cho thiết bị rằng các bit đã được gửi xong

CHƯƠNG 4 NGUYÊN LÝ HOẠT ĐỘNG CỦA MẠCH

1.13 Sơ đồ nguyên lý của mạch

Trang 18

Hình 4-1 Sơ đồ nguyên lý của mạch.

Hình 4-2: Mạch mô phỏng đồng hồ kết hợp đo nhiệt độ.

1.14 Nguyên lý hoạt động của mạch

 Mạch sử dụng vi xử lý PIC16F877A làm trung tâm xử lý Khi cấp nguồn5VDC vào mạch các linh kiện sẽ được khởi tạo, sau đó vi xử lí PIC sẽ đọcthời gian từ IC DS1307 và cảm biến nhiệt độ LM35 sẽ đo nhiệt độ môi

Trang 19

trường, vi xử lý sẽ đọc nhiệt độ qua bộ ADC sau đó sẽ hiển thị ra màn hìnhLCD 162

 Đồng thời khi vi xử lý PIC và các linh kiện được khởi tạo module SIM sẽ gởimột SMS về điện thoại với nội dụng “Xin Chao!” để xác nhận module SIM

đã kết nối với điện thoại Nếu muốn kiểm tra nhiệt độ ta phải gửi một SMSvới nội dung “KT” đến module SIM sau đó module SIM sẽ trả về điện thoạikết quả nhiệt độ Nếu gửi SMS với nội dung khác nội dung “KT” moduleSIM sẽ không trả về kết quả nhiệt độ mà sẽ nhận được một SMS với nộidung “SAI CU PHAP”

 Để điều chỉnh thời gian:

 Nhấn nút K1 để chọn vị trí (giờ, phút, giây) cần chỉnh thời gian

 Nhấn nút K2 để tăng giá trị thời gian

 Nhấn nút K3 để giảm giá trị thời gian

 Nhấn nút K4 để trở về màn hình LCD hiển thị thời gian đã chỉnh.1.15 Sơ đồ mạch in

Hình 4-3: Sơ đồ mạch in.

1.16 Hình ảnh mạch trong thực tế

Trang 20

Hình 4-4: Hình ảnh mạch trong thực tế.

1.17 Kết quả giao tiếp module SIM900A mini

Hình 4-5: Kết quả nhiệt độ gửi về điện thoại.

CHƯƠNG 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN.

Trang 21

1.18 Kết luận.

Mạch hiển thị được giờ, phút, giây đúng thời gian thực theo định dang hh:mm:ss ởchế độ 24h Mạch đã đo và hiển thị được nhiệt độ môi trường và gửi đúng kết quảnhiệt độ về điện thoại khi có yêu câu kiểm tra

 Mạch nhỏ gọn có cấu tạo đơn giản

 Mạch dễ dàng sử dụng có thể điều chỉnh thời gian theo ý muốn

 Thời gian và nhiệt độ trên LCD nên dễ dàng quan sát

 Có thể kiểm tra nhiệt độ khi có nhu cầu

 Cảm biến nhiệt độ dễ bị ảnh hưởng bởi nhiễu

 Gia công còn chưa chắn chắc nên dễ hỏng

1.19 Ứng dụng và hướng phát triển

 Có thể làm đồng hồ treo tường cho các gia đình

 Thiết bị giám sát nhiệt độ trong môi trường

 Có thể tích hợp thêm nhiều chức năng ngoài chức năng đo nhiệt độvào mạch đồng hồ như đo bước chân, đo nhịp tim, đo độ ẩm,… ngoài

ra có thể hiển thị thêm ngày tháng năm vào đồng hồ

 Ngoài giao tiếp module SIM có thể sử dụng các giao tiếp khác để gửikết qua đo nhiệt độ về điện thoại như WiFi, Bluetooth,… Với các tínhnăng như trên, có thể tạo ra một chiếc đồng hồ thông minh nhỏ gọn cóthể đeo tay giúp ta quan sát thời gian và thâm chí là sức khỏe

TÀI LIỆU THAM KHẢOTiếng Việt:

[1] Giáo trình vi điều khiển PIC16F877A

[2] codientu.org

[3] hshop.vn

Trang 23

#use i2c(master,fast,sda = pin_c4,scl = pin_c3)

#include <lcd_lib_4bit.c> // file giao tiep LCD

Trang 24

void convert_bcd_lcd(int8 g,int8 p, int8 h, int8 th);

void convert_so_lcd(int8 x);

void ReadRTC(unsigned char * buff);

void WriteRTC(unsigned char * buff);

if(ch==10 && index ==0) is=1; //bat dau cho phep nhan chuoi

if(ch==10 && index>0) {idex=index; ngat=1; isti = 2; } //KHI KET THUC MOT CHUOI

if(ch!=10 && ch!=13 && is == 1) { str[index] = ch; index++; }

}

if(isti==2) //cho phep nhan khi da khoi tao thanh cong

{

if(ch==10 && index1 ==0) is=1; //bat dau cho phep nhan chuoi

if(ch==10 && index1>0) {idex1=index1; ngat=2; isti = 0; } //KHI KET THUC MOT CHUOI

if(ch!=10 && ch!=13 && is == 1) { str1[index1] = ch; index1++; }

}

}

/*==========================================*/

void send_sms()

Trang 26

{

LCD_putcmd(0x80);

Printf(LCD_putchar,"Time: ");

Trang 27

//printf(LCD_putchar," ");

LCD_putchar(c_h + 0x30); LCD_putchar(dv_h + 0x30);printf(LCD_putchar,":"); LCD_putchar(c_p + 0x30); LCD_putchar(dv_p + 0x30);printf(LCD_putchar,":"); LCD_putchar(c_g + 0x30); LCD_putchar(dv_g + 0x30);

Trang 28

trisd = 0x00;

trise = 0x00;

c_g=0,dv_g=1,c_p=2,dv_p=3,c_h=4,dv_h=5,thu=6,c_d=7,dv_d=8,c_t=9,dv_t=0, c_n=1,dv_n=2;

setup_adc_ports(AN0);//chon kenh ADC

puts("AT+IPR=9600"); putc(13); delay_ms(500);

puts("ATE1"); putc(13); delay_ms(500);

puts("AT+CMGF=1"); putc(13); delay_ms(500);

puts("AT+CMGD=1,4"); putc(13); delay_ms(500);

break;

}

}

Trang 29

isti = 0; delay_ms(500);

strcpy(str3,"Xin Chao!"); send_sms();

idex = 0; index = 0; ngat = 0; is = 0; isti = 1;

while(true)

{

ReadRTC(&RTC_ARR[0]);

convert_bcd_lcd(RTC_ARR[0],RTC_ARR[1],RTC_ARR[2],RTC_ARR[3]); hienthi();

Trang 30

puts("AT+CMGD=1"); putc(13); delay_ms(500);

puts("AT+CMGD=1"); putc(13); delay_ms(500);

Trang 31

c_g=(g&240)>>4; //chia lay phan du, so hang don vi

dv_g=g&15; //tach hang tram va hang chuc

c_p=(p%240)>>4; //chia lay phan du, so hang don vi

dv_p=p&15; //tach hang tram va hang chuc

c_h=(h&240)>>4; //chia lay phan du, so hang don vi

dv_h=h&15; //tach hang tram va hang chuc

thu = th;

}

void convert_so_lcd(int8 x)

{

low=x%10; //chia lay phan du, so hang don vi

high=x/10; //tach hang tram va hang chuc

low = low + 0x30;

high = high + 0x30;

Trang 32

case 2:

{ t = c_p*10+dv_p; if(t<59) t++; else t = 0; c_p = t/10; dv_p = t%10; break;}

case 3:

{ t = c_g*10+dv_g; if(t<59) t++; else t = 0; c_g = t/10; dv_g = t%10; break;}

case 4:

{ t = thu; if(t<7) t++; else t = 1; thu = t;

Trang 33

break;}

case 5:

{ t = c_d*10+dv_d; if(t<31) t++; else t = 1; c_d = t/10; dv_d = t%10; break;}

case 6:

{ t = c_t*10+dv_t; if(t<12) t++; else t = 1; c_t = t/10; dv_t = t%10; break;}

case 7:

{ t = c_n*10+dv_n; if(t<99) t++; else t = 0; c_n = t/10; dv_n = t%10; break;}

case 2:

{ t = c_p*10+dv_p; if(t>0) t ; else t = 59; c_p = t/10; dv_p = t%10; break;}

case 3:

{ t = c_g*10+dv_g; if(t>0) t ; else t = 59; c_g = t/10; dv_g = t%10; break;}

case 4:

Trang 34

{ t = thu; if(t>1) t ; else t = 7; thu = t;

break;}

case 5:

{ t = c_d*10+dv_d; if(t>1) t ; else t = 31; c_d = t/10; dv_d = t%10; break;}

case 6:

{ t = c_t*10+dv_t; if(t>1) t ; else t = 12; c_t = t/10; dv_t = t%10; break;}

case 7:

{ t = c_n*10+dv_n; if(t>0) t ; else t = 99; c_n = t/10; dv_n = t%10; break;}

}

}

if(k1==0) { while(k1==0){} mode++; if(mode>4) break;}

if(k4==0) { while(k4==0){} break;}

Trang 35

RTC_ARR[6] = (c_n<<4) | dv_n; // year = 10 WriteRTC(&RTC_ARR[0]); // Set RTC

Trang 36

// -void WriteRTC(unsigned char *buff)

Ngày đăng: 21/01/2018, 22:07

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w