两个74hc595驱动4个数码管

2019-03-24 17:54发布


我是用52写的,用两个595驱动4个数码管,程序哪不对了?include<reg51.h>
sbit SCK=P1^0;//数据输入时钟   11
sbit RCK=P1^1;//输出存储锁存时钟线12
sbit SI=P1^2;//数据线14
unsigned char code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void _595in(unsigned char Data)
{
          unsigned char k,m;
                                   for(m=0;m<1;m++)
                                   {
                                        for(k=0;k<8;k++)
                                                {
                                                 SCK=0;
                                                 if(Data&0x80)
                                                 SI=1;
                                                 else                                                                                                   

                                                 SI=0;
                                                 Data<<=1;
                                                 SCK=1;
                                       
                                                 }
                           
                                           }                          
}
void delay2ms()
{
                             unsigned char i,j;
                           for(i=133;i>0;i--)
                           for(j=6;j>0;j--);
}
void _595out()
{
  RCK=0;
  // _nop_();
  //delay2ms();
  RCK=1;
}

void main()
{
unsigned char i;
while(1)
  {
                 for(i=0;i<1;i++)
                 {        
                    _595in(duan[i]);
                                _595out();
                                
                                //_595in(wei[i]);
                    _595in(wei[i]);
                        _595out();
                    
                    //        delay2ms();
                    //_595in(duan[10]);
                  
                //        delay2ms();
                    
                    delay2ms();
   }
  
}

}


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
fangsir
1楼-- · 2019-03-24 23:56
自己想想 Data&0x80  什么情况下为1

另外, 下面的逻辑也不对,找本书看看吧。
吴下阿蒙
2楼-- · 2019-03-25 01:09
使用加强版的51,如stc15系列的芯片,用IO口直接驱动数码管,晶振也省了。程序差不多,修改一下头文件,和配置一下IO口类型就好了。
吴下阿蒙
3楼-- · 2019-03-25 05:56
 精彩回答 2  元偷偷看……
fangsir
4楼-- · 2019-03-25 11:31
活学活用很重要,基本知识要掌握扎实。

一周热门 更多>