prikaz 2 znamenke iz terminala na dva - 7 segmentna displaya

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
rsostar
Date:
Thu Nov 17 19:13:19 2016 +0000
Commit message:
LAbv3_sostar

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 013f1ffe02b4 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Nov 17 19:13:19 2016 +0000
@@ -0,0 +1,73 @@
+#include "mbed.h"
+Serial pc(USBTX, USBRX); // comms to host PC
+BusOut Seg2(p5,p6,p7,p8,p9,p10,p11,p12); // A,B,C,D,E,F,G,DP
+BusOut Seg1(p13,p14,p15,p16,p17,p18,p19,p20); // A,B,C,D,E,F,G,DP
+void SegInit(void); // function prototype
+void HostInit(void); // function prototype
+char GetKeyInput(void); // function prototype
+char SegConvert(char SegValue); // function prototype
+char data1, data2; // variable declarations
+int main()   // main program
+{
+    SegInit(); // call function to initialise the 7-seg displays
+    HostInit(); // call function to initialise the host terminal
+    while (1) { // infinite loop
+        data2 = GetKeyInput(); // call function to get 1st key press
+        Seg2=SegConvert(data2); // call function to convert and output
+        data1 = GetKeyInput(); // call function to get 2nd key press
+        Seg1=SegConvert(data1); // call function to convert and output
+        pc.printf(" "); // display spaces between 2 digit numbers
+    }
+}
+void SegInit(void)
+{
+    Seg1=SegConvert(0); // initialise to zero
+    Seg2=SegConvert(0); // initialise to zero
+}
+void HostInit(void)
+{
+    pc.printf("\n\rType two digit numbers to be displayed on the 7-seg display\n\r");
+}
+char GetKeyInput(void)
+{
+    char c = pc.getc(); // get keyboard data (note num. ascii range 0x30-0x39)
+    pc.printf("%c",c); // print ascii value to host PC terminal
+    return (c&0x0F); // return value as non-ascii (bitmask c with value 0x0F)
+}
+char SegConvert(char SegValue)   // function 'SegConvert'
+{
+    char SegByte=0x00;
+    switch (SegValue) { //DPGFEDCBA
+        case 0 :
+            SegByte = 0x3F;
+            break; // 00111111 binary
+        case 1 :
+            SegByte = 0x06;
+            break; // 00000110 binary
+        case 2 :
+            SegByte = 0x5B;
+            break; // 01011011 binary
+        case 3 :
+            SegByte = 0x4F;
+            break; // 01001111 binary
+        case 4 :
+            SegByte = 0x66;
+            break; // 01100110 binary
+        case 5 :
+            SegByte = 0x6D;
+            break; // 01101101 binary
+        case 6 :
+            SegByte = 0x7D;
+            break; // 01111101 binary
+        case 7 :
+            SegByte = 0x07;
+            break; // 00000111 binary
+        case 8 :
+            SegByte = 0x7F;
+            break; // 01111111 binary
+        case 9 :
+            SegByte = 0x6F;
+            break; // 01101111 binary
+    }
+    return SegByte;
+}
\ No newline at end of file
diff -r 000000000000 -r 013f1ffe02b4 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Thu Nov 17 19:13:19 2016 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/0ab6a29f35bf
\ No newline at end of file