Microişlemci kontrollu mini pnomatik pres - programlama yardım

Başlatan atmaca, 11 Mart 2015, 08:43:27

atmaca

Merhaba Arkadaşlar,
Fırsat buldukça picbasic ile pic programlama konusunda kendimi geliştirmeye çalışıyorum,  daha yolun başındayım, şimdiye kadar led animasyonu gibi basit projeler yaptım. Kendimi , uygulamalı geliştirmek üzere  işyerinde ihtiyacımız olan mini pnomatik bir presi yapmaya karar verdim. Mekanik tasarımlarını bitirdim ve kullanacağım elektronik parçaları da internetten araştırarak belirledim ve mekanik tasarıma adapte edebilmek için aldım.  Programlama konusunda takıldım kaldım. Pic Basic ile Programlama konusunda hangi yolu izlemeliyim, Ana hatları nasıl olmalı, program nasıl dallanmalıdır konu hakkında yardımcı olursanız sevinirim.
Presin çalışma sistemini aşağıdaki iki slaytda görebilirsiniz; Ayrıca Pic16f84 ile yaptığım örnek şemayı da görebilirsiniz.
Kısaca
Ayar; 7segment 2 digit katod display üzerinde presin kapalı kalma zamanı ayarlanır. Aynı anda Set ve yukarı tuşuna basılarak veya Aynı anda Set ve aşağı tuşuna basılarak ayarlanır.

1- kalıp parçası prese takıldığında 1 nolu switch sinyal alır.
2-Pres üzerinde 2 adet start butonu vardır. 1 nolu switch + 2 adet start butonuna basıldığında pres kapanır.
3-Pres aşağı son pozisyonuna geldiğinde 2 nolu switch sinyal alır ve 7 segment ekranda sayıcı sayar. Daha önce set edilen değere geldiğinde pres otomatik yukarı kalkar.

Malzemelerim;
Mikroişlemci:   PIC 18F4520,
Display:   2x 7 segment katod,
Delikli plaket   10x17 ,
Röle:    12V 2 kanal röle kartı,
Optocopler   MOC 3083 ,
Soket   precision - 40lı ,
Entegre   CD 4511 ,
Regulatör   7805CV ,
Trafo   2x12V 8W ,
Diyot , Resistance   ,
Pnomatik silindir,
Pnomatik valf  : 5/2 selenoid










atmaca

Merhaba arkadaşlar, Konu ile ilgili bir ön çalışma yaptım fakat derleme hatası meydana geldi. Hazırladığım program doğru mudur. yardımcı olabilir misiniz?



@ __CONFIG    _CONFIG1H, _OSC_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
@ __CONFIG    _CONFIG2H, _WDT_ON_2H & _WDTPS_512_2H
@ __CONFIG    _CONFIG3H, _CCP2MX_PORTC_3H & _PBADEN_OFF_3H & _LPT1OSC_OFF_3H & _MCLRE_ON_3H
@ __CONFIG    _CONFIG4L,  _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L


TrisA=%11111111 
TrisB=%00000000
TrisC=%00000000  
TrisD=%00000000  
TrisE=%00000000

PortA=0
PortB=0 
PortC=0 
PortD=0  

Symbol TUSA=PORTA.0
SYMBOL TUSB=PORTA.1
SYMBOL SET=PORTA.2
SYMBOL START=PORTA.3
SYMBOL SW1=PORTA.4
SYMBOL SW2=PORTA.5
SYMBOL ROLE=PORTB.6

SAYI     var byte
TMR      VAR BYTE

BIRLER   VAR BYTE
ONLAR    VAR BYTE   

SAYI=0
TMR=0


'--------------------------------------------------


BASLA:
      IF START=0 aND SW1=0 THEN PRES        
      IF SET=0 THEN AYAR           
      GOTO BASLA  

AYAR: 

      IF TUSA=0 AND SET=0 THEN      
      SAYI=SAYI+1 
      PAUSE 200
      IF SAYI=100 THEN SAYI=99 
      ENDIF       
   
      IF TUSB=0 AND SET=0 THEN 
      SAYI=SAYI-1
      PAUSE 200
      IF SAYI=255 THEN SAYI=0
      ENDIF   
        
      BIRLER=SAYI DIG 0
      ONLAR= SAYI DIG 1
      
      PORTB=240 | BIRLER
      LOW PORTB.5
      PAUSE 1
      HIGH PORTB.5
      PAUSE 1
    
      PORTB=240 | ONLAR
      LOW PORTB.4
      PAUSE 1
      HIGH PORTB.4
      PAUSE 1
      GOTO AYAR
      END
      GOTO BASLA
      
 PRES:
 HIGH ROLE 
 PAUSE 200
 TMR=SAYI
 IF SW2=0 THEN TMR=TMR-1
 PAUSE 1000
 IF TMR=0 THEN LOW ROLE
 END
 GOTO BASLA