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

Đồ Án Môn Học Vi Điều Khiển Đề Tài Sử Dụng Lcd 2 Hàng 16 Ký Tự Và 3 Nút Nhấn, Lập Trình Điều Khiển Hiển Thị Giờ Phút Giây.pdf

16 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Sử dụng LCD 2 hàng 16 ký tự và 3 nút nhấn, lập trình điều khiển hiển thị giờ phút giây
Tác giả Phạm Nguyễn Minh Khôi, Nguyễn Thanh Khải, Trần Quốc Kiên
Người hướng dẫn NGÔ HÀ QUANG THỊNH
Trường học Trường Đại Học Công Nghệ Tp. Hồ Chí Minh
Chuyên ngành Kỹ Thuật Điều Khiển Và Tự Động Hóa
Thể loại Đồ án môn học
Thành phố Tp.HCM
Định dạng
Số trang 16
Dung lượng 2,68 MB

Nội dung

Giới thiệu về vi điều khiển -Vi điều khiển là một máy tính được tích hợp trên một chip, nó thường được sử dụng để điều khiển các thiết bị điện tử.. Vi điều khiển, thực chất, là một hệ t

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ

CHÍ MINH

ĐỒ ÁN MÔN HỌC: VI ĐIỀU KHIỂN

ĐỀ TÀI : Sử dụng LCD 2 hàng 16 ký tự và 3 nút nhấn, lập trình

điều khiển hiển thị giờ phút giây

Ngành: KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA Lớp: 22DTDA2

Giảng viên hướng dẫn : NGÔ HÀ QUANG THỊNH

Sinh viên thực hiện : Phạm Nguyễn Minh Khôi

Mssv : 2280500076

Sinh viên thực hiện : Nguyễn Thanh Khải

Mssv : 2280500068

Sinh viên thực hiện : Trần Quốc Kiên

Mssv : 2280501867

Tp.HCM, ngày … tháng … năm …

Trang 2

MỤC LỤC

Chương 1 Tổng quan:

1.1 Giới thiệu về vi điều khiển

1.2 Tổng quan về đề tài

1.2.1 Vai trò và chức năng của vi điều khiển PIC16F887 1.2.2 Sơ lược về thành phần mạch điện

1.2.3 Kế hoạch triển khai

Chương 2 : Cơ sở thiết kế mạch

2.1 Tính năng và thông số kĩ thuật

+ PIC16F887A

+ LCD 16x2

+ Nguồn DC

+ Nút nhấn

+ Thạch anh

+ Chip thời gian thực (RTC)

+ Điện trở

+ RN-8

+ LED 7 đoạn

2.2 Một số tính năng khác và một số mạch ví dụ Chương 3: Sơ đồ mạch

Chương 4: Chương trình điều khiển

Chương 5: Kết luận

Trang 3

Chương 1: Tổng quan

1 Giới thiệu về vi điều khiển

-Vi điều khiển là một máy tính được tích hợp trên một chip, nó thường được sử dụng để điều khiển các thiết bị điện tử Vi điều khiển, thực chất, là một hệ thống bao gồm một vi xử lý có hiệu suất đủ dùng và giá thành thấp (khác với các bộ vi

xử lý đa năng dùng trong máy tính) kết hợp với các khối ngoại vi như bộ nhớ, các module vào/ra, các module biến đổi số sang tương tự và tương tự sang số, Ở máy tính thì các module thường được xây dựng bởi các chip và mạch ngoài

- Vi điều khiển thường được sử dụng để xây dựng các hệ thống nhúng Nó cũng được sử dụng trong các thiết bị điện, điện tử như máy giặt, lò vi sóng, điện thoại, đầu đọc DVD, thiết bị đa phương tiện hay dây chuyền sản xuất tự động,

1.2 Tổng quan về đề tài

1.2.1 Vai trò và chức năng của vi điều khiển PIC16F887

- Vi điều khiển PIC16F887 là vi điều khiển 8 bit được thiết kế theo công nghệ CPU RSIC cho công suất tối đa với điện năng tiêu thụ thấp Có tổng cộng 40 chân

và có nhiều gói chân đáp ứng yêu cầu mạch nhỏ gọn và hiện đại, ví dụ package QFN và TQFP 44 chân

