文/張占紅
對于初學者而言,點陣顯示還是比較難的,其表現(xiàn)在兩方面:第一、其的顯示原理和方式。其顯示的原理就是對LΕD發(fā)光二極管的點亮,但是由于其是以點陣的形式出現(xiàn)的,所以顯得比較的難,因為既要控制公共端口,又要控制斷碼;第二,內容的顯示,因為要在顯示屏上顯示出內容,那么斷碼也很重要,但是斷碼如何生成,也是很重要,再就是如何顯示,大家都知道,發(fā)光二極管的顯示,需要延遲,到底需要多大的延遲才能顯示呢,也需要根據(jù)制作的大小來確定。
安全行車顯示屏的設計,主要分為四步:第一步,8*8的點陣顯示設計;第二步,8*16點陣顯示的設計;第三步,16*16的點陣顯示設計;第四步,16*64點陣的設計。
斷我們就以“占”為例,要在點陣上顯示這個字,我們就要了解點陣的顯示的原理,8*8點陣指的是8行8列,我們要在上面顯示的時候,只需要把對應的位置的二極管點亮就可以了,那么我們在設計的時候,就必須考慮到行的顯示和列的顯示兩部分,首先是行的顯示,一般的情況下,行指的就是公共端口,對于點陣而言,大多數(shù)我們認為是低電平有效,所以我們只需要給出相應行的低電平斷碼就可以了,斷碼為:0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0 xbf,0x7f,這是8行的行選代碼。其次就是列斷碼的生成,有的人說我可以用字模的軟件生成,這樣也可以,但是對于初學者而言,自己來寫代碼無疑是最好的選擇,我們就說自己如何來書寫代碼,既然上面有了行選的代碼,也知道它是一行顯示了再顯示下一行,我們只要對每行顯示不同的內容,就可以顯示出內容了,比如說“占”字的顯示效果如圖1,我們可以把他拆分為圖2的八步,并且寫出相應的代碼。
圖1:“占”的顯示效果
圖2:斷碼拆分圖
由上面可以看出,列代碼是:0x10,0x70,0x10,0x10,0x7c,0x44,0x7c,0x00,這樣代碼就完成,再下來我們看一下延遲的計算,我們都知道發(fā)光二極管的顯示,只要延遲在10ms以內的話,我們人眼是分不清的,所以只要每行的顯示延遲全部加起來小于10ms就可以了,但是不能太小,太小了,單片機會認為其是沒有顯示的,建議20us以上最好(晶振為12mhz)。
這樣我們就可以寫出8*8點陣的所有代碼和延遲了,其余的就是查表顯示之類的,記得,一個行選一個列選對應,再加上延遲就可以了,但是一定要記得顯示完一行的時候,要關掉行選,要不然就有重影出現(xiàn)。
這一步明顯的就是比上一步多8列而已,我們可以用上面同樣的辦法來寫出所有行和列的斷碼,只不過是在顯示的時候,我們需要對每一個列都有顯示,也就是兩塊點陣都要有控制,要是只用一組端口作為數(shù)據(jù)輸出端口的話,那么需要用鎖存器等,也可以使用兩組端口作為數(shù)據(jù)輸出口,這樣就不用鎖存器等電路,但是要在輸出的時候看清楚,那一組端口控制那個點陣或者使用。
這一步雖然比上面多了8行,但是其列斷碼發(fā)生了變化,在這一塊建議使用字模生成軟件直接生成列的斷碼比較好,因為自己書寫的話,太麻煩,列斷碼用字模生成,行斷碼自己書寫就可以了,可以使用原來的8個斷碼,只不過使用鎖存器控制就可以了,如果不使用原來的8個斷碼,寫生16個的話,那么可以使用串轉并等手段也是可以的,這里就不多說了。
這一步的基礎還是第四步的內容,因為在上一步的時候實現(xiàn)了4個8*8點陣的顯示,而在這一步,我是以4個8*8點陣為基礎來做,顯示的方法和第四步一樣,只不過要多顯示幾次,才能把所有的內容顯示完全。
總之,行車安全顯示屏就是點陣的顯示,他比在學校學習的點陣數(shù)量多了,顯示起來麻煩了,如果按照一定的步驟一步一步來設計的,并沒有那么的難,希望能對初學者有幫助。