1
2
3
4
5
6
7
8
9
10
11
12
13
14#include <SPI.h>
15#include <SoftPWM.h>
16
17int dm134_clock = 13;
18int dm134_latch = 10;
19int dm134_data = 11;
20int dm134_OE = 9;
21
22int brightness = 5;
23int brt = 0;
24
25long int cnt = 0;
26unsigned long previousMillis = 0;
27const long interval = 10;
28
29unsigned char Data[] = {0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b};
30
31byte ssddigits[10] =
32{
33 B01111110,
34 B00001100,
35 B10110110,
36 B10011110,
37 B11001100,
38 B11011010,
39 B11111010,
40 B01001110,
41 B11111110,
42 B11011110,
43};
44
45byte ssddigitsDP[10] =
46{
47 B01111111,
48 B00001101,
49 B10110111,
50 B10011111,
51 B11001101,
52 B11011011,
53 B11111011,
54 B01001111,
55 B11111111,
56 B11011111,
57};
58
59void setup()
60{
61
62 pinMode (dm134_clock, OUTPUT);
63 pinMode (dm134_latch, OUTPUT);
64 pinMode (dm134_data, OUTPUT);
65 pinMode (dm134_OE,OUTPUT);
66 digitalWrite(dm134_OE,LOW);
67 setBrt();
68 SoftPWMBegin();
69 SoftPWMSet(9, 0);
70 SoftPWMSetPercent(9, brt);
71
72}
73
74void setBrt()
75
76{
77 if (brightness == 1)
78 brt = 90;
79
80 else if (brightness == 2)
81 brt = 75;
82
83 else if (brightness == 3)
84 brt = 50;
85
86 else if (brightness == 4)
87 brt = 30;
88
89 else if (brightness == 5)
90 brt = 0;
91}
92
93void loop()
94{
95 unsigned long currentMillis = millis();
96
97 if (currentMillis - previousMillis >= interval)
98 {
99 previousMillis = currentMillis;
100 cnt++;
101 }
102
103 if (cnt == 999999)
104 {
105 cnt = 0;
106 }
107
108
109
110 displayNum();
111}
112
113void displayNum()
114{
115
116
117
118long int num = cnt;
119
120
121int dig5 = num % 10;
122
123int dig4 = (num / 10) % 10;
124
125int dig3 = (num / 100) % 10;
126
127int dig2 = (num / 1000) % 10;
128
129int dig1 = (num / 10000) % 10;
130
131int dig0 = (num / 100000) % 10;
132
133SPI.beginTransaction(SPISettings(8000000, LSBFIRST, SPI_MODE0));
134digitalWrite(dm134_latch,LOW);
135SPI.transfer(ssddigits[dig0]);
136SPI.transfer(ssddigitsDP[dig1]);
137SPI.transfer(ssddigits[dig2]);
138SPI.transfer(ssddigitsDP[dig3]);
139SPI.transfer(ssddigits[dig4]);
140SPI.transfer(ssddigits[dig5]);
141digitalWrite(dm134_latch,HIGH);
142SPI.endTransaction();
143
144
156
157}