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

用STC12C5A60S2直驅(qū)一個(gè)16*16LED點(diǎn)陣顯示屏!電路最簡(jiǎn)單!

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

  看到51hei的壇子有壇友做的16X16LED漢字顯示屏,作為生日禮物表情意,我也想著做一個(gè)!以滿足動(dòng)手愛好!
用AT89C52的,驅(qū)動(dòng)電路復(fù)雜得不得了,32個(gè)三極管,32個(gè)電阻啊!焊得頭到暈啊!還要個(gè)4-16譯碼電路!!!!!!
幸好有愛情的力量,為那個(gè)哥們辛苦為感動(dòng)!

      我呢,有STC12C5A60S2這個(gè)單片機(jī)的"神器",比AVR的還好.價(jià)不貴,才7元/片!有AD,PWM,端口四態(tài),可最大驅(qū)動(dòng)20MA電流!60KB的程序FLASH ROM.爽YY啊.一個(gè)簡(jiǎn)單電路就可以做成16X16的LED了.  8X8的雙色是我2元/片淘來的!只用到了紅色的! 
   電路簡(jiǎn)潔無比,就是一個(gè)單片機(jī),四片8*8LED點(diǎn)陣,一個(gè)12M晶振,2個(gè)30P電容,(12M晶振,2個(gè)30P電容,可以省的.,便為了能在線下載,加上去方便下載程序)
   電路這么簡(jiǎn)單,也是受到杜洋老師的影響,我這個(gè)還是列驅(qū)動(dòng),實(shí)測(cè)電流35MA,運(yùn)行一個(gè)晚上,芯片安全.就不費(fèi)心思研究杜老師的點(diǎn)驅(qū)動(dòng)了!!!

  程序也是學(xué)別人的,改了下就能用,C就是好啊!匯編的話,估計(jì)沒那么方便!

不用那么多了,上圖說話!


