4602|30

39

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

我用的是1588bs 的点阵,效果一直跟理想的不一样 [复制链接]

 

我用的是1588bs 的点阵,然后我看到引脚图,如果我想让64个点全部点亮,那我的设置的程序代码是不是oxcb 0x29啊,然后这是代码,如果不是代码问题,那请问是什么问题。

如果是pcb 板连线问题,我不知道怎么上传ad软件。。。球球帮我看看

#include<reg51.h>
#include<intrins.h>
sbit SRCLK=P3^6;
sbit RCLK=P3^5;
sbit SER=P3^4;

#define hang    P0

void ys()

{
unsigned char q,w,e,r;

for(q=5;q>0;q--)

for(w=4;w>0;w--)

for(e=116;e>0;e--)

for(r=214;r>0;r--);

            }


void Hc595SendByte(unsigned char dat)
{
    unsigned char a;
    SRCLK=0;
    RCLK=0;
    for(a=0;a<8;a++)
    {
        SER=dat>>7;
        dat<<=1;

        SRCLK=1;
        _nop_();
        _nop_();
        SRCLK=0;    
    }

    RCLK=1;
    _nop_();
    _nop_();
    RCLK=0;
}

void xs(unsigned int o)
{     
     unsigned char  j;
    
    unsigned int  p=1;
    unsigned int k;
  
    
    for(k=0;k<o;k++)        //改变值可以改变不显示的时间
    {
        ys();        
    }
    while(p)
    {    
        

                                                                            
                hang    = 0xcb;                     
                Hc595SendByte(0x29);    
                        
        
             
        }
        j++;
        if(j == 8)
        {
            j = 0;
        }
        p++;
        if(p == 1000)        //修改值 可以改变显示时长
        {
            p = 0;
        }
        
    }    


void main()
{    

    while(1)
    {    
    xs(1);

    }    
}

此帖出自51单片机论坛

最新回复

stc P0口加上拉试试。   详情 回复 发表于 2021-4-13 08:49
点赞 关注
 

回复
举报

693

帖子

7

TA的资源

版主

沙发
 

发帖的时候有个文件上传的图标,可以发送文件的

此帖出自51单片机论坛
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

里面有pcb 和原理图 二级发光管可以不用看,看看那个点阵的部分,谢谢了~

AD.rar

1.04 MB, 下载次数: 4

此帖出自51单片机论坛
 
 
 

回复

6105

帖子

4

TA的资源

版主

4
 
本帖最后由 damiaa 于 2021-4-6 15:48 编辑

            1列 2列 3列 4列 5列 6列 7列 8列
             13  3   4  10  6   11  15 16 
             Q4 P02 P03 Q1 P05  Q2  Q6 Q7
1行 9    Q0  
2行 14   Q5
3行 8    P07
4行 12   Q3
5行 1    P00
6行 7    P06
7行 2    P01
8行 5    P04
看上上面图得知控制IO对应关系如上。所以编程很麻烦。 最好的是吧P0全部做行或者全部做列。

 

不改版的情况下 ,先计算好你这个8*8的点阵是要哪些IO高哪些低,然后计算出595要送的数据和P0要送的数据,然后一并送出。这样扫描起来慢很多。

但也没关系。眼睛速度慢CPU快。

此帖出自51单片机论坛
 
 
 

回复

6105

帖子

4

TA的资源

版主

5
 

楼主如果只想全部点亮就是要保证行全部高电平 列全部低电平。

595就是要送0x00101001 =0x29

P0 送           0x11010011 =0xd3        

试试。

此帖出自51单片机论坛

点评

只亮了三排。。。。  详情 回复 发表于 2021-4-6 18:11
 
 
 

回复

2万

帖子

341

TA的资源

版主

6
 

原理图这没有毛病

此帖出自51单片机论坛

点评

你好,能帮我再看一下pcb吗,因为后面我也在改封装,后期是直接改的pcb图,十分感谢!发光二极管不用看,那些应该没有问题。  详情 回复 发表于 2021-4-6 18:12
 
 
 

回复

6105

帖子

4

TA的资源

版主

7
 
