找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2877|回复: 7
收起左侧

3个级联的74hc595驱动的16*16点阵程序怎么由静态改为动态

[复制链接]
ID:351351 发表于 2018-6-13 22:40 | 显示全部楼层 |阅读模式
100黑币
求大佬指点怎么改成左移或者其他动态显示
  1. # include <reg52.h>
  2. typedef unsigned char uchar;
  3. uchar code Bmp031[]=
  4. {
  5.         0xF7,0xFF,0x07,0xFE,0xDB,0x83,0xDF,0xBB,0x01,0xBA,0x9F,0xBB,0x5F,0x83,0xEF,0xFE,
  6.         0xFF,0xFF,0x1F,0xE0,0xDF,0xEF,0x1F,0xE0,0xDF,0xEF,0xDF,0xEF,0x1F,0xE0,0xDF,0xEF,
  7. };

  8. uchar code Bmp032[]=
  9. {
  10.         0x7F,0xFF,0xFF,0xFE,0x03,0x80,0x7B,0xFF,0x7B,0xFF,0x03,0xC0,0xBB,0xFD,0xDB,0xFD,
  11.         0x0B,0xC0,0xDB,0xFD,0xFB,0xFD,0x03,0x80,0xFB,0xFD,0xFD,0xFD,0xFD,0xFD,0xFE,0xFD,
  12. };

  13. uchar code Bmp033[]=
  14. {
  15.         0x7F,0xFF,0x7F,0xFF,0x7F,0xFF,0x03,0xE0,0x7B,0xEF,0x7B,0xEF,0x03,0xE0,0x7B,0xEF,
  16.         0x7B,0xEF,0x7B,0xEF,0x03,0xE0,0x7B,0xEF,0x7F,0xBF,0x7F,0xBF,0xFF,0x80,0xFF,0xFF,
  17. };

  18. uchar *bmp[3];

  19. sbit SHCP = P0^4; //移位时钟
  20. sbit STCP = P2^3; //锁存时钟
  21. sbit DATE = P0^2; //数据输入
  22. sbit OE = P2^4;   //输出使能

  23. void out595_datdu(uchar du0, uchar du1, uchar HBIT, uchar LBIT )
  24. {
  25.         uchar i,j,k,z;
  26.         STCP = 0;
  27.         for (i = 0; i < 8; i++)
  28.         {
  29.                 SHCP = 0;

  30.                 if (du0 & 0x80)
  31.                 {
  32.                         DATE = 1;
  33.                 }
  34.                 else  
  35.                 DATE = 0;  
  36.                
  37.                 SHCP = 1;
  38.                 SHCP = 0;
  39.                 du0 <<= 1;
  40.   }
  41.         for (j = 0; j < 8; j++)
  42.         {
  43.                 SHCP = 0;

  44.                 if (du1 & 0x80)
  45.                 {
  46.                         DATE = 1;
  47.                 }
  48.                 else  
  49.                 DATE = 0;  
  50.                
  51.                 SHCP = 1;
  52.                 SHCP = 0;
  53.                 du1 <<= 1;
  54.   }

  55.         for (k = 0; k < 8; k++)
  56.         {
  57.                 SHCP = 0;

  58.                 if (HBIT & 0x80)
  59.                 {
  60.                         DATE = 1;
  61.                 }
  62.                 else  
  63.                 DATE = 0;  
  64.                
  65.                 SHCP = 1;
  66.                 SHCP = 0;
  67.                 HBIT<<=1;
  68.         }
  69.         for (z = 0; z < 8; z++)
  70.         {
  71.                 SHCP = 0;

  72.                 if (LBIT & 0x80)
  73.                 {
  74.                         DATE = 1;
  75.                 }
  76.                 else  
  77.                 DATE = 0;  
  78.                
  79.                 SHCP = 1;
  80.                 SHCP = 0;
  81.                 LBIT<<=1;
  82.   }
  83. }


  84. void DlyMs(unsigned int dly)
  85. {
  86.     unsigned int tmp;
  87.     while(dly--)
  88.     {
  89.         for(tmp=0;tmp<2;tmp++);   
  90.     }
  91. }

  92.         
  93. void main(void)
  94. {
  95.     unsigned char i,j;
  96.     unsigned short int tmp;
  97.     OE = 0;


  98.     bmp[0] = Bmp033;
  99.     bmp[1] = Bmp032;
  100.     bmp[2] = Bmp031;



  101.     while(1)
  102.     {
  103.         tmp = 1;
  104.         for(j=0;j<16;j++)
  105.         {
  106.             for(i=0;i<3;i++)out595_datdu(bmp[i][j*2+1], bmp[i][j*2],~(tmp>>8),~tmp);
  107.             tmp <<= 1;
  108.             STCP = 1;
  109.             STCP = 0;
  110.         }
  111.        DlyMs(1);
  112.     }
  113. }
复制代码



回复

使用道具 举报

ID:123289 发表于 2018-6-14 05:06 | 显示全部楼层
为何要改,改的目的是什么?
回复

使用道具 举报

ID:329253 发表于 2018-6-14 10:02 来自手机 | 显示全部楼层
应该是四个595吧?
回复

使用道具 举报

ID:320306 发表于 2018-6-14 11:36 | 显示全部楼层
有仿真图吗????????????????
回复

使用道具 举报

ID:351351 发表于 2018-6-14 11:51 | 显示全部楼层
yzwzfyz 发表于 2018-6-14 05:06
为何要改,改的目的是什么?

想让led点阵动态显示
回复

使用道具 举报

ID:351351 发表于 2018-6-14 11:51 | 显示全部楼层

对,4个595
回复

使用道具 举报

ID:351351 发表于 2018-6-14 13:25 | 显示全部楼层
zsyzdx 发表于 2018-6-14 11:36
有仿真图吗????????????????

图。。。。。。。。。。。。。。。。。。。。。

图。。。。。。。。。。。。。

图。。。。。。。。。。。。。
回复

使用道具 举报

ID:212177 发表于 2018-6-14 14:28 来自手机 | 显示全部楼层
通过数组调整或交换实现,具体根据你的硬件自己慢慢式
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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