/******************************************************************************/ /* 项目名称 : TX-1C扩展板 8x8点阵静态显示0-9 */ /* 主控芯片 : STC89C52 */ /* 文件名称 : 8x8Led_Static */ /* 文件功能 : 8x8点阵显示 */ /* 文件版权 : 天祥电子 */ /* 文件版本 : */ /******************************************************************************/ /**********************************包含头文件**********************************/ #include #include "74hc595.h" /********************************定义变量和数组********************************/ unsigned char code table[] = {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char code Digit_Tab[10][8] = { //字模取模方式 阴码 逆向 逐列式 {0x00,0x00,0x3E,0x41,0x41,0x3E,0x00,0x00},/*"0",0*/ {0x00,0x00,0x42,0x7F,0x40,0x00,0x00,0x00},/*"1",1*/ {0x00,0x00,0x62,0x51,0x49,0x46,0x00,0x00},/*"2",2*/ {0x00,0x00,0x22,0x49,0x49,0x36,0x00,0x00},/*"3",3*/ {0x00,0x00,0x38,0x26,0x7F,0x20,0x00,0x00},/*"4",4*/ {0x00,0x00,0x4F,0x49,0x49,0x31,0x00,0x00},/*"5",5*/ {0x00,0x00,0x3E,0x49,0x49,0x32,0x00,0x00},/*"6",6*/ {0x00,0x00,0x03,0x71,0x09,0x07,0x00,0x00},/*"7",7*/ {0x00,0x00,0x36,0x49,0x49,0x36,0x00,0x00},/*"8",8*/ {0x00,0x00,0x26,0x49,0x49,0x3E,0x00,0x00},/*"9",9*/ }; unsigned int count; unsigned char cnta; unsigned char cntb; /******************************************************************************/ /* 函数名称 : Timer0 */ /* 函数描述 : T0中断函数 */ /* 输入参数 : 无 */ /* 参数描述 : 无 */ /* 返回值 : 无 */ /******************************************************************************/ void Timer0(void) interrupt 1 using 0 { TH0 = (65536 - 1000) / 256; TL0 = (65536 - 1000) % 256; Ser_IN(table[cnta]); //8X8点阵列扫描 Ser_IN(Digit_Tab[cntb][cnta]); //8X8点阵行送扫描数据 Par_OUT(); //74HC595输出显示 cnta++; if(cnta == 8) { cnta = 0; } count++; if(count == 1000) { count = 0; cntb++; if(cntb == 10) { cntb = 0; } } } /******************************************************************************/ /* 函数名称 : main */ /* 函数描述 : 主函数 */ /* 输入参数 : 无 */ /* 参数描述 : 无 */ /* 返回值 : 无 */ /******************************************************************************/ void main(void) { TMOD = 0x01; TH0 = (65536-1000) / 256; TL0 = (65536-1000) % 256; TR0 = 1; ET0 = 1; EA=1; while(1) { ; } } /******************************************************************************/