本帖最后由 damiaa 于 2021-4-6 16:54 编辑
//类似这样修改 看看如何 如果不对自己修改一下。
unsigned char Led_S[8]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};//想要改变点亮数据就改这里然后调用LedFlash
void Line_To_Send(unsigned char x,unsigned char led)
{
   unsigned char i,H595_val=0,P0_val=0; 
   switch(x)
   {
   	case 1:    H595_val |=0x1;  break;//Q0
    case 2:    H595_val |=0x20; break;//Q5
    case 3:    P0_val   |=0x80; break;//P07
   	case 4:    H595_val |=0x08; break;//Q3
   	case 5:    P0_val   |=0x1;  break;//P00
   	case 6:    P0_val   |=0x40; break;//P06
   	case 7:    P0_val   |=0x2;  break;//P01
   	case 8:    P0_val   |=0x10; break;//P04
   } 
   for(i=0;i<8;i++)  
   {
      unsigned val=led&(1<<i);  
      if(val)
      {
       	switch(val)
	{
		case 1<<0:    H595_val |=0x10; break;  //Q4
    case 1<<1:    P0_val   |=0x04;  break;  //P02 
    case 1<<2:    P0_val   |=0x08;  break;  //P03 
    case 1<<3:    H595_val |=0x02; break;  //Q1 
    case 1<<4:    P0_val   |=0x20;  break;  //P05  
    case 1<<5:    H595_val |=0x04; break;  // Q2  
    case 1<<6:    H595_val |=0x40; break;  // Q6 
    case 1<<7:    H595_val |=0x80; break;  // Q7
	}
      } 
   }
   P0 =0;
   Hc595SendByte(0);//这个函数自己实现
   P0=P0_val;
   Hc595SendByte(H595_val);//
   
} 
void LedFlash(unsigned char *pLeds)
{
	unsigned char i;
  for(i=0;i<8;i++)
	{
         	Line_To_Send(i+1,*(pLeds+i));
	}
       
}
void delayms(unsigned int x)//这个函数自己实现
{
}
void main(void)
{
	while(1)
	{
		LedFlash(&Led_S[0]);
        delayms(10); 
	}
}

 

此帖出自51单片机论坛

点评

51头文件包含一下吧。  详情 回复 发表于 2021-4-7 08:28
12.c(34): error C202: 'P0': undefined identifier   你好 编译下来有错误,po不是不用定义么。。。  详情 回复 发表于 2021-4-6 18:18
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

8
 
damiaa 发表于 2021-4-6 15:20 楼主如果只想全部点亮就是要保证行全部高电平 列全部低电平。 595就是要送0x00101001 =0x29 P0& ...

只亮了三排。。。。

此帖出自51单片机论坛
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

9
 
qwqwqw2088 发表于 2021-4-6 16:10 原理图这没有毛病

你好,能帮我再看一下pcb吗,因为后面我也在改封装,后期是直接改的pcb图,十分感谢!发光二极管不用看,那些应该没有问题。

此帖出自51单片机论坛

点评

[attachimg]531856[/attachimg][attachimg]531857[/attachimg] LED点阵和595的布局不是太合理吧,但不至于影响点亮。 应该是程序方面,好好查查吧  详情 回复 发表于 2021-4-6 21:17
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

10
 
damiaa 发表于 2021-4-6 16:49 //类似这样修改 看看如何 如果不对自己修改一下。 unsigned char Led_S[8]={0xff,0xff,0xff,0xff,0xff,0 ...

12.c(34): error C202: 'P0': undefined identifier  

你好 编译下来有错误,po不是不用定义么。。。

此帖出自51单片机论坛
 
 
 

回复

2万

帖子

341

TA的资源

版主

11
 
示范法 发表于 2021-4-6 18:12 你好,能帮我再看一下pcb吗,因为后面我也在改封装,后期是直接改的pcb图,十分感谢!发光二极管不用看, ...

LED点阵和595的布局,包括走线不是太合理吧,但不至于影响点亮。

应该是程序方面,好好查查吧

此帖出自51单片机论坛

点评

这样么,那到底是哪里有问题。。。。程序能在proteus里仿真啊。点阵有字的那面是从左到右1-9吧。  详情 回复 发表于 2021-4-6 22:43
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

12
 
qwqwqw2088 发表于 2021-4-6 21:17 示范法 发表于 2021-4-6 18:12 你好,能帮我再看一下pcb吗,因为后面我也在改封装,后期是直接改的pcb图 ...

