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

Thiết kế mạch đồng hồ và đo nhiệt độ

36 723 0

Đ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,54 MB

Nội dung

Thiết kế mạch đồng hồ và đo nhiệt độ

Trang 1

====o0o====

BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ

ĐỀ TÀI:

THIẾT KẾ MẠCH ĐỒNG HỒ

VÀ ĐO NHIỆT ĐỘ

Nhóm: 03 – TC406 – kỳ 20142 GVHD: PGS.TS PHẠM NGỌC NAM

Trang 2

Hà Nội, 6/2015

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ VIỄN THÔNG

====o0o====

BÁO CÁO BÀI TẬP LỚN VI XỬ LÝ

ĐỀ TÀI:

THIẾT KẾ MẠCH ĐỒNG HỒ

VÀ ĐO NHIỆT ĐỘ

Nhóm: 03 – TC406 – kỳ 20142 GVHD: PGS.TS PHẠM NGỌC NAM

Trang 3

Hà Nội, 6/2015 NHÓM 03 – TC406

Thành viên (#1 là trưởng nhóm):

Nhận xét (phần GVHD ghi):

Trang 4

MỤC LỤC

MỤC LỤC 4

DANH MỤC HÌNH VẼ 5

LỜI NÓI ĐẦU 6

CHƯƠNG 1: MÔ TẢ ĐỀ TÀI 7

1.1 Yêu cầu chức năng 7

1.2 Yêu cầu phi chức năng 7

1.3 Sơ đồ khối hệ thống 7

1.4 Kế hoạch thực hiện và phân chia công việc 8

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

Chương2 9

2.1 Khối nguồn 9

2.2 Khối điều khiển 9

2.3 Khối Setup 12

2.4 Khối đo nhiệt độ 13

2.5 Khối thời gian thực 14

2.6 Khối hiển thị 15

2.7 Khối báo thức 17

2.8 Hoàn thiện sản phẩm 19

2.9 Sơ đồ nguyên lý toàn mạch 20

2.10 Sơ đồ Layout mạch 21

2.11 Hình ảnh thật sản phẩm 22

CHƯƠNG 3: KẾT LUẬN 23

TÀI LIỆU THAM KHẢO 24

PHỤ LỤC A: ĐÓNG GÓP CÁC THÀNH VIÊN 25

PHỤ LỤC B: SOFTWARE CODE 26

Trang 5

DANH MỤC HÌNH VẼ

Hình 1.1 Sơ đồ khối hệ thống 7

Hình 1.2 Phân công nhiệm vụ 8

Hình 2.1 Sơ đồ nguyên lý jack DC 9

Hình 2.2 Sơ đồ chân PIC 16F887 Error! Bookmark not defined.0 Hình 2.3 Sơ đồ nguyên lý khối điều khiển 101

Hình 2.4 Sơ đồ nguyên lý thạch anh ngoài và nút reset 111

Hình 2.5 Sơ đồ nguyên jump nạp code 122

Hình 2.6 Sơ đồ nguyên lý khối cài đặt 122

Hình 2.7 IC LM35 133

Hình 2.8 Sơ đồ nguyên lý khối đo nhiệt độ 144

Hình 2.9 Sơ đồ chân ic DS1307 144

Hình 2.10 Sơ đồ nguyên lý khối thời gian thực 145

Hình 2.11 LED ma trận 8x8 15

Hình 2.12 Sơ dồ chân ic 74HC595 16

Hình 2.13 Sơ đồ nguyên lý khối hiển thị 17

Hình 2.14 Sơ đồ nguyên lý jump mở rộng 18

Hình 2.15 Còi báo thức 5v 18

Hình 2.16 Sơ đồ nguyên khối báo thức 18

Hình 2.17 Sơ đồ nguyên lý toàn mạch 200

Hình 2.18 Sơ đồ layout toàn hệ thống 211

Hình 2.19 Hình ảnh mạch thật 222

Trang 6

LỜI NÓI ĐẦU

Ngày nay, những ứng dụng của vi điều khiển đã đi sâu vào đời sống sinh hoạt và sản xuất của con người, là một phần tất yếu không thể thiếu trong đời sống hiện đại Thế kỷ 21 được xem là thế kỷ của khoa học công nghệ, là thế kỷ mà máy móc được thiết kế và lập trình một cách tự động để thay thế hoạt động của conngười trong sản xuất, cũng như để phục vụ các công việc trong sinh hoạt Trong cuộc sống mang tính tự động hóa cao thì các vi xử lý như là một công cụ đắc lực hỗ trợ cho con người thực hiện nhu cầu ngày càng cao và càng hoàn thiện của mình

Đang là sinh viên ngồi trên ghế nhà trường, cơ hội tiếp cận, học tập những công nghệ tiên tiến, hiện đại chưa nhiều, nên trong quá trình tự học và nghiên cứu, chúng em đã cố gắng tìm hiểu về bộ vi xử lý, cũng như các ứng dụng của nó, đặc biệt là vi xử lý PIC16F877 Với những gì nghiên cứu được nhóm chúng em đã làm thực hành ứng dụng thông qua việc thiết kế đồng hồ đa năng có thể hiện thị nhiệt

độ Đây là cơ hội rất lớn cho chúng em trau dồi kiến thức thực tế, áp dụng lý thuyết

đã học và rèn luyện bản thân trong môi trường làm việc nhóm

Do thời gian thực hiện và kiến thức còn hạn chế nên còn nhiều sai sót trong quá trình thực hiện đề tài, rất mong được sự bổ sung đóng góp của các thầy cô và các bạn

Chúng em xin chân trọng cảm ơn thầy TS Phạm Ngọc Nam và anh Hoà đã nhiệt tình hướng dẫn chúng em suốt quá trình học tập

Trang 7

CHƯƠNG 1: MÔ TẢ ĐỀ TÀI

1.1 Yêu cầu chức năng

 Đồng hồ

o Hiển thị ngày, giờ theo chế độ 12h và 24h trên LED ma trận

o Chỉnh ngày, giờ của mạch

o Hẹn giờ báo thức

 Nhiệt độ: hiện thị nhiệt độ hiện tại của phòng

1.2 Yêu cầu phi chức năng

Khối cài đặt

Khối nhiệt độ

Khối hiển thị

Khối Nguồn

Khối báo thức

Trang 8

1.4 Kế hoạch thực hiện và phân chia công việc

Hình 1.2 Phân công nhiệm vụ

Trang 9

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

2.1 Khối nguồn

Khối nguồn sẽ sử dụng để cấp nguồn cho vi điều khiển (trong project này là PIC) và các module (nếu cần) Vì thế nên khối nguồn sẽ phải đưa ra được nguồn 5v cho vi điều khiển, đồng thời dùng 1 pin 3V để nuôi khối thời gian thực Để làm được điều này ta có thể sử dụng adapter 5V Giải pháp này có ưu điểm: dễ kết nối,

dễ mua và nhỏ gọn

Hình 2.1 Sơ đồ nguyên lý jack DC

2.2 Khối điều khiển

Theo yêu cầu của project, ta sử dụng PIC Trong dự án này, nhóm chúng tôi

sử dụng PIC 16F877

PIC16F877 có các đặc điểm :

- PIC 16F877 là loại vi điều khiển 8bit tầm trung của hãng microchip

- PIC 16F877 có kiến trúc Havard, sử dụng tập lệnh kiểu RISC (Reduced Instruction Set Computer) với chỉ 35 lệnh cơ bản

- Tất cả các lệnh được thực hiện trong một chu kì lệnh ngoại trừ các lệnh rẽ nhánh

- Sơ đồ chân với chip loại cắm 40 chân:

Trang 10

Hình 2.2 Sơ đồ chân PIC16F887

Các chức năng cơ bản của PIC16F877 là:

- PIC16F877 có tất cả 5 PORT I/O (RA, RB, RC, RD, RE) với tổng cộng

- ADC: có 14 kênh ADC 10bit

- Bộ nhớ: 8K x 14Words Flash; 368x8 Bytes RAM; 256x8Bytes EEPROM

- Ngoài ra còn có 2 bộ so sánh tương tự

Khối điều khiển sẽ được thiết lập các chân vào ra để giao tiếp với các khối khác:

Trang 11

Hình 2.3 Sơ đồ nguyên lý khối điều khiển

Ngoài ra, để tạo tần số dao động ngoại cho PIC, chúng ta dùng thạch anh và

để reset mạch sẽ sử dụng thêm phím bấm

Trang 12

Việc nạp code sẽ được thực hiện thông qua các jump nạp code (dùng để kết nối với mạch nạp PIC sử dụng phần mềm nạp Burn E)

Hình 2.5 Sơ đồ nguyên lý jump nạp code

2.3 Khối Setup

Hình 2.2 Sơ đồ nguyên lý khối cài đặt

Mỗi nút bấm đều được nối với PIC để điều chỉnh những chức năng riêng SW1 được nối với chân RB1 giúp ta chuyển giữa các chế độ SW2 cho phép ta tăng các giá trị hiện thị SW3 giảm các giá trị hiện thị

Trang 13

2.4 Khối đo nhiệt độ

Để đo được nhiệt độ môi trường, chúng ta sử dụng LM35 làm cảm biến nhiệt độ Cấu trúc của LM35:

 U là điện áp đầu vào

 T là nhiệt độ môi trường

 K là hệ số theo nhiệt độ của LM35, 10mV/1C

Trang 14

Hình 2.4 Sơ đồ nguyên lý khối đo nhiệt độ

2.5 Khối thời gian thực

Module thời gian sử dụng IC thời gian thực DS1307

Hình 2.5 Sơ đồ chân ic DS1307

Đi kèm với nó là thạch anh để tạo xung nhịp đồng hồ DS1307 là chip thời gian thực hay RTC (Read time clock) Đây là một IC tích hợp cho thời gian bởi vì tính chính xác về thời gian tuyệt đối cho thời gian: Thứ, ngày, tháng, năm, giờ, phút, giây DS1307 được chế tạo bởi Dallas Chip này có 7 thanh ghi 8 bit mỗi thanh ghi này chứa : Thứ, ngày, tháng, năm, giờ, phút, giây Ngoài ra DS1307 còn chứa 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống các thanh ghi này có thể dùng như là RAM DS1307 được đọc thông qua chuẩn truyền thông I2C nên do đó để đọc được và ghi từ DS1307 thông qua

Trang 15

được đưa vào chân X1 và X2 Vbat là nguồn cung cấp cho DS1307, thường là 3V Vì vậy ta có thể sử dụng nguồn pin 3,3V để cấp cho DS1307 Vcc là nguồn cho giao tiếp I2C, trong project này là sử dụng cho PIC nên Vcc sẽ là chuẩn 5V Chân SCL và SDA là 2 chân ghi và truyền dữ liệu sẽ được nối với vi xử lý Sau khi nhận được dữ liệu từ DS1307 thì vi xử lý sẽ phát tín hiệu hiển thị ngày, giờ, tháng, năm lên LCD, cũng như bật tắt cho đèn

2.5-Hình 2.6 Sơ đồ nguyên lý khối thời gian thực

Trang 16

quét led, hiểu một cách đơn giản là chúng ta sẽ cho các hàng led sáng liên tục trong thời gian ngắn hơn khả năng lưu ảnh của mắt Tuy nhiên nếu làm như vậy số lượng chân của led rất lớn nên ta sẽ dùng 74HC595

Hình 2.8 Sơ dồ chân ic 74HC595

Nó là IC ghi dịch 8bit kết hợp chốt dữ liệu, đầu vào nối tiếp đầu ra song song được dùng để tiết kiệm số chân VĐK (tối đa 3 chân) Để làm được điều này, chân Q7’ của IC trước được nối với chân 14 (DATA) của IC tiếp theo Bằng các này chúng ta có thể kiểm soát số chân của VĐK theo ý muốn

Trang 17

Hình 2.9 Sơ đồ nguyên lý khối hiển thị

2.7 Khối báo thức

Trang 18

chức năng, chúng tôi có thiết kế thêm các jump mở rộng

Hình 2.14 Sơ đồ nguyên lý jump mở rộng

Các chân từ 1 đến 9 của khối mở rộng được nối tương ứng với các chân từ 2 đến 10 của PIC Chức năng được nhóm phát triển trên jump mở rộng này báo thức dùng còi chip 5V

Hình 2.15 Còi báo thức 5v

Còi có 2 chân và được sử dụng rất đơn giản

Hình 2.16 Sơ đồ nguyên lý khối báo thức

Trang 20

2.9 Sơ đồ nguyên lý toàn mạch

Hình 2.17 Sơ đồ nguyên lý khối hiển thị

Trang 21

2.10 Sơ đồ Layout mạch

Hình 2.18 Sơ đồ layout toàn hệ thống

Trang 22

2.11 Hình ảnh thật sản phẩm

Hình 2.19 Hình ảnh mạch thật

Trang 23

Chúng em xin chân thành cảm ơn!

Trang 24

TÀI LIỆU THAM KHẢO

[1] http://codientu.org/

[2] http://www.picvietnam.com/

[3] http://www.dientuvietnam.net/

[4] http://vidieukhien.net/

Trang 25

Cả nhóm tham gia hàn mạch và test mạch

Trang 26

#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT enabled)

#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)

#pragma config MCLRE = ON // RE3/MCLR pin function select bit (RE3/MCLR pin function is MCLR)

#pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)

#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)

#pragma config BOREN = OFF // Brown Out Reset Selection bits (BOR enabled)

#pragma config IESO = OFF // Internal External Switchover bit (Internal/External Switchover mode is enabled)

#pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit Safe Clock Monitor is enabled)

(Fail-#pragma config LVP = OFF // Low Voltage Programming Enable bit (RB3/PGM pin has PGM function, low voltage programming enabled)

#define SCL_PIN PORTCbits.RC3

#define SDA_PIN PORTCbits.RC4

#define SCL_TRIS TRISC3

#define SDA_TRIS TRISC4

unsigned char mang1 [ ]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};

Trang 27

0x00,0x61,0x83,0x85,0x89,0x91,0x61,0x00, //2 0x00,0x42,0x81,0x91,0x91,0x91,0x6E,0x00, //3 0x00,0x0C,0x14,0x24,0x44,0xFF,0x04,0x00, //4 0x00,0xF2,0x91,0x91,0x91,0x91,0x0E,0x00, //5 0x00,0x7E,0x91,0x91,0x91,0x91,0x0E,0x00, //6 0x00,0x80,0x80,0x87,0x88,0x90,0xE0,0x00, //7 0x00,0x6E,0x91,0x91,0x91,0x91,0x6E,0x00, //8 0x00,0x72,0x89,0x89,0x89,0x89,0x7E,0x00, //9 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //off

0x00,0x8E,0x9F,0x91,0xFF,0x7F,0x00,0x00, //a 0x00,0x7e,0xff,0x81,0x89,0x8f,0x8e,0x00, //G 0x00,0xff,0x08,0x10,0x10,0x10,0x0f,0x00, //h 0x00,0xfe,0xff,0x03,0x03,0xff,0xfe,0x00, //U 0x00,0x70,0xf1,0x89,0x89,0x8f,0x06,0x00, //S 0x00,0x80,0x80,0xff,0xff,0x80,0x80,0x00, //T 0x00,0xff,0xff,0x91,0x91,0x91,0x00,0x00, //E 0x00,0xff,0x90,0x90,0x90,0x60,0x00,0x00, //P 0x00,0xff,0xff,0x60,0x1c,0xff,0xff,0x00, //D 0x00,0xff,0x40,0x20,0x10,0x08,0xff,0x00, //N 0x00,0x60,0x90,0x90,0x60,0x00,0x00,0x00, //' 0x00,0x7E,0xff,0x81,0x81,0x81,0x66,0x00, //C 0x00,0x80,0x80,0xff,0x80,0x80,0x00,0x00, //t 0x00,0xe0,0x10,0x0f,0x10,0xe0,0x00,0x00, //y 0x7e,0x81,0x81,0x81,0xB1,0x89,0x85,0x81, // dong ho bao thuc

0x7e,0x00,0xff,0x91,0x91,0x91,0x6e,0x00,

0x00,0x80,0x80,0xff,0x80,0x80,0x00,0x00,

0xc0,0x38,0xc0,0x00,0xf8,0xa8,0xa8,0x00, // year G3

0x01,0x00,0x00,0x21,0x41,0xff,0x01,0x01, //.1

0x01,0x00,0x61,0x83,0x85,0x89,0x91,0x61, //.2

0x01,0x00,0x42,0x81,0x91,0x91,0x91,0x6E, //.3

0x01,0x00,0x0C,0x14,0x24,0x44,0xFF,0x04, //.4

0x01,0x00,0xF2,0x91,0x91,0x91,0x91,0x0E, //.5

0x01,0x00,0x7E,0x91,0x91,0x91,0x91,0x0E, //.6

0x01,0x00,0x80,0x80,0x87,0x88,0x90,0xE0, //.7

Trang 28

date_1,date_2,month_1,month_2,year_1,year_2,gio_hg1,gio_hg2,phut_hg1,phut_hg2;

long long ADC_GTri ;

float T ,T10;

int sec ,min,hour,day,date,month,year,gio_hg= ,phut_hg= ;

/* KHOI TAO I2C

Trang 29

unsigned char get_data , ;

Trang 30

sec = BCD_DEC(DS1307_read( ));// delay_ms(1);

min = BCD_DEC(DS1307_read( ));// delay_ms(1);

hour = BCD_DEC(DS1307_read( ));// delay_ms(1);

day = BCD_DEC(DS1307_read( ));// delay_ms(1);

date = BCD_DEC(DS1307_read( ));// delay_ms(1);

month = BCD_DEC(DS1307_read( ));// delay_ms(1);

year = BCD_DEC(DS1307_read( )); delay_ms( );

ANSELHbits.ANS10 = 1 // bat che do analog cho chan RB1/AN10

ADCON1bits.ADFM = 1 // ADC thuc hien can le phai

ADCON1bits.VCFG0 = 0 // dien ap tham chieu Vdd

ADCON1bits.VCFG1 = 0 // dien ap tham chieu Vss

ADCON0bits.ADCS = 10; // tan so lay mau la Fosc/32

ADCON0bits.CHS = 10; // Chon kenh xuat analog AN10

ADCON0bits.ADON = 1 // Turn on ADC

else PORTCbits RC1 = 0 // xuat bit 0 vaochan DATA

x <<= ; // dich trai 1 bit

Trang 31

PORTD = mang1[ ]; // quet cot

PORTCbits.RC2 = 0 // tao xung tren chan 12

PORTCbits.RC2 = 1 // de xuat du lieu ra song song

PORTD = mang1[ ]; // quet cot

PORTCbits.RC2 = 0 // tao xung tren chan 12

PORTCbits.RC2 = 1 // de xuat du lieu ra song song

unsigned int delayTime = 0 delay_ADC= ,status= , , , ,nhay= , , = , = ;

unsigned char bien ;

void interrupt isr ()

{

if (INTCONbits.INTF == 1

Trang 32

if (status==0 status = 69;

if (status==3){ if (hour_cd==12)hour_cd=24; else hour_cd = 12;};

if (status==96){phut_hg++; if (phut_hg >= 60) phut_hg = 0;};

if (status==97)

{

if (hour_cd==24){gio_hg++; if (gio_hg >= 24) gio_hg = 0;}

if (hour_cd==12){gio_hg++; if (gio_hg >= 13) gio_hg = 1;}

};

if (status==4)

{

if (hour_cd==24){ hour++; if (hour>=24)hour = 0 DS1307_write( ,hour);}

if (hour_cd==12){ hour++; if (hour>=13)hour = 1 DS1307_write( ,hour);}

};

if (status==5){min++; if (min >= 60) min = 0 DS1307_write( ,min);};

if (status==6){date++; if (date>31)date= 1 DS1307_write( ,date);};

if (status==7){month++; if (month>=13)month= 1 DS1307_write( ,month);};

if (status==8){year++; if (year>=100)year= 0 DS1307_write( ,year);};

if (hour_cd==24){gio_hg ; if (gio_hg < 0 gio_hg = 23;}

if (hour_cd==12){gio_hg ; if (gio_hg < 0 gio_hg = 12;}

if (status==5){min ; if (min < 0 min = 59;DS1307_write( ,min);};

if (status==6){date ; if (date <= )date=31;DS1307_write( ,date);};

Trang 33

while (ADCON0bits.GO==1){}; // doi cho den khi

chuyen doi ket thuc

ADC_GTri = ((ADRESH<<8)|ADRESL); // gan 10bit chuyen doi

vao bien ADC_GTri

T = (ADC_GTri*5.5) / 10.24; // chuyen doi 10bit ra

gia tri nhiet do

m =( int ) T/10; // gia tri hang chuc

n =( int ) %10; // gia tri hang don vi

HienThi2(hour_1,hour_2,min_1,min_2,10,sec_1,sec_2); break ;

case 1 HienThi2(20,date_1,date_2,10,23,month_1,month_2); break ;

case 2 HienThi2( , ,year_1,year_2,28,29,30); break ;

case 3 HienThi2(15,17,16,10,hour_cd1,hour_cd2,13); break ;

case 4 HienThi2(15,17,16,10,13,hour_1,hour_2); break ;

case 5 HienThi2(15,17,16,10,18,min_1,min_2); break ;

case 6 HienThi2(15,17,16,10,20,date_1,date_2); break ;

case 7 HienThi2(15,17,16,10,23,month_1,month_2); break ;

case 8 HienThi2(15,17,16,10,24,year_1,year_2); break ;

case 69:HienThi( , , ,10,10,21,22); break ;

case 96:HienThi2(18,10,phut_hg1,phut_hg2,25,26,27); break ;

case 97:HienThi2(13,10,gio_hg1,gio_hg2,25,26,27); break ;

}

}

}

}

Ngày đăng: 07/05/2016, 22:29

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w