程序
#include <reg51.h>
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
sbit DIN = P2^0;
sbit CSB = P2^1;
sbit CLK = P2^2;
uchar display[8]=
{
2,0,2,0,10,6,10,9
};
void delay_ms(uint x)
{
uchar k=0;
while(x--)
{
for(k=125;k>0;k--);
}
}
void Write(uchar Addr,uchar Dat)
{
uchar i;
CSB = 0;
for(i=0;i<8;i++)
{
CLK = 0;
Addr <<= 1;
DIN = CY;
CLK = 1;
_nop_();
_nop_();
CLK = 0;
}
for(i=0;i<8;i++)
{
CLK = 0;
Dat <<= 1;
DIN = CY;
CLK = 1;
_nop_();
_nop_();
CLK = 0;
}
CSB = 1;
}
void Initialise(void)
{
Write(0x09,0xff);
Write(0x0a,0x07);
Write(0x0b,0x07);
Write(0x0c,0x01);
}
void main(void)
{
uchar i=0;
Initialise();
delay_ms(100);
while(1)
{
for(i=0;i<8;i++)
Write(i+1,display[i]);
}
}
仿真: