4n1-3
Dependencies: mbed
main.cpp@0:e8b06b86936d, 2016-10-24 (annotated)
- Committer:
- DrMirko
- Date:
- Mon Oct 24 12:47:19 2016 +0000
- Revision:
- 0:e8b06b86936d
4n1-3
Who changed what in which revision?
User | Revision | Line number | New 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 | } |