angmall 发表于 2018-12-25 09:25
程序呢?线路图呢?什么都没有,人家想帮你也帮不上呀
我给你来个试试
#include <reg51.h>
unsigned char i;
sbit DATA1=P3^7;
sbit DATA2=P3^5;
sbit CLCK1=P3^6;
sbit CLCK2=P3^4;
#define uchar unsigned char
#define uint unsigned int
void shuru_1();
void shuru_2();
unsigned char num,k,temp1,temp2,zuo=0;
unsigned int timecount;
unsigned char code lie[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,};/*74hc154显示代码从左到右16列依次选通*/
unsigned char code hang[288]={
0x00,0x00,0x00,0x00,0x1F,0xF8,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0xFF,0xFE,
0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x1F,0xF9,0x00,0x01,0x00,0x0F,0x00,0x00,
0x02,0x02,0x0A,0xEA,0xAA,0xAA,0xAA,0xAF,0xAA,0xAA,0xAA,0xEA,0x0A,0x02,0x02,0x00,
0x82,0x4A,0x2A,0x1E,0x0B,0x4A,0x8A,0x7A,0x02,0xFA,0x4B,0x4A,0x4A,0xFA,0x02,0x00,
0x00,0x80,0x60,0xF8,0x07,0x40,0x20,0x18,0x0F,0x08,0xC8,0x08,0x08,0x28,0x18,0x00,
0x01,0x00,0x00,0xFF,0x00,0x10,0x0C,0x03,0x40,0x80,0x7F,0x00,0x01,0x06,0x18,0x00,
0x00,0x00,0x00,0x7F,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x7F,0x00,0x00,0x00,0x00,
0x81,0x41,0x21,0x1D,0x21,0x41,0x81,0xFF,0x89,0x89,0x89,0x89,0x89,0x81,0x81,0x00,
0x40,0x40,0xC0,0x5F,0x55,0x55,0xD5,0x55,0x55,0x55,0x55,0x5F,0x40,0x40,0x40,0x00,
0x20,0x60,0x3F,0x25,0x15,0x15,0xFF,0x90,0x47,0x29,0x11,0x2D,0x43,0x80,0x80,0x00,
0x10,0x10,0xD0,0xFF,0x90,0x10,0x44,0x54,0xD4,0x74,0x5F,0x54,0xD4,0x54,0x44,0x00,
0x04,0x03,0x00,0xFF,0x00,0x01,0x12,0x11,0x14,0x14,0xFF,0x14,0x14,0x11,0x12,0x00,
0x00,0xF8,0x0C,0x0B,0x08,0x08,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0xF8,0x00,0x00,
0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,0x43,0x80,0x40,0x3F,0x00,0x00,
0x10,0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
0x80,0x40,0x30,0x0F,0x40,0x80,0x7F,0x00,0x00,0x7F,0x20,0x20,0x20,0x7F,0x00,0x00,
0x10,0x60,0x02,0x8C,0x00,0xF0,0x10,0x10,0x10,0xFF,0x10,0x10,0x10,0xF0,0x00,0x00,
0x04,0x04,0x7E,0x01,0x00,0xFF,0x42,0x42,0x42,0x7F,0x42,0x42,0x42,0xFF,0x00,0x00,
};
void shuru_1()
{uchar t;
for(t=0;t<8;t++)
{
temp1<<=1;
DATA1=CY;
CLCK1=1;
CLCK1=0;
}
}
void shuru_2()
{
uchar t;
for(t=0;t<8;t++)
{
temp2<<=1;
DATA2=CY;
CLCK2=1;
CLCK2=0;
}
}
void main(void)
{
TMOD=0x01;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
TR0=1;
ET0=1;
EA=1;
while(1);
}
void serve_led()interrupt 1 using 0
{ k=2;
TH0=(65536-2000)/256;
TL0=(65536-2000)%256;
P2=0xff;
P2 = lie[num];
temp1=hang[num*2+zuo];
shuru_1();
P2 = lie[num];
temp2=hang[zuo+(num*2+1)];
shuru_2();
num++;
if(num==16)
{
num=0;
}
timecount++;
if(timecount==100)
{num=0;
timecount=0;
zuo=zuo+2;
if(zuo==272)
{
zuo=0;
}
}
} |