精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

74hc595通過ULN2003驅動8*8LED點陣屏

2oON_changxuemc ? 來源:未知 ? 作者:李倩 ? 2018-04-27 15:38 ? 次閱讀

一、 電路原理圖。

(1)輸入輸出口

JP1 為輸入口,JP2為輸出口(為串聯下一塊點陣),245為電平轉換。

(2)行控制端電路

有2塊3-8譯碼器組成4-16譯碼器。將A,B,C,D,接入一個8位I/O口,直接對I/O口賦值。

(3)行寫入端電路

二、74HC595介紹。

74HC595 是一款漏極開路輸出的CMOS 移位寄存器,輸出端口為可控的三態輸出

端,亦能串行輸出控制下一級級聯芯片

10 腳 SCLR 移位寄存器清零端 直接接地,

11 腳 SCK 數據輸入時鐘

12 腳 RCK 輸出存儲器鎖存時鐘線

13 腳 OE 輸出使能 低電平為輸出有效

14 腳 SI 數據線 串行輸入數據,亦能串行輸出數據到下一級級聯芯片

輸入數據程序:

1. 向595寫一個字節的數據

void write_595(uchar DATA) //向595寫一個字節的數據

{

uchar i;

for(i=0;i<8;i++)

{

SI=(~DATA)&0x01;

SCK=1;

SCK=0;

DATA=DATA>>1;

}

}

2.向多個595寫一個字節的數據

9 腳SQH 位串行數據輸出管腳 將多個595的數據由9腳傳至下一個595,全部寫入后在打開輸出存儲器鎖存時鐘線

for(i=0;i<16;i++) //字從下往上滾動出現

{

k=1;

for(j=i+1;j>0;j--) //向多個595寫一個字節的數據

{

write_595(display[7][k]);

write_595(display[7][k-1]);

write_595(display[6][k]);

write_595(display[6][k-1]);

write_595(display[5][k]);

write_595(display[5][k-1]);

write_595(display[4][k]);

write_595(display[4][k-1]);

k+=2;

hang=16-j; //為138輸入行控制數據

RCK=1;RCK=0;

}

delay_ms(20);

}

3.595-RCK信號與138的輸出使能E2信號為同一信號,故可以相連。

三、74hc138介紹。

3 線-8 線譯碼器

當一個選通端(G1)為高電平,另兩個選通端(/(G2A)和/(G2B))為低電平時,將地址端(A、B、C)的二進制編碼在一個對應的輸出端以低電平譯出。

利用 G1、/(G2A)和/(G2B)可級聯擴展成24 線譯碼器;若外接一個反相器還可級聯擴展成32 線譯碼器。

引出端符號:

A、B、C 譯碼地址輸入端

G1 選通端

/(G2A)、/(G2B) 選通端(低電平有效)

Y0~Y7 譯碼輸出端(低電平有效)

功能表:

邏輯圖:

四、74hc245介紹。

管腳及電路接法。

五、ULN 2003介紹。

ULN2003是一個單片高電壓、高電流達林頓晶體管陣列集成電路。它是由7對NPN達林頓管組成的,它的高電壓輸出特性和陰極箝位二極管可以轉換感應負載。單個達林頓對的集電極電流是500mA。達林頓管并聯可以承受更大的電流。此電路主要應用于繼電器驅動器,字錘驅動器,燈驅動器,顯示驅動器(LED氣體放電),線路驅動器和邏輯緩沖器。

74hc595通過ULN2003驅動8*8LED點陣屏。

五、8*8點陣屏介紹

8*8點陣屏管腳如上,L1-L8由達林頓管TIP127驅動,H1-H8有ULN2003驅動

(1)TIP127簡介

外延基PNP達林頓功率晶體管,采用TO-220塑料封裝

VCBO 集電極-基極電壓(IE = 0) 60 80 100 V

VCEO 集電極-發射極電壓(IB = 0) 60 80 100 V

VEBO 發射極-基極電壓(IC = 0) 5 V

IC 集電極電流 5 A

ICM 集電極峰值電流 8 A

IB 基極電流 0.1 A

Ptot 耗散功率 Tcase≤25℃ 65 W

(2)ULN 2003介紹。

ULN2003是一個單片高電壓、高電流的達林頓晶體管陣列集成電路。它是由7對NPN達林頓管組成的,它的高電壓輸出特性和陰極箝位二極管可以轉換感應負載。單個達林頓對的集電極電流是500mA。達林頓管并聯可以承受更大的電流。此電路主要應用于繼電器驅動器,字錘驅動器,燈驅動器,顯示驅動器(LED氣體放電),線路驅動器和邏輯緩沖器。

74hc595通過ULN2003驅動8*8LED點陣屏。

附錄:原理圖

源程序:

//16x64點陣程序及滾動效果視頻

#include

#define uchar unsigned char

#define uint unsigned int

#define hang P1 //行掃描接在P1口

sbit SI=P2^3;

sbit SCK=P2^0;

sbit OE=P2^2;

sbit RCK=P2^1;

uint counter;

