-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSSD4.cpp
84 lines (73 loc) · 1.81 KB
/
SSD4.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#include "SSD4.h" //include the declaration for this class
int segs [7] = {0,0,0,0,0,0,0};
const byte numbers [10] = {0b1111110, 0b0110000, 0b1101101, 0b1111001, 0b0110011, 0b1011011,0b1011111, 0b1110000, 0b1111111, 0b1111011 };
int CC1, CC2, CC3, CC4;
//<<constructor>>
SSD4::SSD4(int A,int B,int C,int D,int E,int F_SEG,int G,int comc1,int comc2,int comc3, int comc4){
segs[0] = A;
segs[1] = B;
segs[2] = C;
segs[3] = D;
segs[4] = E;
segs[5] = F_SEG;
segs[6] = G;
for(int i = 0; i<7 ; i++){
pinMode(segs[i],OUTPUT);
}
CC1 = comc1;
CC2 = comc2;
CC3 = comc3;
CC4 = comc4;
pinMode(CC1,OUTPUT);
pinMode(CC2,OUTPUT);
pinMode(CC3,OUTPUT);
pinMode(CC4,OUTPUT);
}
//other methods
void SSD4::lightFourDigits(int number,int dly){
for(int j=0;j<dly/8;j++){
lightDigit1(number/1000);
delay(2);
lightDigit2((number/100)%10);
delay(2);
lightDigit3((number/10)%10);
delay(2);
lightDigit4(number%10);
delay(2);
digitalWrite(CC4, HIGH);
}
}
void SSD4::lightDigit1(int digit) {
digitalWrite(CC2, HIGH);
digitalWrite(CC1, LOW);
digitalWrite(CC3, HIGH);
digitalWrite(CC4, HIGH);
lightSegments(digit);
}
void SSD4::lightDigit2(int digit) {
digitalWrite(CC2, LOW);
digitalWrite(CC1, HIGH);
digitalWrite(CC3, HIGH);
digitalWrite(CC4, HIGH);
lightSegments(digit);
}
void SSD4::lightDigit3(int digit) {
digitalWrite(CC2, HIGH);
digitalWrite(CC1, HIGH);
digitalWrite(CC3, LOW);
digitalWrite(CC4, HIGH);
lightSegments(digit);
}
void SSD4::lightDigit4(int digit) {
digitalWrite(CC2, HIGH);
digitalWrite(CC1, HIGH);
digitalWrite(CC3, HIGH);
digitalWrite(CC4, LOW);
lightSegments(digit);
}
void SSD4::lightSegments(int digit) {
for (int i = 0; i < 7; i++) {
int bit = bitRead(numbers[digit], 6-i);
digitalWrite(segs[i],bit);
}
}