//  本程序演示 STC12C5A60S2 系列直驅(qū)四個(gè)8*8LED點(diǎn)陣組成16X16點(diǎn)陣 
//  
//改編:桃源客, 日期:2010-9-19 
//--------------------------------------------------------------------- 
//#include <REG52.H> 
#include <intrins.H> 
#include "STC12C5A60s2.H" 
//--------------------------------------------------------------------- 
typedef    unsigned char   uchar; 
typedef    unsigned int    uint; 
//以下字模為PC2LCD2000生成,選"陰碼,逆向"方式. 
uchar code zimo1[1088]={ 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 
x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 
x00,0x00,  //留一行空白16X16字符,作流動(dòng)開始用. 

0x20,0x04,0x20,0x04,0x22,0x42,0x22,0x82, 
0xFE,0x7F,0x21,0x01,0x21,0x01,0x20,0x10, 
0x20,0x10,0xFF,0x08,0x20,0x07,0x22,0x1A, 
0xAC,0x21,0x20,0x40,0x20,0xF0,0x00,0x00,/*"我",0*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x40,0x40,0x20,0xB2,0xA0,0x96,0x90, 
0x9A,0x4C,0x92,0x47,0xF6,0x2A,0x9A,0x2A, 
0x93,0x12,0x91,0x1A,0x99,0x26,0x97,0x22, 
0x91,0x40,0x90,0xC0,0x30,0x40,0x00,0x00,/*"愛",1*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x08,0x00,0x08,0xF8,0x0B,0x28,0x09, 
0x29,0x09,0x2E,0x09,0x2A,0x09,0xF8,0xFF, 
0x28,0x09,0x2C,0x09,0x2B,0x09,0x2A,0x09, 
0xF8,0x0B,0x00,0x08,0x00,0x08,0x00,0x00,/*"單",2*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x80,0x00,0x40,0x00,0x30,0xFE,0x0F, 
0x10,0x01,0x10,0x01,0x10,0x01,0x10,0x01, 
0x10,0x01,0x1F,0x01,0x10,0x01,0x10,0xFF, 
0x10,0x00,0x18,0x00,0x10,0x00,0x00,0x00,/*"片",3*/ 
/* (16 X 16 , 宋體 ) */ 
0x08,0x04,0x08,0x03,0xC8,0x00,0xFF,0xFF, 
0x48,0x00,0x88,0x41,0x08,0x30,0x00,0x0C, 
0xFE,0x03,0x02,0x00,0x02,0x00,0x02,0x00, 
0xFE,0x3F,0x00,0x40,0x00,0x78,0x00,0x00,/*"機(jī)",4*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x00,0x00,0x00,0x00,0x58,0x00,0x38, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*",",5*/ 
/* (16 X 16 , 宋體 ) */ 
0x20,0x04,0x20,0x04,0x22,0x42,0x22,0x82, 
0xFE,0x7F,0x21,0x01,0x21,0x01,0x20,0x10, 
0x20,0x10,0xFF,0x08,0x20,0x07,0x22,0x1A, 
0xAC,0x21,0x20,0x40,0x20,0xF0,0x00,0x00,/*"我",6*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x40,0x40,0x20,0xB2,0xA0,0x96,0x90, 
0x9A,0x4C,0x92,0x47,0xF6,0x2A,0x9A,0x2A, 
0x93,0x12,0x91,0x1A,0x99,0x26,0x97,0x22, 
0x91,0x40,0x90,0xC0,0x30,0x40,0x00,0x00,/*"愛",7*/ 
/* (16 X 16 , 宋體 ) */ 
0x10,0x42,0x92,0x42,0x54,0x2A,0x38,0x2E, 
0xFF,0x13,0x38,0x1A,0x54,0x26,0x52,0x02, 
0x80,0x40,0xF0,0x20,0x1F,0x13,0x12,0x0C, 
0x10,0x33,0xF0,0x60,0x10,0x20,0x00,0x00,/*"數(shù)",8*/ 
/* (16 X 16 , 宋體 ) */ 
0x02,0x01,0x82,0x00,0xE2,0x7F,0x5E,0x10, 
0x42,0x10,0xC2,0x3F,0x00,0x00,0x02,0x04, 
0xFA,0x04,0x82,0x04,0x82,0x44,0x82,0x84, 
0xFE,0x40,0x80,0x3F,0x00,0x00,0x00,0x00,/*"碼",9*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x20,0x08,0x60,0x08,0x30,0x08,0x08, 
0x08,0x18,0x08,0x24,0x09,0x24,0x0A,0x22, 
0x0C,0x41,0x88,0x40,0x48,0x40,0x28,0x40, 
0x1C,0x40,0x08,0x40,0x00,0x40,0x00,0x00,/*"之",10*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x00,0x18,0x29,0x04,0x29,0x14,0x15, 
0x94,0x14,0x94,0x4A,0xD5,0x89,0xB6,0x44, 
0x14,0x3F,0x14,0x06,0x94,0x09,0x04,0x09, 
0x14,0x10,0x0C,0x30,0x04,0x10,0x00,0x00,/*"家",11*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x00,0x00,0x00,0x00,0x58,0x00,0x38, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*",",12*/ 
/* (16 X 16 , 宋體 ) */ 
0x20,0x04,0x20,0x04,0x22,0x42,0x22,0x82, 
0xFE,0x7F,0x21,0x01,0x21,0x01,0x20,0x10, 
0x20,0x10,0xFF,0x08,0x20,0x07,0x22,0x1A, 
0xAC,0x21,0x20,0x40,0x20,0xF0,0x00,0x00,/*"我",13*/ 
/* (16 X 16 , 宋體 ) */ 
0x80,0x00,0x40,0x00,0xF0,0x7F,0x1C,0x00, 
0x03,0x00,0xF0,0x7F,0x01,0x00,0x0E,0x00, 
0x04,0x00,0x00,0x00,0x04,0x00,0x04,0x20, 
0x04,0x40,0xFC,0x3F,0x00,0x00,0x00,0x00,/*"們",14*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x04,0x04,0x02,0x04,0x01,0xC4,0x7F, 
0x64,0x00,0x9C,0x20,0x87,0x20,0x84,0x20, 
0x84,0x20,0xE4,0x3F,0x84,0x20,0x84,0x20, 
0x84,0x20,0x84,0x20,0x04,0x20,0x00,0x00,/*"在",15*/ 
/* (16 X 16 , 宋體 ) */ 
0x40,0x80,0x42,0x40,0x44,0x20,0xCC,0x1F, 
0x00,0x20,0x08,0x40,0x28,0x50,0x48,0x48, 
0x89,0x44,0x0E,0x43,0xCA,0x44,0x38,0x48, 
0x08,0x50,0x08,0x40,0x00,0x40,0x00,0x00,/*"這",16*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x40,0x00,0x40,0xFF,0x44,0x91,0x44, 
0x91,0x44,0x91,0x44,0x91,0x44,0xFF,0x7F, 
0x91,0x44,0x91,0x44,0x91,0x44,0x91,0x44, 
0xFF,0x44,0x00,0x40,0x00,0x40,0x00,0x00,/*"里",17*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x02,0x10,0x02,0x10,0x82,0x10,0x42, 
0x10,0x32,0xFE,0x1F,0x10,0x0A,0x10,0x02, 
0x10,0x02,0x10,0x06,0xFE,0x0B,0x10,0x32, 
0x10,0xE2,0x10,0x42,0x00,0x02,0x00,0x00,/*"共",18*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x00,0xFE,0xFF,0x02,0x00,0x12,0x00, 
0x92,0x1F,0x92,0x08,0x92,0x08,0x92,0x08, 
0x92,0x08,0x92,0x08,0x92,0x1F,0x12,0x40, 
0x02,0x80,0xFE,0x7F,0x00,0x00,0x00,0x00,/*"同",19*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x08,0x04,0x08,0x04,0x09,0x74,0x09, 
0x54,0x09,0x54,0x29,0x55,0x49,0x56,0x89, 
0x54,0x7D,0x54,0x0B,0x54,0x0B,0x74,0x09, 
0x04,0x08,0x04,0x08,0x00,0x08,0x00,0x00,/*"享",20*/ 
/* (16 X 16 , 宋體 ) */ 
0x80,0x00,0x62,0x80,0x26,0x80,0x2A,0x41, 
0x32,0x43,0x22,0x25,0x26,0x29,0x3A,0x11, 
0x2B,0x11,0x21,0x2D,0x31,0x23,0x2F,0x40, 
0xA5,0xC0,0x60,0x40,0x20,0x00,0x00,0x00,/*"受",21*/ 
/* (16 X 16 , 宋體 ) */ 
0x10,0x42,0x92,0x42,0x54,0x2A,0x38,0x2E, 
0xFF,0x13,0x38,0x1A,0x54,0x26,0x52,0x02, 
0x80,0x40,0xF0,0x20,0x1F,0x13,0x12,0x0C, 
0x10,0x33,0xF0,0x60,0x10,0x20,0x00,0x00,/*"數(shù)",22*/ 
/* (16 X 16 , 宋體 ) */ 
0x02,0x01,0x82,0x00,0xE2,0x7F,0x5E,0x10, 
0x42,0x10,0xC2,0x3F,0x00,0x00,0x02,0x04, 
0xFA,0x04,0x82,0x04,0x82,0x44,0x82,0x84, 
0xFE,0x40,0x80,0x3F,0x00,0x00,0x00,0x00,/*"碼",23*/ 
/* (16 X 16 , 宋體 ) */ 
0x80,0x00,0x64,0x00,0x24,0x00,0x24,0x3F, 
0x3F,0x01,0x24,0x01,0x24,0x01,0xFF,0xFF, 
0x24,0x01,0x24,0x11,0x24,0x21,0x3F,0x1F, 
0xA4,0x00,0x64,0x00,0x24,0x00,0x00,0x00,/*"帶",24*/ 
/* (16 X 16 , 宋體 ) */ 
0x20,0x22,0x30,0x23,0xAC,0x22,0x63,0x12, 
0x10,0x12,0x40,0x00,0x20,0x00,0x50,0x7E, 
0x4C,0x42,0x43,0x42,0x44,0x42,0x48,0x42, 
0x30,0x7E,0x60,0x00,0x20,0x00,0x00,0x00,/*"給",25*/ 
/* (16 X 16 , 宋體 ) */ 
0x20,0x04,0x20,0x04,0x22,0x42,0x22,0x82, 
0xFE,0x7F,0x21,0x01,0x21,0x01,0x20,0x10, 
0x20,0x10,0xFF,0x08,0x20,0x07,0x22,0x1A, 
0xAC,0x21,0x20,0x40,0x20,0xF0,0x00,0x00,/*"我",26*/ 
/* (16 X 16 , 宋體 ) */ 
0x80,0x00,0x40,0x00,0xF0,0x7F,0x1C,0x00, 
0x03,0x00,0xF0,0x7F,0x01,0x00,0x0E,0x00, 
0x04,0x00,0x00,0x00,0x04,0x00,0x04,0x20, 
0x04,0x40,0xFC,0x3F,0x00,0x00,0x00,0x00,/*"們",27*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x00,0xF8,0x7F,0x8C,0x10,0x8B,0x10, 
0x88,0x10,0xF8,0x3F,0x40,0x00,0x30,0x00, 
0x8F,0x00,0x08,0x03,0x08,0x26,0x08,0x40, 
0x08,0x20,0xF8,0x1F,0x00,0x00,0x00,0x00,/*"的",28*/ 
/* (16 X 16 , 宋體 ) */ 
0x70,0x00,0x00,0x00,0xFF,0xFF,0x08,0x00, 
0xB0,0x80,0x88,0x40,0x88,0x30,0x88,0x0E, 
0xFF,0x01,0x88,0x06,0x88,0x08,0x88,0x30, 
0xF8,0x60,0x80,0xC0,0x80,0x40,0x00,0x00,/*"快",29*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x00,0x00,0x20,0x40,0x18,0xFC,0x0C, 
0x44,0x07,0x44,0x12,0x44,0x20,0x46,0x40, 
0xFA,0x3F,0x42,0x00,0x43,0x00,0x43,0x02, 
0x42,0x0C,0x40,0x38,0x00,0x10,0x00,0x00,/*"樂",30*/ 
/* (16 X 16 , 宋體 ) */ 
0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x5F, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"!",31*/ 
/* (16 X 16 , 宋體 ) */ 


0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 
x00,0x00, 
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 
x00,0x00,  //最后留一空白字符. 
}; 

