PIC16F628A ile polis tepe lambası nasıl yapabilirim?

Başlatan serhanbber, 15 Mayıs 2014, 03:13:03

serhanbber

Arkadaşlar genelde farklı PIC'lerle yapılmış polis tepe lambaları var ama ben p16f628a ile yapmak istiyorum yardımcı olabiliecek biri var mı?

OG

http://www.dosya.tc/server29/oFuf4O/police.rar.html

Device = 16F628A

Declare Reminders Off
@ CONFIG_REQ = 0 ; Override Compiler's configuration settings
Asm-
__Config  0x1E54 ;FOSC_INTOSCIO & WDTE_ON & PWRTE_ON & MCLRE_OFF & BOREN_ON & LVP_OFF & CPD_ON & CP_ON 
Endasm-
Declare Reminders On
         
Declare Xtal 4 
All_Digital = TRUE


TRISA=255
TRISB=%11111000
PORTB=0


INTCON=0
OPTION_REG=%10001111

Dim tekrar As Byte
Dim w_1 As Word
Dim mili_saniye As Word

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

police:
    mili_saniye = 35     
    For tekrar = 1 To 7               
        PORTB = %00000001
        GoSub bekle_bakim
        PORTB =%00000000                          
        GoSub bekle_bakim
    Next
    
    PORTB=%00000001  
    mili_saniye = 90 
    GoSub bekle_bakim  
    
    mili_saniye = 35
    For tekrar = 1 To 7              
        PORTB = %00000100
        GoSub bekle_bakim
        PORTB = %00000000
        GoSub bekle_bakim
    Next
    
    PORTB = %00000100  
    mili_saniye = 90  
    GoSub bekle_bakim  
GoTo police

'''''''''''''

bekle_bakim:         
    For w_1 = 1 To mili_saniye
        DelayMS 1
        Clrwdt
    Next
Return
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

Maxim

og hocam
gerçek polis ışıkları aynı düzendemi yanar?

programı takip ettim tam olarak şöyle
önce her ikisi kapalı
7 kere kırmızı yanıp sönüyor aralarda 35ms beklemeli
ardından kırmızı tekrar yanıyor ve 90ms bekliyor, henüz sönmedi!

program mavi loopuna geçti
kırmızı söndü mavi yandı ve mavi 7 kere 35ms beklemeli devam etti
ardından mavi tekrar yanıyor ve 90ms bekliyor

baştan başlıyoruz..


yanlış anlamayın, bilmiyorum o yüzden sordum.




OG

Gerçek olanları bir hayli gozlemiştim, aralarında çok farklı olanlar var. Kendimce en carpıcı olanı yapmaya çalıştım ve bunu kullandım. Piyasayada sürüldü, kullanılıyor.

Farklar için örnek,
Bazılarının çakma hızı daha fazla ve ara bekleme yok, genelde bakan araçlarında öyle.

Belki benimkisi biraz USA polisininkine benzedi. Daha bir vurgulu diye düşünüyorum.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

erhanmete


serhanbber

ASM'li hali var mı? üstteki koddan birşey anlamadımda

ferit06

proton asm olur mu?

;----------------------------------------------------------
; Code Produced by the Proton Compiler. Ver 3.5.3.9
; Copyright Rosetta Technologies/Crownhill Associates Ltd
; Written by Les Johnson. May 2012
;----------------------------------------------------------
;
#define CONFIG_REQ 1
 LIST  P = 16F628A, F = INHX8M, W = 2, X = ON, R = DEC, MM = ON, N = 0, C = 255
