第一次发,勿喷。
Altium Designer画的PCB图如下:(51hei附件中可下载工程文件)
单片机源程序如下:
- #include <STC89C5xRC.H>
- #include <intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- sbit ds1=P1^3;
- sbit sck1=P1^5;
- sbit rck1=P1^4;
- sbit ds2=P1^0;
- sbit sck2=P1^2;
- sbit rck2=P1^1;
- void hc5951(uchar ch)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- ds1=(ch&0x80);
- ch<<=1;
- sck1=0;
- sck1=1;
- }
- }
- void hc5952(uchar ch)
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- ds2=(ch&0x80);
- ch<<=1;
- sck2=0;
- sck2=1;
- }
- }
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- uchar a,time;
- uint c,d;
- uchar xdata array[]={
- 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //DD�?
- uint code array1[]={
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x02,0x00,0x84,0x28,0x88,0x26,0xB0,0x20,0xC0,0x30,0xFF,0x4D,0xA0,0x40,0x90,0xC4,
- 0x88,0x58,0x01,0x00,0x21,0x04,0x42,0x08,0x84,0x10,0x08,0x61,0x30,0x06,0x00,0x00,
- 0x00,0x00,0x00,0x00,
-
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x44,0x04,0xE6,0x0C,0x44,0x35,0x48,0xC6,0x48,0x04,0x48,0x18,0x02,0x00,0x02,0x20,
- 0x02,0x20,0x02,0x20,0xFE,0x3F,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x00,0x00,0x00,
-
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x00,0x00,0x00,0x00,0xF8,0x1F,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0xFE,0xFF,
- 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0xF9,0x1F,0x01,0x00,0x0F,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x00,0x01,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x02,0x41,0x01,0x41,0xFE,0x47,
- 0x00,0x45,0x00,0x49,0x00,0x51,0x00,0x61,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x00,
- 0x00,0x00,0x00,0x00,
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x04,0x00,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0xFC,0x3F,
- 0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x80,0x00,0x00,0x01,0x00,0x06,0xFF,0x1F,0x00,0xE0,0x00,0x02,0x00,0x0C,0x00,0xF0,
- 0xFF,0x1F,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x10,0x00,0x10,0x00,0x00,
- 0x00,0x00,0x00,0x00,
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x02,0x08,0x02,0x30,0x12,0x24,0x92,0x24,0x92,0x25,0x92,0x26,0x92,0xA4,0xFE,0x64,
- 0x92,0x24,0x92,0x24,0x92,0x25,0xD2,0x24,0x12,0x24,0x02,0x28,0x02,0x30,0x00,0x00,
- 0x00,0x00,0x00,0x00,
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x00,0x02,0x00,0x0A,0x7C,0x72,0x40,0x12,0x40,0x12,0xFF,0xFF,0x48,0x12,0x44,0x12,
- 0x78,0x12,0x00,0x02,0xF0,0x1F,0x02,0x00,0x01,0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,
-
- 0x00,0x00,0x00,0x00,
-
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x80,0x00,0x00,0x01,0x00,0x06,0xFF,0x1F,0x00,0xE0,0x00,0x02,0x00,0x0C,0x00,0xF0,
- 0xFF,0x1F,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x10,0x00,0x10,0x00,0x00,
-
-
-
-
- /*-- ??: ( --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0xE0,0x07,0x18,0x18,0x04,0x20,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
-
-
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x04,0x13,0xF6,0x10,0x04,0x90,0x38,0x70,0xC8,0x17,0x08,0x10,0x00,0x02,0x7F,0x7A,
- 0x40,0x0A,0xFE,0x0A,0x40,0xFB,0x7E,0x0A,0x41,0x0A,0x7F,0x7A,0x00,0x02,0x00,0x00,
-
- 0x00,0x00,0x00,0x00,
-
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x40,0x00,0x40,0x02,0x40,0x04,0x40,0x18,0x40,0xF0,0x40,0x10,0x40,0x10,0xFF,0x1F,
- 0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x00,0x40,0x00,0x00,0x00,
-
- 0x00,0x00,0x00,0x00,
-
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x00,0x20,0x00,0x22,0x00,0x22,0x00,0x22,0x00,0xFA,0x00,0x22,0xFF,0x23,0x00,0x22,
- 0x00,0x22,0x10,0x22,0x08,0xFA,0x10,0x22,0xE0,0x23,0x00,0x20,0x00,0x20,0x00,0x00,
-
- 0x00,0x00,0x00,0x00,
-
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x80,0x00,0x00,0x07,0x00,0x00,0xFF,0xFF,0x00,0x08,0x81,0x04,0x82,0x10,0x8C,0x10,
- 0xB0,0x10,0xC0,0xFF,0xB0,0x10,0x8C,0x10,0x82,0x1F,0x81,0x00,0x81,0x00,0x00,0x00,
-
- 0x00,0x00,0x00,0x00,
- /*-- ??: ? --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x00,0x00,0x04,0x00,0x08,0x07,0x10,0x39,0x60,0x21,0x02,0x21,0x01,0x21,0xFE,0x2F,
- 0x00,0x41,0x00,0x41,0x40,0xC1,0x20,0x41,0x10,0x01,0x0C,0x01,0x00,0x00,0x00,0x00,
- /*-- ??: ) --*/
- /*-- ??12; ??????????:?x?=16x16 --*/
- 0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x20,0x18,0x18,0xE0,0x07,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
-
-
-
-
-
-
-
-
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- };
- void surpass() //??D?
- {
- rck1=0;
- rck1=1;
- rck2=0;
- rck2=1;
- }
- void Single_word_display(uint b) //μ?×???ê?2?êy?o0μúò???×???1μú?t??×???òà'?ààí???
- {
-
- c=b*32;
- for(a=0;a<8;a++)
- {
- hc5952(0x00);
- hc5952(array[a]);
- hc5951(0xff);
- hc5951(~array1[c++]);
- surpass();
- // delay(10);
- hc5951(~array1[c++]);
- hc5951(0xff);
- surpass();
- // delay(10);
- }
- c=b*32+16;
- for(a=0;a<8;a++)
- {
- hc5952(array[a]);
- hc5952(0x00);
- hc5951(0xff);
- hc5951(~array1[c++]);
- surpass();
- // delay(10);
- hc5951(~array1[c++]);
- hc5951(0xff);
- surpass();
- // delay(10);
- }
- }
- void reciprocate(uint b) //é???ò??ˉ??ê?
- {
- c=b;
- for(a=0;a<8;a++)
- {
- hc5952(0x00);
- hc5952(array[a]);
- hc5951(0xff);
- hc5951(~array1[c++]);
- surpass();
- // delay(10);
- hc5951(~array1[c++]);
- hc5951(0xff);
- surpass();
- // delay(10);
- }
-
- for(a=0;a<8;a++)
- {
- hc5952(array[a]);
- hc5952(0x00);
- hc5951(0xff);
- hc5951(~array1[c++]);
- surpass();
- // delay(10);
- hc5951(~array1[c++]);
- hc5951(0xff);
- surpass();
- // delay(10);
- }
- }
- void main()
- {
- TMOD=0x01;
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- EA=1;
- ET0=1;
- TR0=1;
- /*
- hc5951(0xff);
- hc5951(0xfe);
- hc5952(0x00);
- hc5952(0x01);
- surpass();
- */
- while(1)
- {
- // Single_word_display(d);
- reciprocate(d);
- }
- }
- void zd() interrupt 1
- {
- TH0=(65536-50000)/256;
- TL0=(65536-50000)%256;
- time++;
- if(time==1)
- {
- time=0;
- d=d+2;
- if(d==580)
- d=0;
- }
- }
- /*
- b=0;
- for(a=0;a<8;a++)
- {
- hc5952(0x00);
- hc5952(array[a]);
- hc5951(0xff);
- hc5951(~array1[b++]);
- surpass();
- // delay(10);
- hc5951(~array1[b++]);
- hc5951(0xff);
- surpass();
- // delay(10);
- }
- b=16;
- for(a=0;a<8;a++)
- {
- hc5952(array[a]);
- hc5952(0x00);
- hc5951(0xff);
- hc5951(~array1[b++]);
- surpass();
- // delay(10);
- hc5951(~array1[b++]);
- hc5951(0xff);
- surpass();
- // delay(10);
-
- */
- //#include <STC89C5xRC.H>
- //#include <intrins.h>
- //#define uint unsigned int
- //#define uchar unsigned char
- //sbit ds1=P1^3;
- //sbit sck1=P1^5;
- //sbit rck1=P1^4;
- //sbit ds2=P1^0;
- //sbit sck2=P1^2;
- //sbit rck2=P1^1;
- //void hc5951(uchar ch)
- //{
- // uchar i;
- // for(i=0;i<8;i++)
- // {
- // ds1=(ch&0x80);
- // ch<<=1;
- // sck1=0;
- // sck1=1;
- // }
- //}
- //void hc5952(uchar ch)
- //{
- // uchar i;
- // for(i=0;i<8;i++)
- // {
- // ds2=(ch&0x80);
- // ch<<=1;
- // sck2=0;
- // sck2=1;
- // }
- //}
- ////void delay(uint z)
- ////{
- //// uint x,y;
- //// for(x=z;x>0;x--)
- //// for(y=110;y>0;y--);
- ////}
- //uchar a,c,d,time;
- //uint a1,a2,a3,a4;
- //uchar xdata array2[]={
- //0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- //uchar xdata array3[]={
- //
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x04,0x84,0xE4,0x5C,0x44,0xC4,0x20,0x10,0xE8,0x27,0x24,0xE4,0x34,0x2C,0xE0,0x00,
- //0x02,0x01,0x7F,0x10,0x10,0x3F,0x80,0x60,0x1F,0x09,0x09,0x3F,0x49,0x89,0x7F,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x40,0x40,0x42,0xCC,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
- //0x00,0x00,0x00,0x3F,0x90,0x48,0x20,0x18,0x07,0x00,0x07,0x18,0x20,0x40,0x80,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x40,0x40,0x42,0xCC,0x00,0x08,0x48,0x88,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x00,
- //0x00,0x40,0x20,0x1F,0x20,0x40,0x40,0x41,0x40,0x48,0x50,0x4F,0x40,0x40,0x40,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x00,0xFC,0x24,0x24,0xFC,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
- //0x00,0x3F,0x11,0x11,0x3F,0x00,0xFF,0x40,0x20,0x03,0x0C,0x14,0x22,0x41,0x40,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x08,0x08,0x89,0xEE,0x98,0x00,0x00,0xF8,0x88,0x88,0xFF,0x88,0x88,0xF8,0x00,0x00,
- //0x02,0x01,0x00,0xFF,0x00,0x03,0x00,0x1F,0x08,0x08,0xFF,0x08,0x08,0x1F,0x00,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
- //0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x40,0x40,0x42,0xCC,0x00,0x80,0xBE,0xAA,0xAA,0xFE,0xAA,0xAA,0xBE,0x80,0x00,0x00,
- //0x00,0x80,0x40,0x3F,0x40,0xBF,0x80,0x88,0x88,0x87,0x84,0x8E,0xA0,0xBF,0x80,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
- //0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x00,0x08,0x48,0x88,0x08,0xC8,0x38,0x00,0x90,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,
- //0x00,0x20,0x10,0x0C,0x03,0x04,0x18,0x00,0x00,0x43,0x80,0x7F,0x00,0x00,0x00,0x00,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //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,
- ///*-- ??: ? --*/
- ///*-- ??12; ??????????:?x?=16x16 --*/
- //0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- //0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x00,
- //};
- //void surpass() //??D?
- //{
- // rck1=0;
- // rck1=1;
- // rck2=0;
- // rck2=1;
- //}
- //void Display()
- //{
- //
- // for(a=0;a<8;a++)
- // {
- // hc5951(0xff);
- // hc5951(array2[a]);
- //
- // hc5952(0x00);
- // hc5952(array3[c=a]);
- // surpass();
- //
- // hc5952(array3[c+16]);
- // hc5952(0x00);
- // surpass();
- //
- // }
- //
- //
- // for(a=0;a<8;a++)
- // {
- // hc5951(array2[a]);
- // hc5951(0xff);
- //
- // hc5952(0x00);
- // hc5952(array3[c=a+8]);
- // surpass();
- //
- //
- //
- // hc5952(array3[c=a+24]);
- // hc5952(0x00);
- // surpass();
- //
- // }
- //}
- //void main()
- //{
- //
- //
- // TMOD=0x01;
- // TH0=(65536-50000)/256;
- // TL0=(65536-50000)%256;
- // EA=1;
- // ET0=1;
- // TR0=1;
- // d=0;
- // a1=0;
- // while(1)
- // {
- // Display();
- // }
- //}
- //void zd() interrupt 1
- //{
- // TH0=(65536-50000)/256;
- // TL0=(65536-50000)%256;
- // time++;
- // if(time==5)
- // {
- // time=0;
- // a1=a1++;
- // if(a1==320)
- // a1=0;
- // }
- //}
复制代码
所有资料51hei提供下载:
彩红电子工作室.rar
(2.26 KB, 下载次数: 29)
PCB2.rar
(12.97 MB, 下载次数: 28)
|