Solutions for the 7-Segment Display experiments for LPC812 MAX
Dependencies: lpc812_exp_lib_PCF8591 mbed
main.cpp
00001 #include "mbed.h" 00002 00003 DigitalIn button(D0); 00004 00005 DigitalOut segA(D4); 00006 DigitalOut segB(D7); 00007 DigitalOut segC(D8); 00008 DigitalOut segD(D10); 00009 DigitalOut segE(D11); 00010 DigitalOut segF(D12); 00011 DigitalOut segG(D13); 00012 DigitalOut segDP(D9); 00013 00014 static void show(int val) { 00015 // turn off all segments 00016 segA = segB = segC = segD = segE = segF = segG = 1; 00017 00018 // turn on segments depending on what to show 00019 switch (val) { 00020 case 0: segA = segB = segC = segD = segE = segF = 0; break; 00021 case 1: segB = segC = 0; break; 00022 case 2: segA = segB = segD = segE = segG = 0; break; 00023 case 3: segA = segB = segC = segD = segG = 0; break; 00024 case 4: segB = segC = segF = segG = 0; break; 00025 case 5: segA = segC = segD = segF = segG = 0; break; 00026 case 6: segA = segC = segD = segE = segF = segG = 0; break; 00027 case 7: segA = segB = segC = 0; break; 00028 case 8: segA = segB = segC = segD = segE = segF = segG = 0; break; 00029 case 9: segA = segB = segC = segD = segF = segG = 0; break; 00030 00031 case 'A': segA = 0; break; 00032 case 'B': segB = 0; break; 00033 case 'C': segC = 0; break; 00034 case 'D': segD = 0; break; 00035 case 'E': segE = 0; break; 00036 case 'F': segF = 0; break; 00037 case 'G': segG = 0; break; 00038 } 00039 } 00040 00041 static void experiment2_alt1() 00042 { 00043 // Enter forever loop 00044 while(1) { 00045 for (int i = 0; i < 10; i++) { 00046 // Delay a specified period of time or wait for push-button to be pressed 00047 wait(0.3); 00048 00049 show(i); 00050 } 00051 } 00052 } 00053 00054 static void experiment2_alt2() 00055 { 00056 // Enable button 00057 button.mode(PullUp); 00058 00059 // Enter forever loop 00060 while(1) { 00061 for (int i = 0; i < 10; i++) { 00062 // Delay a specified period of time or wait for push-button to be pressed 00063 while(button); 00064 while(!button); 00065 00066 show(i); 00067 } 00068 } 00069 } 00070 00071 static void experiment2_alt3() 00072 { 00073 // Enter forever loop 00074 while(1) { 00075 for (int i = 'A'; i < 'G'; i++) { 00076 // Delay a specified period of time or wait for push-button to be pressed 00077 wait(0.3); 00078 00079 show(i); 00080 } 00081 } 00082 } 00083 00084 00085 int main() 00086 { 00087 // turn off all segments 00088 segA = segB = segC = segD = segE = segF = segG = segDP = 1; 00089 00090 //experiment2_alt1(); // Automatic counting 00091 //experiment2_alt2(); // Push button advances counting 00092 experiment2_alt3(); // Automatic running one 00093 }
Generated on Fri Jul 22 2022 03:32:58 by 1.7.2