INDF equ 0X0000
TMR0 equ 0X0001
PCL equ 0X0002
STATUS equ 0X0003
FSR equ 0X0004
PORTA equ 0X0005
PORTB equ 0X0006
PCLATH equ 0X000A
INTCON equ 0X000B
PIR1 equ 0X000C
TMR1L equ 0X000E
TMR1LH equ 0X000F
TMR1H equ 0X000F
T1CON equ 0X0010
TMR2 equ 0X0011
T2CON equ 0X0012
CCPR1L equ 0X0015
CCPR1LH equ 0X0016
CCPR1H equ 0X0016
CCP1CON equ 0X0017
RCSTA equ 0X0018
TXREG equ 0X0019
RCREG equ 0X001A
CMCON equ 0X001F
OPTION_REG equ 0X0081
TRISA equ 0X0085
TRISB equ 0X0086
PIE1 equ 0X008C
PCON equ 0X008E
PR2 equ 0X0092
TXSTA equ 0X0098
SPBRG equ 0X0099
EEDATL equ 0X009A
EEDATA equ 0X009A
EEDAT equ 0X009A
EEADR equ 0X009B
EECON1 equ 0X009C
EECON2 equ 0X009D
VRCON equ 0X009F
IRP=7
RP1=6
RP0=5
NOT_TO=4
NOT_PD=3
Z=2
DC=1
C=0
GIE=7
PEIE=6
T0IE=5
INTE=4
RBIE=3
T0IF=2
INTF=1
RBIF=0
EEIF=7
CMIF=6
RCIF=5
PP_RCIF=5
TXIF=4
PP_TXIF=4
CCP1IF=2
TMR2IF=1
TMR1IF=0
T1CKPS1=5
T1CKPS0=4
T1OSCEN=3
NOT_T1SYNC=2
TMR1CS=1
TMR1ON=0
TOUTPS3=6
TOUTPS2=5
TOUTPS1=4
TOUTPS0=3
TMR2ON=2
PP_TMR2ON=2
T2CKPS1=1
PP_T2CKPS1=1
T2CKPS0=0
PP_T2CKPS0=0
CCP1X=5
CCP1Y=4
CCP1M3=3
CCP1M2=2
CCP1M1=1
CCP1M0=0
SPEN=7
RX9=6
SREN=5
CREN=4
PP_CREN=4
ADEN=3
FERR=2
OERR=1
PP_OERR=1
RX9D=0
C2OUT=7
C1OUT=6
C2INV=5
C1INV=4
CIS=3
CM2=2
CM1=1
CM0=0
NOT_RBPU=7
INTEDG=6
T0CS=5
T0SE=4
PSA=3
PS2=2
PS1=1
PS0=0
EEIE=7
CMIE=6
RCIE=5
TXIE=4
CCP1IE=2
TMR2IE=1
TMR1IE=0
OSCF=3
NOT_POR=1
NOT_BO=0
NOT_BOR=0
NOT_BOD=0
CSRC=7
TX9=6
TXEN=5
SYNC=4
BRGH=2
TRMT=1
TX9D=0
WRERR=3
PP_WRERR=3
WREN=2
PP_WREN=2
WR=1
PP_WR=1
RD=0
PP_RD=0
VREN=7
VROE=6
VRR=5
VR3=3
VR2=2
VR1=1
VR0=0
  __MAXRAM 0X01FF
  __BADRAM 0X07-0X09, 0X0D, 0X13-0X14, 0X1B-0X1E
  __BADRAM 0X87-0X89, 0X8D, 0X8F-0X91, 0X93-0X97, 0X9E
  __BADRAM 0X105, 0X107-0X109, 0X10C-0X11F, 0X150-0X16F
  __BADRAM 0X185, 0X187-0X189, 0X18C-0X1EF
