#include <lpc214x.h>
#include <stdio.h>

char str[20];

void delay(unsigned int x)
{
unsigned int i, j;
for(i = 0; i < x; i++)
for(j = 0; j < 10; j++);
}

void cmd(unsigned char a)
{
IOCLR0 = 0x00100800;
IOCLR1 = 0x00FF0000;
IOSET1 = a << 16;
IOSET0 = 0x00000400;
delay(10);
IOCLR0 = 0x00000400;
delay(100);
}

void dat(unsigned char a)
{
IOSET0 = 0x00000800;
IOCLR0 = 0x00100000;
IOCLR1 = 0x00FF0000;
IOSET1 = a << 16;
IOSET0 = 0x00000400;
delay(10);
IOCLR0 = 0x00000400;
delay(100);
}

void show(char *p)
{
while(*p)
dat(*p++);
}

int main(void)
{
unsigned int i;
PLL0CON = 0x00;
PLL0FEED = 0xAA;
PLL0FEED = 0x55;
VPBDIV = 0x01;

PINSEL0 = 0x00000000;
PINSEL2 = 0x00000000;

IODIR0 = 0x00100C00;
IODIR1 = 0x00FF0000;

IOCLR0 = 0x00100C00;
IOCLR1 = 0x00FF0000;

delay(2000);
cmd(0x38);
cmd(0x0C);
cmd(0x06);
cmd(0x01);
delay(20000);

CCR = 0x02;
CCR = 0x00;

SEC = 0;
MIN = 9;
HOUR = 10;

PREINT = 365;
PREFRAC = 6912;

CCR = 0x01;

cmd(0x80);
show("Current Time");

while(1)
{
sprintf(str, "%02d:%02d:%02d", HOUR, MIN, SEC);
cmd(0xC4);
show(str);

for(i = 0; i < 1000; i++);
}
}
