Gerardo Carmona
/
info_2do_examen
Diff: main.cpp
- Revision:
- 0:a4f3aa903302
diff -r 000000000000 -r a4f3aa903302 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Fri May 09 15:31:05 2014 +0000 @@ -0,0 +1,51 @@ +/* + INSTRUCCIONES: + Suponga que tiene 3 botones con resistencias de pull-up (A, B, C) + y un display de 7 segmentos de cátodo común. Realice un programa + que convierta de número binario a display de 7 segmentos. +*/ + +#include "mbed.h" + +DigitalIn A(D2); +DigitalIn B(D3); +DigitalIn C(D4); +BusOut display(D5, D6, D7, D8, D9, D10, D11); + +void bcd_to_7segment(int number); + +bool button_A, button_B, button_C; +int number; + +int main() { + A.mode(PullUp); + B.mode(PullUp); + C.mode(PullUp); + while(1){ + button_A = !A; + button_B = !B; + button_C = !C; + number = A + B*2 + C*4; //tambien se puede number = A | B << 1 | C << 2; + bcd_to_7segment(number); + } +} + +void bcd_to_7segment(int number){ + switch (number){ + case 0: + display = 63; break; + case 1: + display = 6; break; + case 2: + display = 91; break; + case 3: + display = 79; break; + case 4: + display = 102; break; + case 5: + display = 109; break; + case 6: + display = 125; break; + case 7: + display = 7; break; +} \ No newline at end of file