; Aansturen 3 digit LED display
; By Rick Companje (www.companje.nl)
; Date: 2 maart 2006
; Controller: PIC 18F4520
; Display: LTC571HR (ooit uit digitale weegschaal gesloopt geloof ik)
; Compiler: JAL 4.62

include f4520_40
include jlib

var byte d1 = 0, d2 = 0, d3 = 0

pin_a0_direction = output
pin_a1_direction = output
pin_a2_direction = output
port_d_direction = all_output

procedure setDigit( byte in col, byte in number) is

        ; -- activeer juiste digit op het LED display
        if col == 1 then port_a = 253
        elsif col == 2 then port_a = 254
        elsif col == 3 then port_a = 251
        end if
       
        ; -- activeer de juiste LEDs per cijfer
        if number == 0 then port_d = 63
        elsif number == 1 then port_d = 12
        elsif number == 2 then port_d = 91
        elsif number == 3 then port_d = 94
        elsif number == 4 then port_d = 108
        elsif number == 5 then port_d = 118
        elsif number == 6 then port_d = 119
        elsif number == 7 then port_d = 28
        elsif number == 8 then port_d = 127
        elsif number == 9 then port_d = 126
        end if
       
        ; -- wacht een milliseconde anders zie je geen verandering
        delay_1ms(1)
       
end procedure


forever loop

        ; -- getal ophogen
        d3 = d3 + 1
       
        ; -- tiental 1 ophogen indien nodig
        if d3 > 9 then
                d3 = 0
                d2 = d2 + 1
        end if
       
        ; -- honderdtal 1 ophogen indien nodig
        if d2 > 9 then
                d2 = 0
                d1 = d1 + 1
        end if
       
        ; -- indien getal >999 dan weer naar 0
        if d1 > 9 then
                d1 = 0
        end if

        ; -- toon de drie cijfers van het getal op het LED display en vertraag het tellen
        for 100 loop
                setDigit(1,d1)
                setDigit(2,d2)
                setDigit(3,d3)
        end loop
       
end loop