4n1-3

Dependencies:   mbed

Committer:
DrMirko
Date:
Mon Oct 24 12:47:19 2016 +0000
Revision:
0:e8b06b86936d
4n1-3

Who changed what in which revision?

UserRevisionLine numberNew contents of line
DrMirko 0:e8b06b86936d 1 #include "LCD.h"
DrMirko 0:e8b06b86936d 2
DrMirko 0:e8b06b86936d 3 DigitalOut RS(D12);
DrMirko 0:e8b06b86936d 4 DigitalOut E(D11);
DrMirko 0:e8b06b86936d 5
DrMirko 0:e8b06b86936d 6 BusOut data(D5, D4, D3, D2);
DrMirko 0:e8b06b86936d 7
DrMirko 0:e8b06b86936d 8 void toggle_enable(void)
DrMirko 0:e8b06b86936d 9 {
DrMirko 0:e8b06b86936d 10 E=1;
DrMirko 0:e8b06b86936d 11 wait(0.001);
DrMirko 0:e8b06b86936d 12 E=0;
DrMirko 0:e8b06b86936d 13 wait(0.001);
DrMirko 0:e8b06b86936d 14 }
DrMirko 0:e8b06b86936d 15 //initialize LCD function
DrMirko 0:e8b06b86936d 16 void LCD_init(void)
DrMirko 0:e8b06b86936d 17 {
DrMirko 0:e8b06b86936d 18 wait(0.02); // pause for 20 ms
DrMirko 0:e8b06b86936d 19 RS=0; // set low to write control data
DrMirko 0:e8b06b86936d 20 E=0; // set low
DrMirko 0:e8b06b86936d 21 //function mode
DrMirko 0:e8b06b86936d 22 data=0x2; // 4 bit mode (data packet 1, DB4-DB7)
DrMirko 0:e8b06b86936d 23 toggle_enable();
DrMirko 0:e8b06b86936d 24 data=0x8; // 2-line, 7 dot char (data packet 2, DB0-DB3)
DrMirko 0:e8b06b86936d 25 toggle_enable();
DrMirko 0:e8b06b86936d 26 //display mode
DrMirko 0:e8b06b86936d 27 data=0x0; // 4 bit mode (data packet 1, DB4-DB7)
DrMirko 0:e8b06b86936d 28 toggle_enable();
DrMirko 0:e8b06b86936d 29 data=0xF; // display on, cursor on, blink on
DrMirko 0:e8b06b86936d 30 toggle_enable();
DrMirko 0:e8b06b86936d 31 //clear display
DrMirko 0:e8b06b86936d 32 data=0x0; //
DrMirko 0:e8b06b86936d 33 toggle_enable();
DrMirko 0:e8b06b86936d 34 data=0x1; // clear
DrMirko 0:e8b06b86936d 35 toggle_enable();
DrMirko 0:e8b06b86936d 36 }
DrMirko 0:e8b06b86936d 37 //display function
DrMirko 0:e8b06b86936d 38 void display_to_LCD(char value)
DrMirko 0:e8b06b86936d 39 {
DrMirko 0:e8b06b86936d 40 RS=1; // set high to write character data
DrMirko 0:e8b06b86936d 41 data=value>>4; // value shifted right 4 = upper nibble
DrMirko 0:e8b06b86936d 42 toggle_enable();
DrMirko 0:e8b06b86936d 43 data=value; // value bitmask with 0x0F = lower nibble
DrMirko 0:e8b06b86936d 44 toggle_enable();
DrMirko 0:e8b06b86936d 45 }
DrMirko 0:e8b06b86936d 46 //locate function
DrMirko 0:e8b06b86936d 47 void set_location(char location)
DrMirko 0:e8b06b86936d 48 {
DrMirko 0:e8b06b86936d 49 RS=0;
DrMirko 0:e8b06b86936d 50 data=(location|0x80)>>4; // upper nibble
DrMirko 0:e8b06b86936d 51 toggle_enable();
DrMirko 0:e8b06b86936d 52 data=location&0x0F; // lower nibble
DrMirko 0:e8b06b86936d 53 toggle_enable();
DrMirko 0:e8b06b86936d 54 }