找回密码
 立即注册

QQ登录

只需一步,快速开始

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

16×16点阵LED显示器汉字显示—基于74HC595和74HC154驱动

[复制链接]
跳转到指定楼层
楼主
点阵LED显示器结构及汉字字模。设计16×16点阵LED显示器的驱动电路,编写程序实现在16×16点阵LED显示器上的汉字显示。16×16点阵LED显示器可由4块8×8点阵LED显示器构成。可采用单片机并行端口、移位寄存器、译码器或锁存器等4种驱动方式中的组合实现对16×16点阵LED显示器的驱动
    电路方面主要包括以下3部分。
(a)设计单片机的最小系统(包括复位电路和外接的晶振电路),并确定相关元器件参数。
(b)采用动态驱动的方式,设计单片机并行端口、移位寄存器、译码器或锁存器等与16×16点阵LED显示器的驱动电路,主要包括控制点阵LED行和列的连线。
(c)采用移位寄存器、译码器或锁存器驱动点阵LED显示器时,设计单片机与移位寄存器、译码器或锁存器间的控制连线。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<regx51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define clk P2_5
  5. #define sclk P2_6
  6. #define en P2_4
  7. #define dat P2_7

  8. void hang(uchar a)
  9. {
  10. uchar k;
  11. //p2=0;
  12. //en=1;
  13. for(k=0;k<8;k++)
  14. {

  15. dat=a&0x80;
  16. clk=1;
  17. clk=0;
  18. a<<=1;
  19. }
  20. }

  21. delay1ms(unsigned char m)
  22. {
  23. unsigned char  n;
  24. while(m--)
  25.    {
  26.      for(n=0;n<122;n++);
  27.    }
  28. }


  29. void main(void)
  30. {
  31. uchar i,j,q;
  32. uchar code a[32]=
  33. {0x04,0x00,0x04,0x00,0x0F,0xE0,0x10,0x20,0x20,0x40,0x7F,0xF8,0xA1,0x08,0x21,0x08,
  34. 0x3F,0xF8,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x02,0x01,0x02,0x00,0xFE,};
  35. uchar code b[32]=
  36. {0x00,0x08,0x20,0x3C,0x17,0xC0,0x14,0x00,0x84,0x1C,0x45,0xE0,0x45,0x20,0x15,0x22,
  37. 0x15,0x24,0x25,0x28,0xE5,0x10,0x25,0x10,0x25,0x08,0x29,0x44,0x29,0x82,0x11,0x00,};
  38. uchar code c[32]=
  39. {0x10,0x00,0x10,0x00,0x3F,0xFC,0x20,0x00,0x4F,0xF0,0x80,0x00,0x3F,0xF0,0x00,0x10,
  40. 0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x0A,0x00,0x0A,0x00,0x06,0x00,0x02,};
  41. uchar code d[32]=
  42. {0x00,0x40,0x00,0x40,0x00,0x40,0xFE,0x40,0x11,0xFC,0x10,0x44,0x10,0x44,0x10,0x44,
  43. 0x10,0x44,0x10,0x84,0x10,0x84,0x1E,0x84,0xF1,0x04,0x41,0x04,0x02,0x28,0x04,0x10,};
  44. while(1)
  45. {
  46. P2=0;
  47. en=1;

  48. for(j=0;j<62;j++)
  49. {
  50.          for(i=0;i<32;i=i+2)
  51.          {
  52.                  hang(a[i]);
  53.                  hang(a[i+1]);
  54.                  q=(31-i)/2;
  55.                  P2=P2&0xf0;
  56.                  P2=P2|q;
  57.                  sclk=1;
  58.                  sclk=0;                                                                                                                                                                                         
  59.                  delay1ms(1);
  60.          }
  61. }

  62. for(j=0;j<62;j++)
  63. {
  64. for(i=0;i<32;i=i+2)
  65. {
  66. hang(b[i]);
  67. hang(b[i+1]);
  68. q=(31-i)/2;
  69. P2=P2&0xf0;
  70. P2=P2|q;
  71. sclk=1;
  72. sclk=0;
  73. delay1ms(1);
  74. }
  75. }


  76. for(j=0;j<62;j++)
  77. {
  78. for(i=0;i<32;i=i+2)
  79. {
  80. hang(c[i]);
  81. hang(c[i+1]);
  82. q=(31-i)/2;
  83. P2=P2&0xf0;
  84. P2=P2|q;
  85. sclk=1;
  86. sclk=0;
  87. delay1ms(1);
  88. }
  89. }


  90. for(j=0;j<62;j++)
  91. ……………………

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

所有资料51hei提供下载:
16×16点阵LED显示器汉字显示——基于74HC595和74HC154驱动.rar (52.25 KB, 下载次数: 208)


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

使用道具 举报

沙发
ID:302391 发表于 2018-4-7 16:42 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:456928 发表于 2018-12-28 13:21 | 只看该作者
很好的东西 很有用
回复

使用道具 举报

地板
ID:644517 发表于 2019-11-18 19:16 | 只看该作者
很好的东西 很有用
回复

使用道具 举报

5#
ID:774176 发表于 2020-6-9 17:10 | 只看该作者
感谢贴主
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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