lab2

Dependencies:   mbed

Committer:
csggreen
Date:
Fri Nov 24 04:08:33 2017 +0000
Revision:
0:6ebe2b838587
lab2

Who changed what in which revision?

UserRevisionLine numberNew contents of line
csggreen 0:6ebe2b838587 1 #include "mbed.h"
csggreen 0:6ebe2b838587 2
csggreen 0:6ebe2b838587 3 AnalogIn analog_value(A1);//อานค่าAnalogจากขาA1
csggreen 0:6ebe2b838587 4
csggreen 0:6ebe2b838587 5 DigitalOut gsled0(D2);
csggreen 0:6ebe2b838587 6 DigitalOut gsled1(D3);
csggreen 0:6ebe2b838587 7 DigitalOut gsled2(D4);
csggreen 0:6ebe2b838587 8 DigitalOut gsled3(D5);
csggreen 0:6ebe2b838587 9 DigitalOut gsled4(D6);
csggreen 0:6ebe2b838587 10 DigitalOut gsled5(D7);
csggreen 0:6ebe2b838587 11 DigitalOut gsled6(D8);
csggreen 0:6ebe2b838587 12 DigitalOut gsled7(D9);
csggreen 0:6ebe2b838587 13
csggreen 0:6ebe2b838587 14 DigitalOut gsled8(D10);
csggreen 0:6ebe2b838587 15 DigitalOut gsled9(D11);
csggreen 0:6ebe2b838587 16 DigitalOut gsled10(D12);
csggreen 0:6ebe2b838587 17 DigitalOut gsled11(D13);
csggreen 0:6ebe2b838587 18
csggreen 0:6ebe2b838587 19 DigitalOut gsled12(D14);
csggreen 0:6ebe2b838587 20 DigitalOut gsled13(D15);
csggreen 0:6ebe2b838587 21
csggreen 0:6ebe2b838587 22 DigitalIn sw_in(USER_BUTTON);
csggreen 0:6ebe2b838587 23
csggreen 0:6ebe2b838587 24 float formvolume;//รับค่าจากR
csggreen 0:6ebe2b838587 25 float mVolt;//รับค่าที่แปลงแล้วหน่วยmV
csggreen 0:6ebe2b838587 26 int Volt;
csggreen 0:6ebe2b838587 27 int Volt_f;
csggreen 0:6ebe2b838587 28 int Volt_i ;
csggreen 0:6ebe2b838587 29 int x=0;
csggreen 0:6ebe2b838587 30 /*
csggreen 0:6ebe2b838587 31 void ReadVolt(){
csggreen 0:6ebe2b838587 32 formvolume = analog_value.read();
csggreen 0:6ebe2b838587 33 mVolt = formvolume * 3300;
csggreen 0:6ebe2b838587 34 Volt = mVolt/1000;
csggreen 0:6ebe2b838587 35 Volt_i = Volt*1;
csggreen 0:6ebe2b838587 36 Volt_f = 0.1 % (Volt - Volt_i);
csggreen 0:6ebe2b838587 37 //printf("measure = %f mV + %f V\n", mVolt,Volt);
csggreen 0:6ebe2b838587 38 }*/
csggreen 0:6ebe2b838587 39
csggreen 0:6ebe2b838587 40 void ReadVolt(){
csggreen 0:6ebe2b838587 41 formvolume = analog_value.read();
csggreen 0:6ebe2b838587 42 mVolt = formvolume * 3300;
csggreen 0:6ebe2b838587 43 Volt = mVolt/100;
csggreen 0:6ebe2b838587 44 Volt_i = (Volt-(Volt%10))/10;
csggreen 0:6ebe2b838587 45 Volt_f = Volt%10;
csggreen 0:6ebe2b838587 46 }
csggreen 0:6ebe2b838587 47
csggreen 0:6ebe2b838587 48 void LEDoutput(){
csggreen 0:6ebe2b838587 49 if (mVolt>0&&mVolt<412){
csggreen 0:6ebe2b838587 50 gsled0 = 1;
csggreen 0:6ebe2b838587 51 }
csggreen 0:6ebe2b838587 52 if (mVolt>=412&&mVolt<825){
csggreen 0:6ebe2b838587 53 gsled0 = 1;
csggreen 0:6ebe2b838587 54 gsled1 = 1;
csggreen 0:6ebe2b838587 55 }
csggreen 0:6ebe2b838587 56 if (mVolt>=825&&mVolt<1237){
csggreen 0:6ebe2b838587 57 gsled0 = 1;
csggreen 0:6ebe2b838587 58 gsled1 = 1;
csggreen 0:6ebe2b838587 59 gsled2 = 1;
csggreen 0:6ebe2b838587 60 }
csggreen 0:6ebe2b838587 61 if (mVolt>=1237&&mVolt<1650){
csggreen 0:6ebe2b838587 62 gsled0 = 1;
csggreen 0:6ebe2b838587 63 gsled1 = 1;
csggreen 0:6ebe2b838587 64 gsled2 = 1;
csggreen 0:6ebe2b838587 65 gsled3 = 1;
csggreen 0:6ebe2b838587 66 }
csggreen 0:6ebe2b838587 67 if (mVolt>=1650&&mVolt<2062){
csggreen 0:6ebe2b838587 68 gsled0 = 1;
csggreen 0:6ebe2b838587 69 gsled1 = 1;
csggreen 0:6ebe2b838587 70 gsled2 = 1;
csggreen 0:6ebe2b838587 71 gsled3 = 1;
csggreen 0:6ebe2b838587 72 gsled4 = 1;
csggreen 0:6ebe2b838587 73 }
csggreen 0:6ebe2b838587 74 if (mVolt>=2062&&mVolt<2475){
csggreen 0:6ebe2b838587 75 gsled0 = 1;
csggreen 0:6ebe2b838587 76 gsled1 = 1;
csggreen 0:6ebe2b838587 77 gsled2 = 1;
csggreen 0:6ebe2b838587 78 gsled3 = 1;
csggreen 0:6ebe2b838587 79 gsled4 = 1;
csggreen 0:6ebe2b838587 80 gsled5 = 1;
csggreen 0:6ebe2b838587 81 }
csggreen 0:6ebe2b838587 82 if (mVolt>=2475&&mVolt<2887){
csggreen 0:6ebe2b838587 83 gsled0 = 1;
csggreen 0:6ebe2b838587 84 gsled1 = 1;
csggreen 0:6ebe2b838587 85 gsled2 = 1;
csggreen 0:6ebe2b838587 86 gsled3 = 1;
csggreen 0:6ebe2b838587 87 gsled4 = 1;
csggreen 0:6ebe2b838587 88 gsled5 = 1;
csggreen 0:6ebe2b838587 89 gsled6 = 1;
csggreen 0:6ebe2b838587 90 }
csggreen 0:6ebe2b838587 91 if (mVolt>=2887&&mVolt<3300){
csggreen 0:6ebe2b838587 92 gsled0 = 1;
csggreen 0:6ebe2b838587 93 gsled1 = 1;
csggreen 0:6ebe2b838587 94 gsled2 = 1;
csggreen 0:6ebe2b838587 95 gsled3 = 1;
csggreen 0:6ebe2b838587 96 gsled4 = 1;
csggreen 0:6ebe2b838587 97 gsled5 = 1;
csggreen 0:6ebe2b838587 98 gsled6 = 1;
csggreen 0:6ebe2b838587 99 gsled7 = 1;
csggreen 0:6ebe2b838587 100 }
csggreen 0:6ebe2b838587 101 else{
csggreen 0:6ebe2b838587 102 gsled0 = 0;
csggreen 0:6ebe2b838587 103 gsled1 = 0;
csggreen 0:6ebe2b838587 104 gsled2 = 0;
csggreen 0:6ebe2b838587 105 gsled3 = 0;
csggreen 0:6ebe2b838587 106 gsled4 = 0;
csggreen 0:6ebe2b838587 107 gsled5 = 0;
csggreen 0:6ebe2b838587 108 gsled6 = 0;
csggreen 0:6ebe2b838587 109 gsled7 = 0;
csggreen 0:6ebe2b838587 110 }
csggreen 0:6ebe2b838587 111 }
csggreen 0:6ebe2b838587 112 void iNumber0(){//int_Number
csggreen 0:6ebe2b838587 113 //gsled0 = 0;
csggreen 0:6ebe2b838587 114 //gsled1 = 0;
csggreen 0:6ebe2b838587 115 gsled8 = 0;
csggreen 0:6ebe2b838587 116 gsled9 = 0;
csggreen 0:6ebe2b838587 117 }
csggreen 0:6ebe2b838587 118 void iNumber1(){
csggreen 0:6ebe2b838587 119 //gsled0 = 0;
csggreen 0:6ebe2b838587 120 //gsled1 = 0;
csggreen 0:6ebe2b838587 121 gsled8 = 0;
csggreen 0:6ebe2b838587 122 gsled9 = 1;
csggreen 0:6ebe2b838587 123 }
csggreen 0:6ebe2b838587 124 void iNumber2(){
csggreen 0:6ebe2b838587 125 //gsled0 = 0;
csggreen 0:6ebe2b838587 126 //gsled1 = 0;
csggreen 0:6ebe2b838587 127 gsled8 = 1;
csggreen 0:6ebe2b838587 128 gsled9 = 0;
csggreen 0:6ebe2b838587 129 }
csggreen 0:6ebe2b838587 130 void iNumber3(){
csggreen 0:6ebe2b838587 131 //gsled0 = 0;
csggreen 0:6ebe2b838587 132 //gsled1 = 0;
csggreen 0:6ebe2b838587 133 gsled8 = 1;
csggreen 0:6ebe2b838587 134 gsled9 = 1;
csggreen 0:6ebe2b838587 135 }
csggreen 0:6ebe2b838587 136 void fNumber0(){//float Number
csggreen 0:6ebe2b838587 137 gsled10 = 0;
csggreen 0:6ebe2b838587 138 gsled11 = 0;
csggreen 0:6ebe2b838587 139 gsled12 = 0;
csggreen 0:6ebe2b838587 140 gsled13 = 0;
csggreen 0:6ebe2b838587 141 }
csggreen 0:6ebe2b838587 142 void fNumber1(){//float Number
csggreen 0:6ebe2b838587 143 gsled10 = 0;
csggreen 0:6ebe2b838587 144 gsled11 = 0;
csggreen 0:6ebe2b838587 145 gsled12 = 0;
csggreen 0:6ebe2b838587 146 gsled13 = 1;
csggreen 0:6ebe2b838587 147 }
csggreen 0:6ebe2b838587 148 void fNumber2(){//float Number
csggreen 0:6ebe2b838587 149 gsled10 = 0;
csggreen 0:6ebe2b838587 150 gsled11 = 0;
csggreen 0:6ebe2b838587 151 gsled12 = 1;
csggreen 0:6ebe2b838587 152 gsled13 = 0;
csggreen 0:6ebe2b838587 153 }
csggreen 0:6ebe2b838587 154 void fNumber3(){//float Number
csggreen 0:6ebe2b838587 155 gsled10= 0;
csggreen 0:6ebe2b838587 156 gsled11 = 0;
csggreen 0:6ebe2b838587 157 gsled12 = 1;
csggreen 0:6ebe2b838587 158 gsled13 = 1;
csggreen 0:6ebe2b838587 159 }
csggreen 0:6ebe2b838587 160 void fNumber4(){//float Number
csggreen 0:6ebe2b838587 161 gsled10 = 0;
csggreen 0:6ebe2b838587 162 gsled11 = 1;
csggreen 0:6ebe2b838587 163 gsled12 = 0;
csggreen 0:6ebe2b838587 164 gsled13 = 0;
csggreen 0:6ebe2b838587 165 }
csggreen 0:6ebe2b838587 166 void fNumber5(){//float Number
csggreen 0:6ebe2b838587 167 gsled10 = 0;
csggreen 0:6ebe2b838587 168 gsled11 = 1;
csggreen 0:6ebe2b838587 169 gsled12 = 0;
csggreen 0:6ebe2b838587 170 gsled13 = 1;
csggreen 0:6ebe2b838587 171 }
csggreen 0:6ebe2b838587 172 void fNumber6(){//float Number
csggreen 0:6ebe2b838587 173 gsled10 = 0;
csggreen 0:6ebe2b838587 174 gsled11 = 1;
csggreen 0:6ebe2b838587 175 gsled12 = 1;
csggreen 0:6ebe2b838587 176 gsled13 = 0;
csggreen 0:6ebe2b838587 177 }
csggreen 0:6ebe2b838587 178 void fNumber7(){//float Number
csggreen 0:6ebe2b838587 179 gsled10 = 0;
csggreen 0:6ebe2b838587 180 gsled11 = 1;
csggreen 0:6ebe2b838587 181 gsled12 = 1;
csggreen 0:6ebe2b838587 182 gsled13 = 1;
csggreen 0:6ebe2b838587 183 }
csggreen 0:6ebe2b838587 184 void fNumber8(){//float Number
csggreen 0:6ebe2b838587 185 gsled10 = 1;
csggreen 0:6ebe2b838587 186 gsled11 = 0;
csggreen 0:6ebe2b838587 187 gsled12 = 0;
csggreen 0:6ebe2b838587 188 gsled13 = 0;
csggreen 0:6ebe2b838587 189 }
csggreen 0:6ebe2b838587 190 void fNumber9(){//float Number
csggreen 0:6ebe2b838587 191 gsled10 = 1;
csggreen 0:6ebe2b838587 192 gsled11 = 0;
csggreen 0:6ebe2b838587 193 gsled12 = 0;
csggreen 0:6ebe2b838587 194 gsled13 = 1;
csggreen 0:6ebe2b838587 195 }
csggreen 0:6ebe2b838587 196
csggreen 0:6ebe2b838587 197 void floatfunction(){
csggreen 0:6ebe2b838587 198 if (Volt_f==0){
csggreen 0:6ebe2b838587 199 fNumber0();
csggreen 0:6ebe2b838587 200 }
csggreen 0:6ebe2b838587 201 else if (Volt_f==1){
csggreen 0:6ebe2b838587 202 fNumber1();
csggreen 0:6ebe2b838587 203 }
csggreen 0:6ebe2b838587 204 else if (Volt_f==2){
csggreen 0:6ebe2b838587 205 fNumber2();
csggreen 0:6ebe2b838587 206 }
csggreen 0:6ebe2b838587 207 else if (Volt_f==3){
csggreen 0:6ebe2b838587 208 fNumber3();
csggreen 0:6ebe2b838587 209 }
csggreen 0:6ebe2b838587 210 else if (Volt_f==4){
csggreen 0:6ebe2b838587 211 fNumber4();
csggreen 0:6ebe2b838587 212 }
csggreen 0:6ebe2b838587 213 else if (Volt_f==5){
csggreen 0:6ebe2b838587 214 fNumber5();
csggreen 0:6ebe2b838587 215 }
csggreen 0:6ebe2b838587 216 else if (Volt_f==6){
csggreen 0:6ebe2b838587 217 fNumber6();
csggreen 0:6ebe2b838587 218 }
csggreen 0:6ebe2b838587 219 else if (Volt_f==7){
csggreen 0:6ebe2b838587 220 fNumber7();
csggreen 0:6ebe2b838587 221 }
csggreen 0:6ebe2b838587 222 else if (Volt_f==8){
csggreen 0:6ebe2b838587 223 fNumber8();
csggreen 0:6ebe2b838587 224 }
csggreen 0:6ebe2b838587 225 else if (Volt_f==9){
csggreen 0:6ebe2b838587 226 fNumber9();
csggreen 0:6ebe2b838587 227 }
csggreen 0:6ebe2b838587 228 }
csggreen 0:6ebe2b838587 229
csggreen 0:6ebe2b838587 230 void segmentoutput(){
csggreen 0:6ebe2b838587 231 if (Volt_i==0){
csggreen 0:6ebe2b838587 232 iNumber0();
csggreen 0:6ebe2b838587 233 floatfunction();
csggreen 0:6ebe2b838587 234 }
csggreen 0:6ebe2b838587 235 else if(Volt_i==1){
csggreen 0:6ebe2b838587 236 iNumber1();
csggreen 0:6ebe2b838587 237 floatfunction();
csggreen 0:6ebe2b838587 238 }
csggreen 0:6ebe2b838587 239 else if(Volt_i==2){
csggreen 0:6ebe2b838587 240 iNumber2();
csggreen 0:6ebe2b838587 241 floatfunction();
csggreen 0:6ebe2b838587 242 }
csggreen 0:6ebe2b838587 243 else if(Volt_i==3){
csggreen 0:6ebe2b838587 244 iNumber3();
csggreen 0:6ebe2b838587 245 floatfunction();
csggreen 0:6ebe2b838587 246 }
csggreen 0:6ebe2b838587 247 }
csggreen 0:6ebe2b838587 248
csggreen 0:6ebe2b838587 249 int main()
csggreen 0:6ebe2b838587 250 {
csggreen 0:6ebe2b838587 251 while(1) {
csggreen 0:6ebe2b838587 252 ReadVolt();
csggreen 0:6ebe2b838587 253 if(sw_in==0){
csggreen 0:6ebe2b838587 254 while(sw_in==0);
csggreen 0:6ebe2b838587 255 x+=1;
csggreen 0:6ebe2b838587 256 if(x>=2){
csggreen 0:6ebe2b838587 257 x=0;
csggreen 0:6ebe2b838587 258 }
csggreen 0:6ebe2b838587 259 wait(0.2);
csggreen 0:6ebe2b838587 260 }
csggreen 0:6ebe2b838587 261 if (x==0){
csggreen 0:6ebe2b838587 262 segmentoutput();
csggreen 0:6ebe2b838587 263 }
csggreen 0:6ebe2b838587 264 if (x==1){
csggreen 0:6ebe2b838587 265 LEDoutput();
csggreen 0:6ebe2b838587 266 }
csggreen 0:6ebe2b838587 267 /*while(1) {
csggreen 0:6ebe2b838587 268 ReadVolt();
csggreen 0:6ebe2b838587 269 if(sw_in==1){
csggreen 0:6ebe2b838587 270 x=1;
csggreen 0:6ebe2b838587 271 }
csggreen 0:6ebe2b838587 272 else if(sw_in==0){
csggreen 0:6ebe2b838587 273 x=0;
csggreen 0:6ebe2b838587 274 }
csggreen 0:6ebe2b838587 275 if (x==0){
csggreen 0:6ebe2b838587 276 segmentoutput();
csggreen 0:6ebe2b838587 277 }
csggreen 0:6ebe2b838587 278 else if (x==1){
csggreen 0:6ebe2b838587 279 LEDoutput();
csggreen 0:6ebe2b838587 280 }*/
csggreen 0:6ebe2b838587 281 }
csggreen 0:6ebe2b838587 282 }
csggreen 0:6ebe2b838587 283
csggreen 0:6ebe2b838587 284