一、 電路原理圖。
(1)輸入輸出口
JP1 為輸入口,JP2為輸出口(為串聯(lián)下一塊點(diǎn)陣),245為電平轉(zhuǎn)換。
(2)行控制端電路
有2塊3-8譯碼器組成4-16譯碼器。將A,B,C,D,接入一個(gè)8位I/O口,直接對(duì)I/O口賦值。
(3)行寫(xiě)入端電路
二、74HC595介紹。
74HC595 是一款漏極開(kāi)路輸出的CMOS 移位寄存器,輸出端口為可控的三態(tài)輸出
端,亦能串行輸出控制下一級(jí)級(jí)聯(lián)芯片。
10 腳 SCLR 移位寄存器清零端 直接接地,
11 腳 SCK 數(shù)據(jù)輸入時(shí)鐘線(xiàn)
12 腳 RCK 輸出存儲(chǔ)器鎖存時(shí)鐘線(xiàn)
13 腳 OE 輸出使能 低電平為輸出有效
14 腳 SI 數(shù)據(jù)線(xiàn) 串行輸入數(shù)據(jù),亦能串行輸出數(shù)據(jù)到下一級(jí)級(jí)聯(lián)芯片
輸入數(shù)據(jù)程序:
1. 向595寫(xiě)一個(gè)字節(jié)的數(shù)據(jù)
void write_595(uchar DATA) //向595寫(xiě)一個(gè)字節(jié)的數(shù)據(jù)
{
uchar i;
for(i=0;i<8;i++)
{
SI=(~DATA)&0x01;
SCK=1;
SCK=0;
DATA=DATA>>1;
}
}
2.向多個(gè)595寫(xiě)一個(gè)字節(jié)的數(shù)據(jù)
9 腳SQH 位串行數(shù)據(jù)輸出管腳 將多個(gè)595的數(shù)據(jù)由9腳傳至下一個(gè)595,全部寫(xiě)入后在打開(kāi)輸出存儲(chǔ)器鎖存時(shí)鐘線(xiàn)
for(i=0;i<16;i++) //字從下往上滾動(dòng)出現(xiàn)
{
k=1;
for(j=i+1;j>0;j--) //向多個(gè)595寫(xiě)一個(gè)字節(jié)的數(shù)據(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=16-j; //為138輸入行控制數(shù)據(jù)
RCK=1;RCK=0;
}
delay_ms(20);
}
3.595-RCK信號(hào)與138的輸出使能E2信號(hào)為同一信號(hào),故可以相連。
三、74hc138介紹。
3 線(xiàn)-8 線(xiàn)譯碼器
當(dāng)一個(gè)選通端(G1)為高電平,另兩個(gè)選通端(/(G2A)和/(G2B))為低電平時(shí),將地址端(A、B、C)的二進(jìn)制編碼在一個(gè)對(duì)應(yīng)的輸出端以低電平譯出。
利用 G1、/(G2A)和/(G2B)可級(jí)聯(lián)擴(kuò)展成24 線(xiàn)譯碼器;若外接一個(gè)反相器還可級(jí)聯(lián)擴(kuò)展成32 線(xiàn)譯碼器。
引出端符號(hào):
A、B、C 譯碼地址輸入端
G1 選通端
/(G2A)、/(G2B) 選通端(低電平有效)
Y0~Y7 譯碼輸出端(低電平有效)
功能表:
邏輯圖:
四、74hc245介紹。
管腳及電路接法。
五、ULN 2003介紹。
ULN2003是一個(gè)單片高電壓、高電流的達(dá)林頓晶體管陣列集成電路。它是由7對(duì)NPN達(dá)林頓管組成的,它的高電壓輸出特性和陰極箝位二極管可以轉(zhuǎn)換感應(yīng)負(fù)載。單個(gè)達(dá)林頓對(duì)的集電極電流是500mA。達(dá)林頓管并聯(lián)可以承受更大的電流。此電路主要應(yīng)用于繼電器驅(qū)動(dòng)器,字錘驅(qū)動(dòng)器,燈驅(qū)動(dòng)器,顯示驅(qū)動(dòng)器(LED氣體放電),線(xiàn)路驅(qū)動(dòng)器和邏輯緩沖器。
74hc595通過(guò)ULN2003驅(qū)動(dòng)8*8LED點(diǎn)陣屏。
五、8*8點(diǎn)陣屏介紹
8*8點(diǎn)陣屏管腳如上,L1-L8由達(dá)林頓管TIP127驅(qū)動(dòng),H1-H8有ULN2003驅(qū)動(dòng)
(1)TIP127簡(jiǎn)介
外延基PNP達(dá)林頓功率晶體管,采用TO-220塑料封裝
VCBO 集電極-基極電壓(IE = 0) 60 80 100 V
VCEO 集電極-發(fā)射極電壓(IB = 0) 60 80 100 V
VEBO 發(fā)射極-基極電壓(IC = 0) 5 V
IC 集電極電流 5 A
ICM 集電極峰值電流 8 A
IB 基極電流 0.1 A
Ptot 耗散功率 Tcase≤25℃ 65 W
(2)ULN 2003介紹。
ULN2003是一個(gè)單片高電壓、高電流的達(dá)林頓晶體管陣列集成電路。它是由7對(duì)NPN達(dá)林頓管組成的,它的高電壓輸出特性和陰極箝位二極管可以轉(zhuǎn)換感應(yīng)負(fù)載。單個(gè)達(dá)林頓對(duì)的集電極電流是500mA。達(dá)林頓管并聯(lián)可以承受更大的電流。此電路主要應(yīng)用于繼電器驅(qū)動(dòng)器,字錘驅(qū)動(dòng)器,燈驅(qū)動(dòng)器,顯示驅(qū)動(dòng)器(LED氣體放電),線(xiàn)路驅(qū)動(dòng)器和邏輯緩沖器。
74hc595通過(guò)ULN2003驅(qū)動(dòng)8*8LED點(diǎn)陣屏。
附錄:原理圖
源程序:
//16x64點(diǎn)陣程序及滾動(dòng)效果視頻
#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) //延時(shí)0.5秒
{
uchar i,j;
for(i=z;i>0;i--)
for(j=120;j>0;j--);
}
uchar code display[][32]={
/*-- 文字: 好 --*/
/*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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,
/*-- 文字: 學(xué) --*/
/*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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,
/*-- 文字: 習(xí) --*/
/*-- 宋體12; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬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寫(xiě)一個(gè)字節(jié)的數(shù)據(jù)
{
uchar i;
for(i=0;i<8;i++)
{
SI=(~DATA)&0x01;
SCK=1;
SCK=0;
DATA=DATA>>1;
}
}
void main() //主函數(shù)
{
uchar i,j,k;
OE=0; //154使能
EA=1; //開(kāi)總中斷
TMOD=0x01; //定時(shí)器0工作方式0
ET0=1; //定時(shí)器0使能
TH0=(65535-50000)/256; //定時(shí)器0設(shè)置初值
TL0=(65536-50000)%256;
while(1)
{
for(i=0;i<16;i++) //字從下往上滾動(dòng)出現(xiàn)
{
k=1;
for(j=i+1;j>0;j--) //向多個(gè)595寫(xiě)一個(gè)字節(jié)的數(shù)據(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=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--) //字滾動(dòng)出顯示區(qū)
{
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++) //下四個(gè)字滾動(dòng)出現(xiàn)在顯示區(qū)
{
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--) //滾出顯示區(qū)
{
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 //中斷函數(shù)
{
counter++;
if(counter==20) //1秒設(shè)置
{
counter=0;
flag=0;
}
TH0=(65535-50000)/256;
TL0=(65536-50000)%256;
}
-
譯碼器
+關(guān)注
關(guān)注
4文章
312瀏覽量
50856 -
74HC595
+關(guān)注
關(guān)注
7文章
193瀏覽量
31376 -
74HC138
+關(guān)注
關(guān)注
5文章
49瀏覽量
21048
原文標(biāo)題:基于74hc595和74hc138的16x40點(diǎn)陣顯示
文章出處:【微信號(hào):changxuemcu,微信公眾號(hào):暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
74HC595輸出端可以直接接到ULN2003的輸入端口嗎
74HC595驅(qū)動(dòng)LED點(diǎn)陣或數(shù)碼管的正確用法 精選資料推薦
74HC595芯片的作用是什么
74HC595驅(qū)動(dòng)LED點(diǎn)陣或數(shù)碼管的正確用法是什么?
怎樣去設(shè)計(jì)一種8×8LED點(diǎn)陣屏電路
如何使用三片74HC595對(duì)一個(gè)8X8雙色點(diǎn)陣進(jìn)行控制呢
使用移位寄存器74HC595和ULN2003的7段屏蔽2,3英寸
74HC595驅(qū)動(dòng)led單色點(diǎn)陣屏程序
基于單片機(jī)實(shí)現(xiàn)74HC595通過(guò)ULN2003驅(qū)動(dòng)2路步進(jìn)電機(jī)
基于單片機(jī)74HC595去驅(qū)動(dòng)點(diǎn)陣
一種用 74hc138 和 74hc595 驅(qū)動(dòng) 8x8 點(diǎn)陣顯示技術(shù)

C51單片機(jī)學(xué)習(xí)——8×8LED點(diǎn)陣屏學(xué)習(xí)筆記

7段屏蔽使用移位寄存器74HC595和ULN2003

評(píng)論