求大神指导用595和138控制16*16的点阵,如何实现动态显示。

2019-07-16 03:04发布

#include<reg52.h>
#define  uchar unsigned char
#define  uint unsigned int
#include<intrins.h>
sbit C1=P1^0;
sbit B1=P1^1;
sbit A1=P1^2;
sbit E=P1^3;
sbit D=P1^4;
sbit R_CLK=P1^5;                                                                //输出存储器锁存时钟线
sbit C_LK=P1^6;                                                                    //数据输入时钟
sbit DATA=P1^7;

uchar code table1[8]={0,1,0,1,0,1,0,1};
uchar code table2[8]={0,0,1,1,0,0,1,1};
uchar code table3[8]={0,0,0,0,1,1,1,1};         
void wr138(uchar k)
{
        D=0;
          if(k<9)
          {
                          E=0;
                          A1=table1[k-1];
                        B1=table2[k-1];
                        C1=table3[k-1];
           }
                else
                {
                        E=1;
                        A1=table1[k-9];
                        B1=table2[k-9];
                        C1=table3[k-9];       
                }

}                                                                                          //控制行
void wr595(uchar temp)
{
                  uchar m;
                  for(m=0;m<8;m++)
                  {
                          C_LK=0;
                          DATA=temp&0x80;
                          C_LK=1;
                          temp=temp<<1;
                   }
}
void delay(uint z)
{         uint x;
        for(x=z;z>0;z--)
                for(x=110;x>0;x--);
}
void hsm()
{
        uint k;
         for(k=0;k<16;k++)
         {        wr138(k+1);delay(100);}
}                                                                                                                                         //行扫描
void out595()
{
        R_CLK=0;hsm();
        R_CLK=1;
}


void main()
{       
        while(1)
        {
                uint k;
                uchar temp=0xfe;
                wr595(temp);
                out595();
        }

}

点阵模块原理图.pdf 下载积分: 积分 -1 分
53.7 KB, 下载次数: 31, 下载积分: 积分 -1 分
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
Last_time
1楼-- · 2019-07-16 07:53
你想怎样显示啊
icepoint11
2楼-- · 2019-07-16 11:20
同求,!!!!!!!!!!!!!
icewu521
3楼-- · 2019-07-16 13:13
本帖最后由 icewu521 于 2015-6-23 23:15 编辑

我做过595与164的点阵,显示原理就是先将字模的第一行取出来送595移位,然后再164选这一行输出,即可点亮这一行,然后第二行同样原理,直到16行结束。不停动态扫瞄显示就出来了。不过楼主意思是动态显示,我是做了一个显示缓冲区,软件算法不断往里写入不同字模实现。不知大神还有没有新方法,不吝赐教啊

一周热门 更多>