EM73A88 16 x 64 dots LCD application Note(Prat II) LCD display performance is determined by perfect matching between IC hardware and software. There are some restrains are not so obvious to see and not so often to meet. But once happened, it’s very hard to debugging, To get a perfect solution may totally change the program or the data structure. So get the notice in the start of programming will give a big help. Following is a step by step checking list to find the best solution for the perfect LCD display. 1. As you first start to use PMA88 to emulate the LCD function, try to put some picture on it and check the display performance, Is there some missing pixel? or shadow? If it’s perfect. You could go next. Otherwise, check the wire for the missing pixel. Add a resistor (200K ohm) from V1 to ground to reduce the shadow. 2. Following is two regular programs for 1024 dots LCD update data. These two subroutine calls take about 2400 instruction cycles (4ms in 4.6Mhz) to fill a whole size LCD data RAM. but this is an ideal case, usually, it will take more instruction cycles than 4ms. But for the case of EM73A88, Not exceeds 32ms for safety, the best way is under 16ms. 32ms is the LCD scan period. ! " #$" $"% &' ! $"% &&' ' $"% &&&'( )* +,* '$&&' " &#$&&' " # ! ! -" "..#'$& ' -" & +,* )$&&',* "#&',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' . /0! "1)&22& " #$"%&' )3 $"%&&' )3 $"%&&&' )3 $"%&&&&' )3 $"%&&&&&' )3 +,* '$&&' " &#$&&' " #3 ! -" "..#'$& ' -" & +,* )$&&',* 3. Some people like to clear the previous picture before put a new one. We strongly suggest do not do so, you will get a blink effect as you play picture one by one. If possible, just overwrite them. 4. If your display routine exceeds 16ms, we suggest get a synchronized signal from time base as you enable the LCD display. And make a synchronized step to the display data replaced with the LCD frame frequency. Following is an example. 456/06789745:707;4 < <&&' < -"<1)=<>&? &'>&!-)< # "-#$ - ).2*.476@6/ $&& &- & - "#-"<% &',-"< "&#-"<% &',-"<:7456/06789 -"& $ &&- ).3 # # 'A"#-"<% &',-"< 'A"&#-"<% &',-"<:7456/06789 -'A"& " # -#-"<% &',-"<7;476@@76 5. There is a special case, the display routine can not be predictable. Sometime it is short and sometime it exceeds 16ms. And we could not predictable the time to filling each common data. In this situation we suggest to synchronize not only for 32ms but also need to synchronize with 1ms which is the rate for each common data refreshed. Following is an example. 456/06789745:707;4 < <&&' < -"<1)=<>&? &'>&!-)< # "-#$ - ).2*.476@6/ $&& &- & - "#-"<% &',-"< "&#-"<% &',-"<:7456/06789*.4 -"& $ &&- ).3 # # 'A"#$" $"% &' ! $"% &&' ' $"% &&&'( )* +,* '$&&' $& &- ).2 -"<% &',-"<4:7/0 4 'A"&#-"<% &',-"<:7456/0678 4 -'A"& "! "&&#'$& ' -"&& $ -4:7/0;/B*.4 ).2 +,* )$&&',* # -#-"<% &',-"<7;476@@676 "!#$&&' " # ! ! -" "#&',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&' &',&',&',&',&',&',&',&'