這可能是最古老、最簡單的液晶屏了,型號是1602A,它是上世紀(jì)80的產(chǎn)物,但是直到現(xiàn)在它還是非常受歡迎,在很多設(shè)備上都可以看到它的身影。
接下來我們就來講一下這種屏幕是如何工作的。
這是它顯示的圖案,如果放大來看,會發(fā)現(xiàn)它的像素就是一個個的小方塊。
如果我們讓它的像素全部顯示出來是這樣的。
它橫著有16個這樣的區(qū)域,豎著有兩個,所以這種屏幕的型號是1602。
每一個區(qū)域橫著數(shù)有5個像素,豎著數(shù)有7個像素,每個區(qū)域就是35個像素,所以整個屏幕就是1120個像素。
那這個玩意兒是怎么控制這1000多個像素的呢?
要搞明白這個問題,我們首先要知道它的一個像素是怎么控制的。
屏幕的最下面是一層LED背光板,當(dāng)我們給它接上電,它就可以發(fā)光。
在它的上面有一層液晶,每一個像素都是由一小塊液晶來控制的。
當(dāng)我們不給液晶施加電壓,它幾乎是完全透明的。
而當(dāng)我們給某一小塊液晶施加電壓之后,它就不透光了,因此形成了一個的小黑點,也就是我們看到的像素點。
因為不需要色彩顯示,所以只需要讓液晶介于透光和不夠光兩種狀態(tài)之間就可以,我們只需要控制液晶的高低電壓,就能控制一個像素點了。
如果是控制一個像素點,那很簡單,讓微控制器的引腳直接控制液晶的電壓就可以了。
但是面對1120個像素點,微控制器就力不從心了。
因為一般的微控制器引腳數(shù)量有限,沒辦法控制1000多塊液晶。
針對這個疼點,聰明的人類開發(fā)了一個
顯示芯片HD44780U,它有80個引腳。
這樣我們只需要要把要發(fā)送的東西丟給這個芯片,它就能控制液晶屏的像素點了,極大的方面了我們的編程工作,形象一點來說,這個顯示芯片其實充當(dāng)著計算機當(dāng)中顯卡的角色。
可以看一下1602屏的背面,這個大黑點里面封裝的就是HD4478U芯片。采用這種封裝能節(jié)省成本。
1602上有16個引腳,它的數(shù)據(jù)引腳有8個。
通過這些引腳我們就能控制LCD屏幕了。
因為一塊區(qū)域只有35個像素,所以它只能顯示數(shù)字、字母和符號這些簡單的信息,一共能顯示240個字符。不能顯示漢字。
這些字符基本上都是通過ascii碼進行編碼的,只需要8位0或者1的排列組合,就能表示這
就能表述這些字符。所以它的數(shù)據(jù)引腳正好也是是8根線。
比如大寫字母A的ASCLL碼是0100 0001,那我們只需要讓微控制器的這8個引腳分別輸出相應(yīng)的高低電平就可以了。
但是我們還沒有指定這個大寫字母A要發(fā)到哪一塊區(qū)域。
因此HD44780U為每一塊區(qū)域都設(shè)計了一個字節(jié)的DRAM(內(nèi)存),這個DRAM就相當(dāng)于我們現(xiàn)在顯卡的顯存,可以對比一下,Nvidia最新旗艦顯卡4090顯存是24GB。
而我們這塊顯示芯片一共也才80個字節(jié)??梢詸M著顯示40個字符,豎著顯示兩個字符。所以它可以同時控制80個字符。
我們看LCD屏幕一共也才能顯示32個字符,那這個芯片為什么能控制80個字符呢?
因為這個HD44780U芯片是通用芯片,不單單是用來控制這一種規(guī)格的屏幕。
如果用來控制1602的話,它的顯存永遠(yuǎn)都是有48字節(jié)用不到的。
在微控制器給它發(fā)送數(shù)據(jù)之前,都需要先發(fā)送顯存的地址,然后再發(fā)送數(shù)據(jù),這樣數(shù)據(jù)就會被保存在相應(yīng)的顯存里面。
比如我們想讓第一塊區(qū)域顯示A,就需要先發(fā)送第一塊顯存的地址,然后再發(fā)送A的ASCLL碼。這樣就能在第一塊區(qū)域顯示A了。
這就是我們微控制器的編程思路,因為有這個顯示芯片的存在,讓編程變的簡單了很多。
那這個顯示芯片又是怎么控制這塊LCD屏幕的呢。
這是HD44780U的引腳分布圖,直接控制液晶像素點的是這些引腳,COM引腳控制橫向像素,SEG引腳控制縱向像素,比如我們控制A這個字符。就需要這些引腳分別輸出不同的電壓就可以了。
但還有一個問題,就拿第一塊區(qū)域來說,這些引腳是沒辦法同時控制每一個像素的。
比如我們控制第一行的時候,先讓COM端為低電壓。然后再來控制它的SEG引腳,就能控制第一行的像素了,如果是顯示像素就給這個引腳高電壓,不顯示就給它低電平。
但在同一時間就沒有辦法控制其它行的像素了。因此人們想到了掃描的控制方式,比如先控制第一行像素,然后再來控制第二行像素,這樣逐行掃描,就能控制所有的像素了。
那這樣我們?nèi)搜鄄痪涂吹剿恢痹趻呙枇藛幔?/p>
當(dāng)然不會了,這里面運用了人眼的視覺暫留,它的掃描頻率很快,所以我們看到的就是靜止的畫面。
但還有一個問題,你看它一共有40個SEG引腳,而一個字符縱向有5個像素點,這樣的話它就只能控制縱向的8個區(qū)域,那另一半?yún)^(qū)域怎么控制呢?
剛才我們不是說它內(nèi)置了80個字節(jié)的顯存嗎?那應(yīng)該能控制80個字符呢?
現(xiàn)在怎么只能控制16個字符呢?
它確實能控制80個字符,但如果超過16個字符,就沒有多余的引腳了,因此就得就得借助驅(qū)動電路。
你看這個1602的背面,除了主控HD44780U之外,還有一個HD44100H的驅(qū)動芯片,它就是來協(xié)助主控完成另一半的顯示任務(wù)的。
這是它的引腳分布,它正好也有40個SEG引腳。
把它和主控連到一塊,就可以控制LCD所有的像素了。
主控是通過串行方式給這個驅(qū)動芯片發(fā)送信息,然后這個驅(qū)動芯片就可以控制它引腳的狀態(tài)了。
現(xiàn)在正好能控制的就是32個字符個字符。
如果我們給它再加3塊驅(qū)動芯片,然后再換一款能顯示80個字符的液晶屏,它就能控制80個字符了。
此時顯示芯片HD44780U的性能正好被榨干了,就是再讓它多控制一個像素都是不可能的,因為此時的顯存已經(jīng)滿了。
這就是我對1602屏幕的理解,希望對你有幫助。
審核編輯:劉清
評論
查看更多