打印

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

[复制链接]
2289|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 | 只看该作者
用这个程序控制数码管,正常。为什么控制三极管就不正常了呢?
请大家指点。

使用特权

评论回复
5
yuanquan12345|  楼主 | 2011-2-21 14:49 | 只看该作者
问题已解决,是因为MR(10脚)与VCC接触不良。
处理后问题解决。
谢谢大家。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

75

主题

1155

帖子

3

粉丝