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

đồ án đo NHIỆT độ độ SÁNG và báo CHÁY với PIC18F4550

24 268 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 24
Dung lượng 2,74 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

− Công nghệ nanowatt Tất cả các vi điều khiển trong họ PIC18F đều có tính năng giảm đáng kể lượng công suất tiêu thụ trong quá trình hoạt động.. Hoạt động theo xung clock từ bộ điều khiể

Trang 1

TRƯỜNG ĐẠI HỌC SÀI GÒN KHOA ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN MÔN HỌC

ĐO NHIỆT ĐỘ ĐỘ SÁNG VÀ BÁO CHÁY

VỚI PIC18F4550

HỆ ĐẠI HỌC NIÊN KHÓA: 2014-2019

Sinh viên thực hiện:

PHẠM THÁI THÔNG

DKT1142 Mssv: 3114520078

Thành phố Hồ Chí Minh, 2017

Trang 2

MỤC LỤC

CHƯƠNG 1: TỔNG QUAN VỀ PIC18F4550 VÀ CÁC CẢM BIẾN 3

1.1 PIC18F4550 3

1.2 LM35 8

1.3 QUANG TRỞ 10

CHƯƠNG 2: THIẾT KẾ MẠCH NGUYÊN LÝ 11

2.1 SƠ ĐỒ KHỐI 11

2.2 LƯU ĐỒ GIẢI THUẬT 12

2.3 NHÚNG VÀ MÔ PHỎNG 12

CHƯƠNG 3: LÀM MẠCH THỰC TẾ 21

3.1 MẠCH IN 21

3.2 BOARD VÀ LINH KIỆN 22

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

4.1 ƯU NHƯỢC ĐIỂM 24

4.2 HƯỚNG PHÁT TRIỂN 24

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

Trang 3

CHƯƠNG 1: TỔNG QUAN VỀ PIC18F4550 VÀ CÁC CẢM BIẾN

1.1 PIC18F4550

1.1.1 Tổng quan

PIC 18F4550 là vi điều khiển 40 chân, có khả năng giao tiếp USB hiệu năng cao, được tăng cường bộ nhớ Flash sử dụng công nghệ nanoWatt

− Là bộ vi xử lý được trang bị tính năng giao tiếp USB 2.0

− Có khả năng truyền nhận dữ liệu tốc độ thấp (1.5 Mb/s) và tốc độ cao (12 Mb/s)

− Hỗ trợ việc điều khiển, ngắt, truyền dữ liệu kích thước lớn và truyền dữ liệu đồng thời

− Hỗ trợ lên đến 32 điểm đầu cuối (16 đường truyền song hướng)

− 1 kb bộ nhớ RAM truy cập kép cho USB

− Bộ thu phát USB cùng với bộ điều chỉnh điện áp 3.3 V trên chip

− Giao tiếp bộ thu phát USB riêng bên ngoài

− Có port truyền dữ liệu song song (SPP) cho việc truyền dòng dữ liệu USB (chỉ có ở

vi điều khiển 40 chân)

− Run: CPU hoạt động, các khối ngoại vi hoạt động − Idle: CPU không hoạt động, các khối ngoại vi hoạt động Dòng điện ở chế độ idle giảm xuống chỉ còn 5.8 μA

− Sleep: CPU không hoạt động, các khối ngoại vi không hoạt động Dòng điện ở chế

độ sleep giảm xuống chỉ còn 0.1 μA

− Bộ dao động Timer1 với các thông số: 1.1 μA, 32 kHz, 2 V

− Bộ định thời watchdog hoạt động với dòng chỉ bằng 2.1 μA

− Có chế độ khởi động bộ dao động hai tốc độ

− Công nghệ nanowatt Tất cả các vi điều khiển trong họ PIC18F đều có tính năng giảm đáng kể lượng công suất tiêu thụ trong quá trình hoạt động Chế độ chạy luân phiên

Trang 4

Hoạt động theo xung clock từ bộ điều khiển Timer1 hoặc bộ dao động nội, công suất tiêu thụ trong quá trình thực thi chương trình có thể giảm đến 90% Chế độ tĩnh (idle) phức hợp

