السلام عليكم
ممكن مساعدة في زيادة عدة register 74hc595 في هدا البرنامج لاشعال 24 لاد
هدا البرنامج يحتوي على مزيح واحد
وشكرا
#define SHIFT_CLOCK PORTC.F2
#define SHIFT_LATCH PORTC.F1
#define SHIFT_DATA PORTC.F0
void shiftdata595
(unsigned char _shiftdata)
{
unsigned int i;
unsigned char temp;
temp = _shiftdata;
i=8;
while (i>0)
{
if (temp.F7==0)
{
SHIFT_DATA = 0;
}
else
{
SHIFT_DATA = 1;
}
temp = temp<<1;
SHIFT_CLOCK = 1;
Delay_us(1);
SHIFT_CLOCK = 0;
i--;
}
}
void latch595()
{
SHIFT_LATCH = 1;
Delay_us(1);
SHIFT_LATCH = 0;
}
void main()
{
char x;
PORTC=0;
TRISC=0;
while(1)
{
shiftdata595(0b00000001); //a1
latch595();
delay_ms(100);
shiftdata595(0b00000010);
latch595();
delay_ms(100);
shiftdata595(0b00000100);
latch595();
delay_ms(100);
shiftdata595(0b00001000);
latch595();
delay_ms(100);
shiftdata595(0b00010000);
latch595();
delay_ms(100);
shiftdata595(0b00100000);
latch595();
delay_ms(100);
shiftdata595(0b01000000);
latch595();
delay_ms(100);
shiftdata595(0b10000000);
latch595();
delay_ms(100);
for (x=0;x<4;x++)
{
shiftdata595(0b00000011); //b1
latch595();
delay_ms(100);
shiftdata595(0b00000110);
latch595();
delay_ms(100);
shiftdata595(0b00001100);
latch595();
delay_ms(100);
shiftdata595(0b00011000);
latch595();
delay_ms(100);
shiftdata595(0b00110000);
latch595();
delay_ms(100);
shiftdata595(0b01100000);
latch595();
delay_ms(100);
shiftdata595(0b11000000);
latch595();
delay_ms(100);
shiftdata595(0b00000000);
latch595();
delay_ms(100);
}}
}