Kỹ Thuật Quét Led Ma Trận 8x32 - ECHIPKOOL SHOP

ECHIPKOOL SHOP - Thiết kế mạch - Lập trình - Gia công PCB - SMT
  • Home
  • Giới thiệu
  • Sản phẩm Đồng hồ Hot
  • Sản phẩm Đèn led
  • Liên hệ
  • Tin tức
  • Admin
Chat

Chat WhatsApp

Nguyễn Duy

Nội Dung

Thế Bang

Kỹ thuật Laser

Đào Nguyện

Kỹ thuật Coder

Hữu Nho

Sales 2

Danh mục Đóng
  • Linh kiện điện tử
  • Đèn led trang trí
  • Đồng hồ Led Decor
  • Đồng hồ treo tường
  • Nhà thông minh
  • Vẽ mạch - Lập trình
  • Gia công mạch in PCB
  • Gia công CNC LASER
  • Hàng thanh lý
  • Hàng khuyến mại
Giỏ hàng
Số lượng: 0
Tạm tính: 0
Phí vận chuyển:
Tổng cộng:
Xóa hết Đặt hàng Home Mạch Matrix Kỹ thuật quét led ma trận 8x32 Kỹ thuật quét led ma trận 8x32 Kỹ thuật quét led ma trận 8x32 Product Tags: Mạch Matrix Số lượng: Thêm vào giỏ Kỹ thuật quét led ma trận 8x32 đã được thêm vào giỏ hàng 1. Sơ đồ nguyên lý mạch Sơ đồ khối điều khiển Sơ đồ khối hiển thị 2. Mã nguồn Bảng mã ASCII cho các ký tự //******************BANG MA ASCII on LED matrix font 5x7 **************** // bang ma ASCII thong thuong bao gom 128 ky tu (tu 0 -> 127) // tuy nhien 32 (tu 0 -> 31) ky tu dau tien la ky tu dieu khien, // cho nen ta khong can phai tao font cho chung // khi doc ma ASCII trong chuong trinh ta lay gia tri doc duoc tru di 32 // la ra duoc font tuong ung unsigned char code code_Tab[97][6]={ 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,// SPACE 0 0xFF,0xFF,0xA0,0xFF,0xFF,0xFF,// ! 1 0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,// ' 2 0xEB,0x80,0xEB,0x80,0xEB,0xFF,// # 3 0xDB,0xD5,0x80,0xD5,0xED,0xFF,// $ 4 0xD8,0xEA,0x94,0xAB,0x8D,0xFF,// % 5 0xC9,0xB6,0xA9,0xDF,0xAF,0xFF,// & 6 0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,// ' 7 0xFF,0xE3,0xDD,0xBE,0xFF,0xFF,// ( 8 0xFF,0xBE,0xDD,0xE3,0xFF,0xFF,// ) 9 0xD5,0xE3,0x80,0xE3,0xD5,0xFF,// * 10 0xF7,0xF7,0xC1,0xF7,0xF7,0xFF,// + 11 0xFF,0xA7,0xC7,0xFF,0xFF,0xFF,// , 12 0xF7,0xF7,0xF7,0xF7,0xF7,0xFF,// - 13 0xFF,0x9F,0x9F,0xFF,0xFF,0xFF,// x 14 0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,// / 15 0xC1,0xAE,0xB6,0xBA,0xC1,0xFF,// 0 16 0xFF,0xBD,0x80,0xBF,0xFF,0xFF,// 1 17 0x8D,0xB6,0xB6,0xB6,0xB9,0xFF,// 2 18 0xDD,0xBE,0xB6,0xB6,0xC9,0xFF,// 3 19 0xE7,0xEB,0xED,0x80,0xEF,0xFF,// 4 20 0xD8,0xBA,0xBA,0xBA,0xC6,0xFF,// 5 21 0xC3,0xB5,0xB6,0xB6,0xCF,0xFF,// 6 22 0xFE,0x8E,0xF6,0xFA,0xFC,0xFF,// 7 23 0xC9,0xB6,0xB6,0xB6,0xC9,0xFF,// 8 24 0xF9,0xB6,0xB6,0xD6,0xE1,0xFF,// 9 25 0xFF,0xC9,0xC9,0xFF,0xFF,0xFF,// : 26 0xFF,0xA4,0xC4,0xFF,0xFF,0xFF,// // 27 0xF7,0xEB,0xDD,0xBE,0xFF,0xFF,// < 28 0xEB,0xEB,0xEB,0xEB,0xEB,0xFF,// = 29 0xFF,0xBE,0xDD,0xEB,0xF7,0xFF,// > 30 0xFD,0xFE,0xAE,0xF6,0xF9,0xFF,// ? 31 0xCD,0xB6,0x8E,0xBE,0xC1,0xFF,// @ 32 0x83,0xF5,0xF6,0xF5,0x83,0xFF,// A 33 0xBE,0x80,0xB6,0xB6,0xC9,0xFF,// B 34 0xC1,0xBE,0xBE,0xBE,0xDD,0xFF,// C 35 0xBE,0x80,0xBE,0xBE,0xC1,0xFF,// D 36 0x80,0xB6,0xB6,0xB6,0xBE,0xFF,// E 37 0x80,0xF6,0xF6,0xFE,0xFE,0xFF,// F 38 0xC1,0xBE,0xB6,0xB6,0xC5,0xFF,// G 39 0x80,0xF7,0xF7,0xF7,0x80,0xFF,// H 40 0xFF,0xBE,0x80,0xBE,0xFF,0xFF,// I 41 0xDF,0xBF,0xBE,0xC0,0xFE,0xFF,// J 42 0x80,0xF7,0xEB,0xDD,0xBE,0xFF,// K 43 0x80,0xBF,0xBF,0xBF,0xFF,0xFF,// L 44 0x80,0xFD,0xF3,0xFD,0x80,0xFF,// M 45 0x80,0xFD,0xFB,0xF7,0x80,0xFF,// N 46 0xC1,0xBE,0xBE,0xBE,0xC1,0xFF,// O 47 0x80,0xF6,0xF6,0xF6,0xF9,0xFF,// P 48 0xC1,0xBE,0xAE,0xDE,0xA1,0xFF,// Q 49 0x80,0xF6,0xE6,0xD6,0xB9,0xFF,// R 50 0xD9,0xB6,0xB6,0xB6,0xCD,0xFF,// S 51 0xFE,0xFE,0x80,0xFE,0xFE,0xFF,// T 52 0xC0,0xBF,0xBF,0xBF,0xC0,0xFF,// U 53 0xE0,0xDF,0xBF,0xDF,0xE0,0xFF,// V 54 0xC0,0xBF,0xCF,0xBF,0xC0,0xFF,// W 55 0x9C,0xEB,0xF7,0xEB,0x9C,0xFF,// X 56 0xFC,0xFB,0x87,0xFB,0xFC,0xFF,// Y 57 0x9E,0xAE,0xB6,0xBA,0xBC,0xFF,// Z 58 0xFF,0x80,0xBE,0xBE,0xFF,0xFF,// [ 59 0xFD,0xFB,0xF7,0xEF,0xDF,0xFF,// \ 60 0xFF,0xBE,0xBE,0x80,0xFF,0xFF,// ] 61 0xFB,0xFD,0xFE,0xFD,0xFB,0xFF,// ^ 92 0x7F,0x7F,0x7F,0x7F,0x7F,0xFF,// _ 63 0xFF,0xFF,0xF8,0xF4,0xFF,0xFF,// ' 64 0xDF,0xAB,0xAB,0xAB,0xC7,0xFF,// a 65 0x80,0xC7,0xBB,0xBB,0xC7,0xFF,// b 66 0xFF,0xC7,0xBB,0xBB,0xBB,0xFF,// c 67 0xC7,0xBB,0xBB,0xC7,0x80,0xFF,// d 68 0xC7,0xAB,0xAB,0xAB,0xF7,0xFF,// e 69 0xF7,0x81,0xF6,0xF6,0xFD,0xFF,// f 70 0xF7,0xAB,0xAB,0xAB,0xC3,0xFF,// g 71 0x80,0xF7,0xFB,0xFB,0x87,0xFF,// h 72 0xFF,0xBB,0x82,0xBF,0xFF,0xFF,// i 73 0xDF,0xBF,0xBB,0xC2,0xFF,0xFF,// j 74 0xFF,0x80,0xEF,0xD7,0xBB,0xFF,// k 75 0xFF,0xBE,0x80,0xBF,0xFF,0xFF,// l 76 0x83,0xFB,0x87,0xFB,0x87,0xFF,// m 77 0x83,0xF7,0xFB,0xFB,0x87,0xFF,// n 78 0xC7,0xBB,0xBB,0xBB,0xC7,0xFF,// o 79 0x83,0xEB,0xEB,0xEB,0xF7,0xFF,// p 80 0xF7,0xEB,0xEB,0xEB,0x83,0xFF,// q 81 0x83,0xF7,0xFB,0xFB,0xF7,0xFF,// r 82 0xB7,0xAB,0xAB,0xAB,0xDB,0xFF,// s 83 0xFF,0xFB,0xC0,0xBB,0xBB,0xFF,// t 84 0xC3,0xBF,0xBF,0xDF,0x83,0xFF,// u 85 0xE3,0xDF,0xBF,0xDF,0xE3,0xFF,// v 86 0xC3,0xBF,0xCF,0xBF,0xC3,0xFF,// w 87 0xBB,0xD7,0xEF,0xD7,0xBB,0xFF,// x 88 0xF3,0xAF,0xAF,0xAF,0xC3,0xFF,// y 89 0xBB,0x9B,0xAB,0xB3,0xBB,0xFF,// z 90 0xFB,0xE1,0xE0,0xE1,0xFB,0xFF,// ^ 62 0xE3,0xE3,0xC1,0xE3,0xF7,0xFF,// -> 93 0xF7,0xE3,0xC1,0xE3,0xE3,0xFF,// <- 94 0xEF,0xC3,0x83,0xC3,0xEF,0xFF,// 95 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,// BLANK CHAR 96 }; Chương trình chính: #include <REGX52.H> #include <string.h> #include <font.c> sbit SDA = P2^0; sbit SCL = P2^1; sbit STR = P2^2; #define DataPort P1 #define With_of_font 6 //------------------------------------------- //------------------------------------------- unsigned char *String_input="hello"; // thay doi chu chay bat ky o day !! unsigned int Pos=0,lengh_STR; unsigned char Tic=0; unsigned char sel_font; //biến dùng để chọn font chữ unsigned char col_font; //biến dùng để chọn cột của font chữ void main () { unsigned char Temp_code; unsigned int j; TMOD=0x01; TH0=TL0=-100; TR0=1; ET0=1; lengh_STR = strlen(String_input)*6; EA=1; while(1) { SDA=1; for(j=Pos;j<32+Pos;j++) { sel_font= String_input[(j%lengh_STR)/With_of_font]-32; col_font= j%With_of_font; Temp_code=code_Tab[sel_font][col_font]; DataPort=0xFF; SCL=1; SCL=0; STR=1; STR=0; DataPort = Temp_code; SDA=0; } } } void INT_Timer0()interrupt 1 { Tic++; if(Tic==2) { Tic=0; Pos++; if(Pos>=lengh_STR) Pos=0; } } 3. Hoạt động Chương trình hoạt động theo phương pháp tra bảng mã ascii tương ứng của ký tự cần hiển thị. Bộ mã ascii được lưu trong file “font.c”. Cần lưu ý, bộ mã ascii thông thường bao gồm 128 ký tự, bắt đầu từ 0 đến 127. Trong đó 32 ký tự đầu tiên từ 0 đến 31 là ký tự điều khiển. Các ký tự này không có tác dụng trong việc hiển thị, cho nên khi tạo bảng font ta bỏ qua 32 ký tự này, nên số ký tự hiển thị chỉ còn 97 ký tự. Ta tiến hành phân tích chương trình bằng cách tách ra thành 3 đoạn nhỏ để dễ hiểu và quản lý chương trình hơn. a. Đọc độ dài của chuỗi ký tự hiển thị lengh_STR = strlen(String_input)*6 Xem đoạn code trên ta thấy nó sử dụng hàm strlen(). Đây là hàm trả về độ dài của một chuỗi ký tự. Hàm này thuộc thư viện string.h do đó để sử dụng hàm này ta phải include thư viện string.h vào chương trình. Như đã thấy trong bộ font của ta là font 5x7 bao gồm 5 cột và 7 dòng. Gọi là font 5x7 nhưng thực tế nó là font 6x7 vì độ rộng một ký tự là 6 cột tuy nhiên có một cột ta dùng làm khoảng cách giữa các ký tự với nhau để các ký tự không bị sát nhau khi hiển thị. Do đó độ rộng thực tế của một ký tự là 6. Vì vậy, độ rộng của một chuỗi ký tự thực tế sẽ là giá trị trả về của hàm strlen() và được nhân với độ rộng một ký tự là 6. Giá trị này được lưu trong biến lengh_STR. Biến này có tác dụng quan trọng trong việc lấy giá trị ascii của từng ký tự sau này. VD: Có chuỗi ký tự là *string=”1234” thì câu lệnh Do_dai_chuoi = strlen(string)*6; Sẽ trả về giá trị là 24 và được lưu trong biến Do_dai_chuoi. b. Tách và xuất chuỗi ra led ma trận Ta xét đoạn code sau: while(1) { SDA=1; for(j=Pos;j<32+Pos;j++) { sel_font= String_input[(j%lengh_STR)/With_of_font]-32; col_font= j%With_of_font; Temp_code=code_Tab[sel_font][col_font]; DataPort=0xFF; SCL=1; SCL=0; STR=1; STR=0; DataPort = Temp_code; SDA=0; } } Trong đoạn code trên ta chú ý đến câu lệnh được bôi đỏ là Temp_code=code_Tab[sel_font][col_font]; Ta xét 2 đối số nằm trong code_Tab[ ][ ] Ø sel_font= String_input[(j%lengh_STR)/With_of_font]-32; - Đoạn code này có tác dụng trả về mã ascii tương ứng của ký tự tương ứng trong chuỗi hiển thị. Với With_of_font = 6 là độ rộng của font mà ta đã định nghĩa trong chương trình bằng tiền tố #define. - Tuy nhiên như đã nói từ đầu là bảng mã ascii này ta bỏ qua 32 ký tự điều khiển đầu tiên, do đó ta cần trừ đi 32 để đúng với vị trí font trong bảng mã font đã tạo. VD: Khi ta hiển thị chữ “a” thì câu lệnh trên sẽ trả về giá trị là 97 – 32 = 65, ứng với vị trí chữ “a” trong bảng mã ta đã tạo trong file font.c - Biến j là biến đếm của vòng lặp for(j=0;j<32;i++), trong đó 32 là số cột của led ma trận chứ không phải như “32” ở đoạn code phía trên Ø col_font= j%With_of_font; - Đoạn code này có tác dụng chọn cột của font. Bộ font của ta thực tế là font 6x7. Đoạn code này sẽ lấy giá trị của biến đếm j chia lấy dư cho with_of_font=6 nghĩa là j%6. - Lưu ý: Một số a chia lấy phần dư với một số b thì phần dư luôn có giá trị lớn hơn hoặc bằng 0 và nhỏ hơn b (0 <= phần dư < b). - Do đó câu lệnh j%With_of_font luôn có giá trị từ 0 đến 5, tương ứng với 6 cột của font. c. Dịch chuỗi cần hiển thị từ phải qua trái Ta xét đoạn code trong chương trình ngắt Timer0 void INT_Timer0()interrupt 1 { Tic++; if(Tic==2) { Tic=0; Pos++; if(Pos>=lengh_STR) Pos=0; } } Trong đoạn chương trình này, biến Tic có tác dụng tăng hoặc giảm thời gian dịch chuỗi. Ta có thể bỏ biến Tic, thay vào đó là thay đổi giá trị nạp vào thanh ghi TH0 và TL0 để thay đổi thời gian dịch. Biến Pos kết hợp với biến đếm j ở đoạn chương trình thứ 2 có tác dụng dịch phải chuỗi cần hiển thị Nguồn tri-iuh Điện Tử | Tin Học - echipkool.com - Chia sẻ kiến thức - Kết nối đam mê điện tử

