Friday, 21 June 2013

Digital Clock using 7-segments on mbed LPC11U24

/*digital clock*/
#include"mbed.h"
BusOut Seg1(p5,p6,p7,p8,p9,p10,p11,p12);//A,B,C,D,E,F,G,DP

int A,C,D,E,F,G;
char B;
int main(){
char SegConvert(char SegValue);
while(1){
A++;
C=A%4;
switch(C){
 case 0:set1=0,set0=1,set2=0,set3=0;
     B=SegConvert(D);
     break;
 case 1:set1=1,set0=0,set2=0,set3=0;
    B=SegConvert(E);
    break;
 case 2:set1=0,set0=0,set2=1,set3=0;
     B=SegConvert(F);
     break;
  case 3:set1=0,set0=0,set2=0,set3=1;
     B=SegConvert(G);
     break; }
     Seg1=B;
     wait(0.001);
   if(A==1000)
   { A=0;
     D++;
     if (D>9)
      {D=0;
        E++;}
      if (E>5)
        { E=0;
          F++;}      
        if (F>9)
          {F=0;
            G++;}
            if (G>5)
            G=0;      } }}

char SegConvert(char SegValue)
{char SegByte=0x00;
switch(SegValue){
case 0: SegByte=0x3F ;break;
case 1: SegByte=0x06 ;break;
case 2: SegByte=0x5B ;break;
case 3: SegByte=0x4F ;break;
case 4: SegByte=0x66 ;break;
case 5: SegByte=0x6D ;break;
case 6: SegByte=0x7D ;break;
case 7: SegByte=0x07 ;break;
case 8: SegByte=0x7F ;break;
case 9: SegByte=0x6F ;break;
}return SegByte;}

No comments:

Post a Comment