Hiển thị chữ cái đầu tiên của Họ tên Sinh viên lên Led MatrixHỆ THỐNG NHÚNG. cần file code và file mô phỏng trên proteus liên hệ qua zalo 0327697318. Hiển thị chữ cái đầu tiên của Họ tên Sinh viên lên Led MatrixHỆ THỐNG NHÚNG. cần file code và file mô phỏng trên proteus liên hệ qua zalo 0327697318.
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP KHOA ĐIỆN TỬ BÁO CÁO TIỂU LUẬN Môn học: HỆ THỐNG NHÚNG Đề tài: Hiển thị chữ Họ tên Sinh viên lên Led Matrix Giảng viên hướng dẫn : Tăng Cẩm Nhung Sinh viên thực 1: Bùi Lê Hải MSSV: K175520114082 Sinh viên thực 2: Lê Tuấn Anh MSSV: K175520114070 Lớp: K53CĐT-2 Thái Nguyên, ngày 19 tháng năm 2021 KHOA ĐIỆN TỬ Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam Độc lập – Tự – Hạnh Phúc o0o BÁO CÁO TIỂU LUẬN HỆ THỐNG NHÚNG Giảng viên hướng dẫn : Tăng Cẩm Nhung Sinh viên thực 1: Bùi Lê Hải MSSV: Sinh viên thực 2: K175520114082 Lê Tuấn Anh MSSV: K175520114070 Lớp: K53CĐT-2 Nội dung thực hiện: Hiển thị chữ Họ tên Sinh viên lên Led Matrix Ngày giao đề tài: 21 / 06 /2021 Ngày hoàn thành:19/07/2021 Giảng Viên HD (Ký tên) LỜI CẢM ƠN Trong q trình học tập mơn hệ thống nhúng hướng dẫn tận tình Cơ giáo hướng dẫn, với giúp đỡ bạn lớp, học phần nên trải qua nhiều khó khăn việc tìm kiếm tiếp cận kiến thức, với khó khăn dịch bệnh đến khóa học chúng em hoàn thành Qua em muốn gửi lời cảm ơn đến Cô Tăng Cẩm Nhung tận tình giúp đỡ em để em hồn thành tiểu luận Em xin chân thành cảm ơn! Sinh viên thực hiện: Bùi Lê Hải Lê Tuấn Anh NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Thái Nguyên, ngày19 tháng năm 2021 GIÁO VIÊN HƯỚNG DẪN (Ký ghi rõ họ tên) MỤC LỤC CHƯƠNG 1: GIỚI THIỆU YÊU CẦU - GIỚI HẠN ĐỀ TÀI 1.1 Giới thiệu đề tài 1.2 Giới hạn đề tài CHƯƠNG 2: THIẾT KẾ 2.1 Yêu cầu đề tài .7 2.2 Thiết kế sơ đồ khối 2.3 Thiết kế sơ đồ nguyên lí a Khối hiển thị: .7 b Khối tín hiệu .8 c Khối giải mã .8 d Khối nguồn e Một số linh kiện khác .10 2.4 Lưu đồ chương trình .12 a Yêu cầu điều khiển 12 b Lưu đồ 12 c Chương trình giải thích chương trình 13 CHƯƠNG 3: KẾT QUẢ THỰC HIỆN VÀ KẾT LUẬN 23 1) CHƯƠNG 1: GIỚI THIỆU YÊU CẦU - GIỚI HẠN ĐỀ TÀI 1.1 Giới thiệu đề tài Ngày nay, vi điều khiển có ứng dụng ngày rộng rãi thâm nhập ngày nhiều lĩnh vực kĩ thuật đời sống xã hội Hầu hết thiết bị từ đơn giản đến phức tạp thiết bị điều khiển tự động, thiết bị văn phòng thiết bị gia đình có dùng thiết bị vi điều khiển Các cửa hàng, siêu thị, cần có biển quảng cáo chạy LED để trang trí, để thu hút khách hàng Led Matrix có nhiều cơng dụng để chiếu sáng, quảng cáo, trang trí, Giá thành rẻ, dễ điều khiển, độ bền cao 1.2 Giới hạn đề tài Có nhiều loại Led Matrix, đề tài này, chúng em sử dụng Led Maxtrix 8x8 để phù hợp với yêu cầu đề tài Sử dụng Led Matrix nút bấm tương ứng để hiển thị chữ từ A đến Z Nguồn điện sử dụng nguồn AC 200V qua biến áp để phù hợp với nguồn định mức vi điều khiển linh kiện CHƯƠNG 2: THIẾT KẾ 2.1 Yêu cầu đề tài - Sử dụng số nút nhấn tương ứng với số ký tự bảng chữ tiếng anh - Sử dụng IC mở rộng cổng đầu vào 2.2 Thiết kế sơ đồ khối - Theo yêu cầu đề tài ta có sơ đồ khối hình: Hình 2.1 Sơ đồ khối mạch hiển thị * Chức khối: Khối nguồn: Có chức cung cấp nguồn cho toàn mạch để hoạt động Khối tín hiệu: Có chức phát tín hiệu khí bấm nút cung cấp cho khối giải mã Khối giải mã: Có chức nhận tín hiệu từ khối tín hiệu sang khối hiển thị Khối hiển thị: Có chức hiển thị kết thu được, đề tài hiển thị kí tự bảng chữ (Tiếng Anh) 2.3 Thiết kế sơ đồ nguyên lí a Khối hiển thị: Led Matrix có chức hiển thị kí tự từ A đến Z sau xử lí qua khối giải mã Led Matrix 8x8 cấu tạo từ Led đơn (8 chân kết nối đến cột chân kết nối đến hàng), cần chân vi điều khiển để kết nối đến hàng, chân vi điều khiển kết nối đến cột Để Led sáng: cấp điện áp VCC vào chân hàng GND vào chân cột Led + - Hình 2.2 Cấu tạo hình ảnh LedMatrix 8x8 * Nguyên lí quét LedMatrix Chốt tín hiệu vào hàng cột Duy trì trạng thái khoảng thời gian đủ để mắt người cảm nhận ( Khoảng 1ms ) Tắt hết Led Chốt tín hiệu vào hàng cột b Khối tín hiệu Trong đề tài sử dụng nút ấn để lấy tín hiệu đưa vào vi điều khiển Hình 2.3 Cấu tạo hình ảnh nút ấn Nút ấn loại công tắc đơn giản điều khiển hoạt động máy số loại trình Hầu hết, nút nhấn nhựa kim loại Hình dạng nút ấn phù hợp với ngón tay bàn tay để sử dụng dễ dàng Tất phụ thuộc vào thiết kế cá nhân Nút ấn có loại nút nhấn thường mở nút nhấn thường đóng Đề tài sử dụng nút nhấn thường mở c Khối giải mã - Chức khối giải mã nhận tín hiệu từ khối tín hiệu, xử lí đưa kết hiển thị lên LedMatrix - Để phù hợp với yêu cầu đề tài, chọn khối giải mã vi xử lí Pic 16F877A Hình 2.4 Sơ đồ chân PIC 16F877A * Chức chân theo nhóm chức năng: Nhóm vào/ra: Gồm port từ port A đến port E cho phép nhập xuất tín hiệu Nhóm vào ADC Ngõ vào so sánh Nhóm cấp xung Nhóm nhận xung ngoại T0 T1 Nhóm truyền liệu SPI Nhóm chức truyền liệu I2C Nhóm chức truyền liệu đồng ESUART Nhóm ngắt Nhóm nạp chương trình nhớ d Khối nguồn Sử dụng nguồn có dòng điện điện áp phù hợp cho linh kiện PIC16F877A: Nguồn 5V DC IC 74HC595: Nguồn 5V DC IC 74HC165: Nguồn 5V DC e Một số linh kiện khác Do Pic 16F877A bị hạn chế chân vào nên đề tài này, sử dụng thêm IC mở rộng đầu vào cho Pic để phug hợp với yêu cầu đề tài IC mở rộng đầu vào 74HC165 74HC165 IC dịch bit liệu song song sang nối tiếp cấp xung clock Các IC 74HC165 cịn có chức cấm đầu (ngừng đầu ra) dịch bit nối tiếp đầu sang IC bổ sung Có thể hiểu đơn giản 74HC595 dịch liệu từ chân input song song thành liệu chân output nhất, cịn có khả nối tiếp nhiều IC với Điều có nghĩa với chân vi điều khiển, ta mở rộng ngõ vào thành số lớn: 8, 16, 24, 32, … Hình 2.5 Sơ đồ chân IC 74HC165 Bảng 1: Chức chân IC 74HC165 Tên A,B,C,D,E,F,G,H CLK CLK INH GND QH QH(đảo) SER SH/LD VCC 10 Chức Ngõ vào song song Ngõ vào xung clock Cấm clock Khi mức cao khơng có thay đổi ngõ Chân nối đất Ngõ nối tiếp Ngõ nối tiếp đảo ngược Ngõ vào nối tiếp Dịch tải ngõ vào Khi mức cao liệu dịch đi, mức thấp nạp liệu từ ngõ vào song song Chân nguồn dương IC mở rộng đầu 74HC595 74HC595 ghi dịch (shift register) hoạt động giao thức nối tiếp vào song song (Serial IN Parallel OUT) Nó nhận liệu nối tiếp từ vi điều khiển sau gửi liệu qua chân song song Cũng kết nối song song nhiều ghi dịch Hình 2.6 Sơ đồ chân IC 74HC595 Bảng 2: Chức chân IC 74HC595 Tên Q1,Q2, ,Q GND Q7S MR SHCP STCP OE DS Q0 Vcc Chức Ngõ song song Chân nối đất Chân kết nối nhiều IC với Reset tất đầu mức thấp Ngõ vào xung clock Cập nhật liệu vào chân đầu Tắt đầu ra, hoạt động mức thấp Đầu vào liệu Chân đầu Chân cấp nguồn cho IC f Sơ đồ nguyên lí cho tồn mạch 11 Hình 2.7 Sơ đồ ngun lí cho tồn mạch Giải thích sơ đồ ngun lí Chương trình nạp vào vi xử lí để thực điều khiển cho tồn mạch Khi chạy chương trình, ta ấn phím bất kì, vi xử lí thực quét ma trận phím tương ứng với phím chữ mà ta thiết lập sẵn hiển thị lên LedMatrix kết tương ứng Ở có sử dụng LedMatrix nên cho phép hiển thị lúc kí tự 2.4 Lưu đồ chương trình a Yêu cầu điều khiển Với đề tài này, cần chương trình điều khiển cho nút bấm, điều khiển IC mở rộng để đưa tín hiệu vào xuất tín hiệu b Lưu đồ 12 c Chương trình giải thích chương trình Vì chương trình điều khiển dài nên thuyết minh trình bày số lệnh quan trọng để đảm bảo khách quan tránh dài dịng Chương trình viết phần mềm PIC C compiler //Khai báo biến IC HC595 cho PIC #define sdo RD0 // data (DS) #define sck RD1 // xung ghi (SH_CP) #define st 13 RD2 // xung xuất liệu (ST_CP) #define sdoIO TRISD0 #define sckIO TRISD1 #define stIO TRISD2 void HC595_init(void)//Thiết lập trạng thái ban đầu cho IC { sdoIO = 0; sckIO = 0; stIO = 0; sdo = 0; sck = 0; st = 0; } void HC595_send_high(void)//Thiết lập trạng thái mức cao { sdo = 1; sck = 0; sck = 1; st = 0; st = 1; } void HC595_send_low(void)//Thiết lập trạng thái mức thấp 14 { sdo = 0; sck = 0; sck = 1; st = 0; st = 1; } //Khai báo liệu cho LedMatrix unsigned char Q[8] = { 0x3C, 0x42, 0x81, 0x81, 0x85, 0x42, 0x3D, 0x01 }; unsigned char W[8] = { 0xFC, 0x03, 0x06, 0x18, 0x18, 0x06, 0x03, 0xFC }; unsigned char E[8] = { 0x00, 0x00, 0xFF, 0x89, 0x89, 0x89, 0x00, 0x00 }; unsigned char R[8] = { 0x00, 0x00, 0xFF, 0x88, 0x94, 0xE3, 0x00, 0x00 }; unsigned char T[8] = { 0x00, 0xC0, 0xC0, 0xFF, 0xFF, 0xC0, 0xC0, 0x00 }; unsigned char Y[8] = { 0x00, 0xF0, 0xF8, 0x0F, 0x0F, 0xF8, 0xF0, 0x00 }; unsigned char U[8] = { 0x00, 0xFC, 0x03, 0x01, 0x01, 0x03, 0xFC, 0x00 }; unsigned char I[8] = { 0x00, 0xC3, 0xC3, 0xFF, 0xFF, 0xC3, 0xC3, 0x00 }; unsigned char O[8] = { 0x00, 0x7E, 0x81, 0x81, 0x81, 0x81, 0x7E, 0x00 }; 15 unsigned char P[8] = { 0x00, 0xFF, 0xFF, 0x88, 0x88, 0x88, 0x70, 0x00 }; unsigned char A[8] = { 0x00, 0x7F, 0x48, 0x88, 0x88, 0x48, 0x7F, 0x00 }; unsigned char S[8] = { 0x00, 0x00, 0x61, 0x91, 0x89, 0x46, 0x00, 0x00 }; unsigned char D[8] = { 0x00, 0xFF, 0xFF, 0x81, 0x81, 0x81, 0x7E, 0x00 }; unsigned char F[8] = { 0x00, 0x00, 0xFF, 0x90, 0x90, 0x90, 0x00, 0x00 }; unsigned char G[8] = { 0x00, 0x7E, 0x81, 0x81, 0x89, 0x4F, 0x08, 0x00 }; unsigned char H[8] = { 0x00, 0xFF, 0xFF, 0x18, 0x18, 0xFF, 0xFF, 0x00 }; unsigned char J[8] = { 0x00, 0x82, 0x81, 0xFF, 0xFE, 0x80, 0x80, 0X00 }; unsigned char K[8] = { 0x00, 0x00, 0xFF, 0xFF, 0x18, 0x24, 0x42, 0x81 }; unsigned char L[8] = { 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x03, 0x03, 0x00 }; unsigned char Z[8] = { 0x83, 0x87, 0x8D, 0x99, 0xB1, 0xE1, 0xC1, 0x81 }; unsigned char X[8] = { 0x81, 0x42, 0x24, 0x18, 0x18, 0x24, 0x42, 0x81 }; unsigned char C[8] = { 0x00, 0x7E, 0x81, 0x81, 0x81, 0x42, 0x00, 0x00 }; unsigned char V[8] = { 0xC0, 0x30, 0x0C, 0x03, 0x03, 0x0C, 0x30, 0xC0 }; 16 unsigned char B[8] = { 0x00, 0xFF, 0xFF, 0x91, 0x91, 0x91, 0x6E, 0x00 }; unsigned char N[8] = { 0x00, 0x00, 0xFF, 0x60, 0x18, 0x06, 0xFF, 0x00 }; unsigned char M[8] = { 0x00, 0xFF, 0x70, 0x1C, 0x1C, 0x70, 0xFF, 0x00 }; //Khai báo biến IC HC165 thiết lập quét phím cho PIC #define Key_CLK RB4 #define Key_INH RB5 #define Key_SH_LD RB6 #define Key_input RB7 char Key[4][8] = { {'Q', 'W', 'E', 'R', 'T','Y','U','I'}, {'A', 'S', 'D', 'F', 'G','H','J','K'}, {'Z', 'X', 'C', 'V', 'B','N','M','O'}, {'P', 'L',} }; //Thiết lập trạng thái ban đầu cho IC điều khiển nút ấn void Keyboard_init(void) { trisB = 0x80; portB = 0xFF; port_B_pullups(0xFF); 17 Key_SH_LD = 0; Key_CLK = 1; Key_INH = 0; } int Keyboard_get_Key(void) { int xxx = 0; int data = 0; Key_SH_LD = 0; Key_CLK = 1; Key_INH = 0; Key_SH_LD = 1; for(int read = 0; read < 8; read++) { data = data