欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

兩片74HC595驅動點陣的探討

查看數: 5069 | 評論數: 12 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-3-2 18:18

正文摘要:

驅動點陣有很多方法,比如單用HC138,單用HC595以及它兩混用均可,本壇也有許多例子供大家參考,但是它們都是采用級聯的方式來做,出于初學者的好奇心,想用一片595控制列,一片控制行,而不采用級聯,然而程序無法 ...

回復

ID:825397 發表于 2021-3-5 14:37
名字不是重點 發表于 2021-3-5 09:22
2個595共用部分IO是可以的,只是要明白哪些IO能共用,哪些要分開,本例中,有顯就是共用錯了,
樓主改一下 ...

我用的是stcp分開,ds、shcp分別共用IO口。
ID:824490 發表于 2021-3-5 09:22
2個595共用部分IO是可以的,只是要明白哪些IO能共用,哪些要分開,本例中,有顯就是共用錯了,
樓主改一下:DS(數據)共用一個IO,STCP(鎖存時鐘)也可以共用一個IO,但SHCP(移位時鐘)必需分開!

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

ID:332444 發表于 2021-3-4 07:17
舉一反三而已。
ID:390416 發表于 2021-3-3 16:59
cn_zhx 發表于 2021-3-3 16:09
兩片不級聯,不能共用移位時鐘和鎖存時鐘信號,把這兩個信號分開搞試試。公用的話,兩片同時都會移位和鎖存 ...

不會的 兩個芯片的數據 同時發就行了
ID:822755 發表于 2021-3-3 16:24
MR接地了, 595不能工作。
ID:883031 發表于 2021-3-3 16:09
兩片不級聯,不能共用移位時鐘和鎖存時鐘信號,把這兩個信號分開搞試試。公用的話,兩片同時都會移位和鎖存,數據會亂的。
ID:825397 發表于 2021-3-3 14:38
wulin 發表于 2021-3-2 21:52
兩片74HC595分別驅動點陣LED行/列完全可以,但要多用1個IO口。接法如下,程序也要修改。

非常感謝你的分享。確實,按照你的原理圖編程能夠實現595單獨控制點陣的列和行(非級聯,仿真通過)。我認為這種方法雖然多用1個IO口,但控制靈活,對于初學者來說更容易理解硬件原理,編程好像更容易一點。
ID:372579 發表于 2021-3-2 22:00
595好像是總線控制吧,你要想一個控制行或列用573好些吧
ID:390416 發表于 2021-3-2 21:56
這是我的貼子 趕緊去看看 保證讓你徹底搞懂595和點陣 http://m.raoushi.com/bbs/dpj-200961-1.html
ID:390416 發表于 2021-3-2 21:55
100%程序的問題,我們量產的點陣模塊就是兩片595驅動列,兩片595驅動行。
ID:213173 發表于 2021-3-2 21:52
Tuier 發表于 2021-3-2 18:18
程序:
#include
//#define uint unsigned int

兩片74HC595分別驅動點陣LED行/列完全可以,但要多用1個IO口。接法如下,程序也要修改。


ID:825397 發表于 2021-3-2 18:18
程序:
#include <reg51.H>
//#define uint unsigned int
//#define uchar unsigned char
typedef unsigned char u8;
typedef unsigned int u16;
sbit ds1  =P2^0;
sbit shcp = P2^1;
sbit stcp = P2^2;
sbit ds2  = P2^3;

u8 code display[]={
0x66,0x99,0x81,0x81,0x42,0x24,0x18,0x00};//“心”圖案

u8 code wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(u8 b)//延時
{
        while(b--);
}
/**************** 向HC595發送一個字節函數 ******************/
void Send1(u8 dat)
{               
        u8 i;
        for(i=0;i<8;i++)
        {
                ds1 =dat&0x01;
                dat>>=1;       
                shcp = 1;
                shcp = 0;       
        }
                stcp = 1;
        stcp = 0;
}
void Send2(u8 ddat)
{               
        u8 j;
        for(j=0;j<8;j++)
        {
                ds2 =ddat&0x80;
                ddat<<=1;       
                shcp = 1;
                shcp = 0;               
        }
        stcp = 1;
        stcp = 0;
}

void main()
{
        u8 k;
        while(1)
        {       
                for(k=0;k<8;k++)
                {
                        Send2(wei[k]);
                        Send1(display[k]);       
                delay(100);
                }
        }
}

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表