Код: Выделить всё
#define seg_A PORTB_Bit3
#define seg_B PORTB_Bit6
#define seg_C PORTC_Bit1
#define seg_D PORTD_Bit7
#define seg_E PORTB_Bit1
#define seg_F PORTD_Bit1
#define seg_G PORTD_Bit5
#define seg_DP PORTB_Bit5
#define seg_1 PORTC_Bit0
#define seg_2 PORTB_Bit4
#define seg_3 PORTB_Bit2
#define seg_4 PORTB_Bit0
#define seg_5 PORTD_Bit6
#define seg_6 PORTB_Bit7
#define seg_7 PORTD_Bit2
#define seg_8 PORTD_Bit0
#define seg_out_A DDRB_Bit3
#define seg_out_B DDRB_Bit6
#define seg_out_C DDRC_Bit1
#define seg_out_D DDRD_Bit7
#define seg_out_E DDRB_Bit1
#define seg_out_F DDRD_Bit1
#define seg_out_G DDRD_Bit5
#define seg_out_DP DDRB_Bit5
#define seg_out_1 DDRC_Bit0
#define seg_out_2 DDRB_Bit4
#define seg_out_3 DDRB_Bit2
#define seg_out_4 DDRB_Bit0
#define seg_out_5 DDRD_Bit6
#define seg_out_6 DDRB_Bit7
#define seg_out_7 DDRD_Bit2
#define seg_out_8 DDRD_Bit0
#define segpins(a,b,c,d,e,f,g) ((a<<0)|(b<<1)|(c<<2)|(d<<3)|(e<<4)|(f<<5)|(g<<6))
const unsigned char __flash SEG_CODE [20] =
{
segpins(1,1,1,1,1,1,0),//0
segpins(0,1,1,0,0,0,0),//1
segpins(1,1,0,1,1,0,1),//2
segpins(1,1,1,1,0,0,1),//3
segpins(0,1,1,0,0,1,1),//4
segpins(1,0,1,1,0,1,1),//5
segpins(1,0,1,1,1,1,1),//6
segpins(1,1,1,0,0,0,0),//7
segpins(1,1,1,1,1,1,1),//8
segpins(1,1,1,1,0,1,1),//9
segpins(1,1,1,0,1,1,1),//A
segpins(0,0,1,1,1,1,0),//b
segpins(1,0,0,1,1,1,0),//C
segpins(0,1,1,1,0,1,1),//d
segpins(1,0,0,1,1,1,1),//E
segpins(1,0,0,0,1,1,1),//F
segpins(0,0,0,0,0,0,1), //- 16
segpins(0,0,1,0,1,0,1), //- n 17
segpins(0,0,0,0,0,0,0), //- 18
};
void LED_DRIVER(unsigned char num,unsigned char data)
{
seg_A = 0;
seg_B = 0;
seg_C = 0;
seg_D = 0;
seg_E = 0;
seg_F = 0;
seg_G = 0;
seg_DP = 0;
num ^= 0xFF;
seg_1 = num;
num>>=1;
seg_2 = num;
num>>=1;
seg_3 = num;
num>>=1;
seg_4 = num;
num>>=1;
seg_5 = num;
num>>=1;
seg_6 = num;
num>>=1;
seg_7 = num;
num>>=1;
seg_8 = num;
seg_A = data;
data>>=1;
seg_B = data;
data>>=1;
seg_C = data;
data>>=1;
seg_D = data;
data>>=1;
seg_E = data;
data>>=1;
seg_F= data;
data>>=1;
seg_G = data;
data>>=1;
seg_DP = data;
}
void INIT_LED_PORT(unsigned char num,unsigned char data)
{
seg_out_1 = num ;
num>>=1;
seg_out_2 = num ;
num>>=1;
seg_out_3 = num ;
num>>=1;
seg_out_4 = num ;
num>>=1;
seg_out_5 = num ;
num>>=1;
seg_out_6 = num ;
num>>=1;
seg_out_7 = num ;
num>>=1;
seg_out_8 = num ;
seg_out_A = data;
data>>=1;
seg_out_B = data;
data>>=1;
seg_out_C = data;
data>>=1;
seg_out_D = data;
data>>=1;
seg_out_E = data;
data>>=1;
seg_out_F= data;
data>>=1;
seg_out_G = data;
data>>=1;
seg_out_DP = data;
}