Related

Popular Posts

Hướng dẫn Mạch đồng hồ Giờ phút giây - Ngày tháng năm

Hướng dẫn Mạch đồng hồ Giờ phút giây - Ngày tháng năm

Hướng dẫn làm mạch đèn trái tim 32 led - Valentine

Hướng dẫn làm mạch đèn trái tim 32 led - Valentine

Hướng dẫn làm led cube 5x5x5 với 89S52 !!

Hướng dẫn làm led cube 5x5x5 với 89S52 !!

Hướng dẫn làm mạch trái tim ( Update)

Hướng dẫn làm mạch trái tim ( Update)

Hướng dẫn làm mạch đồng hồ thời gian thực ds1307

Hướng dẫn làm mạch đồng hồ thời gian thực ds1307

Hướng dẫn làm mạch đồng hồ dùng led đơn

Hướng dẫn làm mạch đồng hồ dùng led đơn

Maps

Linh kiện

  • www.linhkiencuatui.com
  • Linh Kiện điện tử
  • Linh Kiện đèn led
  • Pin - sạc dự phòng
  • Linh Kiện CNC

Đèn led trang trí

  • www.godenled.com
  • Đèn led tủ bếp
  • Đèn led tủ rượu
  • Đèn led cầu thang
  • Đèn led pháo hoa