- PIC16F887 hỗ trợ các giao thức dữ liệu hiện đại cho các nhà thiết kế và do có nhiều chân nên hầu hết các giao thức có thể được thực hiện cùng một lúc mà không ảnh hưởng đến các giao thức khác PIC có nhiều chức năng do có nhiều kênh chuyển đổi ADC và xung clock bên trong

1.2.2 Sơ lược về thành phần mạch điện

- Các thành phần mạch điện gồm có :

+ PIC16F887A

+ LCD 16x2

+ Nguồn DC

+ Nút nhấn

+ Thạch anh

Trang 4

+ Chip thời gian thực (RTC)

+ Điện trở

+ RN-8

+ LED 7 đoạn

1.2.3 Kế hoạch triển khai

-Thiết kế mạch điện

-Viết chương trình cho mạch

-Viết báo cáo về đề tài

Chương 2: Cơ sở thiết kế mạch

2.1 Tính năng và thông số kỹ thuật

a) PIC16F877

Trang 5

- PIC16F877A là một Vi điều khiển PIC 40 chân và được sử dụng hầu hết trong các dự án và ứng dụng nhúng Nó có năm cổng bắt đầu từ cổng A đến cổng E Nó

có ba bộ định thời trong đó có 2 bộ định thời 8 bit và 1 bộ định thời là 16 Bit Nó

hỗ trợ nhiều giao thức giao tiếp như giao thức nối tiếp, giao thức song song, giao thức I2C

- Thông số kĩ thuật :

+ CPU: Vi điều khiển PIC 8 bit

+ Bộ nhớ chương trình: 14KB Flash

+ Bộ nhớ SRAM: 368 byte

+ Bộ nhớ EEPROM: 256 byte

+ Cổng giao tiếp ngoại vi: 1 cổng I2C, 1 cổng SPI, 1 cổng UART, 1 cổng MSSP + Capture/Compare/PWM: 2 input capture, 2 CCP (thanh điều rộng xung PWM)

b) Điện trở

-Điện trở là một linh kiện điện tử có chức năng cản trở dòng điện trong mạch

- Thông số kĩ thuật:

+ Trị số điện trở và dung sai

+ Hệ số nhiệt của điện trở

+ Công suất tiêu tán danh định

+ Tạp âm của điện trở

c) Màn hình LCD 16x2

Trang 6

+ Mạch điều khiển màn hình LCD16x02 giao tiếp I2C sử dụng IC điều khiển màn hình kí tự gồm 16 cột và 2 dòng giúp tiết kiệm dây nối với vi điều khiển (hoặc Arduino) cho khả năng hiển thị nhanh với nhiều chức năng

- Thông số kĩ thuật:

+ Điện áp hoạt động: 3 - 6V

+ Giao tiếp: I2C

+ Địa chỉ mặc định: 0x27, có thể mắc vào I2C bus tối đa 8 module (3bit address set)

+ Jump Chốt: Cung cấp đèn cho LCD hoặc ngắt

+ Biến trở xoay độ tương phản cho LCD

+ Kích thước: 41.5 x 19 x 15.3mm

Trọng lượng: 5g

d) Transistor

- Transistor là một linh kiện bán dẫn có ba cực được sử dụng như một bộ khuếch đại hoặc một công tắc trong các mạch điện tử Trong ba cực này, điện áp/dòng điện ngõ vào được đưa vào một cặp cực của transistor và điện áp/dòng điện ngõ ra được điều khiển có thể nhận được thông qua một cặp cực khác

- Thông số kĩ thuật :

+ Số hiệu của transistor

+ Hệ số khuếch đại dòng điện (β)

+ Điện áp Collector-Emitter (VCEO)

Trang 7

e) Nút nhấn

- Nút nhấn hay còn gọi là nút ấn dùng để đóng ngắt từ xa các thiết bị điện, các loại máy móc hay một số quá trình trong điều khiển

- Thông số kĩ thuật :

+ Hệ thống lò xo

+ Hệ thống các tiếp điểm thường hở (NO) – thường đóng (NC)

+ Vỏ bảo vệ

+Với nút nhấn nhả: Các tiếp điểm sẽ chuyển trạng thái khi có lực tác động vào nút nhấn Khi không còn lực tác động tiếp điểm sẽ trở lại trạng thái ban đầu +Với nút nhấn giữ: Các tiếp điểm sẽ chuyển trạng thái khi có lực tác động vào nút nhấn Khi không còn lực tác động vào nút ấn, trạng thái tiếp điểm vẫn sẽ duy trì, khi có lực tác động vào nút nhấn lần nữa thì tiếp điểm trở lại trạng thái ban đầu f) Thạch anh