uchar flag;

void delay_ms(uchar z) //延時0.5秒

{

uchar i,j;

for(i=z;i>0;i--)

for(j=120;j>0;j--);

}

uchar code display[][32]={

/*-- 文字: 好 --*/

/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/

0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,

/*-- 文字: 好 --*/

/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/

0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0xFE,0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x40,

/*-- 文字: 學 --*/

/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/

0x01,0x08,0x10,0x8C,0x0C,0xC8,0x08,0x90,0x7F,0xFE,0x40,0x04,0x8F,0xE8,0x00,0x40,0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x00,

/*-- 文字: 習 --*/

/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/

0x00,0x00,0x3F,0xFC,0x00,0x04,0x08,0x04,0x04,0x04,0x03,0x04,0x01,0x14,0x00,0x64,0x01,0x84,0x06,0x04,0x38,0x04,0x10,0x04,0x00,0x04,0x00,0x24,0x00,0x14,0x00,0x00,

/*-- 文字: 天 --*/

/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/

0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x0E,0xC0,0x04,

/*-- 文字: 天 --*/

/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/

0x00,0x08,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x0E,0xC0,0x04,

/*-- 文字: 向 --*/

/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/

0x02,0x00,0x04,0x00,0x08,0x04,0x7F,0xFE,0x40,0x04,0x40,0x24,0x4F,0xF4,0x48,0x24,0x48,0x24,0x48,0x24,0x48,0x24,0x4F,0xE4,0x48,0x24,0x40,0x04,0x40,0x14,0x40,0x08,

/*-- 文字: 上 --*/

/*-- 宋體12; 此字體下對應的點陣為:寬x高=16x16 --*/

0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x10,0x01,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x00,0x00};

void write_595(uchar DATA) //向595寫一個字節的數據

{

uchar i;

for(i=0;i<8;i++)

{

SI=(~DATA)&0x01;

SCK=1;

SCK=0;

DATA=DATA>>1;

}

}

void main() //主函數

{

uchar i,j,k;

OE=0; //154使能

EA=1; //開總中斷

TMOD=0x01; //定時器0工作方式0

ET0=1; //定時器0使能

TH0=(65535-50000)/256; //定時器0設置初值

TL0=(65536-50000)%256;

while(1)

{

for(i=0;i<16;i++) //字從下往上滾動出現

{

k=1;

for(j=i+1;j>0;j--) //向多個595寫一個字節的數據

{

write_595(display[7][k]);

write_595(display[7][k-1]);

write_595(display[6][k]);

write_595(display[6][k-1]);

write_595(display[5][k]);

write_595(display[5][k-1]);

write_595(display[4][k]);

write_595(display[4][k-1]);

k+=2;

hang=16-j;

RCK=1;RCK=0;

}

delay_ms(20);

}

TR0=1;flag=1;

while(flag) //停留一秒

{

uchar j;

for(j=0;j<16;j++)

{

write_595(display[7][j*2+1]);

write_595(display[7][j*2]);

write_595(display[6][j*2+1]);

write_595(display[6][j*2]);

write_595(display[5][j*2+1]);

write_595(display[5][j*2]);

write_595(display[4][j*2+1]);

write_595(display[4][j*2]);

hang=j;

RCK=1;RCK=0;

}

}

TR0=0;

for(i=16;i>0;i--) //字滾動出顯示區

{

k=31;

for(j=i-1;j>0;j--)

{

write_595(display[7][k]);

write_595(display[7][k-1]);

write_595(display[6][k]);

write_595(display[6][k-1]);

write_595(display[5][k]);

write_595(display[5][k-1]);

write_595(display[4][k]);

write_595(display[4][k-1]);

k-=2;

hang=j;

RCK=1;RCK=0;

}

delay_ms(20);

}

for(i=0;i<16;i++) //下四個字滾動出現在顯示區

{

k=1;

for(j=i+1;j>0;j--)

{

write_595(display[3][k]);

write_595(display[3][k-1]);

write_595(display[2][k]);

write_595(display[2][k-1]);

write_595(display[1][k]);

write_595(display[1][k-1]);

write_595(display[0][k]);

write_595(display[0][k-1]);

k+=2;

hang=16-j;

RCK=1;RCK=0;

}

delay_ms(20);

}

TR0=1;flag=1;

while(flag) //停留一秒

{

uchar j;

for(j=0;j<16;j++)

{

write_595(display[3][j*2+1]);

write_595(display[3][j*2]);

write_595(display[2][j*2+1]);

write_595(display[2][j*2]);

write_595(display[1][j*2+1]);

write_595(display[1][j*2]);

write_595(display[0][j*2+1]);

write_595(display[0][j*2]);

hang=j;

RCK=1;RCK=0;

}

}

TR0=0;

for(i=16;i>0;i--) //滾出顯示區

{

k=31;

for(j=i-1;j>0;j--)

{

write_595(display[3][k]);

write_595(display[3][k-1]);

write_595(display[2][k]);

write_595(display[2][k-1]);

write_595(display[1][k]);

write_595(display[1][k-1]);

write_595(display[0][k]);

write_595(display[0][k-1]);

k-=2;

hang=j;

RCK=1;RCK=0;

}

delay_ms(20);

}

}

}

