极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10777|回复: 2

74CH595N与8位共阴数码管的连接实现0~9循环显示

[复制链接]
发表于 2014-9-22 15:36:26 | 显示全部楼层 |阅读模式
小弟小白一枚,刚接触arduino 不久  !驱动数码管直接插到板子上 我觉得 有点浪费 经过了解可以用74CH595N解决这个问题!
希望大神 大牛 大大们 来个详细介绍!
我很真诚的亲们{:soso_e149:}
越详细越好(毕竟还是小白嘛),最好有图有真相哦
回复

使用道具 举报

发表于 2014-9-22 16:17:41 | 显示全部楼层
用shiftOut函数,虽然我用的是STCunio,也就是51版的arduino,程序应该差不多,595使用shiftOut函数之后要再来个下降沿才是正确的。我这个是级联的

code table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
code table2[]={0xf7,0xfb,0xfd,0xfe};
void main()
{ int dataPin=8;
        int clockPin=9;
        int ST_CP=10;
        int _data;
        u8 data1,data2,data3,data4;
  Serialbegin(2400);
        pinMode(dataPin,PullUp);
        pinMode(clockPin,PullUp);
        pinMode(ST_CP,PullUp);
        while(1)
        {
//最先进的数据会在Q7输出
                u8 i;
                for(i=0;i<=9;i++)
                {
                shiftOut(dataPin, clockPin, MSBFIRST,table1[i]);//位选
                shiftOut(dataPin, clockPin, MSBFIRST,0xf7);        //段选       
                digitalWrite(ST_CP,LOW);
                digitalWrite(ST_CP,HIGH);                       
                delay_ms(200);
                }
                for(i=0;i<=9;i++)
                {
                shiftOut(dataPin, clockPin, MSBFIRST,table1[i]);//位选
                shiftOut(dataPin, clockPin, MSBFIRST,0xfb);        //段选       
                digitalWrite(ST_CP,LOW);
                digitalWrite(ST_CP,HIGH);                       
                delay_ms(200);
                }
                for(i=0;i<=9;i++)
                {
                shiftOut(dataPin, clockPin, MSBFIRST,table1[i]);//位选
                shiftOut(dataPin, clockPin, MSBFIRST,0xfd);        //段选       
                digitalWrite(ST_CP,LOW);
                digitalWrite(ST_CP,HIGH);                       
                delay_ms(200);
                }
                for(i=0;i<=9;i++)
                {
                shiftOut(dataPin, clockPin, MSBFIRST,table1[i]);//位选
                shiftOut(dataPin, clockPin, MSBFIRST,0xfe);        //段选       
                digitalWrite(ST_CP,LOW);
                digitalWrite(ST_CP,HIGH);                       
                delay_ms(200);
                }
                _data=1345;
                while(1)//一直显示_data的值
                {               
                data1=_data/1000;
                data2=_data%1000/100;
                data3=_data%100/10;
                data4=_data%10;
                shiftOut(dataPin, clockPin, MSBFIRST,table1[data1]);//位选
                shiftOut(dataPin, clockPin, MSBFIRST,table2[3]);        //段选       
                digitalWrite(ST_CP,LOW);
                digitalWrite(ST_CP,HIGH);
                shiftOut(dataPin, clockPin, MSBFIRST,table1[data2]);//位选
                shiftOut(dataPin, clockPin, MSBFIRST,table2[2]);        //段选       
                digitalWrite(ST_CP,LOW);
                digitalWrite(ST_CP,HIGH);
                shiftOut(dataPin, clockPin, MSBFIRST,table1[data3]);//位选
                shiftOut(dataPin, clockPin, MSBFIRST,table2[1]);        //段选       
                digitalWrite(ST_CP,LOW);
                digitalWrite(ST_CP,HIGH);
                shiftOut(dataPin, clockPin, MSBFIRST,table1[data4]);//位选
                shiftOut(dataPin, clockPin, MSBFIRST,table2[0]);        //段选       
                digitalWrite(ST_CP,LOW);
                digitalWrite(ST_CP,HIGH);
                }
        }
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-9-22 18:32:47 | 显示全部楼层
虽然有点看不懂 但是先谢谢了 慢慢搞
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 10:46 , Processed in 0.041264 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表