các pro cho E hỏi về cái lập trình Keil C cho LED matrix
E đang làm bt lớn về Mạch LED matrix 16x84, nhưng mà đang mắc cái phần viết chương trình, hôm trước E nhờ A Ngô Hải Bắc, Nhưng A đang bận
E sưu tầm dc 1 cái code trên mạng về.
code:
và file FONT_CODE.H
code:
khai báo unsigned char code Bmp002[]={}
thì lấy những giá trị kia bằng cách nào, theo e biết đó la mã ký tự
rất mong dc các pro jup đỡ ạ
E đang làm bt lớn về Mạch LED matrix 16x84, nhưng mà đang mắc cái phần viết chương trình, hôm trước E nhờ A Ngô Hải Bắc, Nhưng A đang bận
E sưu tầm dc 1 cái code trên mạng về.
code:
Code:
/* CHUONG TRINH HIEN led matric 16x64 Version: 2.3 using test Date: 3-10-2009 Programer: huyhtqn@gmail.com Checksum: Hien thi led matric */ #include "regx52.h" #include "font_code.h" #define scan_led P2 ///////////////////////////// //////THIET LAP BAN DAU////// #define so_led 8 //boi cu?a 8 #define so_hang 16 //chieu cao cua font chu #define multi so_hang+1 // #define cot_font 11 //chieu ngang cua font chu #define en_run 1 //1: chay <----> 0 dung //////////////////////////// typedef unsigned char uchar; typedef unsigned int uint; sbit rck=P3^2; sbit srck=P3^0; sbit ser_in=P3^1; sbit en_hc154=P3^3; bit run=0,en=en_run; idata unsigned char display_buffer[so_hang][so_led]; idata unsigned char shift_buffer[so_hang]; unsigned char row_buffer[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char row_led[16]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15}; unsigned char tocdoh=0xf6,tocdol=0x00; unsigned char kitu_code=0; char row=multi; void shift_dataled(); void test_led(); void clear_buffer(); void run_string(); void copy_datacode(); void scan_dataled_code(); void init_interrupt(); //////////////////////////////// ///////ngat timer 0//////////// void isr_timer0() interrupt 1 using 1 { TH0=tocdoh,TL0=tocdol; if(--row==-1) row=multi-1; shift_dataled(); if(row==so_hang) run=1; } //////////////////////////////// /////////chuong trinh chinh///// void main() { unsigned char w; init_interrupt(); test_led(); clear_buffer(); if(en==0) scan_dataled_code(); while(1) { if((run==1)&(en==1)){ IE&=0xfd; run_string(),run=0; if(++w==8) copy_datacode(),w=0; row=so_hang; IE|=0x02; } } } //////////////////////////////// ////////kiem tra led//////////// void test_led() { unsigned char i,j; unsigned int t_delay=10000; for(i=0;i<so_hang;i++) for(j=0;j<so_led;j++) display_buffer[i][j]=0xff; while(--t_delay); } void clear_buffer() { unsigned char i,j; for(i=0;i<so_hang;i++) for(j=0;j<so_led;j++) display_buffer[i][j]=0; } //////////////////////////////// ///////dich data va quet led//// void shift_dataled() { char i,j; srck=0; rck=0; if(row<so_hang){ for(i=0;i<so_led;i++) for(j=0;j<8;j++){ ser_in=display_buffer[row][i]&row_buffer[7-j]; srck=1; srck=0; } en_hc154=1; rck=1; rck=0; scan_led=row_led[row]; en_hc154=0; } } void copy_datacode() { unsigned char i; static unsigned char j; for(i=0;i<so_hang;i++) shift_buffer[i]=Bmp002[Bmp002[2]*i+3+j]; if(++j==Bmp002[2]) j=0; } //////////////////////////////// ////////chay chuoi////////////// void run_string() { unsigned char i,j; for(i=0;i<so_hang;i++) { for(j=0;j<so_led;j++) { display_buffer[i][j]<<=1; if(j!=(so_led-1)) display_buffer[i][j]|=((display_buffer[i][j+1]&0x80)>>7); else display_buffer[i][j]|=((shift_buffer[i]&0x80)>>7); } shift_buffer[i]<<=1; } } void scan_dataled_code() { unsigned char i,j; for(i=0;i<so_hang;i++){ for(j=0;j<so_led;j++){ display_buffer[i][j]=Bmp002[Bmp002[2]*i + 3+j]; } } } //////////////////////////////// //////khoi dong ngat//////////// void init_interrupt() { TMOD=0x01; //timer0 che do 1 16bit TH0=0xF8; TL0=0x30; TR0=1; TR1=1; IE=0x82; //cho phep ngat timer0 }
code:
Code:
unsigned char code Bmp002[]= { /*------------------------------------------------------------------------------ ; If font display distortion, please check Fonts format of setup. ; Source file / text : Líp ®iÖn tö K2 ; Width x Height (pixels) :243X16 ; Font Format/Size : Monochrome LCD Fonts ,Horizontal scan ,Big endian order/496Byte ; Font make date : 10/11/2009 7:32:20 AM ------------------------------------------------------------------------------*/ 0xF3,0x10,0x1F,//Width pixels,Height pixels,Width bytes 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x01,0x00,0x00,0x00, 0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x01,0xFE,0x01,0x80,0x00,0x00,0x1F,0x3C,0x38,0x00,0x00, 0x00,0x01,0x00,0x3F,0x9F,0x1F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0xF8,0x03,0x00,0x00,0x00,0x7F,0xBC,0x28,0x00,0x00,0x02, 0x02,0x18,0x1F,0x08,0x63,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0xF8,0x04,0x38,0x00,0x00,0x0F,0x3C,0x64,0x00,0x00,0x06,0x04, 0x38,0x1F,0x10,0x7B,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0xF8,0x00,0x38,0x00,0x00,0x4F,0x00,0x00,0x00,0x00,0x0E,0x00,0x3C, 0x1F,0x30,0x7B,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0xF8,0x07,0xF3,0xEE,0x01,0xFF,0x7C,0x7C,0x7D,0xC0,0x3F,0xFF,0xF0,0x1F, 0x78,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0xF8,0x0E,0x79,0xFF,0x01,0xEF,0x3C,0xEE,0x3F,0xE0,0x1E,0x3D,0xE0,0x1F,0xF8, 0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xF8,0x1E,0x79,0xEF,0x83,0xEF,0x3D,0xEF,0x3D,0xE0,0x1E,0x3D,0xE0,0x1F,0x7C,0x0E, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8, 0x5E,0x79,0xEF,0x83,0xEF,0x3D,0xFF,0x3D,0xE0,0x1E,0x3D,0xE0,0x1F,0x7E,0x10,0x20, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x5E, 0x79,0xEF,0x03,0xEF,0x3D,0xE0,0x3D,0xE0,0x1E,0xBD,0xE0,0x1F,0x3E,0x2F,0xE0,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0xCE,0x71, 0xEF,0x01,0xEF,0x3C,0xE1,0x3D,0xE0,0x1E,0xBD,0xE0,0x1F,0x1F,0x7F,0xE0,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xC7,0xE1,0xFE, 0x00,0xFF,0xFE,0x76,0x7D,0xF0,0x1F,0x3F,0xF0,0x3F,0xBF,0xFF,0x80,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x00, 0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0x00, 0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x38, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, };
thì lấy những giá trị kia bằng cách nào, theo e biết đó la mã ký tự
rất mong dc các pro jup đỡ ạ