Большое спасибо за ссылку. Я посмотрел там целый мини курс по Proteus получается, я даже его захотел пройти, но обнаружил, что в схеме применяются элементы, которые я еще не изучил, поэтому вернусь к этому чуть позже.
По поводу моей проблемы, немного поэкспериментировав я понял, что дело не в том, что порты разные, дело в количестве команд.
Просто когда разряды подключены к одному порту, они гасятся всего одной командой, например:
PORTC &= ~((1<<3)|(1<<2)|(1<<1)|(1<<0));
и Протеус, в данном случае выполняет гашение всех разрядов одновременно.
Но, если написать вот так, то разряды (визуально) начинают отключаться по-очереди
PORTC &= ~(1<<3);
PORTC &= ~(1<<3);
PORTC &= ~(1<<1);
PORTC &= ~(1<<0);
Хотя, как мне кажется, в реальности при частоте 1MHz, время выполнения (грубо говоря) одного такта (PORTC &= ~((1<<3)|(1<<2)|(1<<1)|(1<<0)) и четырёх PORTC &= ~(1<<3); PORTC &= ~(1<<3); PORTC &= ~(1<<1); PORTC &= ~(1<<0); столь не значительно, что сигнал на пинах должен появляться мгновенно и одновременно.
Но Протеус думает иначе...
Кстати, на ответ "Ну и записывай всё одной командой", сразу скажу, что разумеется для одного порта так и делаю, но вот если сегменты будут на разных портах, например так:
PORTC &= ~((1<<3)|(1<<2));
PORTD &= ~((1<<1)|(1<<0));
то как записать это одной командой мне неизвестно и кажется что вообще вряд ли возможно, хотя может кто-то подскажет...
Речь по настройки самого индикатора?