8193|9

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

【求助】74HC595的使用 [复制链接]

请问下74HC595的串行口接收的数据可以是单片机的异步串口发送的数据吗?

最新回复

多看看资料,要模拟的话,一定要看懂时序图, 慢慢来,不要急,操作次数多了,就会懂得也多了,高手都是这样过来的   详情 回复 发表于 2023-5-10 09:33
 
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
有人使用过吧,我现在是不清楚595的串口数据输入和单片机的什么口进行相连的,麻烦指点下! 万分感谢!
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
首先你必须自己好好看看595的资料!!!!任意的三个IO口就可以控制595的并行输出!!!
我想你应该是个新手!!!
我把程序给你贴上来!!!但是这个程序你想会用也得看看595的资料!!!
有什么不懂的地方问问!!!


/*************************************************************************
* HC595操作工具函数 *
**************************************************************************/
//nsigned char P595OUT;
void update_port_hc595(unsigned char POUT_HC595)
{
unsigned char i = 8;
P1SEL &= ~ (BIT5+BIT6+BIT7);
P1DIR |= BIT5+BIT6+BIT7;
P1OUT &= ~(BIT5+BIT6);
while(i--)
{
P1OUT &= ~BIT5;
if((POUT_HC595 & BIT7) == BIT7)
P1OUT |= BIT7;
else
P1OUT &= ~BIT7;
P1OUT |= BIT5; // 移位寄存器上升沿脉冲
POUT_HC595 <<= 1;
}
P1OUT |= BIT6; // 存储上升沿脉冲
_NOP();
P1OUT &= ~BIT6;
}
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

4
 
没错 俺是个新手!刚开始接触单片机 现在做一个数码管显示的小项目,遇到了这个难题啊
你给的这个程序里的BIT7是595的SER端吗? SER是串行数据输入端,这个端口的串行数据用单片机怎么送出来啊? 请达人指点一二!谢谢!
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
更正下: 程序里的POUT_HC595 应该是串口发送的数据吧!
那再问这个数据单片机是怎么送给595的 是直接赋值给POUT_HC595 的吗?
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用:

更正下: 程序里的POUT_HC595 应该是串口发送的数据吧!
那再问这个数据单片机是怎么送给595的 是直接赋值给POUT_HC595 的吗?
你提这些问题时应该先把HC595的数据手册先看懂。
74HC595是一个8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态,即“三态”。
显然,dj1212给你的程序就是将一个字节的数据(POUT_HC595 )通过P1.7(与74HC595的串行输入端14脚SI连接)采用左
移的方式输入到74HC595的。P1.5作为HC595的输入时钟,P1.6作为(并行)输出的锁存脉冲。
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

7
 
谢谢各位的指点,受益良多! 非常非常的感谢!
 
 
 

回复

13

帖子

2

TA的资源

一粒金砂(中级)

8
 
我是用52写的,用两个595驱动4个数码管,程序哪不对了?include
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();
   }
  
}

}
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

9
 
aishangni 发表于 2006-5-12 09:22 有人使用过吧,我现在是不清楚595的串口数据输入和单片机的什么口进行相连的,麻烦指点下! 万分感谢!

用普通GPIO口就可以,模拟时钟高低电平,注意595输出是高电平还是高阻态

 
 
 

回复

331

帖子

0

TA的资源

一粒金砂(高级)

10
 

多看看资料,要模拟的话,一定要看懂时序图,

慢慢来,不要急,操作次数多了,就会懂得也多了,高手都是这样过来的

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表