找回密码
 立即注册

QQ登录

只需一步,快速开始

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

16*16点阵的动态显示(单片机仿真,程序)亲测可用

[复制链接]
跳转到指定楼层
楼主
点阵,亲测可用
proteus仿真显示效果:


原理图:




单片机源程序:
  1. #include <reg52.h>

  2. #define MATRIX_DATA P0
  3. sbit MATRIX_X_EN_0 = P2^0;
  4. sbit MATRIX_X_EN_1 = P2^1;
  5. sbit MATRIX_Y_EN_0 = P2^2;
  6. sbit MATRIX_Y_EN_1 = P2^3;

  7. unsigned char code text[]={
  8. 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,
  9. 0x80,0x00,0x88,0x08,0x88,0x10,0x88,0x20,
  10. 0x84,0x20,0x84,0x40,0x82,0x40,0x81,0x40,
  11. 0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00,//小

  12. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  13. 0x04,0x02,0x04,0x04,0xC4,0x7F,0x1F,0x04,
  14. 0x15,0x12,0x55,0x4F,0x95,0x24,0x55,0x4A,
  15. 0x1F,0x1F,0x05,0x10,0x04,0x04,0xD4,0x7F,
  16. 0x1C,0x04,0x17,0x04,0x02,0x04,0x00,0x04,//蟀

  17. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  18. 0x20,0x20,0x24,0x20,0x24,0x20,0xFC,0x25,
  19. 0x22,0x24,0x20,0x24,0xFF,0x27,0x20,0x24,
  20. 0x20,0x24,0xFC,0x25,0x24,0x25,0x24,0x25,
  21. 0x64,0x21,0xA4,0x20,0x20,0x28,0x20,0x10,//制

  22. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  23. 0x90,0x00,0x90,0x00,0x90,0x00,0x88,0x7F,
  24. 0x48,0x01,0x4C,0x01,0x2C,0x01,0x0A,0x1F,
  25. 0x09,0x01,0x08,0x01,0x08,0x01,0x08,0x3F,
  26. 0x08,0x01,0x08,0x01,0x08,0x01,0x08,0x01,//作

  27. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  28. };

  29. void DelayMs(unsigned int ms);
  30. void MatrixShow(unsigned char *text);

  31. void main()
  32. {
  33.         unsigned int cnt = 0, p = 0;
  34.         while(1)
  35.         {
  36.                 MatrixShow(&text[p]);
  37.                 DelayMs(2);
  38.                 cnt++;
  39.                 if(cnt == 64)
  40.                 {
  41.                         cnt = 0;
  42.                         p += 2;
  43.                         if(p >= sizeof(text)-17)
  44.                         {
  45.                                 p = 0;
  46.                         }
  47.                 }
  48.         }
  49. }

  50. void DelayMs(unsigned int ms)
  51. {
  52.         unsigned int i, j;
  53.         for(i=0; i<ms; i++)
  54.                 for(j=0; j<110; j++);
  55. }

  56. void MatrixShow(unsigned char *text)
  57. {
  58.         static unsigned char cnt = 0;

  59.         MATRIX_DATA = 0xff;
  60.         MATRIX_Y_EN_0 = 1;
  61.         MATRIX_Y_EN_0 = 0;
  62.         MATRIX_Y_EN_1 = 1;
  63.         MATRIX_Y_EN_1 = 0;

  64.         MATRIX_DATA = text[2*cnt];
  65.         MATRIX_X_EN_0 = 1;
  66.         MATRIX_X_EN_0 = 0;

  67.         MATRIX_DATA = text[2*cnt+1];
  68.         MATRIX_X_EN_1 = 1;
  69.         MATRIX_X_EN_1 = 0;

  70.         if(cnt<8)
  71.         {
  72.                 MATRIX_DATA = ~(0x01<<cnt);
  73.                 MATRIX_Y_EN_0 = 1;
  74.                 MATRIX_Y_EN_0 = 0;
  75.         }
  76.         else
  77.         {
  78.                 MATRIX_DATA = ~(0x01<<(cnt-8));
  79.                 MATRIX_Y_EN_1 = 1;
  80.                 MATRIX_Y_EN_1 = 0;
  81.        

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

下载:
0009-16x16点阵 - 副本.rar (104.58 KB, 下载次数: 101)

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

使用道具 举报

沙发
ID:446199 发表于 2018-12-14 13:02 | 只看该作者
为啥我proteus打不开
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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