微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 新人求大神解答关于74hc595驱动8位led灯的问题!

新人求大神解答关于74hc595驱动8位led灯的问题!

时间:10-02 整理:3721RD 点击:
74HC595有数据输入 可是无论怎么数据8位led一直灯常亮!下面是我的程序: (求大神帮我看看 万分感谢!)
#include<reg52.h>
#include <intrins.h>
sbit DATA = P0^0;//串行数据输入
sbit SCK = P0^1;//位移锁存器时钟讯号
sbit LCK = P0^2;//平行锁存器时钟讯号
void main()
{
unsigned char i = 0,SJ = 0xAA;
unsigned int  p = 0;
   while(1)
   {
   LCK = 0;
   for(i=0;i<8;i++)
   {
      SCK = 1;
      if((SJ<<p)&0x80)
   {
     DATA = 1;
   }
   else
   {
     DATA = 0;
   }
   SCK = 0;
   _nop_();
   _nop_();
   SCK = 1;   
   p++;
   }
LCK = 1;
  _nop_();
  _nop_();
LCK = 0;
p=0;
    i=0;  
   }
}


求大神 指点啊!

求大神 指点啊!

你这个是在什么仿真器里仿真的呢?

proteus里仿真的 有什么问题吗?

没有啊,想知道下,嘿嘿

P0口要加上拉电阻。

参考这个程序:
#include<reg52.h>
#include<intrins.h>
sbit ser=P3^4;  //(14脚)串行数据输入
sbit rclk=P3^5;  //(12脚)并行输出控制
sbit srclk=P3^6;  //(11脚)移位时钟控制
void hc595(unsigned char send)
{
unsigned char i;
   rclk=0;
   ser=0;
for(i=0;i<8;i++)
        {
                if((send<<i)&0x80)
                {
                        ser=1;
                }
                else
                {
                        ser=0;        
                }
                srclk=0;
                _nop_();
                srclk=1;
                                
        }
            rclk=0;
                _nop_();
                rclk=1;
}
void main()
{
hc595(0xff);        
}

ZAN

你的程序也没什么问题~看看电路吧,可能是电路出问题了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top