專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

51單片機(jī)點(diǎn)陣設(shè)計(jì)

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年01月18日   【字體:

在做點(diǎn)陣之前先來了解下點(diǎn)陣的原理和點(diǎn)陣顯示的過程。
點(diǎn)陣實(shí)際上就是64個(gè)單獨(dú)的led燈排列為8行8列
ROW1-8、COL1-8分別控制行和列的1-8led。ROWx高電平、COLy低電平,對應(yīng)的第x行、第y列l(wèi)ed燈亮。

電路圖

簡化了實(shí)際應(yīng)用電路硬件根據(jù)要求自己加
P3口驅(qū)動ROW
P2口驅(qū)動COL

如何讓點(diǎn)陣顯示字符?點(diǎn)陣顯示字符都是動態(tài)的,和多位的數(shù)碼管一樣,并不是一次就顯示行或列,而是一次只顯示1行,在很短的時(shí)間內(nèi)將8行分別顯示出來。由于時(shí)間很短,我們的眼睛是看不出來是分開顯示的。以字符'1'為例。

分別顯示8行
ROW-0x01  COL-0xef
ROW-0x02  COL-0xe7
ROW-0x04  COL-0xef
ROW-0x08  COL-0xef
ROW-0x10 COL-0xef
ROW-0x20  COL-0xef
ROW-0x40  COL-0xef
ROW-0x80  COL-0xc7

源程序:
 

#include <reg52.h>
unsigned char code NUM[8]={0xef,0xe7,0xef,0xef,0xef,0xef,0xef,0xc7};
#define ROW P3
#define COL P2
void main(void)
{
  unsigned char i,j,k;
  while(1)
  {
k=0x01;
     for(i=0;i<8;i++)
{
  COL=NUM[i];
  ROW=k<<i;
  for(j=0;j<8;j++);
  ROW=0x00;
}
  }
}

學(xué)會了8*8點(diǎn)陣的應(yīng)用,就可以試著做16*16點(diǎn)陣了。16*16點(diǎn)陣就相當(dāng)于4個(gè)8*8點(diǎn)陣拼起來。8*8點(diǎn)陣有8行8列,16*16點(diǎn)陣就是16行 16列,如果像上面一樣就需要32個(gè)IO口驅(qū)動,雖說51單片機(jī)有32個(gè)IO口可是在實(shí)際應(yīng)用中這32個(gè)IO口不能全部用來驅(qū)動點(diǎn)陣啊。這時(shí)候我們就需要用到另外兩個(gè)芯片74HC595和74HC138
74HC595使用方法http://www.torrancerestoration.com/chip/1799.html
74HC138 是一個(gè)3到8的譯碼器,下表中列出了該器件的邏輯功能,從表中可以看出其輸出為低電平有效,使能端G1為高電平有效,/G2,/G3為低電平有效,當(dāng)其中一個(gè)為高電平,輸出端全部為1!在中規(guī)模集成電路中譯碼器有幾種型號,使用最廣泛!

電路圖

源程序
#include <reg52.h> 
#include <intrins.h>
unsigned char code NUM[8]={0x00,0x00,0xe00,0x82,0xff,0x80,0x00,0x00};
#define ROW P3
sbit SI=P2^0;
sbit RCK=P2^2;
sbit SCK=P2^1; 
void HC595SendData(unsigned char SendVal)
{  
  unsigned char i;
 
  for(i=0;i<8;i++) 
   {
if((SendVal<<i)&0x80) SI=1;
else SI=0;
 
SCK=0;
_nop_();
_nop_();
SCK=1;
   }
void HC595ShowData()
{
  RCK=0;
  _nop_();
  _nop_();
  RCK=1; 
}
 
void main(void)
{
  unsigned char i;
  while(1)
  {
     for(i=0;i<8;i++)
{
  HC595SendData(NUM[i]);
  ROW=0x00;
  HC595ShowData();
  ROW=i|0x80;
}
  }
}
關(guān)閉窗口

相關(guān)文章