这样么,那到底是哪里有问题。。。。程序能在proteus里仿真啊。点阵有字的那面是从左到右1-9吧。

此帖出自51单片机论坛
 
 
 

回复

6105

帖子

4

TA的资源

版主

13
 
damiaa 发表于 2021-4-6 16:49 //类似这样修改 看看如何 如果不对自己修改一下。 unsigned char Led_S[8]={0xff,0xff,0xff,0xff,0xff,0 ...

51头文件包含一下吧。

此帖出自51单片机论坛
 
 
 

回复

6105

帖子

4

TA的资源

版主

14
 

还有你的led点阵的1腿和原理图一致吗

此帖出自51单片机论坛

点评

实物有字的那一面从左到右1-9 最左边的是1腿吧  详情 回复 发表于 2021-4-7 10:51
 
 
 

回复

6105

帖子

4

TA的资源

版主

15
 

 1列 2列 3列 4列 5列 6列 7列 8列
             13  3   4  10  6   11  15 16 
             Q4 P02 P03 Q1 P05  Q2  Q6 Q7
1行 9    Q0  
2行 14   Q5
3行 8    P07
4行 12   Q3
5行 1    P00
6行 7    P06
7行 2    P01
8行 5    P04

你做个实验,上面的行的腿9,14,8,12,1,7,2,5 接电源, 其他的接到一个电阻 然后接地。看点亮几行。

此帖出自51单片机论坛
 
 
 

回复

6105

帖子

4

TA的资源

版主

16
 

或者你搞个小偏平电池,去点一下。中间可以加个电阻。一个一个测。

9腿 正   --- +  电池--  电阻 -  ---- 13腿

9腿 正   --- +  电池--  电阻 -  ---- 3腿

9腿 正   --- +  电池--  电阻 -  ---- 4腿

。。。

去摸索一下,你就知道哪个是行 哪个是列 哪个是正哪个是负了。

这样子让大家猜你的手上东西也实在是难。万一你的点阵型号不对或者管脚不对。大家怎么猜都没啥子用。

编得程序只是给你一个参考。方式。具体你还要根据情况修改。

此帖出自51单片机论坛

点评

好吧 ,真的很感谢了  详情 回复 发表于 2021-4-7 09:52
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

17
 
damiaa 发表于 2021-4-7 08:43 或者你搞个小偏平电池,去点一下。中间可以加个电阻。一个一个测。 9腿 正   --- + &nbs ...

好吧 ,真的很感谢了

此帖出自51单片机论坛
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

18
 
damiaa 发表于 2021-4-7 08:29 还有你的led点阵的1腿和原理图一致吗

实物有字的那一面从左到右1-9 最左边的是1腿吧

此帖出自51单片机论坛

点评

板点阵屏取下来试。按照上面的方式测试一下。接错都没什么影响的。大胆点试吧。  详情 回复 发表于 2021-4-7 16:27
 
 
 

回复

6105

帖子

4

TA的资源

版主

19
 
示范法 发表于 2021-4-7 10:51 实物有字的那一面从左到右1-9 最左边的是1腿吧

板点阵屏取下来试。按照上面的方式测试一下。接错都没什么影响的。大胆点试吧。

此帖出自51单片机论坛

点评

板点阵已经焊接上去了。。。。然后下午没有拿电阻串联,好像点阵坏了额。我准备换个其他牌子的点阵试试。。然后重新焊一边,如果还不行,就拿万用表测了。  详情 回复 发表于 2021-4-7 17:10
板点阵已经焊接上去了。。。。然后下午没有拿电阻串联,好像点阵坏了额。我准备换个其他牌子的点阵试试。。然后重新焊一边,如果还不行,就拿万用表测了。  详情 回复 发表于 2021-4-7 17:10
 
 
 

回复

39

帖子

0

TA的资源

一粒金砂(中级)

20
 
damiaa 发表于 2021-4-7 16:27 板点阵屏取下来试。按照上面的方式测试一下。接错都没什么影响的。大胆点试吧。

板点阵已经焊接上去了。。。。然后下午没有拿电阻串联,好像点阵坏了额。我准备换个其他牌子的点阵试试。。然后重新焊一边,如果还不行,就拿万用表测了。

此帖出自51单片机论坛

点评

这种情况下拿万用表测量是最方便的  详情 回复 发表于 2021-4-8 16:35
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表