(3),main.h #define __MAIN_H #include
2,code_area.c LED点阵的字库
//英文的ASCII为97-122(十进制) 61-7A(ASCII码) #include
unsigned char code num_dotmatrix[10][16]={ /*-- 文字: 0 --*/
/*-- 宋体12; 此字体下对应的点阵为:宽x高=8x16 --*/
0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF,/*\*/
0xFF,0xFF,0xFF,0xEF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xFB,0xFB,0xF7,0xEF,0xDF,0xBD,0x81,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xFB,0xE7,0xFB,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFB,0xF3,0xEB,0xDB,0xDB,0xBB,0xBB,0x81,0xFB,0xFB,0xE1,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0x81,0xBF,0xBF,0xBF,0xA7,0x9B,0xFD,0xFD,0xBD,0xBB,0xC7,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xE3,0xDB,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0xDB,0xE7,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0x81,0xBB,0xBB,0xF7,0xF7,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xDB,0xE7,0xDB,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF,/*\*/
0xFF,0xFF,0xFF,0xE7,0xDB,0xBD,0xBD,0xBD,0xD9,0xE5,0xFD,0xFD,0xDB,0xC7,0xFF,0xFF/*\};
unsigned char code picture_code[128]={ /*--图片--*/ /*--宽度16*64*/
0xFF,0xFF,0xFF,0xE0,0x7F,0xFE,0x03,0xFF,0xF8,0x01,0xFF,0xCF,0x3F,0xFC,0xF8,0x7F, 0xF3,0xFC,0xFF,0xBF,0x9F,0xF3,0xFF,0x3F,0xE6,0x66,0x3E,0x7F,0xCF,0xF5,0xAD,0xDF, 0xEC,0x63,0xBE,0xC4,0x27,0xEC,0x21,0xCF,0xE9,0x5B,0xBC,0xFF,0xF3,0xCE,0x73,0xEF, 0xEF,0xFF,0xBD,0xFF,0xFB,0xDF,0xFF,0xEF,0xEF,0xFF,0xBD,0xFF,0xF3,0xDF,0xFF,0xEF, 0xEE,0xF7,0xBC,0xE0,0x77,0xCC,0xFD,0x9F,0xEE,0x67,0xBE,0xFF,0xF7,0xEE,0xF9,0x9F, 0xEF,0x0F,0x3E,0x7F,0xF7,0xEE,0x03,0x3F,0xE7,0xFF,0x7F,0x3F,0xC7,0xF7,0xFF,0x7F,
26
0xF7,0xFE,0x7F,0xBF,0x8F,0xF1,0xFE,0x7F,0xF3,0xFC,0xFF,0x9F,0xBF,0xFC,0xFC,0xFF,
0xF8,0x01,0xFF,0xC0,0x7F,0xFF,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,/*\未命名文件\};
unsigned char code dotmatrix_chinese[8][32]= {
0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xDC,0x03,0x03,0xBF,0xDF,0xBF,0x88,0x01,0x97,0xFF,
0x97,0xBF,0x5F,0xBF,0xDC,0x03,0xDF,0xBF,0xDF,0xBF,0xDF,0xBF,0xD0,0x01,0xDF,0xFF,/*\桂\0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0x02,0x01,0xEF,0xDF,0xEF,0x9F,0xC7,0x8F, 0xCB,0x4F,0xAB,0x57,0xAE,0xD7,0x6D,0xD9,0xEB,0xDB,0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,/*\\
0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xC0,0x07,0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,
0xDE,0xF7,0xDE,0xF7,0xC0,0x07,0xDE,0xF7,0xFE,0xFD,0xFE,0xFD,0xFF,0x01,0xFF,0xFF,/*\电\0xFF,0xFF,0xC0,0x0F,0xFF,0xDF,0xFF,0xBF,0xFF,0x7F,0xFE,0xFF,0xFE,0xFF,0xFE,0xFB,
0x00,0x01,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFA,0xFF,0xFD,0xFF,/*\子\0xF9,0xF7,0x87,0x77,0xF7,0xB7,0xF7,0xB7,0x01,0xF7,0xE7,0x77,0xE3,0xB7,0xD5,0xB7, 0xD7,0xF1,0xB7,0x87,0x74,0x77,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,0xF7,/*\科\0xEF,0xDF,0xEF,0xDF,0xEF,0xDF,0x02,0x01,0xEF,0xDF,0xEB,0xDF,0xE6,0x03,0xCE,0xF7, 0x2F,0x77,0xEF,0x6F,0xEF,0x9F,0xEF,0x9F,0xEF,0x6F,0xEE,0xF1,0xA9,0xFB,0xDF,0xFF,/*\技\0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x01,0xFE,0xFF,0xFD,0x7F,
0xFD,0x7F,0xFD,0xBF,0xFB,0xBF,0xFB,0xDF,0xF7,0xEF,0xEF,0xE7,0xDF,0xF1,0xBF,0xFB,/*\大\0xFE,0xF7,0xEF,0x73,0xF3,0x37,0xF7,0x6F,0x80,0x01,0xBF,0xFB,0x70,0x17,0xFF,0xBF, 0xFF,0x7F,0x80,0x01,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x7F,0xFD,0x7F,0xFE,0xFF/*\学\} ;
unsigned char code letter_matrix[26][16]= {
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0xE1,0xDD,0xBD,0xBD,0xC0,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0x3F,0xBF,0xBF,0xBF,0xA7,0x9B,0xBD,0xBD,0xBD,0x9B,0xA7,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE3,0xDD,0xBF,0xBF,0xBF,0xDD,0xE3,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xF9,0xFD,0xFD,0xFD,0xE1,0xDD,0xBD,0xBD,0xBD,0xD9,0xE4,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0x81,0xBF,0xBF,0xBD,0xC3,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xF0,0xEE,0xEF,0xEF,0x81,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC1,0xBB,0xBB,0xC7,0xBF,0xC3,0xBD,0xBD,0xC3,/*\0xFF,0xFF,0xFF,0x3F,0xBF,0xBF,0xBF,0xA3,0x9D,0xBD,0xBD,0xBD,0xBD,0x18,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xCF,0xCF,0xFF,0xFF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF,/*\
27
林
0xFF,0xFF,0xFF,0xF3,0xF3,0xFF,0xFF,0xE3,0xFB,0xFB,0xFB,0xFB,0xFB,0xFB,0xBB,0x87,/*\0xFF,0xFF,0xFF,0x3F,0xBF,0xBF,0xBF,0xB1,0xB7,0xAF,0x97,0xB7,0xBB,0x11,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0x8F,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0xEF,0x83,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x01,0xB6,0xB6,0xB6,0xB6,0xB6,0x12,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x23,0x9D,0xBD,0xBD,0xBD,0xBD,0x18,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC3,0xBD,0xBD,0xBD,0xBD,0xBD,0xC3,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x27,0x9B,0xBD,0xBD,0xBD,0xBB,0x87,0xBF,0x1F,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0xDD,0xBD,0xBD,0xBD,0xDD,0xE1,0xFD,0xF8,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x11,0xCD,0xDF,0xDF,0xDF,0xDF,0x07,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xC1,0xBD,0xBF,0xC3,0xFD,0xBD,0x83,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xEF,0xEF,0x83,0xEF,0xEF,0xEF,0xEF,0xEF,0xF3,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x39,0xBD,0xBD,0xBD,0xBD,0xB9,0xC4,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x18,0xBD,0xDB,0xDB,0xD7,0xEF,0xEF,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x28,0x6D,0x6D,0x55,0x55,0xBB,0xBB,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x91,0xDB,0xE7,0xE7,0xE7,0xDB,0x89,0xFF,0xFF,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x18,0xBD,0xDB,0xDB,0xD7,0xE7,0xEF,0xEF,0x1F,/*\0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x81,0xBB,0xF7,0xEF,0xEF,0xDD,0x81,0xFF,0xFF /*\};
code_area.c所用到的头文件源代码: (1),code_area.h
#define __CODE_AREA_H #include
extern unsigned char code num_dotmatrix[10][16]; extern unsigned char code dotmatrix_chinese[8][32];
extern unsigned char code picture_code[128]; extern unsigned char code letter_matrix[26][16];
//extern void display(unsigned char char_num);//显示函数 //extern unsigned char xdata disp_buf[128]; //extern unsigned char xdata disp_buf[64];
28
关键的显示子程序源代码:
3,display.c
/****************************************************************************** *文件:display.c *功能:处理缓存及显示
********************************************************************************/ #include
#define dispbuf_mul 16 //显示屏行数 #define plong 8 //屏宽为8*8=64 uchar scan_temp;//显示内容标志
sbit R1= P0^0 ; sbit R2= P0^1; sbit G1= P0^2; sbit G2= P0^3; sbit LL1 = P0^4; sbit LL2= P0^5; sbit LL3= P0^6; sbit LL4= P0^7; sbit OE= P2^3 ; sbit STR= P2^2; sbit CLK= P2^1;
unsigned char xdata disp_buf[plong*dispbuf_mul]; //显示屏宽度的单倍显示缓存 void dztodisp(void); //汉字数据到显示缓存区 void photo_todisp(void); //图片到缓存 void letter_todisp(void); //字母到缓存 void num_todisp(void); //数据到显示缓存区 void Showline(uchar line_num); //行扫 void ddlay(uchar ms); //延时
29
void display1p();//显示函数
void moveleft(unsigned char sspp); //左移显示效果 void leftoned();//左移一点
void flicker(unsigned char sspeed,unsigned char stop);//闪烁显示
/*********************************************** 函数名称:cldispb() 传入参数:无
函数功能:清显示缓存区
************************************************/ void cldispb(void) { }
/*********************************************** 函数名称:onedisp()
传入参数:unsigned char ttime 显示时长 函数功能:立即显示
************************************************/ void onedisp(unsigned char ttime) {
//清显示缓存区
uchar *disbuff; uint i;
disbuff=&disp_buf[0];
for(i=0;i *disbuff=0xff; disbuff++; uint i,stopt; dztodisp(); //计算缓存直接送入显示缓存 stopt=ttime*50; //显示时间 for(i=0;i display1p(); //调用扫描子程序 } 30