
'****************************************************************
'*  Fáljnév : jelzolampa_V2_PIC16F676.pbp                       *
'*  Készítő : Szabó Zorán Imre                                  *
'*  Date    : 2013.07.04.                                       *
'*  Version : 2.0                                               *
'*  Notes   : A kikapccsolt állapotból nem lehet kilépni        *                               
'*          :                                                   *
'****************************************************************

'alapbeállítások:
INCLUDE "bs2defs.bas"

define osc 4   '4 MHz oscillátor

DEFINE BUTTON_PAUSE 50 ' button debounce delay is 50ms

input porta.4
input porta.5

gosub   oszz_low

'DEFINE DEBUG_REG PORTa     'Debug pin port 
'DEFINE DEBUG_BIT 2         'Debug pin bit 
'DEFINE DEBUG_BAUD 2400     'Debug baud rate 
'DEFINE DEBUG_MODE 1        'Debug mode: 0 = True, 1 = Inverted 
'DEFINE DEBUG_PACING 1000   'Debug character pacing in us 

clear

'cimkézés:

gy_p    var     portc.1
gy_z    var     portc.2
gy_s    var     porta.5

a_z     var     portc.3
a_n     var     portc.4
a_p     var     portc.5

power   var     porta.4

power_b     var     byte
gy_b        var     byte
power_b2    var     byte
gy_b2       var     byte
viszza_w    var     byte
gy_b3       var     byte

villog      con     500             'villogás sebessége
valtas      con     2000            'egyik lámpáról a másikra való késleltetés
gy_var      con     10000           'gyalogosok átsétálásának ideje
megallas    con     2000            'pirosra váltás után a következő kapcsolásig eltelt idő



'debug "Inditas", cr
pause 500
'debug "Hello Vilag!", cr
pause 500



' ********************* Fő programrész ************************
start: 
       button power, 1, 255, 0, power_b, 0, kikapcsolva
       goto start

'************************ Alprogramok *************************


Bekapcsolva:
        button gy_s,  1, 255, 0, gy_b,  0, ngy
        button gy_s,  0, 255, 0, gy_b2,  1, gyv
        button power, 1, 255, 0, power_b2, 0, kikapcsolva
        
        goto start


kikapcsolva:
            gosub   oszz_low
'            debug   "kikapcsolva", cr
ki:         pause   villog
            high    a_n
            pause   villog + 10
            low     a_n
            button power, 1, 255, 0, power_b2, 0, ki
'            debug   "bekapcsolva", cr
            goto    bekapcsolva


ngy:                          'nincs gyalogos
'    debug   "gyalogos alj auto mehet",cr
    high    gy_p
    high    a_z
    button  gy_s, 0, 255, 0, gy_b, 1, oszz_low
    gosub   Bekapcsolva



 
gyv:                        ' van gyalogos
'    debug   "Autok megallitasa", cr           
    low     a_z             'autó zöld lámpa ki
    high    a_n             'autó narancs lámpa be
    pause   valtas          'vár
    low     a_n             'autó narancs lámpa ki
    high    a_p             'autó piros lámpa be
'    debug   "Autok megallitva", cr
    pause   megallas        'vár
'    debug   "Gyalogosok indulhatnak", cr
    low     gy_p            'gyalogos piros lámpa ki
    high    gy_z            'gyalogos zöld lámpa be
'    debug   "varok amig at nem ernek", cr
    pause   gy_var          'vár míg át nem sétálnak
'    debug   "villog a gyalogosok zold lampaja --> gyalogosok megallitasa", cr
    low     gy_z            'gyalogos zöld lámpa villogatás
    pause   villog
    high    gy_z
    pause   villog
    low     gy_z            
    pause   villog
    high    gy_z
    pause   villog
    low     gy_z            
    pause   villog
    high    gy_z
    pause   villog
    low     gy_z            
    pause   villog
    high    gy_z
    pause   villog
    low     gy_z            
    pause   villog
    high    gy_z
    pause   villog
'    debug   "gyalogosok megallitva", cr
    low     gy_Z            'kikapcsolja a gyalogos zöld lámpát
    high    gy_p            'gyalogos piros lámpa be
'    debug   "Autok elinditasa", cr
    pause   valtas          'vár
    high    a_n             'autó narancssárga lámpa be (a piros és a narancs egyszerre)
    pause   valtas          'vár
    low     a_p             'autó piros lámpa ki
    low     a_n             'autó narancs lámpa ki
    high    a_z             'zöld lámpa be
'    debug   "autok elinditva", cr
    
    goto start
    
oszz_low:
'    debug   "B port 0,1,2,3,4 labai alacsony szinten", cr
    low     portb.0
    low     portb.1
    low     portb.2
    low     portb.3
    low     portb.4
    
    return    
            
end




