asm dosyasının hex'i lazım

Başlatan remzi, 19 Nisan 2010, 21:39:59

remzi

LIST    P = 16F84,  F = INHX8M, n = 66
	INCLUDE		"C:\Program Files\Microchip\MPASM Suite:P16F84.INC"
        PIC84   equ     H'03FF'

W               EQU     H'0000'
F               EQU     H'0001'
INDF            EQU     H'0000'
TMR0            EQU     H'0001'
PCL             EQU     H'0002'
STATUS          EQU     H'0003'
FSR             EQU     H'0004'
PORTA           EQU     H'0005'
PORTB           EQU     H'0006'
EEDATA          EQU     H'0008'
EEADR           EQU     H'0009'
PCLATH          EQU     H'000A'
INTCON          EQU     H'000B'
OPTION_REG      EQU     H'0081'
TRISA           EQU     H'0085'
TRISB           EQU     H'0086'
EECON1          EQU     H'0088'
EECON2          EQU     H'0089'
HCOUNT		equ     H'000D'	
LCOUNT		equ     H'000E'					
ZAMAN		equ     H'0028'      
msb		equ     0x29            ;delay register
lsb             equ     0x2A            ;delay register
FLCOUNT         equ     H'0027'         ;flas SAYACI
WAITC           equ     H'0026'         ;wait ve run
SPECIAL         equ     H'0025'         ;special function registeri
COUNT1          equ     H'0021'         ;system timer counter
COUNT2          equ     H'0021'         ;system flas timer counter
SYSFUNC         equ     H'0020'         ;system control register
;----- STATUS Bits --------------------------------------------------------
IRP             EQU     H'0007'
RP1             EQU     H'0006'
RP0             EQU     H'0005'
NOT_TO          EQU     H'0004'
NOT_PD          EQU     H'0003'
Z               EQU     H'0002'
DC              EQU     H'0001'
C               EQU     H'0000'
        __MAXRAM H'AF'
        __BADRAM H'07', H'30'-H'7F', H'87'

_CP_ON          EQU     H'3FEF'
_CP_OFF         EQU     H'3FFF'
_PWRTE_ON       EQU     H'3FFF'
_PWRTE_OFF      EQU     H'3FF7'
_WDT_ON         EQU     H'3FFF'
_WDT_OFF        EQU     H'3FFB'
_LP_OSC         EQU     H'3FFC'
_XT_OSC         EQU     H'3FFD'
_HS_OSC         EQU     H'3FFE'
_RC_OSC         EQU     H'3FFF'

 	__CONFIG _CP_OFF & _WDT_ON  & _XT_OSC 

;
;
	goto	START
;
START
        clrw                    ; RESET ALG.
        movlw   D'5'		; reset durumunda
        movwf   ZAMAN           ; 5 sn cikislar kapali tutulur
        call    SAY             ; RESET ALG.
        clrwdt
        movlw   D'60'           ; flash süresi 60sn
        movwf   FLCOUNT
        bsf     STATUS,RP0
        movlw   H'00'
        movwf   TRISB           ;PORTB pinleri out
        movlw   H'03'
        movwf   TRISA           ;PORTA pinleri bazilari input
        bcf     STATUS,RP0
        movlw   H'00'   
        movwf   PORTA
        movwf   PORTB
        goto    FLAS_PROG       ; baslangic flash programi
;
MAIN
	CLRW
        clrwdt
        movlw   H'10'          ;set flas time delay 10 sn
        movwf   FLCOUNT
        bsf     STATUS,RP0
        movlw   H'00'
        movwf   TRISB           ;PORTB pins output
        movlw   H'03'
        movwf   TRISA           ;PORTA same pins input
        bcf     STATUS,RP0
        movlw   H'00'   
        movwf   PORTA
        movwf   PORTB
        movlw   D'18'           ; wait step süresi
        movwf   WAITC

TEST_BUTTON
        clrwdt
        btfsc   PORTA,0         ;flas input
        goto    TEST_BUTTON_1
        goto    FLAS_PROG
