'**************************************************************** '* Name : ssd1306_DEMO.PBP * '* Author : richard * '* Notice : * '* : * '* Date : 19/11/2017 * '* Version : * '* Notes : * '* :FOR pic 18F26K22 SSD1306 * '**************************************************************** #CONFIG CONFIG FOSC = INTIO67 CONFIG PLLCFG = ON CONFIG PRICLKEN = OFF CONFIG FCMEN = OFF CONFIG IESO = OFF CONFIG PWRTEN = OFF CONFIG BOREN = SBORDIS CONFIG BORV = 190 CONFIG WDTEN = ON CONFIG WDTPS = 32768 CONFIG CCP2MX = PORTC1 CONFIG PBADEN = OFF CONFIG CCP3MX = PORTB5 CONFIG HFOFST = ON CONFIG T3CMX = PORTC0 CONFIG P2BMX = PORTB5 CONFIG MCLRE = EXTMCLR CONFIG STVREN = ON CONFIG LVP = OFF CONFIG XINST = OFF CONFIG DEBUG = OFF CONFIG CP0 = OFF CONFIG CP1 = OFF CONFIG CP2 = OFF CONFIG CP3 = OFF CONFIG CPB = OFF CONFIG CPD = OFF CONFIG WRT0 = OFF CONFIG WRT1 = OFF CONFIG WRT2 = OFF CONFIG WRT3 = OFF CONFIG WRTC = OFF CONFIG WRTB = OFF CONFIG WRTD = OFF CONFIG EBTR0 = OFF CONFIG EBTR1 = OFF CONFIG EBTR2 = OFF CONFIG EBTR3 = OFF CONFIG EBTRB = OFF #ENDCONFIG DEFINE OSC 64 char var byte x var byte y var byte BUFF VAR BYTE[16] OSCCON = %11110000 ANSELb = 0 ANSELA = 0 ANSELC = 0 ;use this define for hw i2c #define hwi2c 1 ;set and uncomment these to use softi2c 'SCL var PortC.3 ' I2C Clock 'SDA var PortC.4 ' I2C Data ;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_18.bas" '========================== MAIN Routine ============================== gosub glcd_init BIG_TEXT = 0 looper: GLCD_CLR GLCDDHL 0,0,75,1 ;x,y,len,patten GLCDDHL 0,2,75,128 GLCDDVL 0,0,3 ;x,y,height [in pages] GLCDDVL 75,0,3 GLCDSTR 5,1,"--SSD1306--" ;x,y, cont string ARRAYWRITE BUFF,["ABCDEF",0] CHAR="!" GLCDC 100,1,CHAR ;x,y , chr BIG_TEXT = 1 if ssdheight > 3 then GLCDSTR 2,4,BUFF ARRAYWRITE BUFF,["@12456-=#",0] BIG_TEXT = 0 GLCDSTR 2,7,BUFF ;x,y ,str buffer [null terminated] else pause 1000 GLCD_CLR GLCDSTR 2,0,BUFF ARRAYWRITE BUFF,["@12456-=#",0] BIG_TEXT = 0 GLCDSTR 2,3,BUFF endif PAUSE 3000 GOTO looper END