prikaz 2 znamenke iz terminala na dva - 7 segmentna displaya
Dependencies: mbed
Revision 0:013f1ffe02b4, committed 2016-11-17
- 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