code unsigned char Led2_One[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
code unsigned char Led2_Two[10] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0xff,0xff};
void Send_Data(unsigned int uiDataOne, unsigned int uiDataTwo)
{
unsigned int i = 0;
/* 将片选信号置为低电平 */
HC595RCK = 0;
/* 输入第一个数据:uiDataOne */
for (i = 0; i < 8; i++)
{
/* 给出脉冲信号,首先将CLK置为0 */
HC595CLK = 0;
if (0 != (uiDataOne & 0x80))
{
HC595DATA = 1;
}
else
{
HC595DATA = 0;
}
/* 给出脉冲信号,首先将CLK置为1 */
HC595CLK = 1;
/* 准备第二个数据 */
uiDataOne = uiDataOne << 1;
}
/* 输入第二个数据:uiDataTwo */
for (i = 0; i < 8; i++)
{
/* 给出脉冲信号,首先将CLK置为0 */
HC595CLK = 0;
if (0 != (uiDataTwo & 0x80))
{
HC595DATA = 1;
}
else
{
HC595DATA = 0;
}
/* 给出脉冲信号,首先将CLK置为1 */
HC595CLK = 1;
/* 准备第二个数据 */
uiDataTwo = uiDataTwo << 1;
}
/* 将片选信号置为高电平 */
HC595RCK = 1;
}
void minutesec()
{
unsigned char led[4] = {0x00};
unsigned char k=0;
while (1)
{
led[3] = sec % 10;
led[2] = sec / 10 % 10;
led[1] = minute % 10;
led[0] = minute / 10 % 10;
if (k < 3)
{
k++;
}
else
{
k = 0;
}
Send_Data(Led2_One[led[k]],Led2_Two[k]);
if (500 > Counter)
Send_Data(Led2_One[led[k]]^0X80,Led2_Two[k]);
if (minute==0)
{
if(sec==0)
{
minute=33 ;
sec=33;
EA = 1;
}
}
}
}
|