BODEN_ON equ 0X3FFF
BODEN_OFF equ 0X3FBF
BOREN_ON equ 0X3FFF
BOREN_OFF equ 0X3FBF
CP_ON equ 0X1FFF
CP_OFF equ 0X3FFF
DATA_CP_ON equ 0X3EFF
DATA_CP_OFF equ 0X3FFF
PWRTE_OFF equ 0X3FFF
PWRTE_ON equ 0X3FF7
WDT_ON equ 0X3FFF
WDT_OFF equ 0X3FFB
LVP_ON equ 0X3FFF
LVP_OFF equ 0X3F7F
MCLRE_ON equ 0X3FFF
MCLRE_OFF equ 0X3FDF
RC_OSC_CLKOUT equ 0X3FFF
RC_OSC_NOCLKOUT equ 0X3FFE
ER_OSC_CLKOUT equ 0X3FFF
ER_OSC_NOCLKOUT equ 0X3FFE
INTOSC_OSC_CLKOUT equ 0X3FFD
INTOSC_OSC_NOCLKOUT equ 0X3FFC
INTRC_OSC_CLKOUT equ 0X3FFD
INTRC_OSC_NOCLKOUT equ 0X3FFC
EXTCLK_OSC equ 0X3FEF
HS_OSC equ 0X3FEE
XT_OSC equ 0X3FED
LP_OSC equ 0X3FEC
CPD_OFF equ 0X3FFF
CPD_ON equ 0X3EFF
FOSC_ECIO equ 0X3FEF
FOSC_EXTRCCLK equ 0X3FFF
FOSC_EXTRCIO equ 0X3FFE
FOSC_HS equ 0X3FEE
FOSC_INTOSCCLK equ 0X3FFD
FOSC_INTOSCIO equ 0X3FFC
FOSC_LP equ 0X3FEC
FOSC_XT equ 0X3FED
WDTE_OFF equ 0X3FFB
WDTE_ON equ 0X3FFF
#define __16F628A 1
#define XTAL 4
#define _CORE 14
#define _MAXRAM 224
#define _RAM_END 0X00E0
#define _MAXMEM 2048
#define _ADC 0
#define _ADC_RES 0
#define _EEPROM 128
#define _PAGES 1
#define _BANKS 3
#define RAM_BANKS 3
#define _USART 1
#define _USB 0
#define _FLASH 0
#define _CWRITE_BLOCK 0
#define BANK0_START 0X20
#define BANK0_END 0X7F
#define BANK1_START 0X00A0
#define BANK1_END 0X00EF
#define BANK2_START 0X0120
#define BANK2_END 0X014F
#define _SYSTEM_VARIABLE_COUNT 4
ram_bank = 0
CURRENT@PAGE = 0
DEST@PAGE = 0
#define LCD#TYPE 0
f@call macro pDest
        call pDest
        endm
f@jump macro pDest
        goto pDest
        endm
set@page macro pDest
        endm
s@b     macro pVarin
if((pVarin & 384) == 0)
if(ram_bank == 1)
        bcf 3,5
endif
if(ram_bank == 2)
        bcf 3,6
endif
if(ram_bank == 3)
        bcf 3,5
        bcf 3,6
endif
ram_bank = 0
endif
if((pVarin & 384) == 128)
if(ram_bank == 0)
        bsf 3,5
endif
if(ram_bank == 2)
        bsf 3,5
        bcf 3,6
endif
if(ram_bank == 3)
        bcf 3,6
endif
ram_bank = 1
endif
if((pVarin & 384) == 256)
if(ram_bank == 0)
        bsf 3,6
endif
if(ram_bank == 1)
        bcf 3,5
        bsf 3,6
endif
if(ram_bank == 3)
        bcf 3,5
endif
ram_bank = 2
endif
if((pVarin & 384) == 384)
if(ram_bank == 0)
        bsf 3,5
        bsf 3,6
endif
if(ram_bank == 1)
        bsf 3,6
endif
if(ram_bank == 2)
        bsf 3,5
endif
ram_bank = 3
endif
        endm
r@b     macro
if((ram_bank & 1) != 0)
        bcf 3,5
endif
if((ram_bank & 2) != 0)
        bcf 3,6
endif
ram_bank = 0
        endm
jump macro pLabel
    goto pLabel
    endm
wreg_byte macro pByteOut
    s@b pByteOut
    movwf pByteOut
    r@b
    endm
wreg_bit macro pVarOut,pBitout
    s@b pVarOut
    andlw 1
    btfsc STATUS,2
    bcf pVarOut,pBitout
    btfss STATUS,2
    bsf pVarOut,pBitout
    r@b
    endm
wreg_word macro pWordOut
    s@b pWordOut
    movwf pWordOut
    s@b pWordOut+1
    clrf pWordOut+1
    r@b
    endm
wreg_dword macro pDwordOut
    s@b pDwordOut+3
    clrf pDwordOut+3
    s@b pDwordOut+2
    clrf pDwordOut+2
    s@b pDwordOut+1
    clrf pDwordOut+1
    s@b pDwordOut
    movwf pDwordOut
    r@b
    endm
byte_wreg macro pByteIn
    s@b pByteIn
    movf pByteIn,W
    r@b
    endm
num_SFR macro pNumIn,pSFROut
    s@b pSFROut
    movlw pNumIn
    movwf pSFROut
    endm
NUM16_SFR macro pNumIn,pSFROut
    s@b pSFROut
    movlw (pNumIn & 255)
    movwf pSFROut
    s@b pSFROut + 1
    movlw ((pNumIn >> 8) & 255)
    movwf pSFROut + 1
    r@b
    endm
num_wreg macro pNumIn
    movlw (pNumIn & 255)
    endm