Vi điều khiển có thể chạy với CPU ngưng hoạt động, nhưng các khối ngoại vi vẫn hoạt động Ở trạng thái này, công suất tiêu thụ có thể giảm hơn nữa, ít hơn đến 4% lượng công suất mà chế độ họat động bình thường yêu cầu Chế độ on-to-fly Chế độ quản lý công suất được gọi bởi chương trình của người dùng trong quá trình hoạt động, cho phép người lập trình kết hợp các ý tưởng tiết kiệm năng lượng thành thiết kế ứng dụng của họ

1.1.2 Tính năng bộ đa dao động

Dòng vi điều khiển PIC18F đều có tính năng lựa chọn 12 nguồn dao động khác nhau, cho phép người dùng nhiều sự lựa chọn hơn trong việc phát triển các ứng dụng Tính năng này bao gồm: − 4 nguồn dao động thạch anh sử dụng thạch anh hoặc bộ cộng hưởng ceramic

− 4 nguồn dao động ngoại

− 1 khối tạo dao động nội cung cấp nguồn xung 8 MHz (độ chính xác ±2%), một nguồn dao động nội dùng RC INTRC (xấp xỉ 31 KHz không bị ảnh hưởng bởi nguồn cung cấp và nhiệt độ), cũng như một dãi 6/8 tần số mà người dùng có thể lựa chọn có dãi tần từ

125 kHz đến 4 MHz Lựa chọn này giúp ta có thêm hai chân dao động trống để sử dụng cho các giao tiếp I/O − Một bộ nhân tần số vòng lặp khóa pha (PLL) sử dụng cả thạch anh tần số cao và bộ dao động ngoại cho phép tần số từ 4 MHz đến 48 MHz

− Hoạt động với nguồn xung clock kép không đồng bộ, cho phép chế độ USB sử dụng bộ dao động tần số cao, trong khi phần còn lại của vi điều khiển được cấp xung clock

từ bộ dao động công suất thấp bên trong

Bộ dao động nội bên cạnh vai trò nguồn xung, còn cung cấp nguồn tham chiếu ổn định cho một số tính năng bổ sung như: − Giám sát lỗi xung clock (Fail-Safe Clock

Monitor): chế độ này giám sát liên tục nguồn xung sơ cấp dựa vào tín hiệu tham chiếu từ nguồn dao động nội Nếu xảy ra lỗi xung clock, vi điều khiển sẽ chuyển sang sử dụng bộ dao động nội cho phép tiệp tục hoạt động tốc độ thấp hoặc shutdown các ứng dụng một cách an toàn − Chế độ khởi động hai tốc độ: lựa chọn này cho phép bộ dao động nội phục

vụ như một nguồn xung, cấp cho chế độ reset khi đang mở nguồn (Power-on Reset), hoặc đánh thức đưa hệ thống thoát khỏi chế độ sleep cho đến khi nguồn xung clock chính hoạt động trở lại

Thiết lập các lệnh mở rộng Họ PIC 18F đưa ra các lựa chọn mở rộng các lệnh thiết lập gồm 8 cấu trúc lệnh mới và một chế độ ghi địa chỉ offset đánh chỉ số bằng chữ Lựa

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

Trang 5

chọn mở rộng này như một lựa chọn về cấu hình thiết bị, được thiết kế đặc biệt để tối ưu các mã chương trình của ngôn ngữ cấp cao như C

Khối CCP tăng cường Trong chế độ PWM, khối này cung cấp các ngõ ra điều chế 1,

2, 4 để điều khiển các driver cầu và bán cầu Các tính năng khác bao gồm chế độ auto shutdown để vô hiệu ngõ ra PWM theo ngắt hay theo các điều kiện khác Ngoài ra còn có chế độ auto-restart để kích hoạt lại ngõ ra PWM một khi điều kiện kể trên bị xóa

Khối USART tăng cường có khả năng lập địa chỉ Khối truyền thông nối tiếp này có khả năng hoạt động theo chuẩn RS-232 và cung cấp sự hỗ trợ cho giao thức bus LIN Tính năng tăng cường bao gồm nhận dạng tốc độ baud tự động, và một bộ tạo tốc độ baud 16-bit nhằm cải thiện độ phân giải khi truyền dữ liệu Khi vi điều khiển sử dụng bộ dao động nội thì EUSART sẽ vẫn hoạt động ổn định trên các ứng dụng mà không cần phải dùng đến dao động thạch anh bên ngoài

