p10单 {MOD}16*32led点阵 汉字滚动 c程序如何写。

2019-07-14 16:33发布

p10单 {MOD}16*32led点阵 汉字滚动 c程序如何写。
求各位大神帮忙 。。
  1. #define uint unsigned int
  2. #define uchar unsigned char
  3.        

  4. sbit sh_cp=P1^6;
  5. sbit st_cp=P1^5;
  6. sbit DIN=P1^7;
  7. //sbit OE=P1^2;
  8. sbit OA1=P1^4;
  9. sbit OB1=P1^3;


  10. /*--------------
  11.       字模程序
  12.           ---------------*/
  13. uchar code tab_zimo[][32]={                                                   //字模去正序
  14. /*--  文字:  科  --*/
  15. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  16. {0x08,0x10,0x1D,0x10,0xF0,0x90,0x10,0x90,  0x10,0x10,0xFD,0x10,0x10,0x90,0x38,0x90,
  17. 0x34,0x10,0x50,0x1E,0x53,0xF0,0x90,0x10,  0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},

  18. /*--  文字:  学  --*/
  19. /*--  宋体12;  此字体下对应的点阵为:宽x高=16x16   --*/
  20. {0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
  21. 0x00,0x40,0x01,0x80,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00},



  22. };
  23. /*-------------
  24. 数据传输子程序
  25. ---------------*/
  26. void send_dat(uchar dat)
  27. {
  28.         uchar i;
  29.         for(i=0;i<8;i++)
  30.         {
  31.                 DIN=dat&(0x80>>i);
  32.                 sh_cp=0;_nop_();
  33.                 sh_cp=1;
  34.         }
  35. }
  36. /*----------------
  37. 四个595级联传输
  38. ------------*/        /*
  39. void send_595(uchar dat1,uchar dat2,uchar dat3,uchar dat4)                              //四个595级联
  40. {
  41.         send_dat(dat1);
  42.         send_dat(dat2);
  43.         send_dat(dat3);
  44.         send_dat(dat4);
  45. }                                           */
  46. /*----------------
  47. 138行扫描子程序
  48. ----------------*/
  49. /*void dis_row(uchar k)
  50. {
  51.         uchar i;
  52.         //OE=1;
  53.         for(i=0;i<k;i++)
  54.         {
  55.         OA1=i&0x01;
  56.         OB1=i&0x02;
  57.         }
  58. }           */
  59. /*-------------
  60. 数据锁存输出
  61. ---------------*/               
  62. void send_out()
  63. {
  64.         st_cp=0;
  65.         st_cp=1;
  66. }
  67. /*-----------
  68. 显示子程序
  69. ------------*/
  70. void display()
  71. {
  72.         uchar i,j,k;
  73.         for(i=0;i<4;i++)
  74.         {
  75.                 for(j=0;j<2;j++)
  76.                 {
  77.                         for(k=0;k<2;k++)
  78.                         {
  79.                                 send_dat(~tab_zimo[j][3*8+k+i*2]);
  80.                                 send_dat(~tab_zimo[j][2*8+k+i*2]);
  81.                                 send_dat(~tab_zimo[j][1*8+k+i*2]);
  82.                                 send_dat(~tab_zimo[j][0*8+k+i*2]);
  83.                         }
  84.                           
  85.                 }
  86.                         send_out();       
  87.                          OA1=0x01&i;
  88.                         OB1=0x02&i;
  89.         }
  90.        
  91. }
  92. /*------------
  93. 主函数
  94. ------------------*/
  95. main()
  96. {
  97.         while(1)
  98.         {
  99.                 display();
  100.         }
  101. }
复制代码
0条回答

一周热门 更多>