num_byte macro pNumIn,pByteOut
    s@b pByteOut
if(pNumIn == 0)
    clrf pByteOut
else
    movlw (pNumIn & 255)
    movwf pByteOut
endif
    r@b
    endm
num_bit macro pNumIn,pVarOut,pBitout
    s@b pVarOut
if((pNumIn & 1) == 1)
    bsf pVarOut,pBitout
else
    bcf pVarOut,pBitout
endif
    r@b
    endm
num_word macro pNumIn,pWordOut
if((pNumIn & 255) == 0)
    s@b pWordOut
    clrf pWordOut
else
    s@b pWordOut
    movlw low (pNumIn)
    movwf pWordOut
endif
if(((pNumIn >> 8) & 255) == 0)
    s@b pWordOut+1
    clrf pWordOut+1
else
    s@b pWordOut+1
    movlw high (pNumIn)
    movwf pWordOut+1
endif
    r@b
    endm
num_dword macro pNumIn,pDwordOut
if ((pNumIn >> 24 & 255) == 0)
    s@b pDwordOut+3
    clrf pDwordOut+3
else
    s@b pDwordOut+3
    movlw ((pNumIn >> 24) & 255)
    movwf pDwordOut+3
endif
if( ((pNumIn >> 16) & 255) == 0)
    s@b pDwordOut+2
    clrf pDwordOut+2
else
    s@b pDwordOut+2
    movlw ((pNumIn >> 16) & 255)
    movwf pDwordOut+2
endif
if( ((pNumIn >> 8) & 255) == 0)
    s@b pDwordOut+1
    clrf pDwordOut+1
else
    s@b pDwordOut+1
    movlw high (pNumIn)
    movwf pDwordOut+1
endif
if((pNumIn & 255) == 0)
    s@b pDwordOut
    clrf pDwordOut
else
    s@b pDwordOut
    movlw low (pNumIn)
    movwf pDwordOut
endif
    r@b
    endm
bit_wreg macro pVarin,pBitIn
    s@b pVarin
    clrw
    btfsc pVarin,pBitIn
    movlw 1
    r@b
    endm
bit_byte macro pVarin,pBitIn,pByteOut
    s@b pVarin
    clrw
    btfsc pVarin,pBitIn
    movlw 1
    s@b pByteOut
    movwf pByteOut
    r@b
    endm
bit_bit macro pVarin,pBitIn,pVarOut,pBitout
if((pVarin & 65408) == (pVarOut & 65408))
    s@b pVarOut
    btfsc pVarin,pBitIn
    bsf pVarOut,pBitout
    btfss pVarin,pBitIn
    bcf pVarOut,pBitout
else
    s@b pVarin
    clrdc
    btfsc pVarin,pBitIn
    setdc
    s@b pVarOut
    skpndc
    bsf pVarOut,pBitout
    skpdc
    bcf pVarOut,pBitout
endif
    endm
bit_word macro pVarin,pBitIn,pWordOut
    s@b pWordOut+1
    clrf pWordOut+1
    bit_byte pVarin,pBitIn,pWordOut
    endm
bit_dword macro pVarin,pBitIn,pDwordOut
    s@b pDwordOut+3
    clrf pDwordOut+3
    s@b pDwordOut+2
    clrf pDwordOut+2
    s@b pDwordOut+1
    clrf pDwordOut+1
    bit_byte pVarin,pBitIn,pDwordOut
    endm
word_wreg macro pWordIn
    byte_wreg pWordIn
    endm
word_byte macro pWordIn,pByteOut
    byte_byte pWordIn,pByteOut
    endm
word_bit macro pWordIn,pVarOut,pBitout
    byte_bit pWordIn, pVarOut, pBitout
    endm
word_word macro pWordIn,pWordOut
    s@b pWordIn+1
    movf pWordIn+1,W
    s@b pWordOut+1
    movwf pWordOut+1
    byte_byte pWordIn,pWordOut
    endm
word_dword macro pWordIn,pDwordOut
    s@b pDwordOut+3
    clrf pDwordOut+3
    s@b pDwordOut+2
    clrf pDwordOut+2
    byte_byte pWordIn+1,pDwordOut+1
    byte_byte pWordIn,pDwordOut
    endm
byte_byte macro pByteIn,pByteOut
    s@b pByteIn
    movf pByteIn,W
    s@b pByteOut
    movwf pByteOut
    r@b
    endm