uchar code  tab[]= 
{0x7f,0xff,0xbf,0xff,0xdf,0xff,0xef,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff, 
0xfe, 0xff,         
             0xff, 
0x7f,0xff,0xbf,0xff,0xdf,0xff,0xef,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,0 
xfe }; 
     //16列掃描分時(shí)輸出,從右到左每次輸出1列 
,低電平有效. 
bit SHAN;   //以下變量作為時(shí)鐘計(jì)數(shù)用,本程序單顯漢字,未用到. 
uchar second,minute,hour; 
void init();   //初始化函數(shù). 

#define HAN1  P1            //定義p1口為行0-行7數(shù)據(jù)口 
#define HAN2  P3            //定義p3口為行8-行15數(shù)據(jù)口 
#define LIE1  P2           //定義p2口為列1-行7數(shù)據(jù)口 
#define LIE2  P0            //定義p0口為列8-列15數(shù)據(jù)口 
void delay(uchar delay_time);       //延時(shí)函數(shù) 
//--------------------------------------------------------------------- 
void main() 
{uchar  i ,speed; 
  uint  k ; 
   
  init();         //初始化STC12C5A60S2的P0-P3端口為強(qiáng)推輸出,每端 
口輸出可輸出20MA電流,可直驅(qū)8X8LED點(diǎn)陣. 
    
  
while(1) 
{ for( k = 0 ; k <1056 ;k += 2 )              //以下的循 
環(huán)體為流動(dòng)顯示16X16字符. 
  {  
   for( speed = 0 ; speed <10 ; speed++)     //改 
變這行參數(shù)可以改速度. 
     { 
        for(i=0 ;i <16 ; i++) 
       { LIE1=0xff; LIE2=0xff; 
        HAN1 = zimo1[2*i + k ]  ; 
      HAN2 = zimo1[2*i+1+ k]  ; 
       LIE2=tab[2*i]; 
       LIE1=tab[2*i+1]; 
     
     delay(20) ; 
     LIE1=0xff; LIE2=0xff; 
     } 
   }  
  } 
    
     
  }; 
   

} 
//--------------------------------------------------------------------- 
void delay(uchar t)        // 延時(shí)函數(shù) 
{ 
   uchar i;               //定義變量 
for(;t>0;t--)             //如果t大于0,t減1(外層循環(huán)) 
  for(i=124;i>0;i--);         //i等于124,如果i大于0,i減1 
} 
//--------------------------------------------------------------------- 
/*************************************** 
函 數(shù) 名:init 
功    能:初始化函數(shù) 
說    明:初始化定時(shí)器及中斷 
入口參數(shù):無 
返 回 值:無 
***************************************/ 
void init() 
{ 
TMOD=1;TH0=0X3C;TL0=0XB0;       //定時(shí)器0模式1,50毫秒 
ET0=1;TR0=1;EA=1;           //開定時(shí)器0中斷、啟動(dòng)定時(shí)器0、開總中斷 
P4SW=0xff;                  //定義P4口為I/O口 
P0M1=0x00; 
P0M0=0xff;                //定義P0為強(qiáng)上拉輸出. 
P1M1=0x00; 
P1M0=0xff;                //定義P1為強(qiáng)上拉輸出. 
P2M1=0x00; 
P2M0=0xff;                //定義P2為強(qiáng)上拉輸出. 
P3M1=0x00; 
P3M0=0xff;                //定義P3為強(qiáng)上拉輸出. 
P4M1=0x00; 
P4M0=0xff;                //定義P4為強(qiáng)上拉輸出. 
} 

