[ PedjaZ @ 03.01.2014. 08:46 ] @
Mozda nekom zatreba... Ovo radi sa 23K256 ali ako neko ima proteusov model za 23LC1024 bio bih mu zahvalan ako okaci ovde. Code: DEFINE OSC 20 ' REGISTERS AND PINOUT ( 1 = IN; 0 = OUT ) ' ================================================================ '76543210 TRISD = %00100000 'mora ovo zbog nCS TRISC = %00010000 '0 set PORTC I/O TRISE = %00000000 TRISB = %00000000 ADCON1 = 7 ' Set PORTA and PORTE to digital ' SSPEN VAR SSP1CON1.5 ' SSP Enable bit 5 ' CKP VAR SSP1CON1.4 ' Clock Polarity Select 4 ' SMP VAR SSP1STAT.7 ' Data input sample phase ' CKE VAR SSP1STAT.6 ' Clock Edge Select bit ' SSPIF VAR PIR1.3 ' SPI interrupt flag -strana 126 SSPEN2 VAR SSP2CON1.5 ' SSP Enable bit 5 CKP2 VAR SSP2CON1.4 ' Clock Polarity Select 4 SMP2 VAR SSP2STAT.7 ' Data input sample phase CKE2 VAR SSP2STAT.6 ' Clock Edge Select bit SSPIF2 VAR PIR3.7 ' SPI interrupt flag -strana 128 ' VARIABLES & COSTANTS ' ================================================================ ' DataInHigh VAR BYTE ' DataInLow VAR BYTE ' UkupnoIn var byte n var word DataSram var byte ' nCS VAR PORTD.0 nCS2 VAR PORTD.1 ' SSPEN = 1 '1 enable SPI pins 1 ' CKP = 1 '0 clock idle low 0 ' CKE = 0 '0 transmit on idle to active transition ' SSPIF = 0 '0 clear buffer full status ' SMP = 0 '0 sample in middle of data SSPEN2 = 1 '1 enable SPI pins 1 CKP2 = 1 '0 clock idle low 0 CKE2 = 0 '0 transmit on idle to active transition SSPIF2 = 0 '0 clear buffer full status SMP2 = 0 '0 sample in middle of data ' PROGRAM INIT ' ================================================================ Pause 500 ' Wait for LCD to start up goto sram '-------------------------------------------------------------------------- sram: ' PISI lcdout $fe, 1,"start" for n=1 to 30000 nCS2 = 0 SSP2BUF = %00000010 'instrukcija - pisi SSPIF2 = 0 WHILE SSPIF2=0 : WEND SSP2BUF = %00000000 'nema u proteusu taj nego moram ovaj 23K256 SSPIF2 = 0 ' a za njega je 16-bitna adresa WHILE SSPIF2=0 : WEND ' SSP2BUF = %00000000 '24-bitna adresa 23LC1024 ' SSPIF2 = 0 ' WHILE SSPIF2=0 : WEND SSP2BUF = %00000111 SSPIF2 = 0 WHILE SSPIF2=0 : WEND SSP2BUF = %10101010 '8-bit data SSPIF2 = 0 WHILE SSPIF2=0 : WEND nCS2 = 1 next n 'PROCITAJ for n=1 to 30000 nCS2 = 0 SSP2BUF = %00000011 'instrukcija - procitaj SSPIF2 = 0 WHILE SSPIF2=0 : WEND SSP2BUF = %00000000 '16-bitna za 23K256 SSPIF2 = 0 WHILE SSPIF2=0 : WEND ' SSP2BUF = %00000000 '24-bitna adresa za 23LC1024 ' SSPIF2 = 0 ' WHILE SSPIF2=0 : WEND SSP2BUF = %00000111 ' SSPIF2 = 0 WHILE SSPIF2=0 : WEND SSP2BUF = 0 '8-bit data SSPIF2 = 0 WHILE SSPIF2=0 : WEND DataSram = SSP2BUF nCS2 = 1 PORTE=DataSram 'pause 300 next n LCDOUT $FE,$C0, "stop" 'goto sram End ![]() |