basic yardım ??

Başlatan Fixxer, 19 Nisan 2007, 23:45:01

Fixxer

Kolay gelsin arkadaşlar kafam takıldı bir şey denemem gerekiyor yardımlarınızı bekliyorum bu konuda

10.dk-20.dk-30.dk...60dk kadar set değeri olan ve set edildikten sonra geriye doğru sayan program denemm lazım hasas bir zamanlayıcı değil
sn=sn+1--- 60 olduğunda dk 1 arttır mantığıı tamam ama geriye sayarken nasıl olucak.




@ DEVICE pic16F628                                                           
@ DEVICE pic16F628, WDT_OFF            
@ DEVICE pic16F628, PWRT_ON            
@ DEVICE pic16F628, PROTECT_OFF    
@ DEVICE pic16F628, MCLR_off              
@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT  
'-----------------------------------------------------------------
DEFINE LCD_DREG   PORTB   'LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT      4      'LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_EREG   PORTB   'LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT      3      'LCD Enable Bacağı Hangi bite bağlı ?
define LCD RWREG         PORTB      'LCD R/W Bacağı Hangi Porta bağlı?
define LCD_RWBIT       2             
DEFINE LCD_RSREG   PORTB   'LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT   1      
DEFINE LCD_BITS      4      
DEFINE LCD_LINES   2      
'-------------------------------------------------------------------------
ON INTERRUPT GoTo KESME  
OPTION_REG=%10000101        
INTCON=%10100000         'Kesmeler aktif ve TMR0 kesmesi aktif
TMR0=0
CMCON=7             '16F628 de komparatör pinleri iptal hepsi giriş çıkış
'----------------------------------------------------------------------------
SAYAC   VAR   BYTE
SN      VAR   BYTE
DAK     VAR   BYTE
SAAT    VAR   BYTE
GUN     VAR   BYTE
'-----------------------------------------------------------------------------
CLEAR  
PAUSE 200
LCDOUT $FE,1
LOW PORTB.2  'LCD -R/W bacağı LOW'a çekildi.

'-----------------------------------------------------------------------------
BASLA:
LCDOUT $FE,$84,DEC2 SAAT,":",DEC2 DAK,":",DEC2 SN
GOTO BASLA

DISABLE
KESME:
     SAYAC=SAYAC+1         
     IF SAYAC=61 then       
        SAYAC=0              
        SN=SN+1              
           IF SN=60 THEN       
              SN=0             
              DAK=DAK+1        
                 IF DAK=60 THEN  
                    DAK=0            
                    SAAT=SAAT+1                    
                 ENDIF
        ENDIF
        INTCON.2=0        'TMR0 Kesme bayrağı sıfırlanıyor
        RESUME
        ENABLE
       
END
...............................

ete

Saniyeler 59 dan itibaren geriye sayılır. Sonunda sn=0 olur ve bir kez daha sn=sn-1 dediğin zaman ise sn=255 olacaktır. İşte ip ucu burada.
sn=sn-1
if sn=255 then sn=59
dak=dak-1
if dak=255 then dak=59
saat=saat-1
(if saat=255 then saat=23) galiba bu kısmını kullanmayacaksın.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com