byte_word macro pByteIn,pWordOut
    s@b pWordOut+1
    clrf pWordOut+1
    byte_byte pByteIn,pWordOut
    endm
byte_dword macro pByteIn,pDwordOut
    s@b pDwordOut+3
    clrf pDwordOut+3
    s@b pDwordOut+2
    clrf pDwordOut+2
    s@b pDwordOut+1
    clrf pDwordOut+1
    byte_byte pByteIn,pDwordOut
    endm
    byte_bit macro pByteIn,pVarOut,pBitout
if((pByteIn & 65408) == (pVarOut & 65408))
    s@b pByteIn
    btfsc pByteIn,0
    bsf pVarOut,pBitout
    btfss pByteIn,0
    bcf pVarOut,pBitout
else
    s@b pByteIn
    rrf pByteIn,W
    s@b pVarOut
    skpnc
    bsf pVarOut,pBitout
    skpc
    bcf pVarOut,pBitout
endif
    r@b
    endm
dword_wreg macro pDwordIn
    byte_wreg pDwordIn
    endm
dword_byte macro pDwordIn,pByteOut
    byte_byte pDwordIn,pByteOut
    endm
dword_word macro pDwordIn,pWordOut
    s@b pDwordIn+1
    movf pDwordIn+1,W
    s@b pWordOut+1
    movwf pWordOut+1
    byte_byte pDwordIn,pWordOut
    endm
dword_dword macro pDwordIn,pDwordOut
    byte_byte pDwordIn+3,pDwordOut+3
    byte_byte pDwordIn+2,pDwordOut+2
    byte_byte pDwordIn+1,pDwordOut+1
    byte_byte pDwordIn,pDwordOut
    endm
dword_bit macro pDwordIn,pVarOut,pBitout
    byte_bit pDwordIn,pVarOut,pBitout
    endm
variable CURRENT@PAGE = 0
variable PDESTINATION@PAGE = 0
FIND@PAGE macro pLabelIn
local CURRENT_ADDR = $
local DEST_ADDR = pLabelIn
if((CURRENT_ADDR >= 0X1800) && (CURRENT_ADDR <= 0X2000))
    CURRENT@PAGE = 3
endif
if((CURRENT_ADDR >= 0X1000) && (CURRENT_ADDR <= 0X1800))
    CURRENT@PAGE = 2
endif
if((CURRENT_ADDR >= 0X0800) && (CURRENT_ADDR <= 0X1000))
    CURRENT@PAGE = 1
endif
if((CURRENT_ADDR >= 0) && (CURRENT_ADDR <= 0X0800))
    CURRENT@PAGE = 0
endif
if((DEST_ADDR >= 0X1800) && (DEST_ADDR <= 0X2000))
    PDESTINATION@PAGE = 3
endif
if((DEST_ADDR >= 0X1000) && (DEST_ADDR <= 0X1800))
    PDESTINATION@PAGE = 2
endif
if((DEST_ADDR >= 0X0800) && (DEST_ADDR <= 0X1000))
    PDESTINATION@PAGE = 1
endif
if((DEST_ADDR >= 0) && (DEST_ADDR <= 0X0800))
    PDESTINATION@PAGE = 0
endif
    endm
num_FSR macro pNumIn
    num_byte pNumIn, FSR
if (((pNumIn >> 8) & 255) == 1)
    bsf STATUS,7
else
    bcf STATUS,7
endif
    endm
label_word macro pLabelIn,pWordOut
    movlw (pLabelIn & 255)
    s@b pWordOut
    movwf pWordOut
    movlw ((pLabelIn >> 8) & 255)
    s@b pWordOut+1
    movwf pWordOut+1
    r@b
    endm
wreg_sword macro pWordOut
    s@b pWordOut
    movwf pWordOut
    movlw 0
    btfsc pWordOut,7
    movlw 255
    s@b pWordOut+1
    movwf pWordOut+1
    r@b
    endm
wreg_sdword macro pDwordOut
    s@b pDwordOut
    movwf pDwordOut
    movlw 0
    btfsc pDwordOut,7
    movlw 255
    s@b pDwordOut+1
    movwf pDwordOut+1
    s@b pDwordOut+2
    movwf pDwordOut+2
    s@b pDwordOut+3
    movwf pDwordOut+3
    r@b
    endm
