打印

请教一个问题

[复制链接]
2530|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
syxd1314|  楼主 | 2012-3-15 09:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC在用两个595级联驱动四位数码管的时候
发送数据是这样写的  
void send(uchar duan,uchar wei)
{
    SSPBUF=duan;         //发送段码
    do{
        ;
        }while(SSPIF==0);
    SSPIF=1;
    SSPBUF=wei;           //发送位码  
    do{
        ;
        }while(SSPIF==0);
    SSPIF=1;
    srlk=1;   //锁存
    asm("nop");
    asm("nop");
    srlk=0;   


}  有一点我不明白  段码发送完毕 为什么不锁存 直接就发送位码,如果这样 位开的时候 段码不就被位码冲掉了么。怎么去显示相应的段码呢。
沙发
Ryanhsiung| | 2012-3-15 10:45 | 只看该作者
锁存只是为了稳定! 不发送应该也是可以的

使用特权

评论回复
板凳
kvdong| | 2012-3-15 11:04 | 只看该作者
两个595级联的吧。
简单说就是先发送的数据先送到第一个595内,发送第2个数据时把第一个数据送进第2个595内,而第2个数据留在了第1个595内。这样说可以理解吗?
或者你把两个595想象成1个16位的寄存器。

使用特权

评论回复
地板
xwj| | 2012-3-15 11:22 | 只看该作者
Re:
有一点我不明白  段码发送完毕 为什么不锁存 直接就发送位码,如果这样 位开的时候 段码不就被位码冲掉了么。怎么去显示相应的段码呢。
syxd1314 发表于 2012-3-15 09:43


段码发送完毕是,这个时候 段码还在位码的那个595里呢
等发送位码,才会把位码595里的段码数据移位到(冲到)段码的那个595,因为他们是级联的啊

然后再一起锁存。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
syxd1314 + 1
5
yewuyi| | 2012-3-15 15:51 | 只看该作者
你把595想象成一个带水阀的管子,多个595接在一起就像一段一段的水管,每段都有一个水阀,发送位就相当于水在水管里面流动,不打开这个水阀,水就不会从这个段流出。

使用特权

评论回复
6
syxd1314|  楼主 | 2012-3-17 14:12 | 只看该作者
3# kvdong
理解了 谢谢你

使用特权

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

本版积分规则

0

主题

2

帖子

0

粉丝