void timer0() interrupt 1 //中斷函數

{

counter++;

if(counter==20) //1秒設置

{

counter=0;

flag=0;

}

TH0=(65535-50000)/256;

TL0=(65536-50000)%256;

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 譯碼器
    +關注

    關注

    4

    文章

    310

    瀏覽量

    50156
  • 74HC595
    +關注

    關注

    7

    文章

    189

    瀏覽量

    30686
  • 74HC138
    +關注

    關注

    5

    文章

    49

    瀏覽量

    20781

原文標題:基于74hc595和74hc138的16x40點陣顯示

文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    74HC595輸出端可以直接接到ULN2003的輸入端口嗎

    51單片機的IO口不夠用了,就想用74HC595擴展一下IO口,把595的輸出端直接接到達林頓ULN2003上可以嗎?
    發表于 01-08 23:47

    74HC595驅動LED點陣或數碼管的正確用法 精選資料推薦

    這幾天有些時間想做LED點陣玩玩,所以需要學習74HC595芯片,上網找了幾個例程和關于74HC595的幾篇應用,照貓畫虎實際操作一下,哪知根本不可行,教程都是錯誤的。于是自己潛心研究
    發表于 07-22 08:49

    74HC595芯片的作用是什么

    74HC595是在單片機系統中常用的芯片之一他的作用就是把串行的信號轉為并行的信號,常用在各種數碼管以及點陣驅動芯片, 使用74HC595
    發表于 07-22 07:05

    74HC595驅動LED點陣或數碼管的正確用法是什么?

    74HC595正確的工作原理是什么?74HC595驅動LED點陣或數碼管的正確用法是什么?
    發表于 07-23 12:34

    怎樣去設計一種8×8LED點陣電路

    怎樣去設計一種8×8LED點陣電路?74HC595芯片有哪些管腳?其功能是什么?開發板1602液晶接口電路該怎樣去設計?
    發表于 08-06 07:05

    如何使用三片74HC595對一個8X8雙色點陣進行控制呢

    74HC595是什么?74HC595串行轉并行芯片各引腳的作用是什么?如何使用三片74HC595對一個8X8雙色點陣進行控制呢?
    發表于 10-25 09:04

    使用移位寄存器74HC595ULN2003的7段屏蔽2,3英寸

    描述7段屏蔽2,3英寸7 段屏蔽 2,3 使用移位寄存器 74HC595ULN2003pcb
    發表于 09-09 06:04

    [圖文]74HC595驅動8LED電路圖

    74HC595驅動8LED電路圖
    發表于 04-16 17:59 ?5272次閱讀
    [圖文]<b class='flag-5'>74HC595</b><b class='flag-5'>驅動</b><b class='flag-5'>8</b>個<b class='flag-5'>LED</b>電路圖

    74HC595驅動8LED電路

    74HC595驅動8LED電路
    發表于 02-25 15:43 ?7888次閱讀
    <b class='flag-5'>74HC595</b><b class='flag-5'>驅動</b><b class='flag-5'>8</b>個<b class='flag-5'>LED</b>電路

    74HC595驅動led單色點陣程序

    74HC595、138、4953等做的單色模組驅動程序
    發表于 07-24 16:10 ?2w次閱讀

    基于單片機實現74HC595通過ULN2003驅動2路步進電機

    基于單片機實現74HC595通過ULN2003驅動2路步進電機
    發表于 01-06 14:30 ?225次下載

    基于單片機74HC595驅動點陣

    基于單片機74HC595驅動點陣程序,喜歡的朋友下載來學習。
    發表于 01-06 14:31 ?127次下載

    一種用 74hc138 和 74hc595 驅動 8x8 點陣顯示技術

    用STC89C52,74hc138驅動列,74hc595驅動行,8x8點陣顯示問題。
    發表于 05-30 10:18 ?1w次閱讀
    一種用 <b class='flag-5'>74hc</b>138 和 <b class='flag-5'>74hc595</b> <b class='flag-5'>驅動</b> <b class='flag-5'>8x8</b> <b class='flag-5'>點陣</b>顯示技術

    C51單片機學習——8×8LED點陣學習筆記

    C51單片機學習——8×8LED點陣學習筆記目錄C51單片機學習——8×8LED
    發表于 11-14 11:21 ?45次下載
    C51單片機學習——<b class='flag-5'>8</b>×<b class='flag-5'>8LED</b><b class='flag-5'>點陣</b><b class='flag-5'>屏</b>學習筆記

    7段屏蔽使用移位寄存器74HC595ULN2003

    電子發燒友網站提供《7段屏蔽使用移位寄存器74HC595ULN2003.zip》資料免費下載
    發表于 08-18 15:17 ?2次下載
    7段屏蔽使用移位寄存器<b class='flag-5'>74HC595</b>和<b class='flag-5'>ULN2003</b>