/* 7-Segmet LED Control attiny13a 9.6MHz 2015/1/12 BY M.Kikuchi Last 1/26 360 bytes config 76 ff */ char I_cnt,SU,LED_Temp; char temp; unsigned int m_cunter; char LED_code[]={ // SU to 7segment data 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; char com[]={ // 7segment control data 0xd1,0xb1,0x71,0xe2,0xb2,0x72,0xc4,0x31}; void main() { DDRB = 0b00000001; PORTB= 0; SU=0; LED_Temp=LED_code[SU]; // Copy & keep // m_cunter=0; while (1) { if (I_cnt !=0) LED_Temp >>= 1; if ((LED_Temp & 1)==0) PORTB=0; // Loop over else { temp = com[I_cnt]; temp &= 0xf0; DDRB = ((temp >> 3) | 1); temp = com[I_cnt]; temp &= 0x0f; PORTB=temp << 1; // PB4,3,2,1 } I_cnt ++; if (I_cnt==7) { I_cnt =0; LED_Temp=LED_code[SU]; } // Delay_ms(1); m_cunter++; if (m_cunter==500) { m_cunter=0; SU++; if (SU==10) SU=0; I_cnt=0; LED_Temp=LED_code[SU]; } } }