Esta versión v6 pasa a ser el nuevo master. Funciona correctamente

Dependencies:   ADXL345 Display1602 MSCFileSystem SDFileSystem mbed FATFileSystem

Committer:
JuanManuelAmador
Date:
Fri Jun 06 08:52:28 2014 +0000
Revision:
2:cc4a43d806e2
Parent:
0:a5367bd4e404
Correci?n del baudrate de 112500 a 115200

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jjmedina 0:a5367bd4e404 1
jjmedina 0:a5367bd4e404 2 #ifndef __DISPLAY1602_H__
jjmedina 0:a5367bd4e404 3 #define __DISPLAY1602_H__
jjmedina 0:a5367bd4e404 4
jjmedina 0:a5367bd4e404 5 #include "mbed.h"
jjmedina 0:a5367bd4e404 6 #include <stdarg.h>
jjmedina 0:a5367bd4e404 7
jjmedina 0:a5367bd4e404 8 /*
jjmedina 0:a5367bd4e404 9 INITIALIZING BY INSTRUCTION
jjmedina 0:a5367bd4e404 10 1) 8-bit interface mode (Condition: fosc = 270KHZ)
jjmedina 0:a5367bd4e404 11
jjmedina 0:a5367bd4e404 12 Codes
jjmedina 0:a5367bd4e404 13 N = 0 1-line mode , 1 2-line mode
jjmedina 0:a5367bd4e404 14 D = 0 display off, 1 display on
jjmedina 0:a5367bd4e404 15 C = 0 cursor off, 1 cursor on
jjmedina 0:a5367bd4e404 16 B = 0 blink off, 1 blink on
jjmedina 0:a5367bd4e404 17 I/D = 0 decrement mode, 1 increment mode
jjmedina 0:a5367bd4e404 18 SH = 0 entire shift off, 1 entire shift on
jjmedina 0:a5367bd4e404 19
jjmedina 0:a5367bd4e404 20
jjmedina 0:a5367bd4e404 21 *** Power on
jjmedina 0:a5367bd4e404 22 Wait for more than 30 ms after VDD rises to 4.5 v
jjmedina 0:a5367bd4e404 23
jjmedina 0:a5367bd4e404 24 *** Function set
jjmedina 0:a5367bd4e404 25 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
jjmedina 0:a5367bd4e404 26 0 0 0 0 1 1 N D X X
jjmedina 0:a5367bd4e404 27 Wait for more than 39 &#956;s
jjmedina 0:a5367bd4e404 28
jjmedina 0:a5367bd4e404 29 *** Display ON/OFF Control
jjmedina 0:a5367bd4e404 30 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
jjmedina 0:a5367bd4e404 31 0 0 0 0 0 0 1 D C B
jjmedina 0:a5367bd4e404 32 Wait for more than 39 &#956;s
jjmedina 0:a5367bd4e404 33
jjmedina 0:a5367bd4e404 34
jjmedina 0:a5367bd4e404 35 *** Display Clear
jjmedina 0:a5367bd4e404 36 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
jjmedina 0:a5367bd4e404 37 0 0 0 0 0 0 0 0 0 1
jjmedina 0:a5367bd4e404 38 Wait for more than 1.53 ms
jjmedina 0:a5367bd4e404 39
jjmedina 0:a5367bd4e404 40 *** Entry Mode Set
jjmedina 0:a5367bd4e404 41 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
jjmedina 0:a5367bd4e404 42 0 0 0 0 0 0 0 1 I/D SH
jjmedina 0:a5367bd4e404 43
jjmedina 0:a5367bd4e404 44 *** Initialization end ***
jjmedina 0:a5367bd4e404 45
jjmedina 0:a5367bd4e404 46
jjmedina 0:a5367bd4e404 47 */
jjmedina 0:a5367bd4e404 48
jjmedina 0:a5367bd4e404 49 /** Basic bit of code for using a standard 1602 display in 8 bit mode.
jjmedina 0:a5367bd4e404 50 * Written by Richard e Collins.
jjmedina 0:a5367bd4e404 51 * Basic bit of code for using a standard 1602 display in 8 bit mode.
jjmedina 0:a5367bd4e404 52 * When wiring one of these displays up make sure the power to the LCD on pin 3 is correct, too high and it will not display anything. About 0.2v is good, I use a POT to set it.
jjmedina 0:a5367bd4e404 53 *
jjmedina 0:a5367bd4e404 54 * Example use.
jjmedina 0:a5367bd4e404 55 * Display1602 display(p10,p11,p12,p13,p14,p15,p16,p17,p18,p19,p20);
jjmedina 0:a5367bd4e404 56 * display.SetXY(0,0);
jjmedina 0:a5367bd4e404 57 * display.Print("Hello world");
jjmedina 0:a5367bd4e404 58 */
jjmedina 0:a5367bd4e404 59 struct Display1602
jjmedina 0:a5367bd4e404 60 {
jjmedina 0:a5367bd4e404 61 /**
jjmedina 0:a5367bd4e404 62 * Constructor, here you state the oins used to read and write data on and the control pins.
jjmedina 0:a5367bd4e404 63 * @param registerSelect This is the pin used to select if you are sending data or setting a control register.
jjmedina 0:a5367bd4e404 64 * @param readWriteSelect The pin to state if you are reading or writing data / register.
jjmedina 0:a5367bd4e404 65 * @param d0 -> d7. The eight pins for the data to be either written to the display or a register.
jjmedina 0:a5367bd4e404 66 */
jjmedina 0:a5367bd4e404 67 Display1602(PinName registerSelect,PinName readWriteSelect,PinName readWriteEnable,PinName d0,PinName d1,PinName d2,PinName d3,PinName d4,PinName d5,PinName d6,PinName d7) ;
jjmedina 0:a5367bd4e404 68
jjmedina 0:a5367bd4e404 69 /**
jjmedina 0:a5367bd4e404 70 * Clears the display.
jjmedina 0:a5367bd4e404 71 */
jjmedina 0:a5367bd4e404 72 void Clear();
jjmedina 0:a5367bd4e404 73
jjmedina 0:a5367bd4e404 74 /**
jjmedina 0:a5367bd4e404 75 * Prints the text to the display, will limit the chars read by 16 chars or hitting a null terminator, which ever comes first.
jjmedina 0:a5367bd4e404 76 * Advances the cursor pos.
jjmedina 0:a5367bd4e404 77 */
jjmedina 0:a5367bd4e404 78 void Print(const char *text);
jjmedina 0:a5367bd4e404 79
jjmedina 0:a5367bd4e404 80 /**
jjmedina 0:a5367bd4e404 81 * handy printf funtion for displaying text.
jjmedina 0:a5367bd4e404 82 * Advances the cursor pos.
jjmedina 0:a5367bd4e404 83 */
jjmedina 0:a5367bd4e404 84 void printf(const char *format,...);
jjmedina 0:a5367bd4e404 85
jjmedina 0:a5367bd4e404 86 /**
jjmedina 0:a5367bd4e404 87 *Sets the cusor X Y pos.
jjmedina 0:a5367bd4e404 88 */
jjmedina 0:a5367bd4e404 89 void SetXY(int x,int y);
jjmedina 0:a5367bd4e404 90
jjmedina 0:a5367bd4e404 91 private:
jjmedina 0:a5367bd4e404 92 DigitalOut rs; //Register select, high value in data is data char data, when low is a command.
jjmedina 0:a5367bd4e404 93 DigitalOut rw; //Data direction, high read operation, low is write operation.
jjmedina 0:a5367bd4e404 94 DigitalOut e; //When high the value in data is read from or written to the register selected.
jjmedina 0:a5367bd4e404 95 BusOut data; //The data sent.
jjmedina 0:a5367bd4e404 96
jjmedina 0:a5367bd4e404 97 void SendCommand(int cmd);
jjmedina 0:a5367bd4e404 98
jjmedina 0:a5367bd4e404 99 void SendChar(char c);
jjmedina 0:a5367bd4e404 100 };
jjmedina 0:a5367bd4e404 101
jjmedina 0:a5367bd4e404 102 #endif //#ifndef __DISPLAY1602_H__