const unsigned char Code_Number_16_12[17][32]={ //16点阵高,12点阵宽 {0x00, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00}, //0 {0x00, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00}, //1 {0x00, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00}, //2 {0x00, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00}, //3 {0x00, 0x00, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00}, //4 {0x00, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00}, //5 {0x00, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x30, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00}, //6 {0x00, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00}, //7 {0x00, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00}, //8 {0x00, 0x00, 0x3F, 0x02, 0x3F, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x31, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x3F, 0x02, 0x3F, 0x02, 0x00, 0x00}, //9 {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, 0X00, 0X00, 0X00 }, //空格 }; void read_code(void) { static uint16_t roll; uint8_t i,j; uint8_t cc,cd; static uint16_t ROW_8BIT = 0; static uint8_t code12_ram[48][16]; uint8_t move_reg1 = 0; uint8_t move_reg2 = 0; ROW_8BIT = 0; if(Screen.Uart.First_Receive_Data) { if(Screen.Set.High==16 || Screen.DisplayMode.Work_Mode==2) { if(Screen.Para.Data_LEN%(Screen.Set.Width/8)) { Screen.Para.Num = (Screen.Para.Data_LEN/(Screen.Set.Width/8))+1; // } else Screen.Para.Num = Screen.Para.Data_LEN/(Screen.Set.Width/8); } else { if((Screen.Para.Data_LEN)%(Screen.Set.Width/16)) { Screen.Para.Num = (Screen.Para.Data_LEN/(Screen.Set.Width/16))+1; // } else Screen.Para.Num = Screen.Para.Data_LEN/(Screen.Set.Width/16); } } else { Screen.Para.Num = 1; } if(Screen.Para.Num == 1) { Screen.Para.Single_Line_Direct_Display_Flag = 0; } if(!Screen.Uart.First_Receive_Data) { for(roll=0;roll>7); code12_ram[5][i]=code12_ram[5][i]<<1; //第二个数左移一位 move_reg1 = code12_ram[4][i]; code12_ram[3][i]=code12_ram[3][i] | (move_reg1>>4); move_reg1 = code12_ram[4][i]; move_reg2 = code12_ram[5][i]; code12_ram[4][i]= move_reg1<<4 | move_reg2>>4; move_reg1 = code12_ram[6][i]; code12_ram[4][i] |= move_reg1>>6; move_reg1 = code12_ram[6][i]; code12_ram[5][i] = (move_reg1<<2) | (code12_ram[7][i]>>6); } // TODO: 新的移位要求 LED最左边和最右边的一列不亮;每个数字 左边有两列不亮,右侧一列不亮,也就是说 每个数字单元有10个点阵宽,左侧有两列不亮,右侧有一列不亮。 memcpy(&CodeRAM[32- Screen.Uart.Receive_ID_Number*4][0],&code12_ram[2][0],64); } memcpy(CodeRAM_Display,CodeRAM,sizeof(CodeRAM)); memcpy(CodeRAM2_Display,CodeRAM2,sizeof(CodeRAM2)); }