//PORTC=0B 0 0 X1 V1 D1 X2 V2 D2; //PORTB=LED7SEG duong 1; //PORTD=LED7SEG duong 2; //PM : MPLAB + MCC18 + PROTEUS 8.6 ; //Dung pic18f4520 // l------x1=20s-----l--v1=3s--l----------------------d1=30s-------------------l; // l------------d2=23s------------l----------------x2=27s------------l--v2=3s--l; // d2=x1+v1; d1=x2+v2; // cac so trong ctrinh chi la lay vi du; #include #include #include #pragma config OSC = HS #pragma config MCLRE = ON #pragma config WDT = OFF int x=53; signed char i,j,tt,led0,led1,led2,led3; unsigned char so[] ={0xc0,0xf9,0xA4,0xB0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; char m[10]; void giai_ma() { led0=so[i/10]; led1=so[i%10]; led2=so[j/10]; led3=so[j%10]; } void hien_thi() { giai_ma(); PORTB=led0; PORTD=led2; PORTA=0b00001010; Delay1KTCYx(50); PORTA=0x0f; PORTB=led1; PORTD=led3; PORTA=0b00000101; Delay1KTCYx(50); PORTA=0x0f; } void delay_hienthi(unsigned int h) { unsigned int l; for(l=0;l33) { PORTC=0b00100001; //den x1 va d2 sang i=x-34; //den x1 sang 20s j=x-31; //den d2 sang 23s delay_hienthi(10); } else if (x>30) { PORTC=0b00100010; //den v1 va d2 sang i=x-31; //den v1 sang 3s j=x-31; //den d2 sang 23s delay_hienthi(10); } else if (x>3) { PORTC=0b00001100; //den d1 va x2 sang i=x-1; //den d1 sang 30s j=x-4; //den x2 sang 20s delay_hienthi(10); } else if (x>0) { PORTC=0b00010100; //den v1 va d2 sang i=x-1; //den d1 sang 30s j=x-1; //den v2 sang 3s delay_hienthi(10); } } //chuong trinh chinh void main (void) { TRISA=TRISB=TRISC=TRISD=0X00; ADCON1=0X0F; while(1) { den_nga_4(); } }