久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4457|回復: 12
打印 上一主題 下一主題
收起左側

兩片74HC595驅動點陣的探討

[復制鏈接]
跳轉到指定樓層
樓主
驅動點陣有很多方法,比如單用HC138,單用HC595以及它兩混用均可,本壇也有許多例子供大家參考,但是它們都是采用級聯的方式來做,出于初學者的好奇心,想用一片595控制列,一片控制行,而不采用級聯,然而程序無法運行。不知是程序問題還是硬件本身不支持這種接法,請高手們指教!
程序:
#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);
                }
        }
}

原理圖.jpg (141.3 KB, 下載次數: 116)

原理圖.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
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);
                }
        }
}
回復

使用道具 舉報

板凳
ID:213173 發表于 2021-3-2 21:52 | 只看該作者
Tuier 發表于 2021-3-2 18:18
程序:
#include
//#define uint unsigned int

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


回復

使用道具 舉報

地板
ID:390416 發表于 2021-3-2 21:55 | 只看該作者
100%程序的問題,我們量產的點陣模塊就是兩片595驅動列,兩片595驅動行。
回復

使用道具 舉報

5#
ID:390416 發表于 2021-3-2 21:56 | 只看該作者
這是我的貼子 趕緊去看看 保證讓你徹底搞懂595和點陣 http://www.zg4o1577.cn/bbs/dpj-200961-1.html
回復

使用道具 舉報

6#
ID:372579 發表于 2021-3-2 22:00 | 只看該作者
595好像是總線控制吧,你要想一個控制行或列用573好些吧
回復

使用道具 舉報

7#
ID:825397 發表于 2021-3-3 14:38 | 只看該作者
wulin 發表于 2021-3-2 21:52
兩片74HC595分別驅動點陣LED行/列完全可以,但要多用1個IO口。接法如下,程序也要修改。

非常感謝你的分享。確實,按照你的原理圖編程能夠實現595單獨控制點陣的列和行(非級聯,仿真通過)。我認為這種方法雖然多用1個IO口,但控制靈活,對于初學者來說更容易理解硬件原理,編程好像更容易一點。
回復

使用道具 舉報

8#
ID:883031 發表于 2021-3-3 16:09 | 只看該作者
兩片不級聯,不能共用移位時鐘和鎖存時鐘信號,把這兩個信號分開搞試試。公用的話,兩片同時都會移位和鎖存,數據會亂的。
回復

使用道具 舉報

9#
ID:822755 發表于 2021-3-3 16:24 | 只看該作者
MR接地了, 595不能工作。
回復

使用道具 舉報

10#
ID:390416 發表于 2021-3-3 16:59 | 只看該作者
cn_zhx 發表于 2021-3-3 16:09
兩片不級聯,不能共用移位時鐘和鎖存時鐘信號,把這兩個信號分開搞試試。公用的話,兩片同時都會移位和鎖存 ...

不會的 兩個芯片的數據 同時發就行了
回復

使用道具 舉報

11#
ID:332444 發表于 2021-3-4 07:17 | 只看該作者
舉一反三而已。
回復

使用道具 舉報

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

評分

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

查看全部評分

回復

使用道具 舉報

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

我用的是stcp分開,ds、shcp分別共用IO口。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩第一页 | 香蕉视频黄色 | 亚洲a在线观看 | 国产精品福利视频 | 日韩字幕 | 成人福利在线观看 | 中文字幕亚洲欧美 | 91久久久久 | a免费视频 | 成人妇女免费播放久久久 | 福利网址| 久久国产精品免费一区二区三区 | 国产99久久精品一区二区300 | 久久亚洲一区二区三区四区 | 亚洲草草视频 | 欧美日韩国产精品一区 | 古装三级在线播放 | 麻豆91av| 中文字幕av一区二区三区 | 日韩欧美国产不卡 | 夜夜操天天艹 | 成人一区二区在线 | 精品国产91久久久久久 | 久久久久久国产精品 | 国产婷婷在线视频 | 国产农村妇女毛片精品久久麻豆 | 亚洲午夜精品一区二区三区他趣 | 精品欧美一区二区中文字幕视频 | 精品av久久久久电影 | 免费中文字幕日韩欧美 | 亚洲福利 | 精品无码久久久久久久动漫 | 国产精品久久九九 | 羞羞视频在线观免费观看 | 久久精品国产亚洲a | 国产精品久久久久久妇女6080 | av免费入口 | 国产成人99久久亚洲综合精品 | 九九热精品视频在线观看 | 伊人网一区 | 青青草一区二区 |