ADC 10-bit Khối này kết hợp với chu kỳ thời gian nhận tín hiệu chuyển đổi khả trình cho phép chọn lựa kênh chuyển đổi và khởi xướng quá trình chuyển đổi mà không cần đợi chu kỳ lấy mẫu Do đó, tính năng này làm giảm bớt các mã có thể vượt quá giới hạn

chuyển đổi

Port ICD/ICSP dành riêng Port dành riêng này cung cấp việc sử dụng các chân sửa lỗi

và chân lập trình không tích hợp các chức năng khác của vi điều khiển Tính năng này cho phép người dùng phát triển các ứng dụng chuyên về I/O trong khi vẫn duy trì khả năng lập trình và sửa lỗi trên chip.

Trang 6

1.1.4 Sơ đồ khối PIC18F4550

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

Trang 7

1.1.5 Bộ chuyển đổi ADC

PIC 18F4550 có 13 chân ngõ vào nhận tín hiệu tương tự để chuyển thành tín hiệu số với độ phân giải là 10-bit Khối AD (Analog to Digital) gồm có 5 thanh ghi: ADRESH (AD Result High register), ADRESL (AD Result Low register), ADCON0 (AD Control register 0), ADCON1 và ADCON2

Sơ đồ khối bộ chuyển đổi ADC

Trang 8

Các thanh ghi liên kết với bộ ADC

1.2 LM35

Cảm biến nhiệt độ LM35 là một loại cảm biến tương tự rất hay được ứng dụng trong

các ứng dụng đo nhiệt độ thời gian thực Vì nó hoạt động khá chính xác với sai số nhỏ, đồng thời với kích thước nhỏ và giá thành rẻ là một trong những ưu điểm của nó.

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

Trang 9

Biểu đồ nhiệt độ và điện áp ngõ ra

Biểu đồ sai số ở các nhiệt độ khác nhau

Trang 10

Biểu đồ liên hệ giữa điện trở và cường độ sáng

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

Trang 11

CHƯƠNG 2: THIẾT KẾ MẠCH NGUYÊN LÝ

2.1 SƠ ĐỒ KHỐI

2.2 LƯU ĐỒ GIẢI THUẬT

Trang 12

#define RS_PIN LATDbits.LATD0

#define TRIS_RS TRISDbits.TRISD0

#define RW_PIN LATDbits.LATD1

#define TRIS_RW TRISDbits.TRISD1

#define E_PIN LATDbits.LATD2

#define TRIS_E TRISDbits.TRISD2

Trang 13

#define EIGHT_BIT 0b00111100 /* 8-bit

characters, multiple line: 0b00111000 */

#define putcXLCD WriteDataXLCD

unsigned char BusyXLCD(void);

unsigned char ReadAddrXLCD(void);

void WriteDataXLCD(PARAM_SCLASS char);

void putsXLCD(PARAM_SCLASS char *);

void putrsXLCD(const rom char *);

extern void DelayFor18TCY(void);

extern void DelayPORXLCD(void);

extern void DelayXLCD(void);

void DelayFor18TCY( void )

