Mấy anh chị có thể giải thích giùm em cái phần mà có 4 cái npn không ạ..em không hiểu lắm phần chọn mạch ở đó @@... với lại tại sao mình phải làm như thế mà không cắm luôn vào PORT nào đó luôn để dễ điều chỉnh ạ? Mà cho em hỏi là nếu muốn cho đếm từ 0->9 thì mình nên lập trình như thế nào ạ em code thử như vầy mà mô phỏng ra toàn cái gì đâu không à 
Code:
void main(void) {
ANSEL = 0;
ANSELH = 0;
TRISC = 0x00;
unsigned char led_data[]={0x7e,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b}; //0,1,2,3,4,5,6,7,8,9
while (1) {
int i,a;
for (i=0;i<=9;i++)
{
a=led_data[i];
PORTC=a;
__delay_ms(500);
}
}
}
... em không hiểu sao mà 4 bit lại qua kia trở thành 8 bit hiện số như mình muốn được, mong các anh chị giải thích giùm em ạ
...tại em còn gà lắm
...chưa học về mấy cái này ạ :">