This
void send_strip(uint32_t data)
{
int i;
unsigned long j=0x800000;
for (i=0;i<24;i++)
{
if (data & j)
{
DATA_1;
is invoking the macro #defined at the top:
#define DATA_1 (PORTC |= 0X01) // DATA 1 // for UNO
which is doing direct port manipulation on PORTC.