Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: main.cpp
- Revision:
- 0:f2b51b7dab8f
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp Mon Oct 15 21:23:00 2012 +0000
@@ -0,0 +1,56 @@
+/* Program Example 6.3: Host keypress to 7-seg display
+ */
+#include "mbed.h"
+Serial pc(USBTX, USBRX); // comms to host PC
+BusOut Seg1(p5,p6,p7,p8,p9,p10,p11,p12); // A,B,C,D,E,F,G,DP
+BusOut Seg2(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 numbers
+ }
+}
+// functions
+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\n\r");
+}
+
+char GetKeyInput(void) {
+ char c = pc.getc(); // get keyboard data (ascii 0x30-0x39)
+ pc.printf("%c",c); // print ascii value to host PC terminal
+ return (c&0x0F); // apply bit mask to convert to decimal, and return
+}
+
+char SegConvert(char SegValue) { // function 'SegConvert'
+ char SegByte=0x00;
+ switch (SegValue) { //DP G F E D C B A
+ case 0 : SegByte = 0x3F;break; // 0 0 1 1 1 1 1 1 binary
+ case 1 : SegByte = 0x06;break; // 0 0 0 0 0 1 1 0 binary
+ case 2 : SegByte = 0x5B;break; // 0 1 0 1 1 0 1 1 binary
+ case 3 : SegByte = 0x4F;break; // 0 1 0 0 1 1 1 1 binary
+ case 4 : SegByte = 0x66;break; // 0 1 1 0 0 1 1 0 binary
+ case 5 : SegByte = 0x6D;break; // 0 1 1 0 1 1 0 1 binary
+ case 6 : SegByte = 0x7D;break; // 0 1 1 1 1 1 0 1 binary
+ case 7 : SegByte = 0x07;break; // 0 0 0 0 0 1 1 1 binary
+ case 8 : SegByte = 0x7F;break; // 0 1 1 1 1 1 1 1 binary
+ case 9 : SegByte = 0x6F;break; // 0 1 1 0 1 1 1 1 binary
+ }
+ return SegByte;
+}
\ No newline at end of file