- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
class Display
{
public:
//pin 10_CS_LOAD pin 11_DIN pin 13_CLK
const int CS = 10;//CS на 10 пине
void R1_R2 (char x,char y)//метод вывода чисел 0-99 в разряды 1,2 c гашением нуля
{
char k1,k2;
if(x<10)
{
if(y==1) //если включена точка
{ SPI_out(2, arr_seg[x]+128);} //вывести число во второй разряд с точкой
else//выключена точка
{ SPI_out(2, arr_seg[x]);} //вывести число во второй разряд без точки
SPI_out(1, 0 );//в первый записать все нули ,и погасить его
return; //завершить метод
}
else
{
k1=0;
k2=x; while (k2>=10) {k1++; k2=k2-10;}
SPI_out(1,arr_seg[k1]); //вывести число в первый разряд
if(y==1) //если включена точка
{SPI_out(2,arr_seg[k2]+128);} //вывести число во второй разряд c точкой
else{SPI_out(2,arr_seg[k2]);} //без точки
}
}
void R2_R3 (char x)//метод вывода чисел 0-99 в разряды 2,3 (темепература)
{
char k1,k2;
if(x<10)
{
SPI_out(2,0); //пробел во второй разряд
SPI_out(3,arr_seg[x]); //вывести число в третьий разряд
}
else {
k1=0;
k2=x; while (k2>=10) {k1++; k2=k2-10;}
SPI_out(2,arr_seg[k1]); //вывести число во второй разряд без точки
SPI_out(3,arr_seg[k2]); //вывести число в третьий разряд
}
}
void R3_R4 (char x,char y)//метод вывода чисел 0-99 в разряды 3,4
{
char k1,k2;
k1=0;
k2=x; while (k2>=10) {k1++; k2=k2-10;}
if(y==1) //если включена точка
{ SPI_out(3,arr_seg[k1]);} //вывести число в третьий разряд без точки
else
{SPI_out(3,arr_seg[k1]+128); }//вывести число в третьий разряд с точкой
SPI_out(4,arr_seg[k2]); //вывести число в четвертый разряд
}
void R1 (unsigned char x,boolean p) //метод для отрисовки в первом разряде
{
if(p==true) //если активированна точка
{ SPI_out(1, arr_seg[x]+128 );} //вывести в первый разряд число по № из массива
else {SPI_out(1, arr_seg[x]);}
}
void R2 (unsigned char x,boolean p) //метод для отрисовки во втором разряде
{
if(p==true) //если активированна точка
{ SPI_out(2, arr_seg[x]+128 );} //вывести в первый разряд число по № из массива
else {SPI_out(2, arr_seg[x]);}
}
void R3 (unsigned char x,boolean p) //метод для отрисовки в третьем разряде
{
if(p==true) //если активированна точка
{ SPI_out(3, arr_seg[x]+128 );} //вывести в первый разряд число по № из массива
else {SPI_out(3, arr_seg[x]);}
}
void R4 (unsigned char x,boolean p) //метод для отрисовки в четвертом разряде
{
if(p==true) //если активированна точка
{ SPI_out(4, arr_seg[x]+128 );} //вывести в первый разряд число по № из массива
else {SPI_out(4, arr_seg[x]);}
}
//метод отрисовки во всех разрядах сразу
void allraz (unsigned char a,unsigned char b,unsigned char c,unsigned char d)
{
SPI_out(1, arr_seg[a]);
SPI_out(2, arr_seg[b]);
SPI_out(3, arr_seg[c]);
}