This is a test program for TEXT LCD (HD44780) , 40 char x 2 lines.

Dependencies:   mbed

Committer:
kenjiArai
Date:
Sat Mar 27 07:05:32 2010 +0000
Revision:
0:171b4ca846a6

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:171b4ca846a6 1 //
kenjiArai 0:171b4ca846a6 2 // Text LCD Control Program
kenjiArai 0:171b4ca846a6 3 // Kenji Arai / JH1PJL
kenjiArai 0:171b4ca846a6 4 // March 7th,2010 Started
kenjiArai 0:171b4ca846a6 5 // March 27th,2010
kenjiArai 0:171b4ca846a6 6 //
kenjiArai 0:171b4ca846a6 7
kenjiArai 0:171b4ca846a6 8 #include "mbed.h"
kenjiArai 0:171b4ca846a6 9 #include "TextLCD.h"
kenjiArai 0:171b4ca846a6 10
kenjiArai 0:171b4ca846a6 11 #define LINE_40_2
kenjiArai 0:171b4ca846a6 12
kenjiArai 0:171b4ca846a6 13 #define BLINK_PERIOD 1.8 // LED on period (Initial data)
kenjiArai 0:171b4ca846a6 14 #define END_PERIOD 0.0001 // Finish period
kenjiArai 0:171b4ca846a6 15
kenjiArai 0:171b4ca846a6 16 DigitalOut myled1(LED1); // Assign LED output port LED1 to LED4
kenjiArai 0:171b4ca846a6 17 DigitalOut myled2(LED2);
kenjiArai 0:171b4ca846a6 18 DigitalOut myled3(LED3);
kenjiArai 0:171b4ca846a6 19 DigitalOut myled4(LED4);
kenjiArai 0:171b4ca846a6 20
kenjiArai 0:171b4ca846a6 21 #ifdef LINE_40_2
kenjiArai 0:171b4ca846a6 22 TextLCD lcd(p22, p28, p27, p26, p25, p24, p23, 40, 2); // rs,rw,e,d0,d1,d2,d3,40char's x 2 lines
kenjiArai 0:171b4ca846a6 23 #else
kenjiArai 0:171b4ca846a6 24 TextLCD lcd(p22, p28, p27, p26, p25, p24, p23, 16, 2); // rs,rw,e,d0,d1,d2,d3,16char's x 2 lines
kenjiArai 0:171b4ca846a6 25 #endif
kenjiArai 0:171b4ca846a6 26
kenjiArai 0:171b4ca846a6 27 int main() {
kenjiArai 0:171b4ca846a6 28 float tim;
kenjiArai 0:171b4ca846a6 29 long count;
kenjiArai 0:171b4ca846a6 30 char buf[40];
kenjiArai 0:171b4ca846a6 31
kenjiArai 0:171b4ca846a6 32 tim = BLINK_PERIOD;
kenjiArai 0:171b4ca846a6 33 count = 0;
kenjiArai 0:171b4ca846a6 34 lcd.cls();
kenjiArai 0:171b4ca846a6 35 lcd.locate(0, 0);
kenjiArai 0:171b4ca846a6 36 #ifdef LINE_40_2
kenjiArai 0:171b4ca846a6 37 // 0 1 2 3 40
kenjiArai 0:171b4ca846a6 38 lcd.printf("1234567890123456789012345678901234567890");
kenjiArai 0:171b4ca846a6 39 lcd.locate(0, 1);
kenjiArai 0:171b4ca846a6 40 lcd.printf("0987654321098765432109876543210987654321");
kenjiArai 0:171b4ca846a6 41 #else
kenjiArai 0:171b4ca846a6 42 // 0 1
kenjiArai 0:171b4ca846a6 43 lcd.printf("1234567890123456");
kenjiArai 0:171b4ca846a6 44 lcd.locate(0, 1);
kenjiArai 0:171b4ca846a6 45 lcd.printf("6543210987654321");
kenjiArai 0:171b4ca846a6 46 #endif
kenjiArai 0:171b4ca846a6 47 // If you have implemented the "Windows USB Serial Port Driver", you can use follows.
kenjiArai 0:171b4ca846a6 48 // http://mbed.org/projects/handbook/wiki/WindowsSerialConfiguration
kenjiArai 0:171b4ca846a6 49 printf("\r\n Start LCD Test Program\r\n");
kenjiArai 0:171b4ca846a6 50 while (1) {
kenjiArai 0:171b4ca846a6 51 for (tim =BLINK_PERIOD; tim >= END_PERIOD; tim /= 3) {
kenjiArai 0:171b4ca846a6 52 myled1 = 1;
kenjiArai 0:171b4ca846a6 53 wait(tim);
kenjiArai 0:171b4ca846a6 54 myled1 = 0;
kenjiArai 0:171b4ca846a6 55 myled2 = 1;
kenjiArai 0:171b4ca846a6 56 wait(tim);
kenjiArai 0:171b4ca846a6 57 myled2 = 0;
kenjiArai 0:171b4ca846a6 58 myled3 = 1;
kenjiArai 0:171b4ca846a6 59 wait(tim);
kenjiArai 0:171b4ca846a6 60 myled3 = 0;
kenjiArai 0:171b4ca846a6 61 myled4 = 1;
kenjiArai 0:171b4ca846a6 62 wait(tim);
kenjiArai 0:171b4ca846a6 63 myled4 = 0;
kenjiArai 0:171b4ca846a6 64 }
kenjiArai 0:171b4ca846a6 65 lcd.cls();
kenjiArai 0:171b4ca846a6 66 lcd.locate(0, 0); // 1st line top
kenjiArai 0:171b4ca846a6 67 #ifdef LINE_40_2
kenjiArai 0:171b4ca846a6 68 // 1 2 3 4
kenjiArai 0:171b4ca846a6 69 // 1234567890123456789012345678901234567890
kenjiArai 0:171b4ca846a6 70 lcd.printf("This is a test program for checking LCD ");
kenjiArai 0:171b4ca846a6 71 lcd.locate(0, 1); // 2nd line top
kenjiArai 0:171b4ca846a6 72 sprintf(buf," Current loop count number = %d ", count);
kenjiArai 0:171b4ca846a6 73 #else
kenjiArai 0:171b4ca846a6 74 // 1234567890123456
kenjiArai 0:171b4ca846a6 75 lcd.printf("LCD test program");
kenjiArai 0:171b4ca846a6 76 lcd.locate(0, 1); // 2nd line top
kenjiArai 0:171b4ca846a6 77 sprintf(buf,"loop # = %d", count);
kenjiArai 0:171b4ca846a6 78 #endif
kenjiArai 0:171b4ca846a6 79 lcd.printf(buf);
kenjiArai 0:171b4ca846a6 80 printf(" Current loop count number = %d \r\n", count);
kenjiArai 0:171b4ca846a6 81 count++;
kenjiArai 0:171b4ca846a6 82 }
kenjiArai 0:171b4ca846a6 83 }