Cecilia Schneider
/
schneider_hw_6
Modular Programming
Diff: SegDisplay.cpp
- Revision:
- 0:00336127c4e9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SegDisplay.cpp Sun Dec 23 17:07:47 2018 +0000 @@ -0,0 +1,51 @@ +#include "SegDisplay.h" + +BusOut Seg1(p12,p13,p14,p15,p16,p17,p18,p19); // A,B,C,D,E,F,G,DP (tens place) +BusOut Seg2(p21,p22,p23,p24,p25,p26,p27,p28); // A,B,C,D,E,F,G,DP (ones place) + +void SegInit(void) +{ + + Seg1 = SegConvert(0); // initialise to zero + Seg2 = SegConvert(0); // initialise to zero +} + +char SegConvert(int SegValue) // function to convert a number to a 7-segment byte +{ + char SegByte=0x00; + switch (SegValue) { // DPGFEDCBA + case 0 : + SegByte = 0xC0; + break; // 00111111 binary + case 1 : + SegByte = 0xF9; + break; // 00000110 binary + case 2 : + SegByte = 0xA4; + break; // 01011011 binary + case 3 : + SegByte = 0xB0; + break; // 01001111 binary + case 4 : + SegByte = 0x99; + break; // 01100110 binary + case 5 : + SegByte = 0x92; + break; // 01101101 binary + case 6 : + SegByte = 0x82; + break; // 01111101 binary + case 7 : + SegByte = 0xF8; + break; // 00000111 binary + case 8 : + SegByte = 0x80; + break; // 01111111 binary + case 9 : + SegByte = 0x90; + break; // 01101111 binary + } + return SegByte; +} + +