『壹』 單片機控制100個LED,怎麼設計電路
LED顯示屏又叫電子顯示屏,是由LED點陣組成,通過紅色或綠色燈珠的亮滅來顯示文字、圖片、動畫、視頻,內容可以隨時更換,通常由顯示模塊、控制系統及電源系統組成。顯示模塊由LED燈組成的點陣構成,負責發光顯示;控制系統通過控制相應區域的亮滅,可以讓屏幕顯示文字、圖片、視頻等內容,恆舞動卡主要是播放動畫的;電源系統負責將輸入電壓電流轉為顯示屏需要的電壓電流。
LED顯示屏廣泛應用於信息指示燈,大屏幕顯示,液晶顯示的背光燈,固體照明等。本文設計一種由4個16×16點陣LED模塊組成的顯示屏,由單片機作控制器,平滑移動顯示任意多個文字或圖形符號,本電路可級聯擴展實現由任意多個16×16點陣LED模塊組成的顯示屏。
控制電路設計
控制電路由AT89C51單片機作控制器,顯示屏由4個16×16點陣LED模塊組成,每個16×16點陣LED模塊由4個8×8點陣LED模塊組成,用戶可根據需要擴展增加任意多個16×16點陣LED模塊。8×8點陣LED模塊結構如圖1所示,共8行8列,每個發光二極體放置在行線和列線的交叉點上,共64個發光二極體。當某一列為高電平,某一行為低電平時,則對應的發光二極體點亮。
『貳』 單片機 怎麼控制點陣屏和LCD屏
LED點陣屏和LCD屏的顯示原理是不同的,LCD屏是自帶的驅動晶元的,可以和單片機直接連接的。
而LED屏需要加驅動電路的,而且顯示時也要採用動態掃描的方式的。
LCD屏顯示漢字時,有的屏是自帶字型檔的,不帶字型檔的屏,就要用漢字取模軟體取出顯示的數據,即取出漢字的字模。
LED屏顯示漢字,就必須用取模軟體來取模了,不是自己像畫畫那樣,那可畫不起。取模軟體在網上可以下載的。
最後一個問題:LCD的集成電路去了當成點陣屏用嗎?這是不可能的,一則LCD的集成電路是封裝在PCB板上的,即軟封裝的,自己是用不了的,是不可能自己接線的。二則,假如能接線,可是,LCD和LED顯示原理不同,是根本不可能通用的。
舉個例子吧,你能把你家的私家車掛在高鐵的車頭拉著跑嗎?
『叄』 單片機控制8×8 LED點陣屏顯示數字
你好!這里有一個不是顯示數寬枝字慎銀敏的搏櫻,修改字模就能完成顯示
『肆』 如何用單片機程序控制8x16點陣LED顯示出LOVE 謝謝
如果是想一起顯示四個字母,把所有的LED共陰共陽,用單片機做個簡單的程序,控制其通斷就可以了。如果是想單個顯示,則需要把你想顯示的單體字母共陰共陽,不過這個程序麻煩點,要控制好幾個字母電源通斷的時序。當然,如果你c語言過關的話,可以變更復雜的程序,變幻一下閃爍的順序和頻率,效果會更好!
題外話:用來追MM不錯~
『伍』 51單片機+10片 74hc595 控制16*64點陣屏顯示
#include<reg52.h>
sbit HC595_DS = P2^0;
sbit HC595_STCP = P2^1;
sbit HC595_SHCP = P2^2;
sbit HC595_OE = P2^3;
void HC595_WriteByte(unsigned char value)
{
unsigned char i;
for(i=0;i<8;i++)
{
HC595_SHCP = 0;
HC595_DC = value&(0x80>>i);
HC595_SHCP = 1;
}
}
void Lattice_WriteData(unsigned char *buffer,unsigned char value,value1)
{
while(*buffer)//列掃描
{
HC595_WriteByte(*buffer++);
}
HC595_WriteByte(value);//行數據低八位
HC595_WriteByte(value1);//行數據高八位
HC595_STCP = 0;
HC595_STCP = 1;
}
unsigned char buffer[8]={0x01,0,0,0,0,0,0,0};//64列
void main()
{
HC595_OE = 0;
HC595_OE = 1;
//假設行低電平有效,列高電平有效,顯示效果為第一行,第一列坐標為(0,0)的像素點亮,其他均不亮
Lattice_WriteData(buffer,0xfe,0xff);
while(1)
{
}
}
//如有問題,可再咨詢
『陸』 我用51單片機串列通信方式去控制一塊8×8LED點陣屏,顯示的時候,文字閃爍厲害……
按照人的常規的視覺停留的頻率計算就行了,一般地,掃描頻率要50HZ以上肉眼看起來就不閃爍,就拿50HZ閥值,那麼一個點陣顯示的時間為1S/50=20mS,即需要20mS後知薯再對它進行掃描;
但是你每行是5mS,那麼一共有8行,重復掃描時間為5mS*8=40mS>>20mS,所以當然看起來閃爍。
把掃描時間跳到2.5到枯凱2mS就差不多了,太小的話,沒猛喚通電時間過短,顯示亮度不足。
『柒』 基於單片機的16×64點陣字元控制系統的設計
我做過這樣的畢業設計,16*64點陣顯示屏,可以各種顯示,時間,溫度等功能。
給你一個參考:
可以去我的博客下載: http://www.shenzhenwangzhanyouhua.com/seo/ds1302-18b20-1664-display.html
LED 點陣漢字顯示屏
概 述
這次比賽製作由於時間緊,同時為了降低製作難度, 僅作了四個字的輪流顯示,實際使用時可根據這個原理自行擴充顯示的字數。
設計製作主要運用於學校的宣傳欄,如:本科評估的各種信息,學校學院重要通知,天氣預報等各種信息。
系統設計
一 硬體電路
(1)系統組成:
主要硬體電路:LED 點陣條屏是由 16 個 8*8 的 LED 點陣塊組成,形成 16*64 矩形點陣,以AT89S51為控制核心。顯示屏的其他主要硬體有:
① 帶鎖存輸出的 8位移位寄存器74HC595,作為LED的列線驅動輸入;
② 四六解碼器 74LS154,作為 LED行線的解碼選擇(實際製作中考慮成本問題改為兩個74HC138聯合);
③ 三極體 9012,連接四六解碼器的十六個輸出端,作為開關使用,驅動LED的行線。
圖二 AT89S51單片機最小系統
AT89S51相關器件連接的接腳如下:PA0-PA3連接4-16解碼器的輸入口A,B,C,D;PB0-PB3連接74HC595的輸入口 SI,SCK,RCK;PD6-PD7作串口通信使用連接RxD,TxD 兩個三八解碼器74LS138組成的16個輸出端連接 16 個 9012的三極體的基極 B,發射極E 連接5V電源,集電極C連接到三個漢字點陣的16 個行線控制端。 點陣的 48 列數據線驅動由 6 片 74HC595 級聯組成,前一片 74HC595 的 Q』H 引腳連接下一片的SI引腳,各片的SCK、RCK、SRCLR、G引腳分別並聯。
(2)LED點陣塊
圖三 LED點陣塊
8*8的LED點陣為單色行共陰模塊,單點的工作電壓為正向(Vf)=1.8 v ,正向電流(IF)= 8-10 mA 。靜態點亮器件時(64點全亮)總電流為 640mA,總電壓為 1.8 v,總功率為 1.15 W。動態時取決於掃描頻率(1/8或1/16秒),單點瞬間電流可達 80-160 mA。 16*16點陣靜態時16*16*10mA,動態時單點電流80-160mA。
實際測試:整機電流700 mA
(2) 移位寄存器74HC595
圖四 74HC595內部邏輯圖
74HC595是帶鎖存輸出的8位移位寄存器,其管腳見下圖,其中SI是串列數據的輸入端;VCC、GND分別為電源和地;RCK是存儲寄存器的輸入時鍾,SCK是移位寄存器的輸入時鍾,SCLR是移位寄存器的輸入清除,Q』H是串入數據的輸出,G是對輸入數據的輸出使能控制,QA~QH串入數據的並行輸出。從SI口輸入的數據在移位寄存器的SCK腳上升沿的作用下輸入到74HC595中,在RCK腳的上升沿作用下將輸入的數據鎖存在74HC595中,當G為低電平時時,數據並行輸出。SCLR為移位寄存器的輸入清除端。
(3) 74HC138以及驅動電路
圖五 74HC138以及驅動電路實物圖
4-16線解碼器(用兩塊74HC138組成),其管腳如圖所示,A,B,C,D為解碼的輸入端,值的區間從0000到1111,Y1~Y15是對應A,B,C,D四個輸入引腳的輸出腳,其中選中的線用輸出低電平,沒有選中的輸出高電平,G1、G2是使能端,只有輸入相應D低電平才能使解碼器正常工作。
驅動三極體為16個9012,用萬能板焊接。
二 軟體設計
單片機方的程序設計 單片機在LED點陣漢字顯示系統中主要負責數據的接收、存儲和掃描顯示 LED點陣屏三大主要功能。串列移動的子程序設計 這是一個通用子程序,在顯示子程序中都要被調用,功能是移位寄存器 74HC595接收單片機發出的點陣行數據,逐位移動到對應位置後再進行鎖存和輸出工作,同時對四六解碼器進行開關工作,控制屏幕的顯示。
部分程序:初始化程序:
#include <AT892051.H>
#define uchar unsigned char
#define uint unsigned int
#define SPEED 3
uchar col,disrow;
uint word;
uchar code HZ[];
uchar BUFF[6];
void loadoneline(void);
void sendoneline(void);
發送部分程序:
void sendoneline(void)
{
char s;uchar inc;
if(col<8)inc=0;else inc=1;
for(s=4+inc;s>=0+inc;s--)
{
SBUF=two_onebyte(BUFF[s],BUFF[s+1]);
while(!TI);TI=0;
}
}
三 調試
調試主要分為硬體調試和軟體調試:
硬體調試:在焊接電路板的時候,應該從最基本的最小系統開始,分模塊,逐個進行焊接測試。在對各個硬體模塊進行測試時,要保證軟體正確的情況下去測試硬體,要不然發生錯誤時,不知道到底是哪一方出錯了。當然,在設計的過程中也存在著失誤和不足。
軟體調試:軟體部分是先參考書上的例子,然後自己根據硬體電路寫程序,由於以前所學是C語言,所以這個系統在編寫程序過程中都採用C語言編寫。剛剛開始,編寫不會一次性通過,經過仔細分析修改最後編譯成功。但是,在實際寫如S51中,LED顯示屏出現各種各樣的亂碼,通過再次認真仔細分析多次修改程序後,程序能夠正常運行。
四 總結
在 LED點陣漢字顯示屏的設計過程中,學到了很多東西,基本了解了整個嵌入式開發的流程。例如,在進行整個設計之前,應該先根據需求分析,對單片機進行選型,然後對各個硬體模塊進行搭試。在畫PCB電路板的時候,要注意基本的布板原則。例如,在進行PCB布板的時候,濾波電容不夠靠近晶元的電源腳和地腳。在進行搭試點陣塊的時候,因為電壓過高,導致點陣塊損壞。這次第一屆電子設計製作,本人受益非淺,在以後的電子設計製作過程中一定吸取教訓。
參考文獻:
[1]何立民.單片機應用技術選編[M].北京:北京航空航天大學出版社.1998.
[2]杜春雷.如何使用Visual Basic 6.0 dP3~ [M].北京:機械工業出版社,1999.
[3]孫育才.新型AT89S51系列單片機及其應用[M].北京:清華大學出版社.2005.
經驗小結:
1,在頭文件增加「#pragma SRC(LED.ASM)」語句,可以生成匯編文件,對於理解
匯編語言程序是有很大的好處的。
2,在製作PCB板過程中,業余條件下很難做雙面板,不地不做的時候考慮如何布
線才能達到最優最好。
3,在「http://xie-gang.com/WNFZQ.htm」;Keil C51軟體的安裝,按照該軟體
的安裝,可以得到無限量的程序編譯。因為在寫程序的過程中發現,KEIL C51 只
能編譯2K的程序代碼,不夠用。用C編寫,感覺很容易理解。程序編寫過程中最好
是先參考別人的程序,再修改能不能實用自己的程序要求,之後才自己去編寫完
全屬於自己的程序。
4,單片機模擬軟體 PROTEUS 也是很不錯的。在上面可以模擬很多東西。
設想:
1,可以掛在學校的十字路口,提供日期,時間,溫度,濕度等天氣信息,服務廣大同學。
2,可以和電腦相連接,實現同步顯示。做一個完整的系統。
進一步學習下面的軟體或者語言(知識):
BV
protel 99 se
keil c51
proteus
c/c++
easy isp 51
Easy 51Pro.exe
2007-5-25
下面為靜止顯示「農林大學」四個字的程序:
#include <REG51.h>
#define uchar unsigned char
#define uint unsigned int
uchar disrow;
uchar code HZ[];
uchar BUFF[9];
void loadonelineandsend(void);
/********************************************/
/*******************************************************/
void main(void)
{
while(1)
{
for(disrow=0;disrow<16;disrow++)
{
loadonelineandsend();
P1=0x10+disrow;
P1=0x20+disrow;
}
}
}
/******************************************************/
void loadonelineandsend(void)
{
uchar s;
int q;
q=0;
for(s=0;s<4;s++)
{
BUFF[q]=HZ[32*s+disrow*2];
BUFF[q+1]=HZ[32*s+disrow*2+1];
SBUF=255-BUFF[q+1];
while(!TI);TI=0;
SBUF=255-BUFF[q];
while(!TI);TI=0;
}
}
/******************************************************/
/***********農林大學********************************************/
uchar code HZ[]=
{
0x01,0x00,0x01,0x00,0x7F,0xFE,0x41,0x02,0x81,0x04,0x02,0x00,0x02,0x08,0x05,0x18,
0x09,0x20,0x18,0xC0,0x28,0x80,0x48,0x40,0x88,0x30,0x0A,0x0E,0x0C,0x04,0x08,0x00,
0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x24,0xFE,0xFE,0x08,0x20,0x18,0x60,0x1C,0x70,
0x2A,0xA8,0x28,0xAE,0x49,0x24,0x8A,0x20,0x08,0x20,0x08,0x20,0x08,0x20,0x08,0x20,
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0xFF,0xFE,0x01,0x00,0x02,0x80,
0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x0E,0x60,0x04,0x00,0x00,
0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04,0x1F,0xE0,
0x00,0x40,0x01,0x84,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x00,
};