{ Delay10TCYx(2); // Delay of 5us

void displaylcd_l2 (unsigned int intval) {

unsigned int volt;

char o[10];

volt = ((intval*25)/255) ; itoa(volt,o);

if (volt > 9 & volt <= 99) {

Trang 14

while(BusyXLCD()); // Wait if LCD busy

SetDDRamAddr(0x40); // Select line 2

putrsXLCD("Temp:");

itoa(v, out);

while(BusyXLCD());

if (v >99) {

if (v > 9 & v <= 99) {

if (v>= 0 & v <= 9) {

while(BusyXLCD());

WriteDataXLCD(0x20); while(BusyXLCD()); WriteDataXLCD(0x20);

WriteDataXLCD(out[0]);

while(BusyXLCD());

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

Trang 15

void main( void ) {

Delay10KTCYx(250);

while(1) { ADCON1 = 0b00000000; // Vref = VDD ADCON0bits.CHS3 = 0;

Trang 16

TRIS_RW = 0; // All control

signals made outputs

TRIS_RS = 0;

TRIS_E = 0;

RW_PIN = 0; // R/W pin made

low

RS_PIN = 0; // Register select

pin made low

E_PIN = 0; // Clock pin made

low // Delay for 15ms to allow for LCD

-

// Set data interface width, # lines, font while(BusyXLCD()); // Wait if LCD busy

WriteCmd8bit(FOUR_BIT & LINES_5X7);

// Function set cmdwhile(BusyXLCD());

WriteCmdXLCD(LINES_5X7);

// Turn the display on then off Delay10KTCYx(0x05);

// Wait if LCD busy

WriteCmdXLCD(DOFF&CURSOR_OFF&BLINK_OFF); // Display OFF/Blink OFF while(BusyXLCD()); // Wait if LCD busy

WriteCmdXLCD(DON&CURSOR_OFF&BLINK_OFF); // Display ON/Blink ON

// Clear display while(BusyXLCD()); // Wait if LCD busy

WriteCmdXLCD(0x01);

// Clear display

// Set entry mode inc, no shift

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

Trang 17

while(BusyXLCD()); //

Wait if LCD busy

WriteCmdXLCD(SHIFT_DISP_LEFT);

// Entry Mode // Set DD Ram address to 0

}void SetCGRamAddr(unsigned char CGaddr)

{ // Upper nibble interface

TRIS_DATA_PORT &= 0x0f; //

Make nibble input

DATA_PORT &= 0x0f; // and

write upper nibble

DATA_PORT |= ((CGaddr | 0b01000000) &

and address in DelayFor18TCY();

E_PIN = 0; DATA_PORT &= 0x0f;

// Write lower nibble

Make inputs return;

}void SetDDRamAddr(unsigned char DDaddr)

{ // 4-bit interface

// Upper nibble interface TRIS_DATA_PORT &= 0x0f; // Make port output

DATA_PORT &= 0x0f; // and write upper nibble

DATA_PORT |= ((DDaddr | 0b10000000) & 0xf0); RW_PIN = 0; // Set control bits RS_PIN = 0;

DATA_PORT |= ((DDaddr<<4)&0xf0); DelayFor18TCY();

E_PIN = 1; // Clock the cmd and address in

DelayFor18TCY();

E_PIN = 0;

// Upper nibble interface TRIS_DATA_PORT |= 0xf0; // Make port input

return;

}unsigned char BusyXLCD(void){ RW_PIN = 1; // Set the control bits for read

Trang 18

char data; // Holds the data

retrieved from the LCD

// 4-bit interface

RW_PIN = 1; // Set control bits

for the read

E_PIN = 0; // Reset the clock DelayFor18TCY();

E_PIN = 1; // Clock out the lower nibble

DelayFor18TCY();

// Upper nibble interface data |= (DATA_PORT>>4)&0x0f; // Read the nibble into the lower nibble of data

// 4-bit interface RW_PIN = 1;

RS_PIN = 1;

DelayFor18TCY();

E_PIN = 1; // Clock the data out

of the LCD DelayFor18TCY();

// Upper nibble interface data = DATA_PORT&0xf0; // Read theupper nibble of data

E_PIN = 0; // Reset the clock line

DelayFor18TCY();

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

Trang 19

E_PIN = 1; // Clock the next

nibble out of the LCD

DelayFor18TCY();

// Upper nibble interface

data |= (DATA_PORT>>4)&0x0f; // Read

the lower nibble of data

RW_PIN = 0; // Set control

signals for command

Trang 20

buffer++; // Increment buffer }

WriteDataXLCD(*buffer); // Write character to LCD

buffer++; // Increment buffer }

return;

}

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

Trang 24

 Chỉ báo động có cháy khi nhiệt độ môi trường cao.

 Chưa tối ưu linh kiện.

 Giá thành còn cao

4.2 HƯỚNG PHÁT TRIỂN

Mạch được thiết kế với các jumper có thể cắm vào các chân port IC

Từ đó ta có thể nâng cấp mạch thêm nhiều tính năng cùng với sự đa năng của Pic18f4550 như:

-lưu dữ liệu nhiệt độ các ngày

-điều khiển các thiết bị

-giao tiếp với các board khác hoặc máy tính

TÀI LIỆU THAM KHẢO

[1] TS Văn Tấn Lượng -Ths Nguyễn Quốc Đán (2015) “Giáo trình kĩ thuật

vi xử lý”, đại học Sài Gòn.

Ngày đăng: 26/11/2018, 12:10

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w