Network clock using 7 segment. add SHT11

Dependencies:   SHTx SNTPClient WIZnetInterface mbed

Committer:
nanjsk
Date:
Tue Apr 05 11:50:51 2016 +0000
Revision:
0:179f2315915f
first

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nanjsk 0:179f2315915f 1 #include "mbed.h"
nanjsk 0:179f2315915f 2 #include "segment.h"
nanjsk 0:179f2315915f 3 Serial pc1(USBTX,USBRX);
nanjsk 0:179f2315915f 4
nanjsk 0:179f2315915f 5 BusOut Seg_num(P5,P6,P7,P8,P9,P10,P11,P12);
nanjsk 0:179f2315915f 6 BusOut Seg_Sel(P20,P19,P18,P17,P16,P15,P14,P13);
nanjsk 0:179f2315915f 7
nanjsk 0:179f2315915f 8
nanjsk 0:179f2315915f 9 uint8_t SEGMENTS[37] = {
nanjsk 0:179f2315915f 10 //*********************************************************
nanjsk 0:179f2315915f 11 // 7segment pattern,
nanjsk 0:179f2315915f 12 //*********************************************************
nanjsk 0:179f2315915f 13 // seg: g f e d c b a
nanjsk 0:179f2315915f 14 // bit: 6 5 4 3 2 1 0
nanjsk 0:179f2315915f 15 // --------------------
nanjsk 0:179f2315915f 16 0xC0, // 0 1 0 0 0 0 0 0
nanjsk 0:179f2315915f 17 0xF9, // 1 ./ 1 1 1 1 0 0 1
nanjsk 0:179f2315915f 18 0xA4, // 2 0 1 0 0 1 0 0
nanjsk 0:179f2315915f 19 0xB0, // 3 0 1 1 0 0 0 0
nanjsk 0:179f2315915f 20 0x99, // 4 0 0 1 1 0 0 1
nanjsk 0:179f2315915f 21 0x92, // 5 0 0 1 0 0 1 0
nanjsk 0:179f2315915f 22 0x82, // 6 0 0 0 0 0 1 0
nanjsk 0:179f2315915f 23 0xD8, // 7 1 0 1 1 0 0 0
nanjsk 0:179f2315915f 24 0x80, // 8 0 0 0 0 0 0 0
nanjsk 0:179f2315915f 25 0x90, // 9 0 0 1 0 0 0 0
nanjsk 0:179f2315915f 26 0x88, // A 0 0 0 1 0 0 0
nanjsk 0:179f2315915f 27 0x83, // B 0 0 0 0 0 1 1
nanjsk 0:179f2315915f 28 0xC6, // C 1 0 0 0 1 1 0
nanjsk 0:179f2315915f 29 0xA1, // D 0 1 0 0 0 0 1
nanjsk 0:179f2315915f 30 0x86, // E 0 0 0 0 1 1 0
nanjsk 0:179f2315915f 31 0x8E, // F 0 0 0 1 1 1 0
nanjsk 0:179f2315915f 32 0xC2, // G 1 0 0 0 0 1 0
nanjsk 0:179f2315915f 33 0x89, // H 0 0 0 1 0 1 1
nanjsk 0:179f2315915f 34 0xCF, // I 1 0 0 1 1 1 1
nanjsk 0:179f2315915f 35 0xE1, // J 1 1 0 0 0 0 1
nanjsk 0:179f2315915f 36 0x8A, // K 0 0 0 1 0 1 0
nanjsk 0:179f2315915f 37 0xC7, // L 1 0 0 0 1 1 1
nanjsk 0:179f2315915f 38 0xEA, // M 1 1 0 1 0 1 0
nanjsk 0:179f2315915f 39 0xAB, // N 0 1 0 1 0 1 1
nanjsk 0:179f2315915f 40 0xA3, // O 0 1 0 0 0 1 1
nanjsk 0:179f2315915f 41 0x8C, // P 0 0 0 1 1 0 0
nanjsk 0:179f2315915f 42 0x98, // Q 0 0 1 1 0 0 0
nanjsk 0:179f2315915f 43 0xCC, // R 1 0 0 1 1 0 0
nanjsk 0:179f2315915f 44 0x96, // S 0 0 1 0 1 1 0
nanjsk 0:179f2315915f 45 0x87, // T 0 0 0 0 1 1 1
nanjsk 0:179f2315915f 46 0xE3, // U 1 1 0 0 0 1 1
nanjsk 0:179f2315915f 47 0xC1, // V 1 0 0 0 0 0 1
nanjsk 0:179f2315915f 48 0xD5, // W 1 0 1 0 1 0 1
nanjsk 0:179f2315915f 49 0x89, // X 0 0 0 1 0 0 1
nanjsk 0:179f2315915f 50 0x91, // Y 0 0 1 0 0 0 1
nanjsk 0:179f2315915f 51 0xB4, // Z 0 1 1 0 1 0 0
nanjsk 0:179f2315915f 52 0xFF // 1 1 1 1 1 1 1
nanjsk 0:179f2315915f 53 };
nanjsk 0:179f2315915f 54
nanjsk 0:179f2315915f 55 uint8_t SEGMENT_SEL[9] = {0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
nanjsk 0:179f2315915f 56
nanjsk 0:179f2315915f 57 void Seg_Drive(int seg, int num, int dot)
nanjsk 0:179f2315915f 58 {
nanjsk 0:179f2315915f 59 Seg_num = 0xff;
nanjsk 0:179f2315915f 60 Seg_Sel = SEGMENT_SEL[seg];
nanjsk 0:179f2315915f 61 if(dot == 1)
nanjsk 0:179f2315915f 62 {
nanjsk 0:179f2315915f 63 Seg_num = SEGMENTS[num] & 0x7F;
nanjsk 0:179f2315915f 64 }
nanjsk 0:179f2315915f 65 else
nanjsk 0:179f2315915f 66 {
nanjsk 0:179f2315915f 67 Seg_num = SEGMENTS[num];
nanjsk 0:179f2315915f 68 }
nanjsk 0:179f2315915f 69 wait_ms(1);
nanjsk 0:179f2315915f 70 }
nanjsk 0:179f2315915f 71
nanjsk 0:179f2315915f 72 void Seg_Test_1()
nanjsk 0:179f2315915f 73 {
nanjsk 0:179f2315915f 74 for(int j = 1 ; j <9 ; j++)
nanjsk 0:179f2315915f 75 {
nanjsk 0:179f2315915f 76 pc1.printf("SEGMENT_SEL : %x\r\n",SEGMENT_SEL[j]);
nanjsk 0:179f2315915f 77 for(int i = 0; i<10 ; i++)
nanjsk 0:179f2315915f 78 {
nanjsk 0:179f2315915f 79 Seg_Drive(j,i,1);
nanjsk 0:179f2315915f 80 pc1.printf("Seg Num : %d\r\n",i);
nanjsk 0:179f2315915f 81 wait(0.05);
nanjsk 0:179f2315915f 82 }
nanjsk 0:179f2315915f 83 }
nanjsk 0:179f2315915f 84 Seg_num = 0xff;
nanjsk 0:179f2315915f 85 }
nanjsk 0:179f2315915f 86 void Seg_Test_2()
nanjsk 0:179f2315915f 87 {
nanjsk 0:179f2315915f 88 Seg_num = 0x00;
nanjsk 0:179f2315915f 89 Seg_Sel = 0xff;
nanjsk 0:179f2315915f 90 wait(0.5);
nanjsk 0:179f2315915f 91 Seg_num = 0xff;
nanjsk 0:179f2315915f 92 Seg_Sel = 0x00;
nanjsk 0:179f2315915f 93 wait(0.5);
nanjsk 0:179f2315915f 94 }
nanjsk 0:179f2315915f 95
nanjsk 0:179f2315915f 96 void Seg_Reset()
nanjsk 0:179f2315915f 97 {
nanjsk 0:179f2315915f 98 Seg_num = 0xff;
nanjsk 0:179f2315915f 99 Seg_Sel = 0x00;
nanjsk 0:179f2315915f 100 }
nanjsk 0:179f2315915f 101
nanjsk 0:179f2315915f 102 void display_ymd(char buffer[])
nanjsk 0:179f2315915f 103 {
nanjsk 0:179f2315915f 104 int dot = 0;
nanjsk 0:179f2315915f 105 for(int i = 0 ; i <= 7 ; i++)
nanjsk 0:179f2315915f 106 {
nanjsk 0:179f2315915f 107 if(i == 3) dot = 1;
nanjsk 0:179f2315915f 108 else if(i == 5) dot = 1;
nanjsk 0:179f2315915f 109 else if(i == 7) dot = 1;
nanjsk 0:179f2315915f 110 else dot = 0;
nanjsk 0:179f2315915f 111 buffer[i] -= 48;
nanjsk 0:179f2315915f 112 Seg_Drive(i+1,buffer[i],dot);
nanjsk 0:179f2315915f 113 }
nanjsk 0:179f2315915f 114
nanjsk 0:179f2315915f 115 }
nanjsk 0:179f2315915f 116
nanjsk 0:179f2315915f 117 void display_hms(char buffer[])
nanjsk 0:179f2315915f 118 {
nanjsk 0:179f2315915f 119 int dot = 0;
nanjsk 0:179f2315915f 120 for(int i = 0 ; i < 6 ; i++)
nanjsk 0:179f2315915f 121 {
nanjsk 0:179f2315915f 122 if(i == 1) dot = 1;
nanjsk 0:179f2315915f 123 else if(i == 3) dot = 1;
nanjsk 0:179f2315915f 124 else if(i == 5) dot = 1;
nanjsk 0:179f2315915f 125 else dot = 0;
nanjsk 0:179f2315915f 126 buffer[i] -= 48;
nanjsk 0:179f2315915f 127 Seg_Drive(i+2,buffer[i],dot);
nanjsk 0:179f2315915f 128 }
nanjsk 0:179f2315915f 129 }
nanjsk 0:179f2315915f 130
nanjsk 0:179f2315915f 131 void display_temp(float temp_val){
nanjsk 0:179f2315915f 132 //Seg_Reset();
nanjsk 0:179f2315915f 133 int temp_val_int = (int)(temp_val*10);
nanjsk 0:179f2315915f 134 char temp_val_arr[5]={0,0,0,36,12};
nanjsk 0:179f2315915f 135
nanjsk 0:179f2315915f 136 temp_val_arr[0] = temp_val_int/100;
nanjsk 0:179f2315915f 137 temp_val_arr[1] = (temp_val_int-(temp_val_arr[0]*100))/10;
nanjsk 0:179f2315915f 138 temp_val_arr[2] = temp_val_int-((temp_val_arr[0]*100)+(temp_val_arr[1]*10));
nanjsk 0:179f2315915f 139
nanjsk 0:179f2315915f 140 int dot = 0;
nanjsk 0:179f2315915f 141 for(int i = 0 ; i < 5 ; i++)
nanjsk 0:179f2315915f 142 {
nanjsk 0:179f2315915f 143 if(i == 1) dot = 1;
nanjsk 0:179f2315915f 144 else dot = 0;
nanjsk 0:179f2315915f 145 Seg_Drive(i+3,temp_val_arr[i],dot);
nanjsk 0:179f2315915f 146 }
nanjsk 0:179f2315915f 147 }
nanjsk 0:179f2315915f 148 void display_humi(float humi_val){
nanjsk 0:179f2315915f 149 //Seg_Reset();
nanjsk 0:179f2315915f 150 int humi_val_int = (int)(humi_val*10);
nanjsk 0:179f2315915f 151 char humi_val_arr[5]={0,0,0,36,17};
nanjsk 0:179f2315915f 152
nanjsk 0:179f2315915f 153 humi_val_arr[0] = humi_val_int/100;
nanjsk 0:179f2315915f 154 humi_val_arr[1] = (humi_val_int-(humi_val_arr[0]*100))/10;
nanjsk 0:179f2315915f 155 humi_val_arr[2] = humi_val_int-((humi_val_arr[0]*100)+(humi_val_arr[1]*10));
nanjsk 0:179f2315915f 156
nanjsk 0:179f2315915f 157 int dot = 0;
nanjsk 0:179f2315915f 158 for(int i = 0 ; i < 5 ; i++)
nanjsk 0:179f2315915f 159 {
nanjsk 0:179f2315915f 160 if(i == 1) dot = 1;
nanjsk 0:179f2315915f 161 else dot = 0;
nanjsk 0:179f2315915f 162 Seg_Drive(i+3,humi_val_arr[i],dot);
nanjsk 0:179f2315915f 163 }
nanjsk 0:179f2315915f 164 }