You might try something like this. The characters you show as an example could be simplified to fit into half the space, but this allows you to smooth the characters if you like. I did not smooth them, just kept to your example font, so hopefully you can see what I am trying to do. Each hex data point of the character is basically a binary image of the column. It starts at the base of the character, but since our character is going to take 4 character positions, our zero starts at half of the 16 pixels high. So the left column of the top of the zero is 11111100 (or $FC) all the 1's are black. As you can see, it takes a long time to make the characters. There may be a tool out there somewhere to make this easier for you. Hopefully you just need numbers!
The building of the characters are shown on the data sheet for the display on pages 8-9, and 22-23.
Code:
FA VAR BYTE[5] 'upper left of character
FB VAR BYTE[5] 'upper right of character
FC VAR BYTE[5] 'lower left of character
FD VAR BYTE[5] 'lower right of character
'-------------------------------------------------------------------------------
' This part demonstrates how to write to LCD
Lcd_SendChar:
lookdown Lcd_data,[" !\#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"],CharNum
Lcd_data = CharNum +32
SELECT CASE lcd_data
Case 48 ' a zero
FA(0)=$FC:FA(1)=$FC:FA(2)=$3:FA(3)=$3:FA(4)=$C3 ' // 0
FB(0)=$C3:FB(1)=$33:FB(2)=$33:FB(3)=$FC:FB(4)=$FC ' // 0
FC(0)=$0F:FC(1)=$0F:FC(2)=$33:FC(3)=$33:FC(4)=$30 ' // 0
FD(0)=$30:FD(1)=$30:FD(2)=$30:FD(3)=$0F:FD(4)=$0F ' // 0
Case 49 ' a one
end SELECT
Write_LCD:
High Lcd_DC
SHiftOUT Lcd_SDO , Lcd_CLK , MSBFIRST, [ FA(0),FA(1),FA(2),FA(3),FA(4)] 'upper left
'need to point to next position here
SHiftOUT Lcd_SDO , Lcd_CLK , MSBFIRST, [ FB(0),FB(1),FB(2),FB(3),FB(4),$00,$00] 'upper right
'need to add code to change location to lower left position for bottom of character here!
SHiftOUT Lcd_SDO , Lcd_CLK , MSBFIRST, [ FC(0),FC(1),FC(2),FC(3),FC(4)] 'lower left
'need to add code to change to next position
SHiftOUT Lcd_SDO , Lcd_CLK , MSBFIRST, [ FD(0),FD(1),FD(2),FD(3),FD(4),$00,$00] 'lower right
'need to add code to move back to upper level (and shift right) for beginning of next character
Low Lcd_DC
Return
Bookmarks