TEST_BUTTON_1
        clrwdt
;****************************wait step1**************************************
        movlw   B'01100100'     ;yes-kir-yes-sar-kir-yes-sar-kir
                                ; 0 - 1 - 1 - 0 - 0 - 1 - 0 - 0 
                                ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB 

        movlw   B'00010100'     ;***-***-***-sar-yes-kir-***-***
                                ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                                ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'5'
        movwf   ZAMAN           
        call    SAY2

        btfss   SYSFUNC,1       ; butona basilmis ise
        goto    TEST_BUTTON_2
        goto    TEST_BUTTON_3
TEST_BUTTON_2
        movlw   D'2'            ; wait step zamani
        movwf   WAITC

        decfsz  WAITC
        goto    TEST_BUTTON
        goto    TEST_BUTTON_3
TEST_BUTTON_3
        clrf    WAITC
        movlw   D'20'
        movwf   ZAMAN           
        call    SAY2
        bcf     SYSFUNC,1       ; button kaydedicisi=0

RUN_PROG
;****************************step1*******************************************
;***************************** 3 sn******************************************

        movlw   B'01010010'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 0 - 1 - 0 - 1 - 0 - 0 - 1 - 0
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00010100'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'3'
        movwf   ZAMAN
        call    SAY2
;****************************step2*******************************************
;**************************** 3 sn ******************************************

        movlw   B'01001001'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 0 - 1 - 0 - 0 - 1 - 0 - 0 - 1
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00010100'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'3'
        movwf   ZAMAN
        call    SAY2
;****************************step3*******************************************
;**************************** 30 sn *****************************************
        movlw   B'10001001'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 1 - 0 - 0 - 0 - 1 - 0 - 0 - 1
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00011000'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 1 - 0 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'25'
        movwf   ZAMAN
        call    SAY2
;****************************step4*******************************************
;**************************** 3 sn ******************************************

        movlw   B'01001001'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 0 - 1 - 0 - 0 - 1 - 0 - 0 - 1
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00010100'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'3'
        movwf   ZAMAN
        call    SAY2
;****************************step5*******************************************
;**************************** 3 sn ******************************************
        movlw   B'01011011'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 0 - 1 - 0 - 1 - 1 - 0 - 1 - 1
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00010100'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'3'
        movwf   ZAMAN
        call    SAY2
;****************************step5********************************************
        goto    MAIN
;
SAY
	clrwdt
        call    vlong
	decfsz 	ZAMAN
        goto 	SAY
        return
SAY2
        clrwdt
        call    del1sn
        decfsz  ZAMAN
        goto    SAY2
        return
;
del1sn
        clrwdt
        movlw   D'26'
        movwf   COUNT2
        goto    del1
del1
        clrwdt
        bsf     PORTA,4
        call    delay20
        decfsz  COUNT2
        goto    del1

        clrwdt
        movlw   D'26'
        movwf   COUNT2
del2
        bcf     PORTA,4
        call    delay20
        decfsz  COUNT2
        goto    del2
        return
;****************************************************************************
;*-     Delay Routines                                                     -*
;****************************************************************************
vlong   
	movlw   0xff            ;very long delay, approx 200msec
        movwf   msb
        goto    d1
delay20                         ;20 msec delay
        movlw   .26
        movwf   msb
        goto    d1
delay16                         ;16 msec delay
        movlw   .21
        movwf   msb
        goto    d1
delay1                          ;approx 750nsec delay
        movlw   .1      
        movwf   msb
d1      movlw   0xff
        movwf   lsb
d2      decfsz  lsb,F
        goto    d2
        decfsz  msb,F
        goto    d1
;*********************** BUTTON TEST ***************************************
        btfsc   PORTA,1         ; button input
        goto    d3
        bsf     SYSFUNC,1       ; buttun lacth set
d3
        return
;*********************** FLAS PROGRAM **************************************
FLAS_PROG

        btfsc   PORTA,0         ;flas input testi
        goto    F2
        goto    F1
