Version:0.9 StartHTML:0000000105 EndHTML:0000013372 StartFragment:0000001072 EndFragment:0000013356 mikroElektronika
program VM142DEMO


     const  INPUT4 = $0 'PORT A I/O's
            INPUT3 = $1
            INPUT2 = $2
            INPUT1 = $3
            DiagLed = $5
            Buzzer  = $0 'PORT C I/O's
            Relay   = $1
            OUTPUT4 = $2
            OUTPUT3 = $3
            OUTPUT2 = $4
            OUTPUT1 = $5
            
      dim x,y as byte
      dim PWM_ON_time,PWM_OFF_time,brightness as word

      'Procedure used by PWM demo.
      sub procedure fire_lamp
        PWM_ON_Time = brightness
        PWM_OFF_TIME = (100 - brightness)
        for x = 1 to 100
          setbit(PORTC,OUTPUT4)
          delay_cyc(PWM_ON_time)
          clearbit(PORTC,OUTPUT4)
          delay_cyc(PWM_OFF_time)
        next x
     end sub


main:
    TRISA = %001111     'RA4,5 are output, RA0-3 are inputs.
    TRISC = 0           ' Configure all pins of PORTC as output
    PORTA = 0
    PORTC = 0           ' Turn OFF all output's on PORTA and C.

    goto  PWM_dimmer_demo
    
    
   'Demo 1: Flashing LED (Diag LED on VM142 module).
   flashing_diag_led:
      while true                   'repeat loop forever
          setbit (PORTA,diagled)   'Set Diag LED ON
          delay_ms(50)             'Wait 50mS
          clearbit (PORTA,diagled) 'Set Diag LED OFF
          delay_ms(500)            'Wait 500mS (0,5sec).
      wend

   'Demo 2:Running Light.
   running_light:
      for x = 2 to 5
          setbit (PORTC,x)
          delay_ms(200)
          clearbit (PORTC,x)
      next x
   goto running_light
   
   
   'Demo 3:PWM dimmer Demo for VM142 (fade Lamp on Output 4)
   PWM_dimmer_demo:

        for brightness = 2 to 96 step 2
            fire_lamp()
        next brightness
        'fading down now...
        while brightness > 2
            fire_lamp()
            brightness = brightness - 2
        wend
        
   goto PWM_dimmer_demo
   
end.