ETC LCD3

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
"!#$&&'
"
#
!
!
-"
"#&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'
&',&',&',&',&',&',&',&'