F1
        movlw   H'10'           ;flas zamani (min 10 sn)
        movwf   FLCOUNT
F2        
;****************************step1*******************************************
;****************************0.5 sn******************************************
        clrwdt
        movlw   B'01010010'     ;yes-kir-yes-sar-kir-yes-sar-kir
        movwf   PORTB           ; 0 - 1 - 0 - 1 - 0 - 0 - 1 - 0 
                                ; -yaya -- oto 1   --- oto 2 --

        movlw   B'00010100'     ;***-***-***-sar-yes-kir-***-***
                                ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                                ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA
        movlw   D'3'
        movwf   ZAMAN
        call    SAY
;****************************step2********************************************
;****************************0.5 sn*******************************************

        clrwdt
        movlw   B'00000000'     ;yes-kir-yes-sar-kir-yes-sar-kir
        movwf   PORTB           ; 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 
                                ; -yaya -- oto 1   --- oto 2 --

        movlw   B'00000000'     ;***-***-***-sar-yes-kir-***-***
                                ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                                ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA
        movlw   D'3'
        movwf   ZAMAN
        call    SAY
       
        decfsz  FLCOUNT
        goto    FLAS_PROG
        goto    RUN_PROG
;****************************0.5 sn*******************************************
FINISH
        org     H'3FF'
        goto    START
end

ferdem

LIST    P = 16F84,  F = INHX8M, n = 66
        PIC84   equ     H'03FF'

W               EQU     H'0000'
F               EQU     H'0001'
INDF            EQU     H'0000'
TMR0            EQU     H'0001'
PCL             EQU     H'0002'
STATUS          EQU     H'0003'
FSR             EQU     H'0004'
PORTA           EQU     H'0005'
PORTB           EQU     H'0006'
EEDATA          EQU     H'0008'
EEADR           EQU     H'0009'
PCLATH          EQU     H'000A'
INTCON          EQU     H'000B'
OPTION_REG      EQU     H'0081'
TRISA           EQU     H'0085'
TRISB           EQU     H'0086'
EECON1          EQU     H'0088'
EECON2          EQU     H'0089'
HCOUNT		equ     H'000D'	
LCOUNT		equ     H'000E'					
ZAMAN		equ     H'0028'      
msb		equ     0x29            ;delay register
lsb             equ     0x2A            ;delay register
FLCOUNT         equ     H'0027'         ;flas SAYACI
WAITC           equ     H'0026'         ;wait ve run
SPECIAL         equ     H'0025'         ;special function registeri
COUNT1          equ     H'0021'         ;system timer counter
COUNT2          equ     H'0021'         ;system flas timer counter
SYSFUNC         equ     H'0020'         ;system control register
;----- STATUS Bits --------------------------------------------------------
IRP             EQU     H'0007'
RP1             EQU     H'0006'
RP0             EQU     H'0005'
NOT_TO          EQU     H'0004'
NOT_PD          EQU     H'0003'
Z               EQU     H'0002'
DC              EQU     H'0001'
C               EQU     H'0000'
        __MAXRAM H'AF'
        __BADRAM H'07', H'30'-H'7F', H'87'

_CP_ON          EQU     H'3FEF'
_CP_OFF         EQU     H'3FFF'
_PWRTE_ON       EQU     H'3FFF'
_PWRTE_OFF      EQU     H'3FF7'
_WDT_ON         EQU     H'3FFF'
_WDT_OFF        EQU     H'3FFB'
_LP_OSC         EQU     H'3FFC'
_XT_OSC         EQU     H'3FFD'
_HS_OSC         EQU     H'3FFE'
_RC_OSC         EQU     H'3FFF'

 	__CONFIG _CP_OFF & _WDT_ON  & _XT_OSC 

;
;
	goto	START
