list p=18f452 include "p18f452.inc" ;STANDART AYARLAR BASLANGICI __CONFIG _CONFIG2H, _WDT_OFF_2H __CONFIG _CONFIG1H, _HS_OSC_1H & _OSCS_ON_1H __CONFIG _CONFIG2L, _BOR_OFF_2L & _PWRT_ON_2L __CONFIG _CONFIG3H, _CCP2MX_OFF_3H __CONFIG _CONFIG4L, _STVR_OFF_4L & _LVP_OFF_4L & _DEBUG_OFF_4L __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L __CONFIG _CONFIG7H, _EBTRB_OFF_7H DATAM EQU H'80' SAYA EQU H'81' SAYB EQU H'82' CLRF TRISB MOVLW B'00110000' MOVWF TRISD CLRF PORTB CLRF PORTD CLRF TRISB BCF TRISC,5 BSF TRISC,4 BCF TRISC,3 BCF TRISC,2 SERIAL MOVLW B'10000000' MOVWF PORTB CALL CLKX MOVLW B'00100010' MOVWF SSPCON1 MOVLW B'01000000' MOVWF SSPSTAT ;----------------------- RESET COMMAND BSF PORTC,2 ;SS MMC MODE MOVLW H'FF' MOVWF DATAM CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD BCF PORTC,2 ;SS SPI MODE CALL BEKLE ;----------------------- CMD0 BASLANGICI MOVLW H'40' MOVWF DATAM CALL SENDCMD MOVLW H'00' MOVWF DATAM CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD MOVLW H'95' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD RES1 MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW H'01' SUBWF DATAM,W BTFSS STATUS,Z GOTO NOT1 GOTO OK1 NOT1 MOVLW B'11100011' ;HATA MOVWF PORTB CALL CLKY GOTO NOT1 OK1 ;BIRINCI BASAMAK ISLEMI TAMAMLANDI BSF PORTC,2 ;SS MMC MODE CALL BEKLE BCF PORTC,2 ;SS SPI MODE ;------------------------------------------------------------- INIT BSF PORTC,2 ;SS MMC MODE RESET RUTiNi MOVLW H'FF' ;RESET RUTiNi MOVWF DATAM ;RESET RUTiNi CALL RESPOND ;RESET RUTiNi BCF PORTC,2 ;SS SPI MODE ;RESET RUTiNi MOVLW H'41' MOVWF DATAM CALL SENDCMD MOVLW H'00' MOVWF DATAM CALL SENDCMD CALL SENDCMD CALL SENDCMD CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW H'00' SUBWF DATAM,W BTFSS STATUS,Z GOTO NOT2 GOTO OK2 NOT2 COMF DATAM,W MOVWF PORTB CALL CLKY GOTO INIT OK2 ;----------------------- BASLANGIC ISLEMI TAMAMLANDI ;----------------------- CMD1 SONU BSF PORTC,2 ;SS MMC MODE RESET RUTINi MOVLW H'FF' ;RESET RUTINi MOVWF DATAM ;RESET RUTINi CALL RESPOND ;RESET RUTINi BCF PORTC,2 ;SS SPI MODE ;RESET RUTINi MOVLW H'50' MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESHH MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESHL MOVWF DATAM CALL SENDCMD MOVLW H'02' ;ADRESLH MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESLL MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW H'00' SUBWF DATAM,W BTFSS STATUS,Z GOTO NOT3 GOTO OK3 NOT3 COMF DATAM,W MOVWF PORTB CALL CLKY GOTO NOT3 OK3 ;MSET_BLK TAMAMLANDI ;-------------------------------------------- YAZILIM ICIN ADRES GONDERILDI ;YAZMA ISLEMI BASLIYOR BSF PORTC,2 ;SS MMC MODE RESET RUTINi MOVLW H'FF' ;RESET RUTINi MOVWF DATAM ;RESET RUTINi CALL RESPOND ;RESET RUTINi BCF PORTC,2 ;SS SPI MODE ;RESET RUTINi MOVLW H'58' MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESHH MOVWF DATAM CALL SENDCMD MOVLW H'01' ;ADRESHL MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESLH MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESLL MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW H'00' SUBWF DATAM,W BTFSS STATUS,Z GOTO NOT4 GOTO OK4 NOT4 COMF DATAM,W MOVWF PORTB CALL CLKY GOTO NOT4 OK4 ;********************* TAMAMLANDI MOVLW H'FE' MOVWF DATAM CALL SENDCMD MOVLW .255 MOVWF SAYA WR1 MOVLW "E" ;yazma islemi 255 MOVWF DATAM CALL SENDCMD DECFSZ SAYA,F GOTO WR1 MOVLW .255 MOVWF SAYA WR2 MOVLW "B" ;yazma islemi 255 MOVWF DATAM CALL SENDCMD DECFSZ SAYA,F GOTO WR2 ;255+255 = 510 MOVLW "C" ;+1 MOVWF DATAM CALL SENDCMD MOVLW "D" ;+1=512 siz buraya istediginizi yazabilirsiniz MOVWF DATAM CALL SENDCMD ;----------------------------------512 BYTE YAZILDI MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD NOT55 MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW H'FF' SUBWF DATAM,W BTFSS STATUS,Z GOTO NOT5 GOTO OK5 NOT5 COMF DATAM,W MOVWF PORTB CALL CLKY GOTO NOT55 OK5 BSF PORTC,2 ;SS MMC MODE RESET RUTINi MOVLW H'FF' ;RESET RUTINi MOVWF DATAM ;RESET RUTINi CALL RESPOND ;RESET RUTINi BCF PORTC,2 ;SS SPI MODE ;RESET RUTINi ;OKUMA ISLEMI BASLIYOR SIMDI BSF PORTC,2 ;SS MMC MODE RESET RUTINi MOVLW H'FF' ;RESET RUTINi MOVWF DATAM ;RESET RUTINi CALL RESPOND ;RESET RUTINi BCF PORTC,2 ;SS SPI MODE ;RESET RUTINi MOVLW H'51' MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESHH MOVWF DATAM CALL SENDCMD MOVLW H'01' ;ADRESHL MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESLH MOVWF DATAM CALL SENDCMD MOVLW H'00' ;ADRESLL MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL SENDCMD MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW H'00' SUBWF DATAM,W BTFSS STATUS,Z GOTO NOT6 GOTO OK6 NOT6 COMF DATAM,W MOVWF PORTB CALL CLKY GOTO NOT6 OK6 NOT77 MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW H'FE' SUBWF DATAM,W BTFSS STATUS,Z GOTO NOT7 GOTO OK7 NOT7 COMF DATAM,W MOVWF PORTB CALL CLKY GOTO NOT77 OK7 MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW B'10000000' MOVWF PORTB CALL CLKX COMF DATAM,W MOVWF PORTB CALL CLKY ;--- okuma islemi respond çagrilinca veri datam registerine kaydoluyor. bu islem 512 kez tekrarlanarak 512 byte okunur. MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW B'10000000' MOVWF PORTB CALL CLKX COMF DATAM,W MOVWF PORTB CALL CLKY ;--- MOVLW H'FF' MOVWF DATAM CALL RESPOND MOVLW B'10000000' MOVWF PORTB CALL CLKX COMF DATAM,W MOVWF PORTB CALL CLKY AA GOTO AA ;###################### ALT PROGRAMLAR ######################## CLKY BSF PORTD,7 NOP NOP NOP BCF PORTD,7 RETURN CLKX BSF PORTD,6 NOP NOP NOP BCF PORTD,6 RETURN BEKLE MOVLW .10 MOVWF SAYA SS2 MOVLW .100 MOVWF SAYB SS1 DECFSZ SAYB,F GOTO SS1 DECFSZ SAYA,F GOTO SS2 RETURN SENDCMD BCF SSPSTAT , BF MOVFF DATAM , SSPBUF SC1 BTFSS SSPSTAT , BF GOTO SC1 RETURN BTFSS SSPSTAT , BF BTFSS SSPSTAT , BF BTFSS SSPSTAT , BF BTFSS SSPSTAT , BF RESPOND BCF SSPSTAT , BF MOVFF DATAM , SSPBUF SC2 BTFSS SSPSTAT , BF GOTO SC2 MOVFF SSPBUF , DATAM RETURN ;//////////////////////////////////////////////////////////////////////////// END ;EMIN DEMIR ;WWW.TEKNOARGE.NET ;emind25@hotmail.com ;05362175420