请教: 用595扩展输出控制8550没成功

[复制链接]
3001|4
 楼主| yuanquan12345 发表于 2011-2-21 09:06 | 显示全部楼层 |阅读模式
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
/*输出扩展595管脚定义*/
sbit hc595sh=P1^5;    // 74HC595时钟线(11脚),上升沿有效
sbit hc595st=P1^4;     // 74HC595锁存口(12脚),上升沿有效
sbit hc595ds=P1^0;     //74HC595数据线(14脚)
/***************595写数据***************/
void whc595_dat(uchar dat)  //写1byte数据
{
uchar i;
hc595ds=1;
for(i=0;i<8;i++)
  {   
   if(dat&0x01)
    hc595ds=1;//低位在前
   else
    hc595ds=0;
   hc595sh=0;  //时钟(11脚)
   hc595sh=1;
   dat>>=1;      
  }   
}

void main()
{
      uchar xx=0;
      lcd_init();                //初始化LCD  
      while(1)
       {
            xianshi();
             whc595_dat(0xff);   //也就是单片机的扩展
             hc595st=0;   //595锁存端(12脚)
            
              hc595st=1;
          }
}
程序写入后,8550全部导通。
弄了两天了。
请指点。
谢谢。
zhaoyu2005 发表于 2011-2-21 10:05 | 显示全部楼层
1.看看复位端(10脚)是不是低电平,这个脚如果是低电平,你输入什么数据都不管用
2.你的8550的E极电压是否低于单片机供电电压1V以下,如果高于1V以上,即使b极输出高电平,管子还是导通
3.看看三极管是否接对
 楼主| yuanquan12345 发表于 2011-2-21 10:32 | 显示全部楼层
谢谢回复,10脚是悬空的。用万用表测量如果输出端为高电平,8550不动作。当用导线将一个输出管脚接地,对应的三极管导通。输出正常。
我现在输出高电平。在595上没实现高电平。
是程序的问题吗?
谢谢。
 楼主| yuanquan12345 发表于 2011-2-21 11:17 | 显示全部楼层
用这个程序控制数码管,正常。为什么控制三极管就不正常了呢?
请大家指点。
 楼主| yuanquan12345 发表于 2011-2-21 14:49 | 显示全部楼层
问题已解决,是因为MR(10脚)与VCC接触不良。
处理后问题解决。
谢谢大家。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1155

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部