PDA

View Full Version : St7920



Electrosolve
- 15th June 2009, 12:21
Hello

I'm trying to use the LM3037 LCD display which has a ST7920 controller. This seems to be much the same as the HD44780.

I can display the normal ascii character set using LCDOUT but I need to display the inbuilt Chinese GB character code set.

Can anyone point me in the right direction?

Thanks

Melanie
- 15th June 2009, 12:35
Displayable ASCII Characters go up to something like Decimal 126. The values between 127-255 will display all kinds of interesting things... You'll have to write a little program something along the lines of...



CounterA=0
LCDOut $FE,1
Loop:
If ButtonUp=0 then CounterA=CounterA+1
If ButtonDown=0 then CounterA=CounterA-1
LCDOut $FE,$80,"ASC="#CounterA," CHR=",CounterA," "
Pause 100
Goto Loop


... just to cycle through and you can then scribble yourself a note as to what's what...

I tend to go through an excercise like this to find out things like Pound (Sterling) or Euro signs, the symbol for Degrees (ie Degrees Celcius) etc... because their table position varies from one manufacturer to the next.

Electrosolve
- 15th June 2009, 12:55
Thanks but I can already display the ascii characters.

This particular controller has a simplified chinese character set that can be accessed between A1A0h and F7FFh.

Data sheet here - http://www.topwaydisplay.com/Pub/IC_DataSheet/ST7920V31(eng).pdf

Thanks again

Electrosolve
- 15th June 2009, 13:15
Problem solved

lcdout $FE, $80, $B0, $C0

Displays the character B0C0h on the first character position on the display.

I forgot the $80 the first time so you actually helped anyway Melanie.

Thanks again

CuriousOne
- 21st June 2021, 10:43
Anyone went further with this display and PBP?
Like loading own font and so on?

CuriousOne
- 5th August 2021, 05:32
As found out by brute data sending, if you want to display large size English letters, you should use

LCDOUT $FE, $80, 163, 128+ASCII character code.



LCDOut $FE,$80,163,128+72,163,128+101,163,128+108,163,128 +108,163,128+111,163,128+33 'Will display Hello! with large letters

Just these letters are as ugly, as most common Latin letters in Chinese fonts :) Also they're monospaced and use whole 16x16 area.
Here's an example.

9063

CuriousOne
- 6th August 2021, 22:16
After some more visual brute forcing, there are some offsets for more chars (all are 16x16 pixels):

161-33, 161-127 math symbols, greek symbols, signs, currencies, numbers, geometric shapes
162-48, 162-99 double digits 01-20, digits in parenthesis 0-20, digits in circles 0-10
162-113,162-123 roman numerals I-XII
163-33,163-127 big Latin letters, numbers, ANSI set
166-33,166-88 - Greek alphabet
167-33,167-65 Cyrillic capitals
167-80,167-144 Cyrillic small letters
168-33,168-64 - EU Diactrics
169-36,169-112 - Pseudographics

There were also a large number of Chinese, Japanese and Thai symbols spread around, but due to my lack of knowledge of these languages, they were not recorded....

Ioannis
- 13th August 2021, 21:52
Since it has these ugly fonts, why are you using it?

Ioannis

CuriousOne
- 14th August 2021, 07:09
It has normal fonts too :D
The main reason is, while being sized as 1602 display, it has much higher pixel density (144x32) vs 80x16 on 1602, so you can have smoother look, or in graphic mode, using same font as on 1602, you can display 24 chars @ 4 lines, compared to 16 chars @ 2 lines.

If you're interested, why it has ugly fonts, you can read this (this is in Russian, but can be translated - no technical terms there)

https://www.artlebedev.ru/kovodstvo/sections/183/

Ioannis
- 14th August 2021, 15:07
Oh, I see. Thanks for the info.

Ioannis