SYMBOL eeprom_0 = %10100000 ; %1010 = EEPROM, 000 = Addr/page 0, and 0 = control bit
SYMBOL lcd_data = 1 ; serial pin for data to LCD display
Init:
Hi2csetup i2cmaster, eeprom_0, i2cfast, i2cword ; setup i2c comms to the EEPROM, with i2cword for 24LC256
;
; first 128 bytes at pages 0 & 1 are used for 48-key keypad codes
;
; next 384 bytes at pages 2 to 7 are still free
;
Main: ; write 5x7 font data for graphic LCD to pages 8 to 15 within EEPROM
Hi2cout 512, (0x00, 0x00, 0x00, 0x00, 0x00) ; Sp -new
Pause 20
Hi2cout 517, (0x00, 0x00, 0x2f, 0x00, 0x00) ; !
Pause 20
Hi2cout 522, (0x00, 0x07, 0x00, 0x07, 0x00) ; "
Pause 20
Hi2cout 527, (0x14, 0x7f, 0x14, 0x7f, 0x14) ; #
Pause 20
Hi2cout 532, (0x24, 0x2a, 0x7f, 0x2a, 0x12) ; $
Pause 20
Hi2cout 537, (0x23, 0x13, 0x08, 0x64, 0x62) ; % fixed (was back to front as o\° and 1 pixel too low)
Pause 20
Hi2cout 542, (0x36, 0x49, 0x55, 0x22, 0x50) ; &
Pause 20
Hi2cout 547, (0x00, 0x05, 0x03, 0x00, 0x00) ; ' (apostrophe)
Pause 20
Hi2cout 552, (0x00, 0x1c, 0x22, 0x41, 0x00) ; (
Pause 20
Hi2cout 557, (0x00, 0x41, 0x22, 0x1c, 0x00) ; )
Pause 20
Hi2cout 562, (0x14, 0x08, 0x3E, 0x08, 0x14) ; *
Pause 20
Hi2cout 567, (0x08, 0x08, 0x3E, 0x08, 0x08) ; +
Pause 20
Hi2cout 572, (0x00, 0x00, 0x00, 0x00) ; respect 64 byte paging borders
;----------------------------------------------------
Pause 20
Hi2cout 576, (0x00, 0x00, 0x50, 0x30, 0x00) ; ,
Pause 20
Hi2cout 581, (0x08, 0x08, 0x08, 0x08, 0x08) ; -
Pause 20
Hi2cout 586, (0x00, 0x60, 0x60, 0x00, 0x00) ; .
Pause 20
Hi2cout 591, (0x20, 0x10, 0x08, 0x04, 0x02) ; /
Pause 20
Hi2cout 596, (0x3E, 0x51, 0x49, 0x45, 0x3E) ; 0
Pause 20
Hi2cout 601, (0x00, 0x42, 0x7F, 0x40, 0x00) ; 1
Pause 20
Hi2cout 606, (0x42, 0x61, 0x51, 0x49, 0x46) ; 2
Pause 20
Hi2cout 611, (0x21, 0x41, 0x45, 0x4B, 0x31) ; 3
Pause 20
Hi2cout 616, (0x18, 0x14, 0x12, 0x7F, 0x10) ; 4
Pause 20
Hi2cout 621, (0x27, 0x45, 0x45, 0x45, 0x39) ; 5
Pause 20
Hi2cout 626, (0x3C, 0x4A, 0x49, 0x49, 0x30) ; 6
Pause 20
Hi2cout 631, (0x01, 0x71, 0x09, 0x05, 0x03) ; 7
Pause 20
Hi2cout 636, (0x00, 0x00, 0x00, 0x00) ; respect 64 byte paging borders
;----------------------------------------------------
Pause 20
Hi2cout 640, (0x36, 0x49, 0x49, 0x49, 0x36) ; 8
Pause 20
Hi2cout 645, (0x06, 0x49, 0x49, 0x29, 0x1E) ; 9
Pause 20
Hi2cout 650, (0x00, 0x36, 0x36, 0x00, 0x00) ; : -new
Pause 20
Hi2cout 655, (0x00, 0x56, 0x36, 0x00, 0x00) ; ; -new
Pause 20
Hi2cout 660, (0x08, 0x14, 0x22, 0x41, 0x00) ; < -new
Pause 20
Hi2cout 665, (0x14, 0x14, 0x14, 0x14, 0x14) ; = -new
Pause 20
Hi2cout 670, (0x41, 0x22, 0x14, 0x08, 0x00) ; > -new
Pause 20
Hi2cout 675, (0x02, 0x01, 0x51, 0x09, 0x06) ; ? -new
Pause 20
Hi2cout 680, (0x32, 0x49, 0x79, 0x41, 0x3E) ; @ -new
Pause 20
Hi2cout 685, (0x7E, 0x11, 0x11, 0x11, 0x7E) ; A
Pause 20
Hi2cout 690, (0x7F, 0x49, 0x49, 0x49, 0x36) ; B
Pause 20
Hi2cout 695, (0x3E, 0x41, 0x41, 0x41, 0x22) ; C
Pause 20
Hi2cout 700, (0x00, 0x00, 0x00, 0x00) ; respect 64 byte paging borders
;----------------------------------------------------
Pause 20
Hi2cout 704, (0x7F, 0x41, 0x41, 0x22, 0x1C) ; D
Pause 20
Hi2cout 709, (0x7F, 0x49, 0x49, 0x49, 0x41) ; E
Pause 20
Hi2cout 714, (0x7F, 0x09, 0x09, 0x09, 0x01) ; F
Pause 20
Hi2cout 719, (0x3E, 0x41, 0x49, 0x49, 0x7A) ; G
Pause 20
Hi2cout 724, (0x7F, 0x08, 0x08, 0x08, 0x7F) ; H
Pause 20
Hi2cout 729, (0x00, 0x41, 0x7F, 0x41, 0x00) ; I
Pause 20
Hi2cout 734, (0x20, 0x40, 0x41, 0x3F, 0x01) ; J
Pause 20
Hi2cout 739, (0x7F, 0x08, 0x14, 0x22, 0x41) ; K
Pause 20
Hi2cout 744, (0x7F, 0x40, 0x40, 0x40, 0x40) ; L
Pause 20
Hi2cout 749, (0x7F, 0x02, 0x0C, 0x02, 0x7F) ; M
Pause 20
Hi2cout 754, (0x7F, 0x04, 0x08, 0x10, 0x7F) ; N
Pause 20
Hi2cout 759, (0x3E, 0x41, 0x41, 0x41, 0x3E) ; O
Pause 20
Hi2cout 764, (0x00, 0x00, 0x00, 0x00) ; respect 64 byte paging borders
;----------------------------------------------------
Pause 20
Hi2cout 768, (0x7F, 0x09, 0x09, 0x09, 0x06) ; P
Pause 20
Hi2cout 773, (0x3E, 0x41, 0x51, 0x21, 0x5E) ; Q
Pause 20
Hi2cout 778, (0x7F, 0x09, 0x19, 0x29, 0x46) ; R
Pause 20
Hi2cout 783, (0x46, 0x49, 0x49, 0x49, 0x31) ; S
Pause 20
Hi2cout 788, (0x01, 0x01, 0x7F, 0x01, 0x01) ; T
Pause 20
Hi2cout 793, (0x3F, 0x40, 0x40, 0x40, 0x3F) ; U
Pause 20
Hi2cout 798, (0x1F, 0x20, 0x40, 0x20, 0x1F) ; V
Pause 20
Hi2cout 803, (0x3F, 0x40, 0x38, 0x40, 0x3F) ; W
Pause 20
Hi2cout 808, (0x63, 0x14, 0x08, 0x14, 0x63) ; X
Pause 20
Hi2cout 813, (0x07, 0x08, 0x70, 0x08, 0x07) ; Y
Pause 20
Hi2cout 818, (0x61, 0x51, 0x49, 0x45, 0x43) ; Z
Pause 20
Hi2cout 823, (0x00, 0x7F, 0x41, 0x41, 0x00) ; [ -new
Pause 20
Hi2cout 828, (0x00, 0x00, 0x00, 0x00) ; respect 64 byte paging borders
;----------------------------------------------------
Pause 20
Hi2cout 832, (0x02, 0x04, 0x08, 0x10, 0x20) ; \ -new
Pause 20
Hi2cout 837, (0x00, 0x41, 0x41, 0x7F, 0x00) ; ] -new
Pause 20
Hi2cout 842, (0x04, 0x02, 0x01, 0x02, 0x04) ; ^ -new
Pause 20
Hi2cout 847, (0x40, 0x40, 0x40, 0x40, 0x40) ; _ -new
Pause 20
Hi2cout 852, (0x00, 0x01, 0x02, 0x04, 0x00) ; ` -new (back tick)
Pause 20
Hi2cout 857, (0x20, 0x54, 0x54, 0x54, 0x78) ; a -new
Pause 20
Hi2cout 862, (0x7F, 0x48, 0x44, 0x44, 0x38) ; b -new
Pause 20
Hi2cout 867, (0x38, 0x44, 0x44, 0x44, 0x20) ; c -new
Pause 20
Hi2cout 872, (0x38, 0x44, 0x44, 0x48, 0x7F) ; d -new
Pause 20
Hi2cout 877, (0x38, 0x54, 0x54, 0x54, 0x18) ; e -new
Pause 20
Hi2cout 882, (0x08, 0x7E, 0x09, 0x01, 0x02) ; f -new
Pause 20
Hi2cout 887, (0x18, 0xA4, 0xA4, 0xA4, 0x7C) ; g -new (tail now below base line)
Pause 20
Hi2cout 892, (0x00, 0x00, 0x00, 0x00) ; respect 64 byte paging borders
;----------------------------------------------------
Pause 20
Hi2cout 896, (0x7F, 0x08, 0x04, 0x04, 0x78) ; h -new
Pause 20
Hi2cout 901, (0x00, 0x48, 0x7A, 0x40, 0x00) ; i -new (modified - shortened 1 pixel)
Pause 20
Hi2cout 906, (0x40, 0x80, 0x88, 0x7A, 0x00) ; j -new (tail now below base line)
Pause 20
Hi2cout 911, (0x7F, 0x10, 0x28, 0x44, 0x00) ; k -new
Pause 20
Hi2cout 916, (0x00, 0x41, 0x7F, 0x40, 0x00) ; l -new
Pause 20
Hi2cout 921, (0x7C, 0x04, 0x18, 0x04, 0x78) ; m -new
Pause 20
Hi2cout 926, (0x7C, 0x08, 0x04, 0x04, 0x78) ; n -new
Pause 20
Hi2cout 931, (0x38, 0x44, 0x44, 0x44, 0x38) ; o -new
Pause 20
Hi2cout 936, (0xFC, 0x24, 0x24, 0x24, 0x18) ; p -new (tail now below base line)
Pause 20
Hi2cout 941, (0x18, 0x24, 0x24, 0x28, 0xFC) ; q -new (tail now below base line)
Pause 20
Hi2cout 946, (0x7C, 0x08, 0x04, 0x04, 0x08) ; r -new
Pause 20
Hi2cout 951, (0x48, 0x54, 0x54, 0x54, 0x20) ; s -new
Pause 20
Hi2cout 956, (0x00, 0x00, 0x00, 0x00) ; respect 64 byte paging borders
;----------------------------------------------------
Pause 20
Hi2cout 960, (0x04, 0x3F, 0x44, 0x40, 0x20) ; t -new
Pause 20
Hi2cout 965, (0x3C, 0x40, 0x40, 0x20, 0x7C) ; u -new
Pause 20
Hi2cout 970, (0x1C, 0x20, 0x40, 0x20, 0x1C) ; v -new
Pause 20
Hi2cout 975, (0x3C, 0x40, 0x30, 0x40, 0x3C) ; w -new
Pause 20
Hi2cout 980, (0x44, 0x28, 0x10, 0x28, 0x44) ; x -new
Pause 20
Hi2cout 985, (0x1C, 0xA0, 0xA0, 0xA0, 0x7C) ; y - new (tail now below base line)
Pause 20
Hi2cout 990, (0x44, 0x64, 0x54, 0x4C, 0x44) ; z -new
Pause 20
Hi2cout 995, (0x00, 0x08, 0x36, 0x41, 0x00) ; { -new
Pause 20
Hi2cout 1000, (0x00, 0x00, 0x7F, 0x00, 0x00) ; | -new
Pause 20
Hi2cout 1005, (0x00, 0x41, 0x36, 0x08, 0x00) ; } -new
Pause 20
Hi2cout 1010, (0x08, 0x08, 0x2A, 0x1C, 0x08) ; --> -new
Pause 20
Hi2cout 1015, (0x08, 0x1C, 0x2A, 0x08, 0x08) ; <-- -new
Pause 20
Hi2cout 1020, (0x00, 0x00, 0x00, 0x00) ; respect 64 byte paging borders
;----------------------------------------------------
Pause 20
Serout lcd_data, N2400, ( "EEPROM Writing Done." )
Pause 1000
Serout lcd_data, N2400, ( "Now test the Keypad." )
Pause 20
Serout lcd_data, N2400, ( " " )
Pause 20
Serout lcd_data, N2400, ( "and 5x7 LCD Fonts. " )