 #include<reg51.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[3][96]={
{0x06,0x40,0x38,0x50,0x08,0x48,0x08,0x48,0x08,0x40,0xFF,0xFE,0x08,0x40,0x08,0x48,0x0E,0x28,0x38,0x30,0xC8,0x20,0x08,0x50,0x09,0x92,0x08,0x0A,0x28,0x06,0x10,0x02},/*"????",0*/
{0x00,0xF8,0x3F,0x90,0x12,0x10,0x09,0x20,0x3F,0xFE,0x22,0x02,0x42,0x00,0x3F,0xFC,0x04,0x00,0x07,0xF0,0x0C,0x20,0x0B,0x40,0x10,0xC0,0x63,0x30,0x8C,0x0E,0x30,0x04},/*"°??",1*/
{0x09,0x00,0x09,0x80,0x11,0x04,0x13,0xFE,0x22,0x04,0x34,0x48,0x68,0x40,0xA2,0x50,0x23,0x48,0x22,0x48,0x24,0x44,0x24,0x46,0x28,0x44,0x21,0x40,0x20,0x80,0x00,0x00},/*"????",2*/
};
sbit OE=P2^0; //
sbit BI=P2^1;//BCD
sbit CI=P2^2;//BCD
sbit DI=P2^3;//BCD
sbit G=P2^4; //????????????????0????1????
sbit CLK=P2^7;
sbit STB=P2^6;
sbit SDA=P2^5;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
void send(uchar byte)
{
uchar i=8;
while(i--)
{
CLK=0;
SDA=!(byte&0x80);
byte<<=1;
CLK=1;
}
}
void putout()
{
STB=0;
STB=1;
}
void main(void)
{
uint b,c,d;
OE=0;
while(1)
{
for(b=0;b<16;b++)
{
for(c=0;c<3;c++)
{
for(d=0;d<2;d++)
{
send(table[c][2*b+d]);
}
}
G=b/8;
BI=0x01&b;
CI=0x02&b;
DI=0x04&b;
putout();
}
}
}
|