STM32/STM8技术william hill官网
直播中

ghw1997

4年用户 19经验值
擅长:可编程逻辑
私信 关注
[问答]

向595压0xff,发现灯全灭,然后就写了下面的程序发现都不亮,想问问595不能装0xff?其他都正常

本帖最后由 ghw1997 于 2020-1-20 00:42 编辑

#include"reg52.h"
#include
***it rck=P3^5;
***it sck=P3^6;
***it si=P3^4 ;

void spend( char ii)
{
  char a;
       
         for(a=0;a<8;a++)
         {

            si=ii>>7;
             ii<<=1;        sck=0;
            sck=1;
            
           }
       
            
}
void main()
{
            
           spend(0xff);         
            rck=0;
       
           rck=1;
          
}

回帖(8)

人中狼

2020-1-20 00:29:37

最佳答案

这几个程序没看出有什么不同,可以试试改用共阳的LED,要加限流电阻,使用共阴LED,就是要595输出电流点亮LED,但对于有的需要电流大的LED,595可能无法点亮,所以用共阳LED比较好,控制好限流电阻,LED都能点亮
举报

ghw1997

2020-1-20 00:34:02
本帖最后由 ghw1997 于 2020-1-20 00:41 编辑

#include"reg52.h"
#include
***it rck=P3^5;
***it sck=P3^6;
***it si=P3^4 ;

void spend( char ii)
{
  char a;
       
         for(a=0;a<8;a++)
         {

            si=ii>>7;
             ii<<=1;        sck=0;
            sck=1;
            
           }
       
            
}
void main()
{
            
           spend(0xff);         
            rck=0;
       
           rck=1;
          
}
是这个,全灭。共阴管子
                                                         
举报

ghw1997

2020-1-20 00:38:24
#include"reg52.h"
#include
***it rck=P3^5;
***it sck=P3^6;
***it si=P3^4 ;

void spend( char ii)
{
  char a;
       
         for(a=0;a<8;a++)
         {

            si=ii>>7;
             ii<<=1;        sck=0;
            sck=1;
            
           }
       
            
}
void main()
{
            
           spend(0xff);         
            rck=0;
       
           rck=1;
          
}
一开始是这个全灭,共阴
举报

ghw1997

2020-1-20 00:40:45
#include"reg52.h"
#include
***it rck=P3^5;
***it sck=P3^6;
***it si=P3^4 ;

void spend( char ii)
{
  char a;
       
         for(a=0;a<8;a++)
         {

            si=ii>>7;
             ii<<=1;        sck=0;
            sck=1;
            
           }
       
            
}
void main()
{
            
           spend(0xff);         
            rck=0;
       
           rck=1;
          
}
这个全不亮。共阴
举报

阿信509

2020-1-20 22:01:06
595想压啥就压啥,有问题也是你的问题;
但是0xff,你必须用无符号数unsigned char,你用了char那就是你的不对了
举报

ghw1997

2020-1-21 01:56:24
我用int压也不行,但压其他都行
举报

ghw1997

2020-1-22 12:23:14
放着几天  重新烧一个  发现0xff又可以点亮全部管子了?啥情况?
举报

ghw1997

2020-1-22 13:51:18
本帖最后由 ghw1997 于 2020-1-22 13:53 编辑

大佬门  我错了  我忘记把外接时钟给拔掉。。。程序是对的  点阵乱亮  我就挨个查,结果就查到0xff不亮,纠结了好久,刚看到跳线帽子没拔。。。
#include"reg52.h"
***it rck=P3^5;
***it sck=P3^6;
***it si=P3^4 ;
int code duan[]={
0x00,0x00,0x08,0x88,0x68,0x08,0x08,0x0F,0x08,0x08,0x28,0xC8,0x08,0x00,0x00,0x00,
0x81,0x81,0x82,0x82,0x84,0x88,0xB0,0xC0,0xB0,0x88,0x84,0x82,0x82,0x81,0x81,0x00,
};
int code wei[]={
0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80, 0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,
} ;

void spend(  unsigned char i1,unsigned char i2,
             unsigned char i3,unsigned char i4)
{
  char a;
       
         for(a=0;a<8;a++)
         {

            si=i1>>7;
             i1<<=1;       
                 sck=0;
            sck=1;
            
           }
           for(a=0;a<8;a++)
         {

            si=i2>>7;
             i2<<=1;       
                 sck=0;
            sck=1;
            
           }
            for(a=0;a<8;a++)
         {

            si=i3>>7;
             i3<<=1;       
                 sck=0;
            sck=1;
            
           }
            for(a=0;a<8;a++)
         {

            si=i4>>7;
             i4<<=1;       
                 sck=0;
            sck=1;
            
           }
       
            
}
void delay(int i)
{
while(--i) ;
}
void main()
{ int i;
            
           while(1)
           {   
               for(i=0;i<16;i++)
                   {
                   spend(~wei[i+16],~wei,duan[i+16],duan);
                   rck=0;
                   rck=1;
                   delay(10);
                   }
                  
           }
          
          


举报

更多回帖

×
20
完善资料,
赚取积分