byte_sword macro pByteIn,pWordOut
    s@b pByteIn
    movf pByteIn,W
    s@b pWordOut
    movwf pWordOut
    movlw 0
    btfsc pWordOut,7
    movlw 255
    s@b pWordOut+1
    movwf pWordOut+1
    r@b
    endm
byte_sdword macro pByteIn,pDwordOut
    s@b pByteIn
    movf pByteIn,W
    s@b pDwordOut
    movwf pDwordOut
    movlw 0
    btfsc pDwordOut,7
    movlw 255
    s@b pDwordOut+1
    movwf pDwordOut+1
    s@b pDwordOut+2
    movwf pDwordOut+2
    s@b pDwordOut+3
    movwf pDwordOut+3
    r@b
    endm
word_sdword macro pWordIn,pDwordOut
    s@b pWordIn
    movf pWordIn,W
    s@b pDwordOut
    movwf pDwordOut
    s@b pWordIn+1
    movf pWordIn+1,W
    s@b pDwordOut+1
    movwf pDwordOut+1
    movlw 0
    btfsc pDwordOut+1,7
    movlw 255
    s@b pDwordOut+2
    movwf pDwordOut+2
    s@b pDwordOut+3
    movwf pDwordOut+3
    r@b
    endm
PP0 = 32
PP0H = 33
PP1 = 34
PP1H = 35
tekrar = 36
w_1 = 37
w_1H = 38
mili_saniye = 39
mili_saniyeH = 40
#define __XTAL 4
proton#code#start
        org 0
        goto proton#main#start
__DELAY_MS_
        clrf 35
__DELAY_MS_W_
        movwf 34
DLY@P
        movlw 255
        addwf 34,F
        skpc
        addwf 35,F
        skpc
        goto I@NT
        movlw 3
        movwf 33
        movlw 223
        call __DELAY_US_W_
        goto DLY@P
__DELAY_US_
        clrf 33
__DELAY_US_W_
        addlw 232
        movwf 32
        comf 33,F
        movlw 252
        skpc
        goto $ + 4
        addwf 32,F
        skpnc
        goto $ - 2
        addwf 32,F
        nop
        incfsz 33,F
        goto $ - 6
        btfsc 32,0
        goto $ + 1
        btfss 32,1
        goto $ + 3
        nop
        goto $ + 1
        return
I@NT
        bcf STATUS,7
        bcf STATUS,5
        bcf STATUS,6
        return
proton#main#start
        clrf STATUS
F2_SOF equ $ ; POLISCAKARI.PRP
F2_EOF equ $ ; POLISCAKARI.PRP
F1_SOF equ $ ; POLISCAKARI.BAS
__config  0X1E54
F1_000021 equ $ ; IN [POLISCAKARI.BAS] ALL_DIGITAL = TRUE
        movlw 7
        movwf CMCON
F1_000024 equ $ ; IN [POLISCAKARI.BAS] TRISA=255
        movlw 255
        bsf STATUS,5
ram_bank = 1
        movwf TRISA
F1_000025 equ $ ; IN [POLISCAKARI.BAS] TRISB=%11111000
        movlw 248
        movwf TRISB
F1_000026 equ $ ; IN [POLISCAKARI.BAS] PORTB=0
        bcf STATUS,5
ram_bank = 0
        clrf PORTB
F1_000029 equ $ ; IN [POLISCAKARI.BAS] INTCON=0
        clrf INTCON
F1_000030 equ $ ; IN [POLISCAKARI.BAS] OPTION_REG=%10001111
        movlw 143
        bsf STATUS,5
ram_bank = 1
        movwf OPTION_REG
police
        bcf STATUS,5
ram_bank = 0
F1_000039 equ $ ; IN [POLISCAKARI.BAS] MILI_SANIYE = 35
        clrf mili_saniyeH
        movlw 35
        movwf mili_saniye
F1_000040 equ $ ; IN [POLISCAKARI.BAS] FOR TEKRAR = 1 TO 7
        movlw 1
        movwf tekrar
FR@LB2
        movlw 8
        subwf tekrar,W
        btfsc STATUS,0
        goto NX@LB3
F1_000041 equ $ ; IN [POLISCAKARI.BAS] PORTB = %00000001
        movlw 1
        movwf PORTB
F1_000042 equ $ ; IN [POLISCAKARI.BAS] GOSUB BEKLE_BAKIM
        call bekle_bakim
