打印

我用165和595做I/O扩展没成功。

[复制链接]
1344|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yuanquan12345|  楼主 | 2011-1-19 17:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想,用一个开关将165并行数据的一个脚接地,再经595(控制数码管)输出。输出方式是165数据脚都悬空时数码管显示0,1脚接地显示1,以此显示。

相关帖子

沙发
yuanquan12345|  楼主 | 2011-1-19 17:18 | 只看该作者
uchar w165()
{
uchar i;
CLK=1;
LD=0;
LD=1;
for(i=0;i<8;i++)
{
sum<<=1;
if(Q7)sum|=1;
CLK=0;
CLK=1;
}
// P0=sum;
// delay(10000);
return sum;
}
从165读回的数据num

使用特权

评论回复
板凳
yuanquan12345|  楼主 | 2011-1-19 17:19 | 只看该作者
显示:
void display()
{
if(sum==0x00)
wri_dat(0x3f);

if(sum==0x01)
wri_dat(0x06);
if(sum==0x02)
wri_dat(0x5b);
if(sum==0x04)
wri_dat(0x4f);
if(sum==0x08)
wri_dat(0x66);
if(sum==0x10)
wri_dat(0x6d);
if(sum==0x20)
wri_dat(0x7d);
if(sum==0x40)
wri_dat(0x07);
if(sum==0x80)
wri_dat(0x7f);
}

使用特权

评论回复
地板
yuanquan12345|  楼主 | 2011-1-19 17:22 | 只看该作者
void wri_dat(uchar dat)         //写1byte数据
{
        uchar i;
        DIN=1;
        for(i=0;i<8;i++)
                {                       
                if(dat&0x01)
                        DIN=1;//低位在前
                else DIN=0;       
                SCLK=0;
                SCLK=1;
                dat>>=1;                                                       
                }                       
}
读入。

使用特权

评论回复
5
yuanquan12345|  楼主 | 2011-1-19 17:23 | 只看该作者
没成功。
请大家指点。
谢谢。

使用特权

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

本版积分规则

75

主题

1155

帖子

3

粉丝