;
START
        clrw                    ; RESET ALG.
        movlw   D'5'		; reset durumunda
        movwf   ZAMAN           ; 5 sn cikislar kapali tutulur
        call    SAY             ; RESET ALG.
        clrwdt
        movlw   D'60'           ; flash süresi 60sn
        movwf   FLCOUNT
        bsf     STATUS,RP0
        movlw   H'00'
        movwf   TRISB           ;PORTB pinleri out
        movlw   H'03'
        movwf   TRISA           ;PORTA pinleri bazilari input
        bcf     STATUS,RP0
        movlw   H'00'   
        movwf   PORTA
        movwf   PORTB
        goto    FLAS_PROG       ; baslangic flash programi
;
MAIN
	CLRW
        clrwdt
        movlw   H'10'          ;set flas time delay 10 sn
        movwf   FLCOUNT
        bsf     STATUS,RP0
        movlw   H'00'
        movwf   TRISB           ;PORTB pins output
        movlw   H'03'
        movwf   TRISA           ;PORTA same pins input
        bcf     STATUS,RP0
        movlw   H'00'   
        movwf   PORTA
        movwf   PORTB
        movlw   D'18'           ; wait step süresi
        movwf   WAITC

TEST_BUTTON
        clrwdt
        btfsc   PORTA,0         ;flas input
        goto    TEST_BUTTON_1
        goto    FLAS_PROG
TEST_BUTTON_1
        clrwdt
;****************************wait step1**************************************
        movlw   B'01100100'     ;yes-kir-yes-sar-kir-yes-sar-kir
                                ; 0 - 1 - 1 - 0 - 0 - 1 - 0 - 0 
                                ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB 

        movlw   B'00010100'     ;***-***-***-sar-yes-kir-***-***
                                ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                                ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'5'
        movwf   ZAMAN           
        call    SAY2

        btfss   SYSFUNC,1       ; butona basilmis ise
        goto    TEST_BUTTON_2
        goto    TEST_BUTTON_3
TEST_BUTTON_2
        movlw   D'2'            ; wait step zamani
        movwf   WAITC

        decfsz  WAITC
        goto    TEST_BUTTON
        goto    TEST_BUTTON_3
TEST_BUTTON_3
        clrf    WAITC
        movlw   D'20'
        movwf   ZAMAN           
        call    SAY2
        bcf     SYSFUNC,1       ; button kaydedicisi=0

RUN_PROG
;****************************step1*******************************************
;***************************** 3 sn******************************************

        movlw   B'01010010'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 0 - 1 - 0 - 1 - 0 - 0 - 1 - 0
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00010100'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'3'
        movwf   ZAMAN
        call    SAY2
;****************************step2*******************************************
;**************************** 3 sn ******************************************

        movlw   B'01001001'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 0 - 1 - 0 - 0 - 1 - 0 - 0 - 1
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00010100'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'3'
        movwf   ZAMAN
        call    SAY2
;****************************step3*******************************************
;**************************** 30 sn *****************************************
        movlw   B'10001001'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 1 - 0 - 0 - 0 - 1 - 0 - 0 - 1
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00011000'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 1 - 0 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'25'
        movwf   ZAMAN
        call    SAY2
;****************************step4*******************************************
;**************************** 3 sn ******************************************

        movlw   B'01001001'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 0 - 1 - 0 - 0 - 1 - 0 - 0 - 1
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00010100'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'3'
        movwf   ZAMAN
        call    SAY2
;****************************step5*******************************************
;**************************** 3 sn ******************************************
        movlw   B'01011011'   ;yes-kir-yes-sar-kir-yes-sar-kir
                              ; 0 - 1 - 0 - 1 - 1 - 0 - 1 - 1
                              ; -yaya -- oto 1   --- oto 2 --
        movwf   PORTB

        movlw   B'00010100'   ;***-***-***-sar-yes-kir-***-***
                              ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                              ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA

        movlw   D'3'
        movwf   ZAMAN
        call    SAY2
;****************************step5********************************************
        goto    MAIN
;
SAY
	clrwdt
        call    vlong
	decfsz 	ZAMAN
        goto 	SAY
        return
SAY2
        clrwdt
        call    del1sn
        decfsz  ZAMAN
        goto    SAY2
        return
