Ich schick dem einfach das hier:
Procedure WriteLCD(Arg: Byte; IsData: Boolean);
Begin
If IsData=true
then
PortD:=PortD or %00001100; // Daten
else
PortD:=PortD and %11111011; // Befehl
EndIf;
SPIOutByteD(Arg); // Output arg
End WriteLCD;
Procedure GraphInit;
Begin
PortD:=%00000000; // /Reset
MDelay(100);
PortD:=%00001000; // Reset
MDelay(350);
WriteLCD($AE,false); // display off
WriteLCD($20,false); // set memory
addressing mode
WriteLCD($02,false); // page addressing
mode
WriteLCD($22,false); // set page address
WriteLCD($00,false); // start
WriteLCD($7D,false); // end
WriteLCD($00,false); // set lower column
address
WriteLCD($10,false); // set higher column
address
WriteLCD($B0,false); // set page address
WriteLCD($81,false); // contrast control
WriteLCD($80,false); // 0-255
WriteLCD($A1,false); // set segment remap
WriteLCD($A6,false); // normal/reverse
WriteLCD($A8,false); // multiplex ratio
WriteLCD($1F,false); // duty=1/32
WriteLCD($C8,false); // com scan direction
WriteLCD($D3,false); // display offset
WriteLCD($00,false); //
WriteLCD($D5,false); // set osc division
WriteLCD($80,false); //
WriteLCD($D9,false); // set pre-charge
period
WriteLCD($1F,false); //
WriteLCD($DA,false); // set COM pins
WriteLCD($00,false); //
WriteLCD($DB,false); // set vcomh
WriteLCD($40,false); //
WriteLCD($8D,false); // set charge pump
enable
WriteLCD($14,false); // $10=disable
WriteLCD($AF,false); // display on
MDelay(500);
End GraphInit;