- Thạch anh là mô •t linh kiê •n được sử dụng với mục đích tạo tần số dao đô •ng ổn định trong các mạch điê •n tử Tần số đo thạch anh tạo ra ít bị ảnh hưởng bởi nhiê •t

đô • hơn là các mạch dao đô •ng RC…

- Thông số kĩ thuật :

+Độ chính xác cao: 16Mhz

+Độ bền tần số hoạt động: -10 đến +60 độ C

+Độ nhạy tần số: ± 30ppm

Trang 8

+Độ ổn định tần số: ± 50ppm

+Loại: Dán

+Số lượng chân: 2 chân

2.2 Một số tính năng khác và một số mạch ví dụ.

Chương 3: Sơ đồ mạch điện 3.1 Mạch ban đầu

Trang 9

3.2 Mạch khi được khởi động

3.3 Màn hình hiển thị tăng một giá trị khi bấm nút A

Trang 10

3.4 Màn hình hiển thị giảm một giá trị khi bấm nút B

3.5 Giá trị đồng hồ thay đổ khi bấm nút C

Trang 11

Chương 4: Chương trình điều khiển

#include <16F887.h>

#include <def_877a.h>

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

#use delay(clock=20000000)

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

#define k1 RB0// set

#define k2 RB2//tang

#define k3 RB1// giam

int8 low,high;

int8 h,p,g,pgiay;

void convert_so_lcd(int8 x);

void chinh_gio();

// -#INT_TIMER1 //khai bao ngat de dinh thoi gian

VOID NGAT_TIMER1()

{

SET_TIMER1(15536);

pgiay++;

if(pgiay>100)

{ pgiay=0; g++;

if(g == 60) //neu giay =60 thi tang phut

{ g = 0; p++;

if(p==60)

{ p = 0;h++;

if(h==24) h = 0;

}

}

}

}

void hienthi()// chuong trinh con hien thi gio

{ LCD_putcmd(0x80);printf(LCD_putchar,"GIO: ");

Trang 12

LCD_putchar(h/10 + 0x30); LCD_putchar(h%10 +

0x30);printf(LCD_putchar,":");

LCD_putchar(p/10 + 0x30); LCD_putchar(p%10 +

0x30);printf(LCD_putchar,":");

LCD_putchar(g/10 + 0x30); LCD_putchar(g%10 +

0x30);printf(LCD_putchar," ");

}

void hienthi1(int m)// chuong trinh con hien thi set cài dat gio

{

LCD_putcmd(0x80);printf(LCD_putchar,"GIO: ");

if(m==1) {LCD_putchar(0); LCD_putchar(0);//HIEU UNG NHAY KI HIEU KHI SET THOI GIAN BAT DAU TU 36 TRO LEN

} else {LCD_putchar(h/10 + 0x30); LCD_putchar(h%10 + 0x30);}

printf(LCD_putchar,":");

if(m==2) {LCD_putchar(0); LCD_putchar(0);

} else {LCD_putchar(p/10 + 0x30); LCD_putchar(p%10 + 0x30);}

printf(LCD_putchar,":");

if(m==3) {LCD_putchar(0); LCD_putchar(0);

} else {LCD_putchar(g/10 + 0x30); LCD_putchar(g%10 + 0x30);}

printf(LCD_putchar," ");

}

//============================

void main()// chuong trinh chin

{

// khai bao port vao ra

trisa = 0xFF;

trisb = 0xff;

trisd = 0x00;

SETUP_TIMER_1(T1_INTERNAL); //cho phep cac ngat hoat dong de dem thoi gian

ENABLE_INTERRUPTS(GLOBAL);

disABLE_INTERRUPTS(INT_TIMER1);

SET_TIMER1(15536); //T_dinhthoi = (65536-15536)*1us = 50000us

h = p = g = pgiay = 0; // khoi tao ban dau

ENABLE_INTERRUPTS(INT_TIMER1); // Khoi dong timer1

lcd_init();

//=========================================

Trang 13

LCD_putcmd(0x80); printf(LCD_putchar,"DONG HO SO LCD "); // hien thi hang thu 1 lcd

delay_ms(500);

LCD_putcmd(0xC0); printf(LCD_putchar,"DONG HO SO LCD ");// hien thi hang thu 2 lcd

//=======================================

while(true)

{

hienthi();

if(k1==0) { while(k1==0){} chinh_gio(); }// neu k1 = 0 thi bat dau cho phep cai dat gio

}

}

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;

}

