#define LED_D GPIO_Pin_7 // 74HC595 Data pin
#define LED_C GPIO_Pin_5 // 74HC595 Clock pin
#define LED_W GPIO_Pin_6 // 74HC595 Write pin
// Data to display on LED 7-seg
const uint8_t LED_data[] = { 0x6f, //01101111 0
0x28, //00101000 1
0x5d, //01011101 2
0x7c, //01111100 3
0x3a, //00111010 4
0x76, //01110110 5
0x77, //01110111 6
0x2c, //00101100 7
0x7f, //01111111 8
0x7e, //01111110 9
0x00, //00000000 space
0x17, //00010111 F
0x80, //10000000 .
0x67, //01100111 G
0x53, //01010011 t
0x47, //01000111 C
};
main {
...
/* Initialize 74HC595 pins Out Push-Pull */
GPIO_InitStructure.GPIO_Pin = LED_D|LED_C|LED_W;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA, LED_D|LED_C|LED_W);
...
LED_write(LED_data[8]);
...
}
void LED_write(uint8_t disp){
uint8_t i;
//bit banging
for(i=0; i<8; i++)
{
if ( disp & 0x80)
GPIO_ResetBits(GPIOA, LED_D);
else GPIO_SetBits(GPIOA, LED_D);
disp = disp <<1;
GPIO_SetBits(GPIOA, LED_C);
GPIO_ResetBits(GPIOA, LED_C);
}
GPIO_SetBits(GPIOA, LED_W);
GPIO_ResetBits(GPIOA, LED_W);
}
Nahoru