85 lines
1.9 KiB
C++
85 lines
1.9 KiB
C++
// 7Segment
|
|
#include "Arduino.h"
|
|
#include "Segment.h"
|
|
|
|
byte seven_seg_digits[][8] = {
|
|
{ 0,1,1,1,1,1,0,1 }, // = 0
|
|
{ 0,1,1,0,0,0,0,0 }, // = 1
|
|
{ 0,0,1,1,1,1,1,0 }, // = 2
|
|
{ 0,1,1,1,1,0,1,0 }, // = 3
|
|
{ 0,1,1,0,0,0,1,1 }, // = 4
|
|
{ 0,1,0,1,1,0,1,1 }, // = 5
|
|
{ 0,1,0,1,1,1,1,1 }, // = 6
|
|
{ 0,1,1,1,0,0,0,0 }, // = 7
|
|
{ 0,1,1,1,1,1,1,1 }, // = 8
|
|
{ 0,1,1,1,1,0,1,1 }, // = 9
|
|
{ 1,1,1,1,0,1,1,1 }, // = A
|
|
{ 1,1,0,0,1,1,1,1 }, // = B
|
|
{ 1,0,0,1,1,1,0,1 }, // = C
|
|
{ 1,1,0,0,1,1,1,1 }, // = D
|
|
{ 1,0,0,1,1,1,1,1 }, // = E
|
|
{ 1,0,0,1,0,1,1,1 }, // = F
|
|
{ 1,1,0,1,1,0,1,1 }, // = S
|
|
{ 0,0,0,0,0,0,0,0 }, // = NULL
|
|
{ 1,0,0,1,0,1,0,1 } // = R
|
|
};
|
|
|
|
Segment::Segment() {
|
|
for (int i=0; i<8; i++)
|
|
pinMode(6+i, OUTPUT);
|
|
}
|
|
|
|
/*void Segment::sevenSegWrite(byte digit) {
|
|
byte pin = 6;
|
|
for (byte segCount = 0; segCount < 8; ++segCount) {
|
|
digitalWrite(pin, !seven_seg_digits[digit][segCount]);
|
|
++pin;
|
|
}
|
|
}*/
|
|
|
|
void Segment::sevenSegWrite(char chr) {
|
|
byte pin = 6;
|
|
byte digit;
|
|
if(chr <= 9) digit = chr;
|
|
else if (chr <= 'f') digit = 10 + (chr -'a');
|
|
else if (chr == 's') digit = 16;
|
|
else if (chr == 'r') digit = 18;
|
|
else digit = Cls;
|
|
for (byte segCount = 0; segCount < 8; ++segCount) {
|
|
digitalWrite(pin, !seven_seg_digits[digit][segCount]);
|
|
++pin;
|
|
}
|
|
}
|
|
|
|
/*void Segment::BlinksevenSegWrite(byte digit) {
|
|
byte pin = 6;
|
|
for (byte segCount = 0; segCount < 8; ++segCount) {
|
|
digitalWrite(pin, !seven_seg_digits[digit][segCount]);
|
|
++pin;
|
|
}
|
|
delay(100);
|
|
sevenSegWrite((byte)17);
|
|
}*/
|
|
|
|
void Segment::BlinksevenSegWrite(char chr) {
|
|
byte pin = 6;
|
|
byte digit;
|
|
if(chr <= 9) digit = chr;
|
|
else if (chr <= 'f') digit = 10 + (chr -'a');
|
|
else if (chr == 's') digit = 16;
|
|
else digit = Cls;
|
|
for (byte segCount = 0; segCount < 8; ++segCount) {
|
|
digitalWrite(pin, !seven_seg_digits[digit][segCount]);
|
|
++pin;
|
|
}
|
|
delay(100);
|
|
sevenSegWrite(Cls);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|