Plymouth ELEC351 Group T / Mbed 2 deprecated 2017_12_271329_LCDTrial

Dependencies:   mbed

main.cpp

Committer:
chills
Date:
2017-12-27
Revision:
0:87888ca85258
Child:
1:23bf1845cc2f

File content as of revision 0:87888ca85258:

#include "mbed.h"

DigitalOut myled(LED1);

DigitalOut RS(D9);
DigitalOut RW(D4);
DigitalOut E(D8);
BusInOut DB(A0, A1, A2, A3, D7, D6, D3, D1);        //LSB First

void clock_in();
void first_init_command();
void Function_Set();
void Display_Off();
void Display_Clear();
void Entry_Mode_Set();
void Display_On();
void DDRAM_Address(int Address);
void Write_Data(int Letter);

int main() {
    
    DB.output();
    first_init_command();
    wait(0.005);
    first_init_command();
    wait(0.005);
    first_init_command();
    wait(0.020);
    Function_Set();
    wait(0.020);
    Display_Off();
    wait(0.020);
    Display_Clear();
    wait(0.020);
    Entry_Mode_Set();
    wait(0.020);
    Display_On();
    wait(0.020);
    DDRAM_Address(0);
    wait(0.020);
    Write_Data(0x41);
    
}

void clock_in(){
    E = 1; wait(0.01); E = 0; wait(0.01); E = 1;
}
    
void first_init_command(){
    RS = 0; RW = 0; DB = 0x30; clock_in();
}

void Function_Set(){
    RS = 0; RW = 0; DB = 0x3C; clock_in();   
}

void Display_Off(){
    RS = 0; RW = 0; DB = 0x08; clock_in();    
}

void Display_Clear(){
    RS = 0; RW = 0; DB = 0x01; clock_in();   
}

void Entry_Mode_Set(){
    RS = 0; RW = 0; DB = 0x06; clock_in();   
}

void Display_On(){
    RS = 0; RW = 0; DB = 0x0E; clock_in();   
}

void DDRAM_Address(int Address){
    RS = 0; RW = 0; DB = 0x80 + Address; clock_in();    
}

void Write_Data(int Letter){
    RS = 1; RW = 0; DB = Letter; clock_in();   
}