求一个8051接74HC595 8段数码管的C代码!

来源:百度知道 编辑:UC知道 时间:2024/06/23 12:26:36

这是我刚写的一个74HC595 驱动8段数码管的,程序是让数码管0到9循环显示

#include <regx52.h>
sbit sclk=P2^0;
sbit sda=P2^1;
sbit slck=P2^2;
int tab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

void delay()
{
int i,j;
for(i=0;i<255;i++)
for(j=0;j<80;j++);
}

void bit_dat(bit i)
{ sclk=0;
sda=i;
sclk=1;
}

void dat(char i)
{
slck=0;
bit_dat((bit)(tab[i]&0x80));
bit_dat((bit)(tab[i]&0x40));
bit_dat((bit)(tab[i]&0x20));
bit_dat((bit)(tab[i]&0x10));
bit_dat((bit)(tab[i]&0x08));
bit_dat((bit)(tab[i]&0x04));
bit_dat((bit)(tab[i]&0x02));
bit_dat((bit)(tab[i]&0x01));
slck=1;
}

main()
{ int i;
while(1)
{
for(i=0;i<10;i++)
{dat(i);
delay();
}
i=0;

}

}