Đồng hồ led

  • www.dientucuatui.com
  • www.dongholed.com
  • Đồng hồ treo tường led
  • Đồng hồ đo nhiệt độ
  • Đồng hồ đếm ngược

Nhà thông minh

  • www.smarthomesh.com
  • Đèn Led gương nhà tắm
  • Đèn Led tủ bếp thông minh
  • Đèn Led tủ quần áo cảm ứng
  • Đèn Led tủ giày cảm ứn

Liên kết đối tác

Vận chuyển

Giới thiệu về chúng tôi

CÔNG TY TNHH ĐIỆN TỬ ECHIPKOOL Chuyên sản xuất kinh doanh Đèn led - Đồng Hồ Led - SmartHome - Địa chỉ: Ngõ 176 - Đ. Phú Diễn - Bắc Từ Liêm - Hà Nội - Hotline/ Zalo: 03.6666.1219 - 0333.17.1699 - Email: [email protected] Luôn chân thành trung thực phục vụ quý khách hàng Linh Kiện Điện Tử - Đèn led gỗ, Đèn led trang trí Decor - Đồng hồ Led Nhiệt Độ/ Độ ẩm - Đồng hồ thời gian thực - Đồng hồ đếm ngược led - Thiết bị Smarthome Boardlink/ Sonoff/ Tuya - Cầu thang led cảm ứng thông minh - Giải pháp công nghệ Nội Dung: Nguyễn Đình Duy Kỹ thuật Laser: Vũ Thế Bang Kỹ thuật Coder: Đào Nguyện Kỹ Thuật Coder: Hữu Nho Marketing: Nguyễn Hằng

Copyright © Buy by echipkool.com - Modernshop
    Liên kết Đối tác:

Từ khóa » Nguyên Lý Quét Led Ma Trận