Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

saat sorunu

Başlatan tosunpasha97, 21 Mart 2014, 22:38:19

tosunpasha97

saniye ileri giderken dakika geriye gidiyor saniyede 2 dakika geriye gidiyor
@ DEVICE PIC16F877A  
@ DEVICE WDT_OFF

DEFINE OSC 4
DEFINE LOADER_USED 1   
ADCON1=7 

      
DEFINE LCD_DREG	 PORTD 
DEFINE LCD_DBIT	 4 


DEFINE LCD_BITS 4 
DEFINE LCD_LINES 2

DEFINE LCD_EREG	 PORTA 
DEFINE LCD_EBIT	 3
 
DEFINE LCD_RWREG PORTA 
DEFINE LCD_RWBIT 4 

DEFINE LCD_RSREG PORTA 
DEFINE LCD_RSBIT 5 

saat var byte
dsaat var byte
dakika var byte
saniye var byte
TMR0_Say var byte
Guncelle Var byte
i var byte

Pause 100

saat = 0
dakika = 0
saniye = 0
TMR0_Say = 0

Guncelle = 1 

OPTION_REG = %01010101
INTCON = %10100000

oN INTERRUPT GOTO TMR0_KESME

TRISD = %00000000
TRISB = %11111111

ADCON1 = %00000111

Ana_dongu:
if PORTB.0 = 1 THEN Dak_azalt
IF PORTB.1 = 1 THEN Dak_arttir

Kontrol:
IF Guncelle = 1 then
Lcdout $fe,1

dsaat = saat
if (saat // 12) = 0 then

dsaat = dsaat + 12
endif 
ENDIF
if saat < 12 then 
lcdout dec2 dsaat , ":" , dec2 dakika,":" , dec2 saniye

lcdout $FE , $C0, "SABAH"
ELSE

LCDOUT DEC2 (dsaat - 12) , ":", dec2 dakika ,":", dec2 saniye
lcdout $FE, $C0 , "OGLEN"

ENDIF
GOTO Ana_dongu

Dak_arttir:
dakika = dakika + 1

IF dakika >= 60 then
dakika = 0

saat = saat + 1
IF saat >= 24 then

saat = 0
endif

endif
goto ark_sondur

Dak_azalt:

dakika = dakika - 1
IF dakika  = 60 then

dakika = 59
saat = saat - 1

if saat >= 24 then
saat = 23

endif
endif

ark_sondur:

for i = 1 to 25
pause 10

next i
guncelle = 1

goto Kontrol

disable
TMR0_Kesme:

TMR0_Say = TMR0_Say + 1
if TMR0_Say < 61 then Kesme_sonu

TMR0_Say = 0
saniye = saniye +1

if saniye >= 60 then
saniye = 0 

dakika = dakika + 1
if  dakika >= 60 then

dakika = 0
saat = saat+1

if saat >= 24 then
saat = 0

endif
endif

endif
guncelle = 1

Kesme_sonu:
INTCON.2 = 0
RESUME
ENABLE
END