1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo môn học kỹ thuật vi điều khiển 1 interfacing lcd with pic16f877a

25 1 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 25
Dung lượng 1,9 MB

Nội dung

TR ƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG   KHOA ĐIỆN –  ĐIỆN TỬ   NGÀNH ĐIỆN TỬ - VIỄN THÔNG  TRIỆU KHÁNH 420H0309 NGUYỄN HỮU KHÁNH 420H0308  LÊ HỒNG KHÁNH 420H0307 BÁO CÁO MƠN HỌC  Kỹ Thuật Vi Điều Khiển 1   Người hướng dẫn  TS Nguyễn Kiều Tam  THÀNH PHỐ HỒ CHÍ MINH, Tháng 12 NĂM 2022   BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển MỤC LỤC  Lờ i cảm ơn Interfacing LCD with PIC16F877A Các linh kiện: .3 Mô tả linh kiện: Mô tả mạch phần mềm Proteus 8: Mô tả code phần mềm PIC C Compiler: 4.1 Tập tin file lcd.h 4.2 Tập tin file main.c .16 Mô tả nguyên lý hoạt động: 21 5.1 Mô lần 1: 21 5.2 Mô lần 2: 22 5.3 Mô lần 3: 23 Tài liệu tham khảo 23 Trang BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển Lời cảm ơn  Đầu tiên, chúng em xin gửi lờ i cảm ơn chân thành đến Trường Đạ i học Tôn Đức Thắng đưa môn họ c K ỹ Thuật Vi Điều Khiển vào trương trình giảng d ạy Đặc  biệt, chúng em xin gửi lờ i cảm ơn sâu sắc đế n giảng viên bộ môn  –   Thầy Nguyễn Kiều Tam dạy dỗ, truyền đạt kiến thức quý báu cho em suốt thờ i gian học t ậ p vừa qua Trong thờ i gian tham gia lớ   p học K ỹ Thuật Vi Điều Khiển Thầy, chúng em có thêm cho nhiề u ki ến thức bổ ích, tinh thần học tậ p hiệu quả, nghiêm túc Đây chắ c chắn sẽ là kiến thức quý báu, hành trang để em có thể vững bướ c sau Bộ mơn K ỹ Thuật Vi Điều Khiển mơn học thú vị, vơ bổ ích có tính thực tế cao Đảm bảo cung cấp đủ kiến thức, gắn liền vớ i nhu cầu thực tiễn sinh viên Tuy nhiên, vốn kiến thức nhiều hạn chế và khả năng tiế p thu thực tế còn nhiều  bỡ  ngỡ  Mặc dù chúng em cố  gắng hết s ức chắn tiểu luận khó có thể tránh khỏi thiếu sót nhiều chỗ cịn chưa xác, kính mong Thầy xem xét góp ý để  bài tiểu luận chúng em đượ c hoàn thiện Chúng em xin chân thành cảm ơn!  Trang BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển Interfacing LCD with PIC16F877A  Các linh kiện:  Tên linh kiện Hình ảnh minh họa CAP CAP-POL BUTTON MINRES10K Trang BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển LM016L PIC16F877A CRYSTAL POT-HG Trang BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển Mô tả linh kiện:  - - - - - BUTTON: Một cơng tắc đơn cực đơn giả n Nó có đầu m ột đầu vào Cơng tắc sẽ được đóng ngắt k ết nối hồn tồn Chúng hoàn hảo cho việc chuyển đổi bật tắt Chúng dạng công tắc tạm thờ i r ất phổ biến CAP: Tụ điện khơng phân cực tụ điện khơng có cực âm dương Hai điện cực tụ điện không phân cực có thể đượ c cắm ngẫu nhiên vào mạch sẽ  khơng bị rị r ỉ CAP-POL: Tụ điện phân cực tụ điện có cực dương âm cụ thể Trong sử dụng tụ điện mạch điện, cần ý r ằng chúng đượ c k ết nối theo cực CRYSTAL: Tinh thể thạch anh MINRES10K: Điện tr ở   POT-HG: Là điện tr ở  có thể chỉnh để thay đổi giá tr ị  PIC16F877A: Vi điều khiển PIC 40 chân đượ c sử dụng hầu hết dự án ứ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 có bộ định thờ i bit bộ định thờ i 16 Bit LM016L: Nó có thể hiển thị 16 ký tự mỗi dịng có dịng vậ y Trong hình LCD này, ký tự đượ c hiển thị trong ma tr ận pixel 5x7 Màn hình ma tr ận điểm chữ số thơng minh 16 x có khả năng hiển thị 224 ký tự và biểu tượ ng khác Gồm 14 chân: Chân số  Tên Chức năng     Chân nối đất cho LCD, thiết k ế mạch ta nối chân vớ i GND mạch điều khiển    Chân cấ p nguồn cho LCD, thiết k ế m ạch ta nối chân vớ i VCC=5V mạch điều khiển    RS Chân dùng để  điều chỉnh độ  tương phản LCD Chân chọn ghi (Register select) Nối chân RS với logic “0” (GND) hoặ c logic “1” (VCC) để  chọn ghi + Logic “0”: Bus DB0-DB7 sẽ  nối vớ i ghi lệnh IR LCD (ở  ch ế  độ  “ghi” - write) n ối vớ i bộ đếm địa chỉ của LCD (ở  chế độ “đọc” - read) + Logic “1”: Bus DB0-DB7 sẽ nối vớ i ghi dữ  liệu DR bên LCD Trang BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển R/W E 7-14 DB0-DB7 Chân chọn chế  độ  đọc/ghi (Read/Write) Nối chân R/W với logic “0” để LCD hoạt động ở  chế độ ghi, nối với logic “1” để LCD ở   chế độ đọc Chân cho phép (Enable) Sau tín hiệu đượ c đặt lên bus DB0-DB7, lệnh chỉ đượ c chấ p nhận có xung cho phép chân E + Ở chế độ ghi: Dữ liệu ở  bus sẽ đượ c LCD chuyển vào (chấ p nhận) ghi bên phát xung (high-to-low transition) tín hiệu chân E + Ở chế độ đọc: Dữ liệu sẽ đượ c LCD xuất DB0DB7 phát cạnh lên (low-to-high transition) ở  chân E đượ c LCD giữ ở   bus đế n chân E xuống mức thấ p Tám đườ ng bus dữ li ệu dùng để  trao đổi thông tin vớ i MPU Có ch ế độ sử dụng đườ ng bus này: + Chế độ 8 bit: Dữ liệu đượ c truyền cả 8 đườ ng, vớ i bit MSB bit DB7 + Ch ế  độ 4 bit : Dữ li ệu đượ c truyền đườ ng từ DB4 tớ i DB7, bit MSB DB7 Mô tả mạch phần mềm Proteus 8:  Trang BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển Mô tả code phần mềm PIC C Compiler:  4.1 Tập tin file lcd.h  #define _lcd_h_ #include #use delay(clock=4000000) void lcd_init(void); // Hàm dùng để khởi động LCD.C // Hàm xử ly doc thong tin (dang bit) tu thong tin  byte lcd_read_byte(void); dang bit tu LCD.C  byte lcd_read_nibble(void); LCD.C // Hàm doc thong tin (dang bit / nibble) tu void lcd_send_byte(byte address, byte n); // Hàm gui thong tin (byte) toi LCD.C tai dia chi (address) void lcd_send_nibble(byte n); LCD.C // Hàm gui thong tin (dang bit / nibble) sang void lcd_gotoxy(byte x, byte y); // Hàm thiet lap vi tri ghi tren LCD.C char lcd_getc(byte x, byte y); void lcd_putc(char c); // Hàm tra ve ky tu tai vi tri (x,y) tren LCD.C // Hàm se hien thi ky tu c tai vi tri ke tiep tren LCD.C // Khai bao bien // Dinh nghia cac thong so #define LCD_RS_PIN #define LCD_RW_PIN PIN_B1 // Cac ket noi LCD.C voi vi dieu khien PIN_B2 #define LCD_ENABLE_PIN PIN_B3 #define LCD_DATA4 PIN_B4 #define LCD_DATA5 PIN_B5 #define LCD_DATA6 PIN_B6 #define LCD_DATA7 PIN_B7 //!#define LCD_RS_PIN PIN_C0 // Cac ket noi LCD.C voi vi dieu khien Trang BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển //!#define LCD_RW_PIN PIN_C1 //!#define LCD_ENABLE_PIN PIN_C2 //!#define LCD_DATA4 PIN_C3 //!#define LCD_DATA5 PIN_C4 //!#define LCD_DATA6 PIN_C5 //!#define LCD_DATA7 PIN_C6 /* #define LCD_RS_PIN #define LCD_RW_PIN PIN_D1 // Cac ket noi LCD.C voi vi dieu khien PIN_D2 #define LCD_ENABLE_PIN PIN_D3 #define LCD_DATA4 PIN_D4 #define LCD_DATA5 PIN_D5 #define LCD_DATA6 PIN_D6 #define LCD_DATA7 PIN_D7 */ #define lcd_output_enable(x) output_bit(LCD_ENABLE_PIN, x) // Lenh dieu khien chan LCD_ENABLE_PIN #define lcd_enable_tris() output_drive(LCD_ENABLE_PIN) #define lcd_output_rs(x) output_bit(LCD_RS_PIN, x) // Lenh dieu khien chan LCD_RS_PIN #define lcd_rs_tris() output_drive(LCD_RS_PIN) #define lcd_output_rw(x) output_bit(LCD_RW_PIN, x) // Lenh dieu khien chan LCD_RW_PIN #define lcd_rw_tris() output_drive(LCD_RW_PIN) Trang BÁO CÁO MÔN HỌC K ỹ Thuật Vi Điều Khiển #define lcd_line_one 0x00 // Dia chi RAM LCD.C cho hang thu #define lcd_line_two 0x40 // Dia chi RAM LCD.C cho hang thu #define lcd_line_three 0x14 #define lcd_line_four 0x54 #define LCD_TYPE 0x02 0x01=5x10, 0x02=2 lines // Thong tin cau hinh LCD.C: 0x00=5x7, // Dinh nghia cac hang so  byte const LCD_INIT_STRING[4] = {0x28 | (LCD_TYPE

Ngày đăng: 23/10/2023, 10:28

w