F1_000043 equ $ ; IN [POLISCAKARI.BAS] PORTB =%00000000
        clrf PORTB
F1_000044 equ $ ; IN [POLISCAKARI.BAS] GOSUB BEKLE_BAKIM
        call bekle_bakim
CT@LB4
F1_000045 equ $ ; IN [POLISCAKARI.BAS] NEXT
        movlw 1
        addwf tekrar,F
        btfss STATUS,0
        goto FR@LB2
NX@LB3
F1_000047 equ $ ; IN [POLISCAKARI.BAS] PORTB=%00000001
        movlw 1
        movwf PORTB
F1_000048 equ $ ; IN [POLISCAKARI.BAS] MILI_SANIYE = 90
        clrf mili_saniyeH
        movlw 90
        movwf mili_saniye
F1_000049 equ $ ; IN [POLISCAKARI.BAS] GOSUB BEKLE_BAKIM
        call bekle_bakim
F1_000051 equ $ ; IN [POLISCAKARI.BAS] MILI_SANIYE = 35
        clrf mili_saniyeH
        movlw 35
        movwf mili_saniye
F1_000052 equ $ ; IN [POLISCAKARI.BAS] FOR TEKRAR = 1 TO 7
        movlw 1
        movwf tekrar
FR@LB5
        movlw 8
        subwf tekrar,W
        btfsc STATUS,0
        goto NX@LB6
F1_000053 equ $ ; IN [POLISCAKARI.BAS] PORTB = %00000100
        movlw 4
        movwf PORTB
F1_000054 equ $ ; IN [POLISCAKARI.BAS] GOSUB BEKLE_BAKIM
        call bekle_bakim
F1_000055 equ $ ; IN [POLISCAKARI.BAS] PORTB = %00000000
        clrf PORTB
F1_000056 equ $ ; IN [POLISCAKARI.BAS] GOSUB BEKLE_BAKIM
        call bekle_bakim
CT@LB7
F1_000057 equ $ ; IN [POLISCAKARI.BAS] NEXT
        movlw 1
        addwf tekrar,F
        btfss STATUS,0
        goto FR@LB5
NX@LB6
F1_000059 equ $ ; IN [POLISCAKARI.BAS] PORTB = %00000100
        movlw 4
        movwf PORTB
F1_000060 equ $ ; IN [POLISCAKARI.BAS] MILI_SANIYE = 90
        clrf mili_saniyeH
        movlw 90
        movwf mili_saniye
F1_000061 equ $ ; IN [POLISCAKARI.BAS] GOSUB BEKLE_BAKIM
        call bekle_bakim
F1_000062 equ $ ; IN [POLISCAKARI.BAS] GOTO POLICE
        goto police
bekle_bakim
F1_000067 equ $ ; IN [POLISCAKARI.BAS] FOR W_1 = 1 TO MILI_SANIYE
        clrf w_1H
        movlw 1
        movwf w_1
FR@LB8
        movf w_1H,W
        subwf mili_saniyeH,W
        btfss STATUS,0
        goto NX@LB9
        btfss STATUS,2
        goto CP@LB2
        movf w_1,W
        subwf mili_saniye,W
        btfss STATUS,0
        goto NX@LB9
CP@LB2
F1_000068 equ $ ; IN [POLISCAKARI.BAS] DELAYMS 1
        movlw 1
        call __DELAY_MS_
F1_000069 equ $ ; IN [POLISCAKARI.BAS] CLRWDT
        clrwdt
CT@LB10
F1_000070 equ $ ; IN [POLISCAKARI.BAS] NEXT
        incf w_1,F
        btfsc STATUS,2
        incfsz w_1H,F
        goto FR@LB8
NX@LB9
F1_000071 equ $ ; IN [POLISCAKARI.BAS] RETURN
        return
F1_EOF equ $ ; POLISCAKARI.BAS
PB@LB11
        goto PB@LB11
__EOF
        end



serhanbber

Maalesef proton asm yi bilmiyorum.MPLAB ta yazıp MPASM ile ASM koduna çeviriyorum.O yüzden proton asm'yi bilmiyorum

ferit06

asm nin protonu vs yok ki. kodlara bakarsan asm anlarsın. Ayrıca verilmiş olan program basic dilinde kısa bir araştırma ile 5 satırlık program ne diyor anlayabilirsin.