/********************************************************************** 
****** 
函數(shù)功能:定時(shí)器中斷延時(shí)程序 這一段的作用計(jì)時(shí)用,程序中沒有用到,保留作為 
計(jì)時(shí)時(shí)鐘或延時(shí)用. 
入口參數(shù): 
出口參數(shù): 
*********************************************************************** 
*****/ 
void timer0(void) interrupt 1 
{  uchar tim1,tim2;           //定義臨時(shí)變量 
   TL0=TL0+0XB0;TH0=0X3C;        //重裝定時(shí)器初值 
    
tim1++;                //每中斷一次tim1加1 
if(tim1==10)             //中斷10(0.5秒) 
{                   
  SHAN=!SHAN;             //閃爍標(biāo)志取反 
  tim1=0;tim2++;           //tim1清零,tim2加1 
  if(tim2==2)             //到了1秒 
  { 
   tim2=0;second++;         //tim2清零,秒加1 
   if(second==60)          //如果秒到60 
   {                 
    second=0;minute++;       //秒變0,分加1 
    if(minute==60)         //如果分到60 
    { 
     minute=0;hour++;       //分變0,時(shí)加1 
     if(hour==24) hour=0;     //如果時(shí)到24,時(shí)變0 
    } 
   } 
  } 
} 
  
} 
關(guān)閉窗口

相關(guān)文章