void chinh_gio()// chuong trinh con chinh gio

{

int mode=1,i=0;

while(TRUE)

{

if(i<5) hienthi1(0); else hienthi1(mode);

i++; if(i>5) i = 0;

if(k2==0)// set tang 1 don vi

{ while(k2==0) {}

switch(mode)

{

case 1:

{ if(h<23) h++; else h = 0;

break;}

case 2:

{ if(p<59) p++; else p = 0;

break;}

Trang 14

case 3:

{ if(g<59) g++; else g = 0;

break;}

}

}

if(k3==0)

{ while(k3==0) {}

switch(mode)

{

case 1:

{ if(h>0) h ; else h = 23;

break;}

case 2:

{ if(p>0) p ; else p = 59;

break;}

case 3:

{ if(g>0) g ; else g = 59;

break;}

}

}

if(k1==0) { while(k1==0){} mode++; if(mode>3) break;}// nhan k1 lan 4 thi bat dau cap nhat vao 1307

}

}

CHƯƠNG 5 : KẾT LUẬN

Trang 15

Đồ án “ Sử dụng LCD 2 hàng 16 ký tự và 3 nút nhấn, lập trình điều khiển hiển thị giờ phút giây” được thực hiện tại trường Đại học Công nghệ TPHCM

Trong đồ án này nhóm đã áp dụng kiến thức từ môn học Vi điều khiển để thiết kế

sơ đồ nguyên lý sử dụng LCD 2 hàng 16 ký tự và 3 nút nhấn và sử dụng PIC16F88A lập trình điều khiển hiển thị giờ phút giây “ Nút nhấn A dùng để tăng giá trị 1 đơn vị cho mỗi lần nhấn , nút nhấn B dùng để giảm giá trị 1 đơn vị cho mỗi lần nhấn, nút nhấn C dùng để chỉ thị điều chỉnh giờ hay phút hay giây ” Nhóm đã thông qua internet cũng như vận dụng những kiến thức đã học và những gì giáo viên đã hướng dẫn để hoàn thành đề tài đồ án một cách tốt nhất

Đồ án vi điều khiển giúp chúng em hiểu rõ hơn cũng như thành thạo hơn trong việc thiết kế và lập trình vi điều khiển là một phần quan trọng trong quá trình học tập của sinh viên ngành kỹ thuật điện tử, tự động hóa và các ngành liên quan Đây là cơ hội

để sinh viên áp dụng kiến thức và kỹ năng đã học vào thực tế, đồng thời phát triển các kỹ năng mềm cần thiết cho công việc sau này

Nhóm em xin chân thành cảm ơn thầy Ngô Hà Quang Thịnh đã hướng dẫn cũng như giảng dạy giúp chúng em hoàn thành đồ án lần này Do đây là lần đầu tụi em làm đồ án nên không thể tránh khỏi được những thiếu sót Mong sự đóng góp ý kiến của giảng viên để tụi em có thể hoàn thiện và làm tốt hơn trong tương lai

Em xin cám ơn ạ !

Tài liệu tham khảo:

>>https://chotroihn.vn/nhung-dieu-ban-chua-biet-ve-thach-anh-trong-mach-dien-tu<<

>>https://www.nguyenhuuphuoc.info/<<

>>https://dientuviet.com/giao-tiep-lcd-16x2-voi-arduino/<<

>>https://dientutuonglai.com/gioi-thieu-pic-16f877a.html<<

Trang 16

>>https://www.youtube.com/watch?v=QzqULioL384<<

Ngày đăng: 01/11/2024, 14:38

HÌNH ẢNH LIÊN QUAN

Chương 3: Sơ đồ mạch điện - Đồ Án Môn Học Vi Điều Khiển Đề Tài Sử Dụng Lcd 2 Hàng 16 Ký Tự Và 3 Nút Nhấn, Lập Trình Điều Khiển Hiển Thị Giờ Phút Giây.pdf
h ương 3: Sơ đồ mạch điện (Trang 8)

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

TÀI LIỆU LIÊN QUAN

w