?? led顯示器件的基礎(chǔ).txt
字號(hào):
初學(xué)者:關(guān)于led顯示的一點(diǎn)粗淺經(jīng)驗(yàn)之談,大家多多指教 [秋雨] [218次] 01-8-11 下午 04:05:26
這段時(shí)間有不少朋友在作led顯示,問(wèn)了我不少問(wèn)題,一一回答總是找不到要點(diǎn)
在此我把我?guī)啄陙?lái)作led的一點(diǎn)經(jīng)驗(yàn)總結(jié)以下,作為對(duì)大家回答,希望對(duì)大家有
點(diǎn)啟發(fā),也作為拋磚引玉吧,大蝦們多談?wù)勛约旱膶氋F經(jīng)驗(yàn)!
一: LED顯示器件的基礎(chǔ)
LED發(fā)光器件一般常用的有2類,數(shù)碼管和點(diǎn)陣,
1:數(shù)碼管
a,數(shù)碼管常用的一般8字型,分為A B C D E F G P段,其中P位小數(shù)點(diǎn)
b,數(shù)碼管常用的有10根管腳(單位),每段一根管腳,另外兩根管腳為
公共端,2根是通的
c,從尺寸上分的話種類很多,常用的有0.3 0.5 0.8 1.0 1.2 1.5 1.8
2.3 3.0 4.0 5.0 等等
d,一般小于1.0的為單管芯,(1.0有單有雙),1.2~~1.5為雙管芯,1.8以
上為3個(gè)以上的管芯,因而他們的供電電壓要求不同,一般每個(gè)關(guān)芯的
壓降為2.1v左右
我的經(jīng)驗(yàn)是0.8以下5v供電,1.0~2.3為12v,3.0以上更高
e,數(shù)碼管分共陰和共陽(yáng)兩種
2:點(diǎn)陣
a,點(diǎn)陣常用的為8*8,以前還有5*8(現(xiàn)在不大用了)
b,點(diǎn)陣都是單管芯,分(行)共陰和(行)共陽(yáng),一般都用5v供電
c,8*8點(diǎn)陣為16根管腳(單色,也有24根的,可能是作廢的雙色點(diǎn)陣或者
為了能在同一種線路板上實(shí)現(xiàn)單色雙色都可用而設(shè)計(jì)的,也比較常見(jiàn))
8根行8根綠
雙色為24根管腳,8根行,8根列紅,8根列綠,
二: 顯示基本原理
分為靜態(tài)(只有數(shù)碼管能實(shí)現(xiàn))和動(dòng)態(tài)
1:靜態(tài)的比較好實(shí)現(xiàn),在此不多講了
2:數(shù)碼管動(dòng)態(tài)
a,硬件連接
數(shù)碼管一般為1/13能掃描,再高的話亮度損失比較大,
在此假設(shè)為列為13列,行為16行,共陽(yáng)管,每行數(shù)碼管的各段連在一起,每列數(shù)碼
管的公共段連在一起
列開(kāi)關(guān)用tip127,他可以直接用154驅(qū)動(dòng),達(dá)林頓管5安培,注意127輸出
不要加電阻
行用595(164不建議)+2803或者2003+一個(gè)9013,在2003的輸出要加上
限流電阻,一般為56~330歐姆(如果是<1.0的數(shù)碼管,可以直接用595加
電阻驅(qū)動(dòng))
b,軟件
采用89c51為cpu,存儲(chǔ)器可采用24c系列,或者28c系列,注意他們的寫(xiě)入速度都不是很
快,不過(guò)一般數(shù)碼管的輸入設(shè)備為鍵盤(pán)或遙控器,速度足夠了,還有24c系列的讀出速度也比較
慢,我發(fā)現(xiàn)每次讀出的數(shù)據(jù)大概只有20以內(nèi)才不會(huì)影響更新顯示
顯示采用時(shí)鐘中斷1,中斷時(shí)間不能超過(guò)1.5ms,最好為1.2ms左右,可以在中斷服務(wù)程序中
讀24c02,也可以在中斷的間隙中讀取,但必須保證能夠讀出所有的一列數(shù)據(jù)!讀出的數(shù)據(jù)放到
一塊顯示區(qū)中,(在內(nèi)存中定義一個(gè)數(shù)組buf[16]),在中斷子程序中把數(shù)據(jù)發(fā)送的595中即可,
最好采用串口發(fā)送,編程最簡(jiǎn)單.
發(fā)送完畢后,關(guān)掉控制行的154,給595的RCLK(12腳)一個(gè)脈沖,把數(shù)據(jù)從移位寄存器傳輸?shù)?鎖存器,而后打開(kāi)154并輸入列信號(hào)即可
3: 點(diǎn)陣
a,點(diǎn)陣一般采用1/16掃描,控制原理和數(shù)碼管差不多
b,硬件: 行用154+tip127,列用595加電阻(0~56歐姆)直接驅(qū)動(dòng)
c,軟件
方案比較多,見(jiàn)下面
三: 先說(shuō)說(shuō)信息的存儲(chǔ)
分為2種,
1:一種為固化的漢字,漢字點(diǎn)陣信息存于27c256中,最多存1024個(gè)16*16點(diǎn)陣漢字,要修
改只能重新寫(xiě)27c256,優(yōu)點(diǎn)是不丟失,一般我們?yōu)殂y行做的都是這種,他很少修改顯示能容,而
且以后每次修改可以收費(fèi)<哈哈~~~),缺點(diǎn)是不靈活
2: 另一種是可以用戶自己修改的,修改方式又分為2中,
早期一般用鍵盤(pán)或者遙控器修改,那樣必須在主辦上固化有漢字字庫(kù),可用27c040
固化ucdos的hzk16全角字庫(kù)和asc16半角字庫(kù),用戶輸入?yún)^(qū)位嗎進(jìn)行修改,用戶需要顯示的漢
字以區(qū)位嗎的方式存到一片E2POM中,顯示的時(shí)候程序根據(jù)區(qū)位嗎讀取點(diǎn)陣信息送到屏上顯
示,
還有一種近年來(lái)常用的方式就是利用微機(jī)串口進(jìn)行修改,這里面還分為兩種
A,控制板上沒(méi)有字庫(kù),微機(jī)發(fā)送的是顯示的點(diǎn)陣信息,控制板接受后把信息存到帶電池
的RAM中(也可用E2PROM,但速度很慢),這種的缺點(diǎn)是掉電池的RAM不太可靠,常常丟失信息
B,控制板上帶字庫(kù),微機(jī)發(fā)送漢字的機(jī)器嗎(內(nèi)嗎)即可,其他同上
四: 顯示的控制
信息的發(fā)送可以有好多方式,根據(jù)采用器件的不同而不同,有的廠家采用374控制而不采
用595,那樣的話直接寫(xiě)一個(gè)外部端口即可,374級(jí)連方式,(如果用1排374的話在傳輸中必須關(guān)
掉顯示,顯示字較多的話影響亮度,用2排374不必關(guān)掉顯示但增加硬件成本),目前用的較少了
595的很長(zhǎng)見(jiàn),發(fā)送可以用傳口,很簡(jiǎn)單,也可以用別的口模擬傳口發(fā)送(因?yàn)閭骺谶€有可
能隨時(shí)接受微機(jī)的信號(hào)),也可以采用傳口復(fù)用(不過(guò)我不會(huì),:)~~)
我采用的是用374+165向595發(fā)送數(shù)據(jù),硬件比較復(fù)雜,但是在以后的顯示花樣中很好用!
特別是左右移位,爽極了!
提示一下:最近用雙龍的90S8515發(fā)現(xiàn)很好,因?yàn)樗€有一個(gè)SPI口,用來(lái)送595信號(hào)更爽!
速度可到3M,(12M晶體),強(qiáng)烈建議大家有這種芯片(靠,也不到雙龍看到了會(huì)不會(huì)給點(diǎn)獎(jiǎng)
勵(lì)....)
五: 一些注意事項(xiàng):
1: 顯示時(shí)間,每行<1.5MS
2: 根據(jù)經(jīng)驗(yàn),89C51 12M晶體最大控制48個(gè)16*16點(diǎn)陣,再大的話可以提高晶體頻率和優(yōu)
化程序,(就是發(fā)送程序的時(shí)間最短)
3: 在顯示的字比較多時(shí),一定要注意發(fā)送子程序的代碼效率,因?yàn)榘l(fā)送是一個(gè)循環(huán),所以
循環(huán)體內(nèi)的處理越快越好,大家現(xiàn)在大都用C51,更的注意,我可是吃過(guò)虧的!
大家看下面的例子:
if(hangno==0x10)hangno=0; //hangno為顯示的行序號(hào)
for(i=0;i<32;i++)
{
PORT1=*(addr+hangno*0x600+i);//我的漢字信息是0~600為第一行信息
//600~0c00為第二行信息...
PORT2=0x0ff;
}
每次發(fā)送32個(gè)字節(jié)(16個(gè)字),程序編譯通過(guò),沒(méi)有問(wèn)題,可是當(dāng)顯示64個(gè)漢字時(shí)(假設(shè))顯示就
亂了,后來(lái)改為
if(hangno==0x10)hangno=0; //hangno為顯示的行序號(hào)
w=hangno*0x600;
for(i=0;i<128;i++)
{
PORT1=*(addr+w+i);//我的漢字信息是0~600為第一行信息
//600~0c00為第二行信息...
PORT2=0x0ff;
}
就沒(méi)有問(wèn)題了,大家自己看看,就知道原因了,對(duì)把?
寫(xiě)了這么多,想到那些到那,很不系統(tǒng),不過(guò)好累呀,我下兩盤(pán)軍旗放松放松,大家多提提意見(jiàn),
這只是講的小屏的控制方法(<2m2),大屏的完全不同,有人感興趣的話以后再談.
感謝秋雨前輩!您辛苦了! [阿風(fēng)] [3次] 01-8-11 下午 04:17:53
秋雨兄的字是字字珠璣,只是我等阿菜對(duì)于理論的東東很難理解,是否可是提供一個(gè)簡(jiǎn)單的電路和詳細(xì)的解釋,讓俺們學(xué)習(xí)? [WALL] [3次] 01-8-11 下午 04:38:40
加入精華版了,非常感謝“秋雨”大俠無(wú)私的奉獻(xiàn)。 [龍嘯九天] [5次] 01-8-11 下午 04:49:51
非常感謝秋雨,很精彩! [will009] [2次] 01-8-11 下午 05:01:13
謝謝斑竹的夸獎(jiǎng),一點(diǎn)小經(jīng)驗(yàn),不足掛齒 [秋雨] [3次] 01-8-11 下午 08:23:44
太及時(shí)了,非常感謝。 [kk_npu] [2次] 01-8-11 下午 09:03:57
我期待很久了,再次感謝。 [龍嘯九天] [1次] 01-8-11 下午 09:17:22
落后了,誰(shuí)還用區(qū)位碼輸入?小顯示屏一般用MCU+CPLD+232+遙控器,顯示板用595(TI6B595)+CET4953(MOS型行驅(qū)動(dòng));大屏用FPGA通過(guò)顯卡取數(shù)據(jù),用FPGA完成掃描。... [oldwin] [22次] 01-8-12 上午 11:35:55
謝過(guò)秋雨前輩。小弟對(duì)你崇敬之情有如滔滔江水………………………………………………………………………………………………………………………………………………………………………………………………………………… [exdata] [2次] 01-8-12 下午 01:01:58
當(dāng)然可以,用avr90s8515可以嗎?我也是剛用,很好的! [秋雨] [8次] 01-8-12 下午 04:16:29
請(qǐng)教e2prom寫(xiě)的慢,讀的也慢嗎? [rechar] [4次] 01-8-12 下午 05:24:37
讀寫(xiě)幾乎差不多,寫(xiě)慢因?yàn)檫B續(xù)寫(xiě)不能超過(guò)葉字節(jié)數(shù),讀時(shí)沒(méi)葉限制,只要你緩存夠大。 [exdata] [9次] 01-8-12 下午 05:41:44
讀寫(xiě)幾乎差不多,寫(xiě)慢因?yàn)檫B續(xù)寫(xiě)不能超過(guò)葉字節(jié)數(shù),讀時(shí)沒(méi)葉限制,只要你緩存夠大。
28c系列的沒(méi)有頁(yè)的概念,讀的速度不慢!你講的是28f系列 [秋雨] [3次] 01-8-12 下午 06:09:25
28C系列EEPROM的確有頁(yè)寫(xiě)功能,我用過(guò)了。 [中山子木] [3次] 01-8-13 上午 12:45:06
是嗎?28c64有頁(yè)功能嗎?我可一直用28c64呀,頁(yè)功能如何用?有資料嗎? [秋雨] [3次] 01-8-13 上午 09:09:17
謝秋雨 [zhu_xinghua] [3次] 01-9-15 下午 03:16:59
謝過(guò)秋雨前輩。小弟對(duì)你崇敬之情有如滔滔江...............
能不能給張.sch圖就美不勝收了。 16*16*16個(gè)字條屏。 fzzxh@21cn.com
點(diǎn)擊這里回復(fù)這篇貼子>>
_____________________________________________________________________________
Copyright?,C51BBS論壇 2000-2001
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -