i havent used one of those displays for some time ,my other demo for a pic16f1619 used the mssp i2c module
try this ,it worked on my curiosity board , plugged straight in to click socket
Code:
'****************************************************************
'* Name : ssd1306_DEMO.PBP *
'* Author : richard *
'* Notice : *
'* : *
'* Date : 19/11/2017 *
'* Version : *
'* Notes : plugs into click port note !!!!sda/scl swapped on click skt*
'* :FOR pic 16F1619 SSD1306 *
'****************************************************************
#CONFIG
__config _CONFIG1, _FOSC_INTOSC & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
__config _CONFIG2, _WRT_OFF & _PPS1WAY_OFF & _ZCD_OFF & _PLLEN_OFF & _STVREN_ON & _BORV_HI & _LVP_ON
__config _CONFIG3, _WDTCPS_WDTCPS6 & _WDTE_OFF & _WDTCWS_WDTCWS100 & _WDTCCS_LFINTOSC
#ENDCONFIG
define OSC 32
; --- *** Oscillator *** ---------------------------------------------------
OSCCON = %11110000 ;32 MHz,
ANSELb = 0
ANSELA = 0
ANSELC = 0
char var byte
x var byte
y var byte
BUFF VAR BYTE[16]
;use this define for hw i2c
#define hwi2c 1
#DEFINE PIC16 1
;set and uncomment these to use softi2c
'SCL var PortB.4 ' I2C Clock
'SDA var PortB.6 ' I2C Data
RB VAR WORD
;set these to match display
ssdheight con 7 ; 7 = 8 PAGES 64*128 , 3 = 4 pages 32*128
ssdwidth con 127 ; 128 PIXELS WIDE
sdd1306_addr con $78
Include "ssd1306_I2C.INC" ' bring it in
include "font7x5_16.bas"
'========================== MAIN Routine ==============================
TRISB = $F0;
PPSLOCK = $55;
PPSLOCK = $AA;
PPSLOCK = 0 ; unlock PPS
SSPCLKPPS = $0C; //RB4->MSSP:SCL;
SSPDATPPS = $0E; //RB6->MSSP:SDA;
RB6PPS = $11; //RB6->MSSP:SDA;
RB4PPS = $10; //RB4->MSSP:SCL;
PPSLOCK = $55;
PPSLOCK = $AA;
PPSLOCK = 1; ; lock PPS
gosub glcd_init
GLCD_CLR
BIG_TEXT = 0
ARRAYWRITE BUFF,["READY",0]
GLCDSTR 10,1,BUFF
Bookmarks