void TIME1616_SHOW(void)
{
uchar j;
#if 1
STB = 1;
L_CLK = 1;
DIN = 1;
TM1616write(0x00); //显示模式设置
STB=1;
TM1616write(0x44); //地址增加模式 数据命令设置
STB=1;
// for(j=0;j<4;j++)
{
TM1616write(0xC0); //设置显示地址1
TM1616write(ledbuff[0]); //传输显示数据1
STB=1; //显示数据1发送完毕STB置1
TM1616write(0xC2); //设置显示地址1
TM1616write(ledbuff[1]); //传输显示数据1
STB=1; //显示数据1发送完毕STB置1
TM1616write(0xC4); //设置显示地址1
TM1616write(ledbuff[2]); //传输显示数据1
STB=1; //显示数据1发送完毕STB置1
TM1616write(0xC6); //设置显示地址2
TM1616write(ledbuff[3]); //传输显示数据1
STB=1;
}
TM1616write(0x8F); //控制命令设置,设置显示开、显示最亮
STB=1;
LCD_Delay(10);
LCD_Delay(10);
//#else
STB1 = 1;
L_CLK = 1;
DIN = 1;
TM1616write1(0x00); //显示模式设置
STB1=1;
TM1616write1(0x44); //地址增加模式 数据命令设置
STB1=1;
// for(j=0;j<4;j++)
{
TM1616write1(0xC0); //设置显示地址1
TM1616write1(led1buff[0]); //传输显示数据1
STB1=1; //显示数据1发送完毕STB置1
TM1616write1(0xC2); //设置显示地址1
TM1616write1(led1buff[1]); //传输显示数据1
STB1=1; //显示数据1发送完毕STB置1
TM1616write1(0xC4); //设置显示地址1
TM1616write1(led1buff[2]); //传输显示数据1
STB1=1; //显示数据1发送完毕STB置1
TM1616write1(0xC6); //设置显示地址2
TM1616write1(led1buff[3]); //传输显示数据1
STB1=1;
}
TM1616write1(0x8F); //控制命令设置,设置显示开、显示最亮
STB1=1;
#if 1
LCD_Delay(10);
LCD_Delay(10);
STB2 = 1;
L_CLK = 1;
DIN = 1;
TM1616write2(0x00); //显示模式设置
STB2=1;
TM1616write2(0x44); //地址增加模式 数据命令设置
STB2=1;
// for(j=0;j<4;j++)
{
TM1616write2(0xC0); //设置显示地址1
TM1616write2(led2buff[0]); //传输显示数据1
STB2=1; //显示数据1发送完毕STB置1
TM1616write2(0xC2); //设置显示地址1
TM1616write2(led2buff[1]); //传输显示数据1
STB2=1; //显示数据1发送完毕STB置1
TM1616write2(0xC4); //设置显示地址1
TM1616write2(led2buff[2]); //传输显示数据1
STB2=1; //显示数据1发送完毕STB置1
TM1616write2(0xC6); //设置显示地址2
TM1616write2(led2buff[3]); //传输显示数据1
STB2=1;
}
TM1616write2(0x8F); //控制命令设置,设置显示开、显示最亮
STB2=1;
#endif
#endif
}
void TM1616write(uchar wr_date)
{
uchar i;
STB=0;
LCD_Delay(2);
for(i=0;i<8;i++)
{
L_CLK=0;
LCD_Delay(2);
if(wr_date&0x01!=0)
{
DIN=1;
}
else
{
DIN=0;
}
LCD_Delay(2);
L_CLK=1;
LCD_Delay(2);
wr_date=wr_date>>1;
}
}
#define STB GET_BITFIELD(&PC_ODR).bit7
#define STB1 GET_BITFIELD(&PG_ODR).bit0
#define STB2 GET_BITFIELD(&PG_ODR).bit1