Stap 7: Software instellen met behulp van niveau omhoog en omlaag
Hieronder een code instellen het licht niveau met omhoog en omlaag. Het maakt gebruik van een timer waarmee wordt gecontroleerd op de tijd die nodig is om te leiden tot de TRIAC, in plaats van het wachten in een lus vertraging
// //Controlling AC with a 8051 //Untested Code //Compiles with MicroC Pro for 8051 int dimming; int x; int i; void ex0_isr(void) iv IVT_ADDR_EX0 ilevel 0 ics ICS_AUTO { /*===================================================*/ int dimtime=(75*dimming); //delay_us(dimtime); P0=0xFF; // sets entire PORT 0 high, can also use e.g. P0_1 =1 ; delay_us(10); //propagationdelay P0=0x00; } void delay(int maal){ for (x=1; x< maal; x++) { delay_us(75); // 65 for 60Hz } } /*===================================================*/ void main() { /*------------------------ Configure INT0 (external interrupt 0) to generate an interrupt on the falling-edge of /INT0 (P3.2). Enable the EX0 interrupt and then enable the global interrupt flag. ------------------------------------------------*/ IT0_bit =1; // Configure interrupt 0 for falling edge on /INT0 (P3.2) EX0_bit = 1; // Enable EX0 Interrupt EA_bit = 1; // Enable Global Interrupt Flag P0 = 0x00; //all pin of PORT0 declared as output while (1) { for(i=5;i<128;i++){ dimming=i; delay(10);//arbitrary delay between steps } } }