關(guān)于液晶顯示的平滑移動(dòng)的軟件實(shí)現(xiàn)方式
我們?cè)谠O(shè)計(jì)MP3或其他的一些動(dòng)態(tài)顯示時(shí),需要作平滑移動(dòng)的處理,如:向左移動(dòng)或者向右移動(dòng)!一般有硬件方式和軟件模擬方式,硬件方式需要LCD驅(qū)動(dòng)芯片的支持,而軟件方式較為靈活,不依賴于驅(qū)動(dòng)芯片,但耗費(fèi)CPU的處理時(shí)間。
例如:MP3的LCD屏只有128*32,也就是:除去圖標(biāo)只能顯示一行漢字。而MP3的歌名加上ID3信息超過8個(gè)中文字符(16*16)或者16個(gè)英文字符(16*8),這樣只能采取移動(dòng)的方式了。通常的做法有兩種:一種是平滑移動(dòng)方式,另一種是半個(gè)字符移動(dòng)方式。
平滑移動(dòng)需要占用CPU的時(shí)間比較多,一幀數(shù)據(jù):28*16/8 = 256 BYTES ,如果一秒鐘移動(dòng)一個(gè)中文字符,就要送16次,共4K BYTES。如果LCD用并行口,還可以勉強(qiáng)接受,但是如果是串口,就有32K BITS的數(shù)據(jù)量。
半字符移動(dòng)方式比較簡單,不需要緩沖區(qū),直接把中西文的點(diǎn)陣數(shù)據(jù)寫到屏就可以了,如果一秒鐘移動(dòng)一個(gè)中文字符,就只要送2次,共512 BYTES。相對(duì)數(shù)據(jù)量較小。
TRACK001.MP3 When a man love woman Michael Bolton
如圖1所示:這是一首MP3的顯示內(nèi)容 dislay_buff[]。
圖1。
水平超過128,由于要實(shí)現(xiàn)移動(dòng)所以我們的BUFFER必須大于128,由于空間的限制,?。?28+16)
評(píng)論