Limiter TLF poziva

Završeni projekti naših članova foruma sa pratećom dokumentacijom za ponovnu izradu istog.

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
User avatar
WhiteHead
Pravi forumaš
Pravi forumaš
Posts: 1625
Joined: 28-06-2007, 18:36
Location: 75,35k; B&H

Limiter TLF poziva

Post by WhiteHead »

Ideja stara više od godinu dana.
http://www.elektronika.ba/forum/viewtop ... 208#p77208

Rađeno u suradnji sa @alexa_pg koji je postavio hardversku koncepciju.
Zadatak uređaja je da zabrani određenu vrstu TLF poziva, odnosno u ovom slučaju brojeve koji su duži od 6 cifara. Kod nas u BiH se to odnosi na međugradske i pozive na mobitele.
To ograničenje se može postaviti ili ukloniti ukucavanjem šifre preko brojčanika telefona.
Uređaj je tek urađen i u fazi je testiranja, za sada nema problema i ubrzo će zauzeti svoje mjesto na tavanu na TLF liniji nakon ADSL splitera.
Uređaj kontroliše samo MFC (DTMF) biranje a ne i dekadno, kada bih ga ponovo radio, povezao bih signal mimo DTMF receivera na jedan slobodni pin na PIC-u, pa bi se dekadno biranje moglo takođe "obrađivati" ili potpuno zabraniti.
Evo najjednostavnijeg kod-a za rad ovog "stroja"

Code: Select all

@ DEVICE pic16f84a,XT_OSC,WDT_OFF,PROTECT_OFF 'definicija konfiguracije
DEFINE OSC 4            'definicija oscilatora
TRISA=8                 'samo RA3 ulazni 
TRISB=255               'PortB  ulazni
low  OPTION_REG.7       'postavljanje pull-up na portB
symbol TelOFF=Porta.2   'prekid TLF veze
symbol CitaJ=Porta.3    'signal za citanje PortB 
rB var byte             'redni broj cifre u pozivanom TLF broju
nST var bit             'novo stanje ulaza
sST var bit             'staro stanje ulaza
DozvolA var byte        'pozivi bez ogranicenja  - cita iz eproma
NumE var word
'vrijednost na PORTB u zavisnosti od stisnute tipke
'--------------------------------------------------------------
'0-245      1-248       2-244     3-252     4-242       5-250
'6-246      7-254       8-241     9-249     #-243       *-253
'--------------------------------------------------------------
MaiN:
read 0,dozvola       'cita stanje ogranicenja iz eproma
rb=0 :nume=0 :sst=0 :teloff=0 'postavi TLF na start biranja i promjenjivu za smjestaj
'-----------------------------------
Petlja:
nst=citaj                               'postoji li DTMF signal
if nst>sst then                         'ako postoji...
  if PORTB=243 then sst=nst:goto EpromIO 'ako je ocitan znak # idi na EpromIO
  if dozvola=1 then goto petlja         'ako nema ogranicenja vrati se na pocetak
  rb=rb+1                               'uvecaj brojac za jedan
  if  rb>6  then  goto prekid           'ako je birano vise od sest cifri 
endif                                   'kraj uslova za pojavu DTMF signala
sst=nst                                 'izjednaci promjenjive
goto petlja                             'povrat na ocitanje nove cifre
'----------------------------------------
EpromIO:                                'potprogram za citanje/upis eproma
  nst=citaj                             'postoji li DTMF signal
  if nst>sst then                       'ako postoji...
     nume=nume+PORTB                    'uvecaj promjenjivu za vrijednost PORTB
     select case nume                   'u zavisnosti od vrijednosti promjenjive
      case 490                          'ocitano 00 - pozivi ograniceni
        write 0,0                       'upisi nulu u eprom
        pause 10                        'pauziraj radi sigurnog upisa
        goto prekid                     'prekini vezu
       case 496                         'ocitano 11 - bez ogranicenja
        write 0,1                       'upisi jedinicu u eprom
        pause 10                        'pauziraj radi sigurnog upisa
        goto prekid                     'prekini vezu
       case is>500                      'ako sucajno promasi ocitanje
        goto prekid
     end select 
  endif
  sst=nst                               'izjednaci promjenjive
  goto epromio                          'povrat na ocitanje nove cifre
'--------------------------------------
PrekiD:
teloff=1
pause 300
goto main  
end
U ovom programu sifra za "skidanje" ogranicenja je #11, a za postavljenje #00
Mogućnosti su bezbrojne, mogli bi se zabraniti ili dopustiti samo određeni brojevi...mogli bi se zabranjeni (dopušteni) brojevi unositi u eprom PIC-a putem TLF brojčanika...itd.
Volio bih kada bi neki bolji programer pokušao napisati neki zbilja ozbiljniji program, ili barem da da ideju, pa da probam.

U prilogu su PCB u PDF-u i Layout-u i sema.
Attachments
Limiter.rar
(52.72 KiB) Downloaded 321 times
Ako kaniš pobijediti, ne smiješ izgubiti
Post Reply