اطلاعیه

Collapse
No announcement yet.

لطفا کسی این برنامه رو کامپایل کنه

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    لطفا کسی این برنامه رو کامپایل کنه

    با سلام
    لطفا از دوستان کسی این برنامه رو برام کامپایل کنه و فایل هگزشو بزاره

    کد:
    @ DEVICE pic16F648A 'i‏lemci 16F648A
    @ DEVICE pic16F648A, PROTECT_OFF 'Kod Protek kapal‎
    @ DEVICE pic16F648A, CPD_ON
    @ DEVICE pic16F648A, WDT_OFF 'Watch Dog timer kapal‎
    @ DEVICE pic16F648A, INTRC_OSC_NOCLKOUT 'Dahili osilatِr kullan‎lacak
    @ DEVICE pic16F648A, MCLR_off 'MCLR pini kullan‎lm‎yor.
    @ DEVICE pic16F648A, LVP_OFF
    @ DEVICE pic16F648A, BOD_OFF
    @ DEVICE pic16F648A, PWRT_ON 'Power on timer a�‎k
    '-------------------------------------------------------------------------
    DEFINE OSC 4
    OPTION_REG=%10000101 'Pull up diren�leri فPTAL- Bِlme oran‎ 1/64.
    CMCON=7
    PORTA=0
    PORTB=0
    TRISB=0
    TRISA=%11110001
    '----------------------------------------------------------------------------
    HAM VAR WORD 56 ' Sensِr HAM okuma deًeri
    ISI VAR BYTE 58 ' Hesaplanm‎‏ ISI deًeri
    Float VAR WORD 59 ' Holds remainder for + temp C display
    X VAR BYTE 61
    Y VAR BYTE 62
    SAYI VAR BYTE 63
    SAYAC VAR BYTE 64
    ESKI VAR BYTE 'ِnceki ‎s‎ deًeri
    temp var byte
    SIGN VAR BYTE ' ISI deًeri i�in +/- i‏aret
    SN VAR BYTE
    DAK VAR BYTE
    SAAT VAR BYTE
    GUN VAR BYTE
    AY VAR BYTE
    YIL VAR BYTE
    MEM var byte
    EKRAN_ZAM var byte
    SUM VAR BYTE
    EKRAN_ISI VAR BYTE
    ONLAR VAR BYTE
    BIRLER VAR BYTE
    ESN VAR BYTE
    ANIM var byte 70
    I var word
    Busy VAR BIT ' Busy Status-Bit
    POZ VAR BIT
    Z VAR BIT
    W VAR BIT
    U VAR BIT
    T VAR BIT
    YENI VAR BIT
    SIGN_BITI VAR HAM.Bit11 ' +/- s‎cakl‎k ف‏aret biti, 1 = olursa eksi s‎cakl‎k
    NEGAT_ISI CON 1 ' Negatif_Cold = 1
    Deg CON 223 ' � i‏areti
    ADAK VAR BYTE
    ASAAT VAR BYTE
    S var word
    FA VAR BYTE
    FAH VAR BYTE
    K VAR BYTE
    M VAR BYTE
    
    '---------------------------------------------
    SYMBOL RTC_DTA=PORTA.0
    SYMBOL RTC_CLK=PORTA.1
    SYMBOL RTC_RST=PORTA.2
    symbol TUS_ANIM=PORTA.4
    symbol SEC =PORTA.5
    SYMBOL ASAGI =PORTA.6
    SYMBOL YUKARI=PORTA.7
    SYMBOL DTA=PortB.0
    SYMBOL CLK=PORTB.1
    symbol ST =PORTB.2
    SYMBOL BUZZER = PORTB.3
    symbol Comm_Pin=PORTB.4 ' One-wire Data-Pin "DQ" PortB.0 da
    SYMBOL ALARM=PORTB.5
    SYMBOL SHCP =PORTB.5
    symbol DS =PORTB.6
    SYMBOL MR =PORTB.7
    
    '''''''''''''''''''''''''''''''NOTALAR'''''''''''''''''''''''''''''
    
    P con 0
    P1 con 0
    P2 con 0
    P3 con 0
    
    C0 con 60 'DO
    CX0 con 61
    D0 con 62 'RE
    DX0 con 63
    E0 con 64 'MI
    F0 con 65 'FA
    FX0 con 66
    G0 con 67 'SOL
    GX0 con 68 'SOL
    
    C1 con 82 'DO.
    CX1 con 85
    D1 con 87 'RE
    DX1 con 89
    E1 con 92 'MI
    F1 con 94 'FA
    FX1 con 95
    G1 con 97 'SOL
    GX1 con 99 'SOL
    A1 con 101 'LA
    AX1 con 102 'ladiyezsibemol
    B1 con 104 'si
    BX1 con 105
    h1 con 104
    
    C2 con 105
    CX2 con 106
    D2 con 108
    DX2 con 109
    E2 con 110
    F2 con 111
    FX2 con 112
    G2 con 113
    GX2 con 114
    A2 con 115
    AX2 con 116
    B2 con 117
    BX2 con 118
    h2 con 117
    
    '-----------------------------------------------------------------------------
    PAUSE 500
    CLEAR 't�m deًi‏kenler s‎f‎rland‎
    SN=0
    READ 01,ALARM
    READ 02,ASAAT
    READ 03,ADAK
    READ 10,EKRAN_ZAM
    IF EKRAN_ZAM=255 then ekran_ZAM=25 'saat EKRANDA KALMA SـRESف
    READ 11,EKRAN_ISI
    IF EKRAN_ISI=255 then EKRAN_ISI=5 's‎cakl‎k EKRANDA KALMA SـRESف
    READ 12,ANIM
    IF sec=0 then ZAM_AYAR 'MOD tu‏una bas‎l‎rsa,saati ayarla
    
    '-----------------------------------------------------------------------------
    ILK:
    SUM=EKRAN_ZAM+EKRAN_ISI
    
    gosub sensoryaz
    gosub sensoroku
    
    low RTC_RST
    low RTC_CLK
    GOSUB GECIKME
    
    GOSUB ANIM_BIR
    ANIM=0
    ON INTERRUPT GoTo KESME 'kesme olu‏ursa KESME adl‎ etikete git.
    INTCON=%10100000 'Kesmeler aktif ve TMR0 kesmesi aktif
    TMR0=0
    
    HIGH PORTA.3
    gosub ZAMAN_OKU:esn=SN
    
    '''''''''''''''''''''''''''''''ANA PROGRAM'''''''''''''''''''''''''''''
    
    BASLA:
    GOSUB ZAMAN_OKU
    IF SAYAC=35 THEN LOW PORTA.3
    IF Y=SUM THEN
    Y=0
    INTCON=%10100000
    ENDIF
    
    IF Y>(EKRAN_ZAM) THEN
    if y=(EKRAN_ZAM+1) then
    
    INTCON=0
    LOW PORTA.3 ' displey orta ledleri sِnd�
    GOSUB SENSOROKU
    endif
    GOSUB EKRAN1 ' derece ekranda
    ENDIF
    
    if esn=sn then atla
    Y=Y+1:ESN=SN:SAYAC=0
    
    GOSUB ANIMAS
    
    IF Y<=EKRAN_ZAM THEN
    HIGH PORTA.3 ' displey orta ledleri yand‎
    GOSUB EKRAN0 ' saat ekranda
    ENDIF
    
    IF SAAT>7 AND SAAT<21 THEN ' Saat 08-21 aras‎,Saat ba‏lar‎nda uyar‎ sesi i�in
    IF DAK=0 AND SN=0 THEN
    GOSUB SES1:gosub ses1 ' Saat ba‏lar‎nda �alan uyar‎ sesi
    ENDIF
    ENDIF
    
    IF SAAT>7 AND SAAT<23 THEN ' Saat 08-23 aras‎,animasyon deًi‏imi i�in
    IF DAK=>0 AND SN=59 THEN ' 1 dak.bir,animasyon deًi‏imi i�in
    GOSUB EKRAN4:GOSUB GECIKME:GOSUB GECIKME:GOSUB EKRAN4:GOSUB GECIKME:GOSUB EKRAN4 'displey animas.Dikdِretgen
    ANIM=ANIM+1:YENI=1
    IF ANIM=9 THEN ANIM=0
    ENDIF
    ENDIF
    
    IF SAAT=23 OR SAAT<8 AND DAK=>0 AND SN=0 THEN ' Saat 23-08 aras‎ ,tek led yanan ANفM.1 devrede
    ANIM=1:YENI=1
    ENDIF
    
    IF ALARM=1 THEN
    IF SAAT=ASAAT AND DAK=ADAK AND SN=0 THEN
    GOTO ALM
    ENDIF
    ENDIF
    
    IF YUKARI=0 THEN ' Alarm AاIK/KAPALI
    toggle ALARM
    WRITE 01,ALARM
    WHILE YUKARI=0:WEND
    ENDIF
    
    '-----------------------------------------------------------------------------
    ATLA:
    
    if SEC=0 THEN AYAR 'MOD TUقUNA BASILMIق فSE AYAR'A GفT
    if ASAGI=0 THEN AYAR1 'ASAGI TUقUNA BASILMIق فSE AYAR1'e GفT,ALARMI AYARLA
    
    IF TUS_ANIM=0 THEN 'Kumanda veya Buton ile,animasyon deًi‏imi i�in
    ANIM=ANIM+1:YENI=1
    IF ANIM=9 THEN ANIM=0
    WHILE TUS_ANIM=0:WEND
    ENDIF
    
    GOTO BASLA
    
    '''''''''''''''''''''''''''''''ALARM VE ZفL AYARLARI'''''''''''''''''''''''''''''
    
    ALM:
    GOSUB ZAMAN_OKU
    gosub EKRAN2
    GOSUB ZIL
    gosub delay
    GOTO BASLA
    
    ZIL:
    FOR I=1 TO 3 ' Alarm s�resi
    GOSUB SES4 ' Melodi - Ada sahillerinde
    GOSUB SES5 ' Melodi - Aًlama deymez hayat
    NEXT I
    
    RETURN
    
    '''''''''''''''''''''''''''''''ANفMASYONLAR'''''''''''''''''''''''''''''
    
    ANIMAS:
    SELECT CASE ANIM
    
    CASE 0,1
    
    IF YENI=1 THEN GOSUB ANIM_BIR
    IF SN=0 then
    MR=0:PULSOUT SHCP,5 ' ANفM.1 Ledler birer eklenerek yan‎yor
    IF ANIM=0 then
    MR=1:PULSOUT SHCP,5
    ELSE
    DS=1:MR=1:PULSOUT SHCP,5:ds=0 ' ANفM.2 Ledler tektek yan‎yor
    
    ENDIF
    ENDIF
    PULSOUT SHCP,5
    M=0 ' CASE 2 deki, M deًerini s‎f‎rlamak i�in
    '*********
    CASE 2 ' Yanan 60 led,eklenerek sِn�yor.FLASH s‎z.(IF kullanmazsak,yani ‏arta baًlamazsak,sِn�k ledler flash yap‎yor)
    
    IF m=0 OR SN=0 THEN YAK ' قayet M =0 veya SN=0 ise yani 60 Led de yanm‎yor veya SN=0 ise YAK etiketine git.60 ledi ayn‎ anda YAK.(SN=0 dan sonra,YAK etiketine prog.gitmiyor)
    MR=1:DS=0 ' SN de bir, 60 ledin 1.sini SضNDـR. ............SN de bir, 60 ledin 60.s‎n‎ SضNDـR.
    PULSOUT SHCP,1
    
    '*********
    CASE 3 ' Ledler ِnce 1 sِn�k-1 yan‎k,sonra 2 sِn�k,1 yan‎k.......... aral‎kl‎ h‎zl‎ dِn�p,duruyor.Orta ledler flash yap‎yor.
    
    IF SN=0 then MR=0:PULSOUT SHCP,1
    
    IF DAK=>0 AND SN=0 THEN FA=FA+1
    if FA=12 then FA=1
    DS=1
    for MEM=1 to FA
    PULSOUT SHCP,1
    DS=0
    for ham=0 to 950:next 'H‎z ayar‎
    next
    PULSOUT SHCP,1
    MR=1
    '*********
    CASE 4 'Ledler ِnce, 5 yan‎k-5 sِn�k.Sonra 10 yan‎k.10 sِn�k...... ......
    
    IF SN=0 then MR=0:PULSOUT SHCP,1
    
    IF DAK=>0 AND SN=0 THEN FAH=FAH+5
    if FAH=65 then FAH=5
    DS=1
    for MEM=1 to FAH
    PULSOUT SHCP,1
    for ham=0 to 170:next '170 b�y�rse,hareket yava‏l‎yor
    next
    for MEM=1 to FAH
    DS=0
    PULSOUT SHCP,1
    for ham=0 to 170:next '170 b�y�rse,hareket yava‏l‎yor
    next
    MR=1
    '*********
    CASE 5 ' Her SN, 1.LED ten ba‏layarak,kuyruklu FLASH yaparak,son tarafta yanmayan lede doًru,�ak‎yor. 60.led yan‎yor,59.led eklenerek yan‎yor....
    
    GOSUB GOR
    for K=SN to 59
    DS=0
    PULSOUT SHCP,1
    PAUSE 10
    NEXT
    '*********
    CASE 6 ' 60 led yan‎yor.Her SN,1. LED ten ba‏layarak,kuyruklu FLASH yaparak, 1.led sِn�yor, 2.led eklenerek sِn�yor......
    
    GOSUB GOR
    DS=0
    for K=0 to SN
    PULSOUT SHCP,1
    PAUSE 10
    NEXT
    '*********
    CASE 7 ' SN �ift rakam ise 60 led(30+30),eklenerek yan‎yor.SN tek rakam ise 60 led(30+30),eklenerek sِn�yor
    
    IF SN//2=0 THEN MR=1:DS=1' SN �ift rakam ise
    IF SN//2=1 THEN MR=1:DS=0' SN tek rakam ise
    ' فlk, 30 led yanacak
    for K=0 to 30 ' 30 led,eklenerek yan‎yor.
    PULSOUT SHCP,5
    PAUSE 5 ' 30 ledin ardarda yanma s�resi
    next
    ' Devam‎nda,ikinci 30 led yanacak
    for K=0 to 30 '30 led,eklenerek yan‎yor.(�stteki kodlarda TO 30 yerine,TO 60 yaz‎lsa idi,alttaki kodlar yaz‎lmayacakt‎,ama ortadaki SN ledleri flash yapm‎yordu)
    PULSOUT SHCP,5
    PAUSE 5 ' 30 ledin ardarda yanma s�resi
    next
    '*********
    CASE 8 ' SN ler �ift ise,فlk 30 ledi,SN ler tek ise,son 30 ledi ayn‎ anda yak
    
    IF SN//2=0 THEN GOSUB YAK1 ' SN ler �ift ise,فlk 30 ledi ayn‎ anda yak
    IF SN//2=1 THEN GOSUB YAK1 ' SN ler tek ise,فlk 30 ledi ayn‎ anda yak,ard‎ndan
    IF SN//2=1 THEN GOSUB YAK2 ' yanan ilk 30 ledi 30 kere kayd‎r.Yani son 30 ledi yak.
    '*********
    
    CASE 7 ' 60 Adet led,SN de bir,flash yap‎yor.
    GOSUB GOR
    for K=0 to 60
    DS=0
    PULSOUT SHCP,50
    NEXT
    '*********
    CASE 2 ' 60 led,eklenerek yan‎yor.
    GOSUB ZAMAN_OKU ' Ka�‎nc‎ SN de ise okadar led yakmak i�in.
    MR=1:DS=1
    PULSOUT SHCP,1
    
    '*********
    CASE 4 ' ledler,tek tek yan‎yor.
    IF SN=0 THEN
    MR=0:PULSOUT SHCP,1 ' SN=0 iken,b�t�n ledler sِnd�r�ld�
    
    GOSUB ZAMAN_OKU ' Ka�‎nc‎ SN de ise okadar led yakmak i�in.
    MR=1:DS=1 ' SN=0 iken,ledlerin yanmas‎ i�in,
    PULSOUT SHCP,1 ' bir clock pals verildi
    ENDIF ' IF komutu sonu
    
    DS=0 ' tek led yanmas‎ i�in
    PULSOUT SHCP,1 ' bir clock pals verildi
    
    '*********
    
    END SELECT
    WRITE 12,ANIM
    RETURN
    '--------------------------------------
    
    ANIM_BIR:
    
    MR=0:PULSOUT SHCP,5 ' Yanan ledlerin hepsini sِnd�r
    DS=1:MR=1
    PULSOUT SHCP,5
    DS=1
    IF ANIM=1 THEN DS=0 ' Yeni animasyona ge�ince,DS=0 yap,ZAMAN_OKU
    
    GOSUB ZAMAN_OKU '
    FOR MEM=1 to SN ' SN debir,ba‏tan itibaren ledleri s‎ras‎yla yakarak ilerle
    PULSOUT SHCP,5
    NEXT
    YENI=0
    RETURN
    '--------------------------------------
    YAK:
    
    MR=1:DS=1
    for M=0 to 60 ' M=0 Yani 60 led de sِn�k ise veya SN=0 ise,60 led i ayn‎ anda yak
    PULSOUT SHCP,1
    NEXT
    
    MEM=SN:DS=0 ' SN=0 haricinde kumanda ile animasyon deًi‏tirilirse,yanan 60 led den ,ge�en SN kadar led sِnd�rmek i�in.
    for M=0 to MEM
    PULSOUT SHCP,1
    NEXT
    RETURN
    '--------------------------------------
    YAK1:
    
    MR=1:DS=1
    for K=0 to 30 ' فlk 30 ledi ayn‎ anda yak
    PULSOUT SHCP,1
    
    NEXT
    RETURN
    '--------------------------------------
    YAK2:
    
    MR=1:DS=0
    for K=0 to 30 ' Yanan ilk 30 ledi ayn‎ anda sِnd�r
    PULSOUT SHCP,1
    
    NEXT
    RETURN
    '--------------------------------------
    GOR:
    
    MR=1:DS=1
    for K=0 to 60 ' 60 ledi ayn‎ anda yak
    PULSOUT SHCP,1
    NEXT
    RETURN
    '--------------------------------------
    
    AKTAR:
    SHIFTOUT DTA,CLK,1,[SAYI]
    RETURN
    '--------------------------------------
    BAK_0:
    GOSUB AL
    IF Z=1 AND W=1 THEN SAYI=0
    RETURN
    '--------------------------------------
    BAK_1:
    GOSUB AL
    IF Z=1 AND U=1 THEN SAYI=0
    RETURN
    '--------------------------------------
    BAK_2:
    GOSUB AL
    IF Z=1 AND T=1 THEN SAYI=0
    RETURN
    
    '''''''''''''''''''''''''''''''EKRAN AYARLARI'''''''''''''''''''''''''''''
    
    EKRAN0:
    X= DAK DIG 0:GOSUB BAK_1:GOSUB AKTAR
    X= DAK DIG 1:GOSUB BAK_1:GOSUB AKTAR
    u=0
    X= SAAT DIG 0:GOSUB BAK_0:GOSUB AKTAR
    X= SAAT DIG 1:GOSUB BAK_0:GOSUB AKTAR
    w=0
    PULSOUT st,5
    RETURN
    '--------------------------------------
    AL: LOOKUP X,[63,6,91,79,102,109,125,7,127,111,99,57,64],SAYI :RETURN
    '--------------------------------------
    EKRAN1: 'EKRAN1 ve GIT:sat‎rlar‎n‎ aktif edersek,derece 21.0^ 21.1^ gibi 0.1 fark ile gِsteriyor(derecede nokta yan‎yor)
    X=10:GOSUB AL:GOSUB AKTAR
    if ESKI<>ISI THEN RETURN
    if SIGN="-" then
    IF ISI<10 then
    LOW PORTB.3
    x=(float DIG 0):GOSUB AL:GOSUB AKTAR
    X=fLOAT DIG 1:GOSUB al:SAYI=SAYI+128:GOSUB AKTAR
    SAYI=64:GOSUB AKTAR
    GOTO GIT
    ELSE
    HIGH PORTB.3
    ENDIF
    ENDIF
    x=(float DIG 0):GOSUB AL:GOSUB AKTAR
    x=(FLOAT DIG 1):GOSUB AL:SAYI=SAYI+128
    GOSUB AKTAR
    x=fLOAT DIG 2:GOSUB AL
    IF ISI<10 THEN SAYI=0
    GOSUB AKTAR
    '--------------------------------------
    GIT:
    HIGH st:PAUSEUS 2:LOW st
    RETURN
    '--------------------------------------
    EKRAN1: ' EKRAN1: sat‎r‎n‎ aktif edersek,derece 21^C 22^C gibi,1 derece fark ile gِsteriyor
    LOW PORTA.3
    X=11:GOSUB AL:GOSUB AKTAR
    X=10:GOSUB AL:GOSUB AKTAR
    
    x=(ISI DIG 0):GOSUB AL:GOSUB AKTAR
    x=(ISI DIG 1):GOSUB AL:GOSUB AKTAR
    
    HIGH st:PAUSEUS 2:LOW st
    PULSOUT st,5
    RETURN
    
    '--------------------------------------
    EKRAN2:
    X= ADAK DIG 0:GOSUB BAK_1:GOSUB AKTAR
    X= ADAK DIG 1:GOSUB BAK_1:GOSUB AKTAR
    u=0
    X= ASAAT DIG 0:GOSUB BAK_0:GOSUB AKTAR
    X= ASAAT DIG 1:GOSUB BAK_0:GOSUB AKTAR
    w=0
    PULSOUT st,5
    RETURN
    '--------------------------------------
    EKRAN_3:
    X= SN DIG 0:GOSUB BAK_1:GOSUB AKTAR
    X= SN DIG 1:GOSUB BAK_1:GOSUB AKTAR
    u=0
    SAYI=0 :GOSUB AKTAR
    SAYI=SUM:GOSUB AKTAR
    w=0
    PULSOUT st,5
    RETURN
    '--------------------------------------
    EKRAN4: ' saat 8-21 aras‎ saat ba‏lar‎nda displey anim.Dikdِrtgen
    LOW PORTA.3
    SAYI=15:GOSUB AKTAR
    SAYI=9 :GOSUB AKTAR
    SAYI=9 :GOSUB AKTAR
    SAYI=57:GOSUB AKTAR
    GOTO GIT
    '--------------------------------------
    EKRAN5:
    LOW PORTA.3
    SAYI=120:GOSUB AKTAR ' T Displey anim.SAAt
    SAYI=119 :GOSUB AKTAR ' A
    SAYI=119 :GOSUB AKTAR ' A
    SAYI=109:GOSUB AKTAR ' S
    GOTO GIT
    
    '''''''''''''''''''''''''''''''ZAMAN AYARLARI'''''''''''''''''''''''''''''
    
    ZAM_AYAR:
    LOW PORTA.3:SN=0:POZ=1:SUM=6
    SN=EKRAN_ZAM:GOSUB EKRAN_3
    WHILE SEC=0:WEND
    
    '''''''''''''''''''''''''''''''SAAT AYARI'''''''''''''''''''''''''''''
    
    AYAR:
    LOW PORTA.3:SN=0:POZ=1
    gosub ekran0
    WHILE SEC=0:WEND
    
    HOUR:
    W=1
    LOW PORTA.3
    IF SEC=0 THEN MINBIR
    
    IF YUKARI=0 THEN
    IF Z=0 THEN SAAT=SAAT+1
    IF SAAT=24 THEN SAAT=0
    ENDIF
    
    IF ASAGI=0 THEN
    IF Z=0 THEN SAAT=SAAT-1
    IF SAAT=255 THEN SAAT=23
    ENDIF
    
    Z=1-Z
    GOSUB EKRAN0
    GOSUB GECIKME
    GOTO HOUR
    
    MINBIR:
    W=0:Z=0
    GOSUB EKRAN0
    WHILE SEC=0:WEND
    
    MINUTE:
    U=1
    LOW PORTA.3
    IF SEC=0 THEN ara
    
    IF YUKARI=0 THEN
    IF Z=0 THEN DAK=DAK+1
    IF DAK=60 THEN DAK=0
    ENDIF
    
    IF ASAGI=0 THEN
    IF Z=0 THEN DAK=DAK-1
    IF DAK=255 THEN DAK=59
    ENDIF
    
    Z=Z-1
    GOSUB EKRAN0
    GOSUB GECIKME
    GOTO MINUTE
    
    SECBIR: WHILE SEC=0:WEND
    U=0
    
    GECIKME:
    FOR I=0 TO 3000
    PAUSEUS 5
    NEXT
    RETURN
    
    
    DELAY:
    FOR X=0 TO 1900
    PAUSEUS 10
    NEXT
    RETURN
    
    
    ARA:
    W=0:u=0:T=0:Z=0
    GOSUB FLASH
    Gosub EKRAN0
    HIGH PORTA.3
    WHILE SEC=0:wend
    
    MEM=SN:GOSUB TERSCEVIR:SN=SAYI
    MEM=DAK:GOSUB TERSCEVIR:DAK=SAYI
    MEM=SAAT:GOSUB TERSCEVIR:SAAT=SAYI
    MEM=GUN:GOSUB TERSCEVIR:GUN=SAYI
    MEM=AY:GOSUB TERSCEVIR:AY=SAYI
    MEM=YIL:GOSUB TERSCEVIR:YIL=SAYI
    
    GOSUB ZAMAN_YAZ
    GOSUB ZAMAN_OKU
    y=0:POZ=0
    goto BASLA
    
    FLASH:
    TOGGLE PORTA.3:GOSUB DELAY:TOGGLE PORTA.3:GOSUB DELAY
    return
    
    '''''''''''''''''''''''''''''''ALARM SAATI AYARI'''''''''''''''''''''''''''''
    
    AYAR1:
    LOW PORTA.3:SN=0:POZ=1
    gosub ekran2
    WHILE ASAGI=0:WEND
    
    HOUR1:
    W=1
    LOW PORTA.3
    IF SEC=0 THEN MINBIR1
    
    IF YUKARI=0 THEN
    IF Z=0 THEN ASAAT=ASAAT+1
    IF ASAAT=24 THEN ASAAT=0
    ENDIF
    
    IF ASAGI=0 THEN
    IF Z=0 THEN aSAAT=aSAAT-1
    IF aSAAT=255 THEN aSAAT=23
    ENDIF
    
    Z=1-Z
    GOSUB EKRAN2
    GOSUB GECIKME
    WRITE 02,ASAAT
    GOTO HOUR1
    
    MINBIR1:
    W=0:Z=0
    GOSUB EKRAN2
    WHILE SEC=0:WEND
    
    MINUTE1:
    U=1
    LOW PORTA.3
    IF SEC=0 THEN ara1
    
    IF YUKARI=0 THEN
    IF Z=0 THEN ADAK=ADAK+1
    IF ADAK=60 THEN ADAK=0
    ENDIF
    
    IF ASAGI=0 THEN
    IF Z=0 THEN ADAK=ADAK-1
    IF ADAK=255 THEN ADAK=59
    ENDIF
    
    Z=Z-1
    GOSUB EKRAN2
    GOSUB GECIKME
    WRITE 03,ADAK
    GOTO MINUTE1
    
    ARA1: W=0:u=0:T=0:Z=0
    GOSUB FLASH
    Gosub EKRAN2
    HIGH PORTA.3
    WHILE SEC=0:wend
    y=0:POZ=0
    goto BASLA
    '------------------------------- ISI SENSضR OKUMA BضLـMـ --------------------------------
    
    SENSOROKU:
    OWOUT Comm_Pin, 1, [$CC, $44]' ISI deًerini �evir
    Bekle:
    OWIN Comm_Pin, 4, [Busy] ' Busy deًerini oku
    IF Busy = 0 THEN Bekle ' hala me‏gulm�? , evet ise goto Bekle..!
    OWOUT Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
    OWIN Comm_Pin, 2, [HAM.Lowbyte, HAM.Highbyte]' فki byte oku ve okumay‎ bitir.
    GOSUB Hesapla
    RETURN
    
    SENSORYAZ:
    OWOUT Comm_Pin, 1, [$CC, $4E, $FF,$FF,%00011111] 'Bu sat‎r aktif olursa derece 0.0 0.5 k�s�rat gِsterir
    OWOUT Comm_Pin, 1, [$CC, $4E, $FF,$FF,%00111111] 'Bu sat‎r aktif olursa derece 0.0 0.2 0.5 0.7 k�s�rat gِsterir
    OWOUT Comm_Pin, 1, [$CC, $4E, $FF,$FF,%01111111] 'Bu sat‎r aktif olursa derece 0.0 0.1 0.2 0.3 .......k�s�rat gِsterir
    '%01111111 aktif edilirse,derece ekranda iken,animasyon h‎z‎ deًi‏iyor
    OWOUT Comm_Pin, 1, [$48,$B8,$BE]
    OWIn Comm_Pin, 0, [HAM.Lowbyte, HAM.Highbyte]
    return
    
    Hesapla: ' Ham deًerden Santigrat derece hesab‎
    Sign = "+"
    IF SIGN_BITI = NEGAT_ISI THEN
    Sign = "-"
    ham=~ham+2
    endif
    HAM=HAM-(16*1) '1 derece fazla gِsteriyorsa,bu sat‎r aktif edilecek
    float = (HAM*10)/16
    eski=ISI
    ISI=FLOAT/10
    ISI=ISI-1/2 ' veya,bu sat‎r aktif edilirse,s‎cakl‎k 1/2 derece azal‎r
    RETURN
    
    '''''''''''''''''''''''''''''''DS1302 OKUMA BضLـMـ'''''''''''''''''''''''''''''
    
    ZAMAN_OKU:
    high RTC_RST:OUTPUT rtc_dta
    shiftout RTC_DTA, RTC_CLK, 0, [$BF]:INPUT RTC_DTA
    SHIFTIN RTC_DTA, RTC_CLK, 1, [SN, DAK, SAAT,GUN , AY, MEM, YIL, MEM] 'OKU
    MEM=SN:GOSUB CEVIR:SN=SAYI
    MEM=DAK:GOSUB CEVIR:DAK=SAYI
    MEM=SAAT:GOSUB CEVIR:SAAT=SAYI
    MEM=GUN:GOSUB CEVIR:GUN=SAYI
    MEM=AY:GOSUB CEVIR:AY=SAYI
    MEM=YIL:GOSUB CEVIR:YIL=SAYI
    low RTC_RST
    return
    
    ZAMAN_YAZ:
    
    high RTC_RST:OUTPUT RTC_DTA
    SHIFTOUT RTC_DTA, RTC_CLK, 0, [$8E, 0] 'WRT Protek a�‎ld‎
    low RTC_RST:PAUSEUS 10
    high RTC_RST
    SHIFTOUT RTC_DTA, RTC_CLK, 0, [$BE, SN, DAK, SAAT,GUN , AY, 0, YIL, 128] 'YAZ
    low RTC_RST
    PAUSEUS 10
    return
    
    CEVIR:
    ONLAR=MEM & %01110000
    ONLAR=ONLAR>>4
    BIRLER=MEM & %00001111
    SAYI=ONLAR*10+BIRLER
    RETURN
    
    TERSCEVIR:
    ONLAR=MEM DIG 1
    ONLAR=ONLAR<<4
    BIRLER=MEM DIG 0
    SAYI=ONLAR+BIRLER
    RETURN
    
    DISABLE
    KESME:
    IF POZ=1 then CIK
    SAYAC=SAYAC+1 'kesme sayac‎ 1 sn= 61(sayac) x 256 (Tmr0) x 64 (bِlme)
    
    CIK:
    INTCON.2=0 'TMR0 Kesme bayraً‎ s‎f‎rlan‎yor
    RESUME
    ENABLE
    
    '''''''''''''''''''''''''''''''BفP VE MELODف'''''''''''''''''''''''''''''
    
    SES1: SOUND BUZZER,[112,12]:pause 130:RETURN
    SES2: SOUND BUZZER,[95,12] :pause 130:RETURN
    
    SES4: Sound BUZZER,[c2,17,d2,17,d2,34,d2,34,c2,_ 'Ada sahillerinde
    17,d2,9,e2,9,d2,17,c2,17,ax1,17,ax1,9,A1,_
    9,c2,17,c2,9,ax1,9,A1,34,A1,17,ax1,17,c2,_
    17,d2,17,c2,17,ax1,17,A1,17,ax1,17,A1,17,_
    ax1,17,A1,17,ax1,17,d2,9,c2,9,ax1,9,A1,9,g1,34]
    return
    SES5:Sound BUZZER,[c2,32,h1,16,A1,16,gx1,16,_ 'Aًlama deymez hayat
    A1,16,gx1,16,A1,16,fx1,16,d1,32,e1,8,fx1,_
    8,g1,32,p1,32,fx1,16,e1,47,d1,32,cx1,16,_
    e1,16,d1,24,e1,24,fx1,16,g1,24,A1,24,h1,_
    16,c2,32,h1,16,A1,16,gx1,16,A1,16,gx1,16,_
    A1,16,fx1,16,d1,32,e1,8,fx1,8,g1,32,p1,_
    32,fx1,16,e1,47,d1,32,cx1,16,e1,16,d1,32]
    return
    
    END
    دانلود فایل



    دانلود کنید.
    جدیدترین ویرایش توسط شاهرخ مستقیمی; ۰۲:۴۸ ۱۳۹۵/۰۵/۲۵.

    #2
    پاسخ : لطفا کسی این برنامه رو کامپایل کنه

    سلام.
    دوست عزیز من ارسال شما رو ویرایش کردم تا متن کوتاه تر دیده بشه، ولی قسمت هایی از سورس برنامه از دست رفته بود. لطفا اون ها رو دوباره در ویرایش اصلاح بفرمایید.
    این برنامه رو خودتون نتونستین کامپایل بفرمایید؟ چرا؟ برنامه ی چی هست این؟
    تو انجمن کمتر بیسیک کار میکنن. البته دوست عزیزم جناب مهندس اصغریان با این کامپایلر خیلی خوب کار کردن و میتونین از ایشون هم راهنمایی بگیرین.
    موفق باشید.

    دیدگاه


      #3
      پاسخ : لطفا کسی این برنامه رو کامپایل کنه

      بسم الله الرحمن الرحیم
      نوشته اصلی توسط شاهرخ مستقیمی نمایش پست ها
      سلام.
      دوست عزیز من ارسال شما رو ویرایش کردم تا متن کوتاه تر دیده بشه، ولی قسمت هایی از سورس برنامه از دست رفته بود. لطفا اون ها رو دوباره در ویرایش اصلاح بفرمایید.
      این برنامه رو خودتون نتونستین کامپایل بفرمایید؟ چرا؟ برنامه ی چی هست این؟
      تو انجمن کمتر بیسیک کار میکنن. البته دوست عزیزم جناب مهندس اصغریان با این کامپایلر خیلی خوب کار کردن و میتونین از ایشون هم راهنمایی بگیرین.
      موفق باشید.
      خیلی ممنون از جناب آقای مهندس مستقیمی مدیر محترم و ارزشمند گروه
      امیدوارم که البته تا حالا مشکل شما حل شده باشد. من به دلیل انبوهی از کارها و گرفتاری های زندگی شانس و سعادت حضور در انجمن را کمتر به دست می آورم. بگذریم.
      به چند تا دلیل ممکن است که برنامه شما حتی اگر صحیح هم باشد و ایرادی نداشته باشد. باز هم کامپایل نشود.
      اولین دلیل آن این است که کامپایلر بیسیک ؛ PICBASIC کار با فیوز بیت ها را هم در اختیار کاربران به طور کامل قرار می دهد و هم به طور کامل قرار نمی دهد .اگر که از کامپایلر های پائین تر از نسخه 3 استفاده کنید. شما می توانید از اسمبلر بازنشسته ولی خیلی خوب و مهربان و راحت PM استفاده کنید. پس خطوط اول برنامه که همگی فیوز بیت هستند باید حذف شوند. من فکر می کنم که اگر شما خطوط اول برنامه را که با @ شروع شده اند حذف کنید ، به احتمال زیاد کامپایل می شود. اگر که پیش فرض PM باشد. یعنی به طور کامل همه فیوز بیت ها با خود اسمبلر
      در کاربران نسخه های پائین ترا ز 3 ( آخرین نسخه ارائه شده قبل از 3 نسخه 2.6C بود) اما اگر کسی بخواهد بنا به هر دلیلی از PM استفاده نکند و برود به سراغ اسمبلر های دیگری همچون MPLAB پس باید یکسری کارهایی در ویندوز انجام بدهد . تنظیمات خود کامپایلر را مقداری تغییر بدهد و ... همه فیوز بیت ها را خودش تنظیم کند . به شرطی و شروطی!!
      در نسخه 3 دیگر برای همیشه اثری از PM نیست و از اینجا همه افراد باید با فیوز بیت ها کار کنند و مفاهیم آن ها را بدانند.. برنامه ویزارد Wizard هم نیست که خودش برایتان این کارها را بکند. یعنی همیشه شما باید متوجه باشید که دارید چه کار می کنید و چه هدفی دارید.
      اگر من بخواهم این برنامه را در لپ تاپ خودم اجرا کنم باید آن را برای محیط کامپایلر خودم مهیا کنم. حتما هم کامپایل خواهد شد. اما جنابعالی مشخص نفرمودید کامپایلر شما چیست. کدام نسخه را استفاده می کنید.
      دوم اینکه به نظر می رسد که نویسنده محترم برنامه را به زبان ترکی کشور ترکیه نوشته است. از مترجم گوگل کمک بگیرید . زیرا که هر برنامه نویسی نام های معنی دار و با مفهوم برای متغیرهایش انتخاب می کند. هدف برنامه را باید شما تشخیص بدهید.

      من مطمئن هستم که ماهی گیری را می توانید در اینجا یاد بگیرید .
      زیاده جسارت است.
      والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

      هوشمندانه بپرسيد...

      دیدگاه


        #4
        پاسخ : لطفا کسی این برنامه رو کامپایل کنه

        بسم الله الرحمن الرحیم
        نوشته اصلی توسط sajjad8500 نمایش پست ها
        لطفا از دوستان کسی این برنامه رو برام کامپایل کنه و فایل هگزشو بزاره
        با توجه به اینکه بعد از نوشتن سوالتان دیگری مطلبی اضافه نکرده ایدو پیگیری نکردید حتما یا مسئله دارای الویت چندانی برای شما نبوده است و یا اینکه خوشبختانه مسئله را خودتان حل کرده اید.

        این برنامه شما به دو دلیل زیر قابل به کامپایل شدن نبود.
        1) حجم برنامه انتهایی و کد تولید شده بیشتر از حجم چیپ انتخابی شما است.
        2) داخل برنامه دو تا زیرروال به نام EKRAN1 وجود دارد که یکی زاویه ای را با دقت 1 دهم و دیگری 1 گراد تولید می کند. نگارنده برنامه هر دو زیر روال را نوشته است. منطقی است که بسته به شرائط مورد نیاز یکی باید توسط کاربر غیر فعال شود. بعد از این دو تا مورد ؛ کامپایل شد.
        امیدوارم که یک روزی ( که خیلی دور و دیر نباشد) ... شما این جواب را بخوانید.
        والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

        هوشمندانه بپرسيد...

        دیدگاه

        لطفا صبر کنید...
        X