;
del1sn
        clrwdt
        movlw   D'26'
        movwf   COUNT2
        goto    del1
del1
        clrwdt
        bsf     PORTA,4
        call    delay20
        decfsz  COUNT2
        goto    del1

        clrwdt
        movlw   D'26'
        movwf   COUNT2
del2
        bcf     PORTA,4
        call    delay20
        decfsz  COUNT2
        goto    del2
        return
;****************************************************************************
;*-     Delay Routines                                                     -*
;****************************************************************************
vlong   
	movlw   0xff            ;very long delay, approx 200msec
        movwf   msb
        goto    d1
delay20                         ;20 msec delay
        movlw   .26
        movwf   msb
        goto    d1
delay16                         ;16 msec delay
        movlw   .21
        movwf   msb
        goto    d1
delay1                          ;approx 750nsec delay
        movlw   .1      
        movwf   msb
d1      movlw   0xff
        movwf   lsb
d2      decfsz  lsb,F
        goto    d2
        decfsz  msb,F
        goto    d1
;*********************** BUTTON TEST ***************************************
        btfsc   PORTA,1         ; button input
        goto    d3
        bsf     SYSFUNC,1       ; buttun lacth set
d3
        return
;*********************** FLAS PROGRAM **************************************
FLAS_PROG

        btfsc   PORTA,0         ;flas input testi
        goto    F2
        goto    F1
F1
        movlw   H'10'           ;flas zamani (min 10 sn)
        movwf   FLCOUNT
F2        
;****************************step1*******************************************
;****************************0.5 sn******************************************
        clrwdt
        movlw   B'01010010'     ;yes-kir-yes-sar-kir-yes-sar-kir
        movwf   PORTB           ; 0 - 1 - 0 - 1 - 0 - 0 - 1 - 0 
                                ; -yaya -- oto 1   --- oto 2 --

        movlw   B'00010100'     ;***-***-***-sar-yes-kir-***-***
                                ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                                ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA
        movlw   D'3'
        movwf   ZAMAN
        call    SAY
;****************************step2********************************************
;****************************0.5 sn*******************************************

        clrwdt
        movlw   B'00000000'     ;yes-kir-yes-sar-kir-yes-sar-kir
        movwf   PORTB           ; 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 
                                ; -yaya -- oto 1   --- oto 2 --

        movlw   B'00000000'     ;***-***-***-sar-yes-kir-***-***
                                ; 0 - 0 - 0 - 1 - 0 - 1 - 0 - 0 
                                ; -----------FLAS--YAYA---INPUT 
        movwf   PORTA
        movlw   D'3'
        movwf   ZAMAN
        call    SAY
       
        decfsz  FLCOUNT
        goto    FLAS_PROG
        goto    RUN_PROG
;****************************0.5 sn*******************************************
FINISH
        org     H'3FF'
        goto    START
end


:10000000012803010530A8005E2064003C30A700F1
:10001000831600308600033085008312003085008F
:1000200086008E28030164001030A700831600307C
:100030008600033085008312003085008600123070
:10004000A6006400051825288E2864006430860008
:10005000143085000530A8006320A01C3028352806
:100060000230A600A60B21283528A6011430A800CE
:100070006320A01052308600143085000330A800A1
:10008000632049308600143085000330A8006320C7
:1000900089308600183085001930A8006320493067
:1000A0008600143085000330A80063205B30860092
:1000B000143085000330A8006320122864007920E2
:1000C000A80B5E28080064006820A80B63280800BD
:1000D00064001A30A1006C28640005167C20A10B76
:1000E0006C2864001A30A10005127C20A10B742832
:1000F0000800FF30A90084281A30A9008428153090
:10010000A90084280130A900FF30AA00AA0B862884
:10011000A90B842885188D28A01408000518932899
:1001200091281030A70064005230860014308500FA
:100130000330A8005E206400003086000030850097
:0C0140000330A8005E20A70B8E283A2890
:0207FE000128D0
:02400E00FD3F74
:00000001FF


remzi