// By harsha
volatile unsigned char *opData = 0x31,*opCntrl = 0x108;
void setup() {
// put your setup code here, to run once:
volatile unsigned char *ddrData = 0x30,*ddrCntrl = 0x107;
*ddrData = 0xFF;
*ddrCntrl = 0xFF;
setUpDisplay();
writeString("Hello World");
}
void del(){
volatile int i=0;
for(i=0;i<100;i++);
}
void writeCntrl(unsigned char cmd){
*opCntrl = (0x00);// enable low, RS is low
*opData = cmd;
del();
*opCntrl = (*opCntrl | (0x02)); //enable is high
del();
*opCntrl = (0x00);// enable low, RS low
del();
}
void writeData(unsigned char data){
*opCntrl = (0x01);// enable low, RS is high
*opData = data;
del();
*opCntrl = (*opCntrl | (0x02)); //enable is high
del();
*opCntrl = (0x01); // enable low
del();
*opCntrl = (0x00);// enable low, RS low
del();
}
void setUpDisplay(){
writeCntrl(0x01); // clear display
writeCntrl(0x0F); // display on, cursor, cursor blink
writeCntrl(0x06); // move cursor right
}
void writeString(char* s){
for(int i=0;s[i];i++){
writeData(s[i]);
}
}
void loop() {
}