标题: LED点阵屏-16x16显示汉字 单片机+74hc595驱动 有代码和仿真 [打印本页]

作者: maomao12    时间: 2017-6-9 22:21
标题: LED点阵屏-16x16显示汉字 单片机+74hc595驱动 有代码和仿真
LED点阵屏-16x16显示汉字,采用74hc595

16*16点阵屏的仿真原理图如下所示(proteus仿真工程文件可到附件中下载)



单片机源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. #define TEXT 16*2
  6. #define N 0
  7. sbit L_DI  = P2^0;        //HC595第14脚,串行数据输入端
  8. sbit L_LE  = P2^1;        //HC595第12脚,输出锁存脉冲输入端
  9. sbit L_CLK = P2^2;        //HC595第11脚,串行时钟输入端

  10. sbit DI  = P2^4;        //HC595第14脚,串行数据输入端
  11. sbit LE  = P2^5;        //HC595第12脚,输出锁存脉冲输入端
  12. sbit CLK = P2^6;        //HC595第11脚,串行时钟输入端

  13. uchar code Matrix[] =
  14. {
  15. 0x00, 0x00, 0xfe, 0x7f, 0x02, 0x28, 0x02, 0x24, 0x02, 0x23, 0xfe, 0x20, 0x02, 0x20, 0x02, 0x20,
  16. 0xfe, 0x21, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0x02, 0x22, 0xfe, 0x7f, 0x00, 0x00, 0x00, 0x00,        // 四

  17. 0x00, 0x00, 0x00, 0x80, 0x00, 0x60, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  18. 0xfe, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, // 川

  19. 0x00, 0x40, 0xfc, 0x27, 0x00, 0x10, 0x00, 0x0e, 0xff, 0x01, 0x00, 0x00, 0xf2, 0x0f, 0x12, 0x00,
  20. 0x12, 0x00, 0x12, 0x00, 0xfe, 0xff, 0x12, 0x00, 0x12, 0x04, 0x12, 0x08, 0xf2, 0x07, 0x00, 0x00, // 师

  21. 0x44, 0x08, 0x94, 0x09, 0xa4, 0xf8, 0x64, 0x04, 0x04, 0x03, 0x0f, 0x00, 0x04, 0x00, 0xe4, 0x3f,
  22. 0x24, 0x40, 0x2c, 0x40, 0x2f, 0x42, 0x24, 0x46, 0xe4, 0x43, 0x04, 0x70, 0x04, 0x00, 0x00, 0x00, // 范

  23. 0x20, 0x00, 0x20, 0x80, 0x20, 0x40, 0x20, 0x20, 0x20, 0x10, 0x20, 0x0c, 0xa0, 0x03, 0x7f, 0x00,
  24. 0xa0, 0x01, 0x20, 0x06, 0x20, 0x08, 0x20, 0x30, 0x20, 0x60, 0x20, 0xc0, 0x20, 0x40, 0x00, 0x00, // 大

  25. 0x40, 0x00, 0x30, 0x02, 0x10, 0x02, 0x12, 0x02, 0x5c, 0x02, 0x54, 0x02, 0x50, 0x42, 0x51, 0x82,
  26. 0x5e, 0x7f, 0xd4, 0x02, 0x50, 0x02, 0x18, 0x02, 0x57, 0x02, 0x32, 0x02, 0x10, 0x02, 0x00, 0x00, // 学

  27. };


  28. void delay(uint z)
  29. {
  30.                 uint x, y;
  31.                 for (x=0; x<z; x++)
  32.                         for(y=0; y<120; y++);
  33. }
  34. //串行输出一个字节
  35. void HC595(uchar word)
  36. {
  37.     uchar i;
  38.     for (i=8;i>0;i--)
  39.     {
  40.         CLK=0;
  41.         DI=0x80&word;
  42.         word=_crol_(word,1);
  43.         CLK=1;
  44.         _nop_();
  45.     }
  46. }

  47. void display(uchar L, uchar R)
  48. {
  49.         HC595(L);
  50.         HC595(R);
  51.         LE=1;
  52.         _nop_();
  53.         LE=0;
  54. }
  55. void rightmove(bit b)
  56. {
  57.                 L_CLK=0;
  58.                 L_DI=b;
  59.                 L_CLK=1;
  60.                 _nop_();
  61.                 L_CLK=0;
  62.                 L_LE=1;
  63.                 _nop_();
  64.                 L_LE=0;
  65. }
  66. void init()
  67. {
  68.                 int i=0;
  69.                 L_LE = 0;
  70.                 LE = 0;
  71.                 for(i=0; i<TEXT; i++)
  72.                         rightmove(1);
  73. }

  74. void main()
  75. {
  76.                 uchar i=2;
  77.                 init();
  78. ……………………

  79. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
11. LED点阵屏-16x16显示汉字.rar (87.17 KB, 下载次数: 174)



作者: votre    时间: 2017-11-10 19:28
请问取模软件是用的哪个?
作者: wuxishun    时间: 2017-11-14 20:33
正需要该程序做参考
作者: henry9779    时间: 2018-5-23 18:45
这个可不可以实现滚屏??求楼主更改告知一下。
作者: lin0wei0    时间: 2018-5-24 09:03
看看~~~~~~~~~~~~~~
作者: looham    时间: 2018-5-24 11:36
楼主厉害   来看看
作者: 55551ddd    时间: 2019-6-19 15:27
16X16点阵怎么连接在一起
作者: 尼古拉斯嘉    时间: 2019-12-23 14:19
谢谢分享,看看




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1