Solutions for the 7-Segment Display experiments for LPC812 MAX

Dependencies:   lpc812_exp_lib_PCF8591 mbed

Committer:
embeddedartists
Date:
Fri Nov 22 14:07:10 2013 +0000
Revision:
0:e64372861297
First version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
embeddedartists 0:e64372861297 1 #include "mbed.h"
embeddedartists 0:e64372861297 2
embeddedartists 0:e64372861297 3 DigitalIn button(D0);
embeddedartists 0:e64372861297 4
embeddedartists 0:e64372861297 5 DigitalOut segA(D4);
embeddedartists 0:e64372861297 6 DigitalOut segB(D7);
embeddedartists 0:e64372861297 7 DigitalOut segC(D8);
embeddedartists 0:e64372861297 8 DigitalOut segD(D10);
embeddedartists 0:e64372861297 9 DigitalOut segE(D11);
embeddedartists 0:e64372861297 10 DigitalOut segF(D12);
embeddedartists 0:e64372861297 11 DigitalOut segG(D13);
embeddedartists 0:e64372861297 12 DigitalOut segDP(D9);
embeddedartists 0:e64372861297 13
embeddedartists 0:e64372861297 14 static void show(int val) {
embeddedartists 0:e64372861297 15 // turn off all segments
embeddedartists 0:e64372861297 16 segA = segB = segC = segD = segE = segF = segG = 1;
embeddedartists 0:e64372861297 17
embeddedartists 0:e64372861297 18 // turn on segments depending on what to show
embeddedartists 0:e64372861297 19 switch (val) {
embeddedartists 0:e64372861297 20 case 0: segA = segB = segC = segD = segE = segF = 0; break;
embeddedartists 0:e64372861297 21 case 1: segB = segC = 0; break;
embeddedartists 0:e64372861297 22 case 2: segA = segB = segD = segE = segG = 0; break;
embeddedartists 0:e64372861297 23 case 3: segA = segB = segC = segD = segG = 0; break;
embeddedartists 0:e64372861297 24 case 4: segB = segC = segF = segG = 0; break;
embeddedartists 0:e64372861297 25 case 5: segA = segC = segD = segF = segG = 0; break;
embeddedartists 0:e64372861297 26 case 6: segA = segC = segD = segE = segF = segG = 0; break;
embeddedartists 0:e64372861297 27 case 7: segA = segB = segC = 0; break;
embeddedartists 0:e64372861297 28 case 8: segA = segB = segC = segD = segE = segF = segG = 0; break;
embeddedartists 0:e64372861297 29 case 9: segA = segB = segC = segD = segF = segG = 0; break;
embeddedartists 0:e64372861297 30
embeddedartists 0:e64372861297 31 case 'A': segA = 0; break;
embeddedartists 0:e64372861297 32 case 'B': segB = 0; break;
embeddedartists 0:e64372861297 33 case 'C': segC = 0; break;
embeddedartists 0:e64372861297 34 case 'D': segD = 0; break;
embeddedartists 0:e64372861297 35 case 'E': segE = 0; break;
embeddedartists 0:e64372861297 36 case 'F': segF = 0; break;
embeddedartists 0:e64372861297 37 case 'G': segG = 0; break;
embeddedartists 0:e64372861297 38 }
embeddedartists 0:e64372861297 39 }
embeddedartists 0:e64372861297 40
embeddedartists 0:e64372861297 41 static void experiment2_alt1()
embeddedartists 0:e64372861297 42 {
embeddedartists 0:e64372861297 43 // Enter forever loop
embeddedartists 0:e64372861297 44 while(1) {
embeddedartists 0:e64372861297 45 for (int i = 0; i < 10; i++) {
embeddedartists 0:e64372861297 46 // Delay a specified period of time or wait for push-button to be pressed
embeddedartists 0:e64372861297 47 wait(0.3);
embeddedartists 0:e64372861297 48
embeddedartists 0:e64372861297 49 show(i);
embeddedartists 0:e64372861297 50 }
embeddedartists 0:e64372861297 51 }
embeddedartists 0:e64372861297 52 }
embeddedartists 0:e64372861297 53
embeddedartists 0:e64372861297 54 static void experiment2_alt2()
embeddedartists 0:e64372861297 55 {
embeddedartists 0:e64372861297 56 // Enable button
embeddedartists 0:e64372861297 57 button.mode(PullUp);
embeddedartists 0:e64372861297 58
embeddedartists 0:e64372861297 59 // Enter forever loop
embeddedartists 0:e64372861297 60 while(1) {
embeddedartists 0:e64372861297 61 for (int i = 0; i < 10; i++) {
embeddedartists 0:e64372861297 62 // Delay a specified period of time or wait for push-button to be pressed
embeddedartists 0:e64372861297 63 while(button);
embeddedartists 0:e64372861297 64 while(!button);
embeddedartists 0:e64372861297 65
embeddedartists 0:e64372861297 66 show(i);
embeddedartists 0:e64372861297 67 }
embeddedartists 0:e64372861297 68 }
embeddedartists 0:e64372861297 69 }
embeddedartists 0:e64372861297 70
embeddedartists 0:e64372861297 71 static void experiment2_alt3()
embeddedartists 0:e64372861297 72 {
embeddedartists 0:e64372861297 73 // Enter forever loop
embeddedartists 0:e64372861297 74 while(1) {
embeddedartists 0:e64372861297 75 for (int i = 'A'; i < 'G'; i++) {
embeddedartists 0:e64372861297 76 // Delay a specified period of time or wait for push-button to be pressed
embeddedartists 0:e64372861297 77 wait(0.3);
embeddedartists 0:e64372861297 78
embeddedartists 0:e64372861297 79 show(i);
embeddedartists 0:e64372861297 80 }
embeddedartists 0:e64372861297 81 }
embeddedartists 0:e64372861297 82 }
embeddedartists 0:e64372861297 83
embeddedartists 0:e64372861297 84
embeddedartists 0:e64372861297 85 int main()
embeddedartists 0:e64372861297 86 {
embeddedartists 0:e64372861297 87 // turn off all segments
embeddedartists 0:e64372861297 88 segA = segB = segC = segD = segE = segF = segG = segDP = 1;
embeddedartists 0:e64372861297 89
embeddedartists 0:e64372861297 90 //experiment2_alt1(); // Automatic counting
embeddedartists 0:e64372861297 91 //experiment2_alt2(); // Push button advances counting
embeddedartists 0:e64372861297 92 experiment2_alt3(); // Automatic running one
embeddedartists 0:e64372861297 93 }