找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2995|回复: 2
打印 上一主题 下一主题
收起左侧

16x16点阵595驱动PCB板图加单片机程序

[复制链接]
跳转到指定楼层
楼主
第一次发,勿喷。
Altium Designer画的PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
  1. #include <STC89C5xRC.H>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. sbit ds1=P1^3;
  6. sbit sck1=P1^5;
  7. sbit rck1=P1^4;


  8. sbit ds2=P1^0;
  9. sbit sck2=P1^2;
  10. sbit rck2=P1^1;


  11. void hc5951(uchar ch)
  12. {
  13.         uchar i;
  14.         for(i=0;i<8;i++)
  15.         {
  16.                 ds1=(ch&0x80);
  17.                 ch<<=1;
  18.                 sck1=0;
  19.                 sck1=1;
  20.         }
  21. }
  22. void hc5952(uchar ch)
  23. {
  24.         uchar i;
  25.         for(i=0;i<8;i++)
  26.         {
  27.                 ds2=(ch&0x80);
  28.                 ch<<=1;
  29.                 sck2=0;
  30.                 sck2=1;
  31.         }
  32. }


  33. void delay(uint z)
  34. {
  35.         uint x,y;
  36.         for(x=z;x>0;x--)
  37.                 for(y=110;y>0;y--);
  38. }
  39. uchar a,time;
  40. uint c,d;



  41. uchar xdata array[]={
  42. 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};   //DDé¨??
  43. uint code array1[]={       
  44. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  45. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  46. /*--  ??:  ?  --*/
  47. /*--  ??12;  ??????????:?x?=16x16   --*/
  48. 0x02,0x00,0x84,0x28,0x88,0x26,0xB0,0x20,0xC0,0x30,0xFF,0x4D,0xA0,0x40,0x90,0xC4,
  49. 0x88,0x58,0x01,0x00,0x21,0x04,0x42,0x08,0x84,0x10,0x08,0x61,0x30,0x06,0x00,0x00,

  50. 0x00,0x00,0x00,0x00,
  51.        
  52. /*--  ??:  ?  --*/
  53. /*--  ??12;  ??????????:?x?=16x16   --*/
  54. 0x44,0x04,0xE6,0x0C,0x44,0x35,0x48,0xC6,0x48,0x04,0x48,0x18,0x02,0x00,0x02,0x20,
  55. 0x02,0x20,0x02,0x20,0xFE,0x3F,0x02,0x20,0x02,0x20,0x02,0x20,0x02,0x00,0x00,0x00,


  56.        
  57. /*--  ??:  ?  --*/
  58. /*--  ??12;  ??????????:?x?=16x16   --*/
  59. 0x00,0x00,0x00,0x00,0xF8,0x1F,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0xFE,0xFF,
  60. 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0xF9,0x1F,0x01,0x00,0x0F,0x00,0x00,0x00,

  61. 0x00,0x00,0x00,0x00,

  62. /*--  ??:  ?  --*/
  63. /*--  ??12;  ??????????:?x?=16x16   --*/
  64. 0x00,0x01,0x00,0x41,0x00,0x41,0x00,0x41,0x00,0x41,0x02,0x41,0x01,0x41,0xFE,0x47,
  65. 0x00,0x45,0x00,0x49,0x00,0x51,0x00,0x61,0x00,0x41,0x00,0x01,0x00,0x01,0x00,0x00,

  66. 0x00,0x00,0x00,0x00,
  67. /*--  ??:  ?  --*/
  68. /*--  ??12;  ??????????:?x?=16x16   --*/
  69. 0x04,0x00,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0xFC,0x3F,
  70. 0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x00,0x00,0x00,


  71. 0x00,0x00,0x00,0x00,
  72. /*--  ??:  ?  --*/
  73. /*--  ??12;  ??????????:?x?=16x16   --*/
  74. 0x80,0x00,0x00,0x01,0x00,0x06,0xFF,0x1F,0x00,0xE0,0x00,0x02,0x00,0x0C,0x00,0xF0,
  75. 0xFF,0x1F,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x10,0x00,0x10,0x00,0x00,

  76. 0x00,0x00,0x00,0x00,

  77. /*--  ??:  ?  --*/
  78. /*--  ??12;  ??????????:?x?=16x16   --*/
  79. 0x02,0x08,0x02,0x30,0x12,0x24,0x92,0x24,0x92,0x25,0x92,0x26,0x92,0xA4,0xFE,0x64,
  80. 0x92,0x24,0x92,0x24,0x92,0x25,0xD2,0x24,0x12,0x24,0x02,0x28,0x02,0x30,0x00,0x00,

  81. 0x00,0x00,0x00,0x00,

  82. /*--  ??:  ?  --*/
  83. /*--  ??12;  ??????????:?x?=16x16   --*/
  84. 0x00,0x02,0x00,0x0A,0x7C,0x72,0x40,0x12,0x40,0x12,0xFF,0xFF,0x48,0x12,0x44,0x12,
  85. 0x78,0x12,0x00,0x02,0xF0,0x1F,0x02,0x00,0x01,0x00,0xFE,0xFF,0x00,0x00,0x00,0x00,
  86.        
  87.         0x00,0x00,0x00,0x00,
  88.        
  89. /*--  ??:  ?  --*/
  90. /*--  ??12;  ??????????:?x?=16x16   --*/
  91. 0x80,0x00,0x00,0x01,0x00,0x06,0xFF,0x1F,0x00,0xE0,0x00,0x02,0x00,0x0C,0x00,0xF0,
  92. 0xFF,0x1F,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x11,0x10,0x10,0x00,0x10,0x00,0x00,
  93.        
  94.        
  95.        
  96.        
  97. /*--  ??:  (  --*/
  98. /*--  ??12;  ??????????:?x?=16x16   --*/
  99. 0x00,0x00,0x00,0x00,0x00,0x00,
  100. 0x00,0x00,0xE0,0x07,0x18,0x18,0x04,0x20,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,

  101.        
  102.        
  103. /*--  ??:  ?  --*/
  104. /*--  ??12;  ??????????:?x?=16x16   --*/
  105. 0x04,0x13,0xF6,0x10,0x04,0x90,0x38,0x70,0xC8,0x17,0x08,0x10,0x00,0x02,0x7F,0x7A,
  106. 0x40,0x0A,0xFE,0x0A,0x40,0xFB,0x7E,0x0A,0x41,0x0A,0x7F,0x7A,0x00,0x02,0x00,0x00,
  107.        
  108. 0x00,0x00,0x00,0x00,       
  109.        
  110. /*--  ??:  ?  --*/
  111. /*--  ??12;  ??????????:?x?=16x16   --*/
  112. 0x40,0x00,0x40,0x02,0x40,0x04,0x40,0x18,0x40,0xF0,0x40,0x10,0x40,0x10,0xFF,0x1F,
  113. 0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x00,0x40,0x00,0x00,0x00,       
  114.        
  115.         0x00,0x00,0x00,0x00,
  116.        
  117. /*--  ??:  ?  --*/
  118. /*--  ??12;  ??????????:?x?=16x16   --*/
  119. 0x00,0x20,0x00,0x22,0x00,0x22,0x00,0x22,0x00,0xFA,0x00,0x22,0xFF,0x23,0x00,0x22,
  120. 0x00,0x22,0x10,0x22,0x08,0xFA,0x10,0x22,0xE0,0x23,0x00,0x20,0x00,0x20,0x00,0x00,       
  121.        
  122.         0x00,0x00,0x00,0x00,
  123.        
  124. /*--  ??:  ?  --*/
  125. /*--  ??12;  ??????????:?x?=16x16   --*/
  126. 0x80,0x00,0x00,0x07,0x00,0x00,0xFF,0xFF,0x00,0x08,0x81,0x04,0x82,0x10,0x8C,0x10,
  127. 0xB0,0x10,0xC0,0xFF,0xB0,0x10,0x8C,0x10,0x82,0x1F,0x81,0x00,0x81,0x00,0x00,0x00,       
  128.        
  129.         0x00,0x00,0x00,0x00,
  130. /*--  ??:  ?  --*/
  131. /*--  ??12;  ??????????:?x?=16x16   --*/
  132. 0x00,0x00,0x04,0x00,0x08,0x07,0x10,0x39,0x60,0x21,0x02,0x21,0x01,0x21,0xFE,0x2F,
  133. 0x00,0x41,0x00,0x41,0x40,0xC1,0x20,0x41,0x10,0x01,0x0C,0x01,0x00,0x00,0x00,0x00,




  134. /*--  ??:  )  --*/
  135. /*--  ??12;  ??????????:?x?=16x16   --*/
  136. 0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x20,0x18,0x18,0xE0,0x07,0x00,0x00,0x00,0x00,
  137. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  138.        
  139.        
  140.        
  141.        






  142.        
  143.        
  144.        

  145.        
  146. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  147. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  148. };







  149. void surpass()  //??D?
  150. {
  151.         rck1=0;
  152.         rck1=1;
  153.         rck2=0;
  154.         rck2=1;       
  155. }


  156. void Single_word_display(uint b)  //μ?×???ê?2?êy?o0μúò???×???1μú?t??×???òà'?ààí???
  157. {
  158.                        
  159.                 c=b*32;
  160.                 for(a=0;a<8;a++)
  161.                 {
  162.                         hc5952(0x00);
  163.                         hc5952(array[a]);
  164.                         hc5951(0xff);
  165.                         hc5951(~array1[c++]);
  166.                         surpass();
  167.         //                delay(10);
  168.                         hc5951(~array1[c++]);
  169.                         hc5951(0xff);
  170.                         surpass();       
  171.                 //        delay(10);
  172.                 }
  173.                 c=b*32+16;
  174.                 for(a=0;a<8;a++)
  175.                 {
  176.                         hc5952(array[a]);
  177.                         hc5952(0x00);
  178.                         hc5951(0xff);
  179.                         hc5951(~array1[c++]);
  180.                         surpass();
  181.         //                delay(10);
  182.                         hc5951(~array1[c++]);
  183.                         hc5951(0xff);
  184.                         surpass();       
  185.                 //        delay(10);
  186.                 }
  187. }
  188. void reciprocate(uint b)                //é???ò??ˉ??ê?
  189. {
  190.         c=b;
  191.         for(a=0;a<8;a++)
  192.         {
  193.                 hc5952(0x00);
  194.                 hc5952(array[a]);
  195.                 hc5951(0xff);
  196.                 hc5951(~array1[c++]);
  197.                 surpass();
  198. //                delay(10);
  199.                 hc5951(~array1[c++]);
  200.                 hc5951(0xff);
  201.                 surpass();       
  202.         //        delay(10);
  203.         }
  204.        
  205.         for(a=0;a<8;a++)
  206.         {
  207.                 hc5952(array[a]);
  208.                 hc5952(0x00);
  209.                 hc5951(0xff);
  210.                 hc5951(~array1[c++]);
  211.                 surpass();
  212. //                delay(10);
  213.                 hc5951(~array1[c++]);
  214.                 hc5951(0xff);
  215.                 surpass();       
  216.         //        delay(10);
  217.         }

  218. }






  219. void main()
  220. {
  221.         TMOD=0x01;
  222.         TH0=(65536-50000)/256;
  223.         TL0=(65536-50000)%256;
  224.         EA=1;
  225.         ET0=1;
  226.         TR0=1;
  227.         /*
  228.         hc5951(0xff);
  229.         hc5951(0xfe);
  230.         hc5952(0x00);
  231.         hc5952(0x01);
  232.         surpass();
  233.         */
  234.         while(1)
  235.         {
  236.         //        Single_word_display(d);
  237.                 reciprocate(d);
  238.         }
  239. }









  240. void zd() interrupt 1
  241. {
  242.         TH0=(65536-50000)/256;
  243.         TL0=(65536-50000)%256;
  244.         time++;
  245.         if(time==1)
  246.         {
  247.                 time=0;
  248.                 d=d+2;
  249.                 if(d==580)
  250.                         d=0;
  251.         }
  252. }

















  253. /*

  254.                 b=0;
  255.                 for(a=0;a<8;a++)
  256.                 {
  257.                         hc5952(0x00);
  258.                         hc5952(array[a]);
  259.                         hc5951(0xff);
  260.                         hc5951(~array1[b++]);
  261.                         surpass();
  262.         //                delay(10);
  263.                         hc5951(~array1[b++]);
  264.                         hc5951(0xff);
  265.                         surpass();       
  266.                 //        delay(10);
  267.                 }
  268.                 b=16;
  269.                 for(a=0;a<8;a++)
  270.                 {
  271.                         hc5952(array[a]);
  272.                         hc5952(0x00);
  273.                         hc5951(0xff);
  274.                         hc5951(~array1[b++]);
  275.                         surpass();
  276.         //                delay(10);
  277.                         hc5951(~array1[b++]);
  278.                         hc5951(0xff);
  279.                         surpass();       
  280.                 //        delay(10);       
  281.                        
  282.                         */








  283. //#include <STC89C5xRC.H>
  284. //#include <intrins.h>
  285. //#define uint unsigned int
  286. //#define uchar unsigned char
  287. //sbit ds1=P1^3;
  288. //sbit sck1=P1^5;
  289. //sbit rck1=P1^4;


  290. //sbit ds2=P1^0;
  291. //sbit sck2=P1^2;
  292. //sbit rck2=P1^1;


  293. //void hc5951(uchar ch)
  294. //{
  295. //        uchar i;
  296. //        for(i=0;i<8;i++)
  297. //        {
  298. //                ds1=(ch&0x80);
  299. //                ch<<=1;
  300. //                sck1=0;
  301. //                sck1=1;
  302. //        }
  303. //}
  304. //void hc5952(uchar ch)
  305. //{
  306. //        uchar i;
  307. //        for(i=0;i<8;i++)
  308. //        {
  309. //                ds2=(ch&0x80);
  310. //                ch<<=1;
  311. //                sck2=0;
  312. //                sck2=1;
  313. //        }
  314. //}


  315. ////void delay(uint z)
  316. ////{
  317. ////        uint x,y;
  318. ////        for(x=z;x>0;x--)
  319. ////                for(y=110;y>0;y--);
  320. ////}


  321. //uchar a,c,d,time;
  322. //uint a1,a2,a3,a4;


  323. //uchar xdata array2[]={
  324. //0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};


  325. //uchar xdata array3[]={
  326. //       
  327. ///*--  ??:  ?  --*/
  328. ///*--  ??12;  ??????????:?x?=16x16   --*/
  329. //0x04,0x84,0xE4,0x5C,0x44,0xC4,0x20,0x10,0xE8,0x27,0x24,0xE4,0x34,0x2C,0xE0,0x00,
  330. //0x02,0x01,0x7F,0x10,0x10,0x3F,0x80,0x60,0x1F,0x09,0x09,0x3F,0x49,0x89,0x7F,0x00,

  331. ///*--  ??:  ?  --*/
  332. ///*--  ??12;  ??????????:?x?=16x16   --*/
  333. //0x40,0x40,0x42,0xCC,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
  334. //0x00,0x00,0x00,0x3F,0x90,0x48,0x20,0x18,0x07,0x00,0x07,0x18,0x20,0x40,0x80,0x00,

  335. ///*--  ??:  ?  --*/
  336. ///*--  ??12;  ??????????:?x?=16x16   --*/
  337. //0x40,0x40,0x42,0xCC,0x00,0x08,0x48,0x88,0x08,0x08,0x08,0xFF,0x08,0x08,0x08,0x00,
  338. //0x00,0x40,0x20,0x1F,0x20,0x40,0x40,0x41,0x40,0x48,0x50,0x4F,0x40,0x40,0x40,0x00,

  339. ///*--  ??:  ?  --*/
  340. ///*--  ??12;  ??????????:?x?=16x16   --*/
  341. //0x00,0xFC,0x24,0x24,0xFC,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,
  342. //0x00,0x3F,0x11,0x11,0x3F,0x00,0xFF,0x40,0x20,0x03,0x0C,0x14,0x22,0x41,0x40,0x00,

  343. ///*--  ??:  ?  --*/
  344. ///*--  ??12;  ??????????:?x?=16x16   --*/
  345. //0x08,0x08,0x89,0xEE,0x98,0x00,0x00,0xF8,0x88,0x88,0xFF,0x88,0x88,0xF8,0x00,0x00,
  346. //0x02,0x01,0x00,0xFF,0x00,0x03,0x00,0x1F,0x08,0x08,0xFF,0x08,0x08,0x1F,0x00,0x00,

  347. ///*--  ??:  ?  --*/
  348. ///*--  ??12;  ??????????:?x?=16x16   --*/
  349. //0x20,0x24,0x24,0x24,0xFE,0x23,0x22,0x20,0x20,0xFF,0x20,0x22,0x2C,0xA0,0x20,0x00,
  350. //0x00,0x08,0x48,0x84,0x7F,0x02,0x41,0x40,0x20,0x13,0x0C,0x14,0x22,0x41,0xF8,0x00,

  351. ///*--  ??:  ?  --*/
  352. ///*--  ??12;  ??????????:?x?=16x16   --*/
  353. //0x40,0x40,0x42,0xCC,0x00,0x80,0xBE,0xAA,0xAA,0xFE,0xAA,0xAA,0xBE,0x80,0x00,0x00,
  354. //0x00,0x80,0x40,0x3F,0x40,0xBF,0x80,0x88,0x88,0x87,0x84,0x8E,0xA0,0xBF,0x80,0x00,

  355. ///*--  ??:  ?  --*/
  356. ///*--  ??12;  ??????????:?x?=16x16   --*/
  357. //0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x00,0x00,
  358. //0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,

  359. ///*--  ??:  ?  --*/
  360. ///*--  ??12;  ??????????:?x?=16x16   --*/
  361. //0x00,0x08,0x48,0x88,0x08,0xC8,0x38,0x00,0x90,0x10,0x10,0xFF,0x10,0x10,0x10,0x00,
  362. //0x00,0x20,0x10,0x0C,0x03,0x04,0x18,0x00,0x00,0x43,0x80,0x7F,0x00,0x00,0x00,0x00,

  363. ///*--  ??:  ?  --*/
  364. ///*--  ??12;  ??????????:?x?=16x16   --*/
  365. //0x00,0xF8,0x0C,0x0B,0x08,0x08,0xF8,0x40,0x30,0x8F,0x08,0x08,0x08,0xF8,0x00,0x00,
  366. //0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x00,0x00,0x43,0x80,0x40,0x3F,0x00,0x00,

  367. ///*--  ??:  ?  --*/
  368. ///*--  ??12;  ??????????:?x?=16x16   --*/
  369. //0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  370. //0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x03,0x0C,0x10,0x20,0x40,0x80,0x00,


  371. //};



  372. //void surpass()  //??D?
  373. //{
  374. //        rck1=0;
  375. //        rck1=1;
  376. //        rck2=0;
  377. //        rck2=1;       
  378. //}



  379. //void Display()
  380. //{
  381. //       
  382. //        for(a=0;a<8;a++)
  383. //        {

  384. //                hc5951(0xff);
  385. //                hc5951(array2[a]);
  386. //               
  387. //                hc5952(0x00);
  388. //                hc5952(array3[c=a]);
  389. //                surpass();
  390. //               
  391. //                hc5952(array3[c+16]);       
  392. //                hc5952(0x00);
  393. //                surpass();
  394. //               
  395. //        }
  396. //       
  397. //       
  398. //                for(a=0;a<8;a++)
  399. //        {       

  400. //                hc5951(array2[a]);
  401. //                hc5951(0xff);
  402. //               
  403. //                hc5952(0x00);
  404. //                hc5952(array3[c=a+8]);
  405. //                surpass();
  406. //               
  407. //               
  408. //               
  409. //                hc5952(array3[c=a+24]);               
  410. //                hc5952(0x00);
  411. //                surpass();
  412. //               
  413. //        }

  414. //}



  415. //void main()
  416. //{
  417. //       
  418. //       
  419. //        TMOD=0x01;
  420. //        TH0=(65536-50000)/256;
  421. //        TL0=(65536-50000)%256;
  422. //        EA=1;
  423. //        ET0=1;
  424. //        TR0=1;
  425. //        d=0;
  426. //        a1=0;
  427. //        while(1)
  428. //        {
  429. //                Display();
  430. //        }
  431. //}

  432. //void zd() interrupt 1
  433. //{
  434. //        TH0=(65536-50000)/256;
  435. //        TL0=(65536-50000)%256;
  436. //        time++;
  437. //        if(time==5)
  438. //        {
  439. //                time=0;
  440. //                a1=a1++;
  441. //                if(a1==320)
  442. //                        a1=0;
  443. //        }
  444. //}
复制代码

所有资料51hei提供下载:
彩红电子工作室.rar (2.26 KB, 下载次数: 28)
PCB2.rar (12.97 MB, 下载次数: 27)


评分

参与人数 1黑币 +4 收起 理由
小胖子迷你版 + 4 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:283883 发表于 2021-8-28 22:22 | 只看该作者
验证成功了吗,谢谢!
回复

使用道具 举报

板凳
ID:1002257 发表于 2022-1-28 19:52 | 只看该作者
试试,这个应该能看的懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表