Simple demo of using lcd1602 with keypad and ds1307 with freescale kl25z board.

Dependencies:   RTC-DS1307 TextLCD mbed

Committer:
batrado
Date:
Wed Oct 29 08:09:30 2014 +0000
Revision:
0:a5222dea5eac
Simple demo of using lcd1602 and ds1307 in freescale kl25z board.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
batrado 0:a5222dea5eac 1 // Display RealDateTime on LCD1602 KeyPad
batrado 0:a5222dea5eac 2 #include "mbed.h"
batrado 0:a5222dea5eac 3 #include "TextLCD.h" // LCD1602
batrado 0:a5222dea5eac 4 #include "Rtc_Ds1307.h" // RTC
batrado 0:a5222dea5eac 5
batrado 0:a5222dea5eac 6 Rtc_Ds1307 rtc(PTE0, PTE1);
batrado 0:a5222dea5eac 7 TextLCD lcd(PTA13, PTD5, PTA4, PTA5, PTC8, PTC9);
batrado 0:a5222dea5eac 8 DigitalOut blueLED(LED_BLUE);
batrado 0:a5222dea5eac 9 AnalogIn keys(PTB0);
batrado 0:a5222dea5eac 10
batrado 0:a5222dea5eac 11 // diplay text on LCD
batrado 0:a5222dea5eac 12 void textLCD(char *text, int line) {
batrado 0:a5222dea5eac 13 char tmpBuf[16];
batrado 0:a5222dea5eac 14 for (int i = 0; i < 16; i++) tmpBuf[i] = 0x20;
batrado 0:a5222dea5eac 15 for (int i = 0; i < strlen(text); i++) {
batrado 0:a5222dea5eac 16 if (i <= 16) tmpBuf[i] = text[i];
batrado 0:a5222dea5eac 17 }
batrado 0:a5222dea5eac 18
batrado 0:a5222dea5eac 19 lcd.locate(0, line);
batrado 0:a5222dea5eac 20 lcd.printf(tmpBuf);
batrado 0:a5222dea5eac 21 }
batrado 0:a5222dea5eac 22
batrado 0:a5222dea5eac 23 int main(){
batrado 0:a5222dea5eac 24 char tmpString[16];
batrado 0:a5222dea5eac 25 int tmpSec = 0;
batrado 0:a5222dea5eac 26 char bootSymbols[17];
batrado 0:a5222dea5eac 27 char booting = 0x00;
batrado 0:a5222dea5eac 28 char countDown = 0;
batrado 0:a5222dea5eac 29 lcd.cls();
batrado 0:a5222dea5eac 30 Rtc_Ds1307::Time_rtc tm = {};
batrado 0:a5222dea5eac 31 int iKey = 0;
batrado 0:a5222dea5eac 32 int oldiKey = 0;
batrado 0:a5222dea5eac 33
batrado 0:a5222dea5eac 34 for (int i = 0; i <= 16; i++) bootSymbols[i] = 0x00;
batrado 0:a5222dea5eac 35 textLCD("RTC_LCD Example", 0);
batrado 0:a5222dea5eac 36
batrado 0:a5222dea5eac 37 while(true){
batrado 0:a5222dea5eac 38 if (countDown >= 17){
batrado 0:a5222dea5eac 39 booting = 0x01;
batrado 0:a5222dea5eac 40 }
batrado 0:a5222dea5eac 41 if (booting == 0x00){
batrado 0:a5222dea5eac 42 for (int i = 0; i < countDown; i++){
batrado 0:a5222dea5eac 43 bootSymbols[i] = 0xff;
batrado 0:a5222dea5eac 44 }
batrado 0:a5222dea5eac 45 sprintf(tmpString, "%s", bootSymbols);
batrado 0:a5222dea5eac 46 textLCD(tmpString, 1);
batrado 0:a5222dea5eac 47 countDown++;
batrado 0:a5222dea5eac 48 wait(0.1);
batrado 0:a5222dea5eac 49 } else {
batrado 0:a5222dea5eac 50 if(rtc.getTime(tm)){
batrado 0:a5222dea5eac 51 sprintf(tmpString, "%02d:%02d:%02d %d/%d/%d", tm.hour, tm.min, tm.sec, tm.date, tm.mon, (tm.year % 100));
batrado 0:a5222dea5eac 52 textLCD(tmpString, 0);
batrado 0:a5222dea5eac 53
batrado 0:a5222dea5eac 54 iKey = keys.read_u16();
batrado 0:a5222dea5eac 55 if (iKey != oldiKey) {
batrado 0:a5222dea5eac 56
batrado 0:a5222dea5eac 57 oldiKey = iKey;
batrado 0:a5222dea5eac 58
batrado 0:a5222dea5eac 59 if ((iKey > 0) &&(iKey < 1000)) {
batrado 0:a5222dea5eac 60 sprintf(tmpString, "Key %c LEFT %4x", char(0x7e), iKey);
batrado 0:a5222dea5eac 61 } else if ((iKey > 1000) && (iKey < 15000)) {
batrado 0:a5222dea5eac 62 sprintf(tmpString, "Key %c UP %4x", char(0x7e), iKey);
batrado 0:a5222dea5eac 63 } else if ((iKey > 15000) && (iKey < 40000)) {
batrado 0:a5222dea5eac 64 sprintf(tmpString, "Key %c DOWN %4x", char(0x7e), iKey);
batrado 0:a5222dea5eac 65 } else if ((iKey > 40000) && (iKey < 60000)) {
batrado 0:a5222dea5eac 66 sprintf(tmpString, "Key %c RIGHT %4x", char(0x7e), iKey);
batrado 0:a5222dea5eac 67 } else {
batrado 0:a5222dea5eac 68 sprintf(tmpString, "Key %c NONE %4x", char(0x7e), iKey);
batrado 0:a5222dea5eac 69 }
batrado 0:a5222dea5eac 70
batrado 0:a5222dea5eac 71
batrado 0:a5222dea5eac 72 textLCD(tmpString, 1);
batrado 0:a5222dea5eac 73 }
batrado 0:a5222dea5eac 74 blueLED = (tmpSec != tm.sec) ? 0 : 1;
batrado 0:a5222dea5eac 75 tmpSec = tm.sec;
batrado 0:a5222dea5eac 76 }
batrado 0:a5222dea5eac 77 }
batrado 0:a5222dea5eac 78
batrado 0:a5222dea5eac 79 }
batrado 0:a5222dea5eac 80 }