Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
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