T4
#define digit1 PORTB.F6
#define digit2 PORTB.F7
unsigned char segment[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int i=6,j=0;
void interrupt()
{
j--;
if(j<0)
{
j=9;
i--;
}
if(i==0&&j==0)
{
T0CON.TMR0ON=0;
PORTB.F5=1;
}
TMR0H=0xC2;
TMR0L=0xF7;
INTCON.TMR0IF=0;
}
void main()
{
TRISB=0x01;
TRISC=0;
PORTB.F5=0;
T0CON=0x05;
TMR0H=0xC2;
TMR0L=0xF7;
INTCON.TMR0IE=1;
INTCON.TMR0IF=0;
INTCON.GIE=1;
while(1)
{
if(PORTB.F0==0)T0CON.TMR0ON=1;
digit1=0;digit2=1;
PORTC=segment[i];
delay_ms(50);
digit1=1;digit2=0;
PORTC=segment[j];
delay_ms(50);
}
}
ภาพจำลองการทำงานด้วยโปรแกรม Proteus
อธิบายการทำงานของโปรเเกรม
ไม่มีความคิดเห็น:
แสดงความคิดเห็น