Спасибо за информацию. Подключил как написали. Использовал pull-up резисты 5кОм. Программатор PICKIT2. Взял Programming example for PCF8535 взял из даташит. Компилятор CCS. Код приведен ниже. У LCD юэкран стал черный (все пиксели ативны) а должны быть отдельные пиксели. Не могли Вы привести example как использовать библиотечный модуль Сергея Борщ. Заранее благодарен!
#include <18F4550.h> #DEVICE ICD=TRUE #FUSES NOWDT,HS #use delay (clock = 20000000) #use I2C(master, sda=PIN_B0, scl=PIN_B1) //#define LCD_RESET (RD4) #define LCD_ADDR (0x78) int timer1;
void main(void) { set_tris_D(0xFF); output_D(0b00100000); output_D(0b00110000); // вывели lcd из ресета
i2c_start();
i2c_write(LCD_ADDR); // 2 адрес i2c_write(0b00000000); // 3 control byte i2c_write(0x00000001); // 4 на основн стр page H[1:0] = 111 i2c_write(0b00010000);//5 function and RAM command page; //PD = 0, V = 0
i2c_write(0b00001110); // 6 на стр 110 page H[1:0] = 110 i2c_write(0b00010111); // 7 BIAS = 1/9 bias system to 1/9 (BS[2:0] = 010) i2c_write(0b00000110); // 8 D = 0, E = 0; i2c_write(0b10000100); // 9 MUX = 1/65 i2c_write(0b0000001);//10 page H[1:0] = 111 i2c_write(0b00001101); // 11 H[2:0] = 101 i2c_write(0b00001001); //voltage multiplication factor 3 S[1:0] = 01 i2c_write(0b00010010);//13 temperature coefficient 2 TC[2:0] = 010 i2c_write(0b10101000);//14 VLCD = 12.02 V; VOP[6:0] = 0101000
i2c_write(0b00000111);//15 HIGH VLCD programming range (PRS = 1), voltage multiplier on (HVE = 1) delay_ms( 1 ); i2c_start();
i2c_write(LCD_ADDR); i2c_write(0b01000000); // control byte Co = 0, D/C = 1
i2c_write(0b00011111); // Y, X are initialized to logic 0 by default, so they are not set here i2c_write(0b00000101); i2c_write(0b00000111); i2c_write(0b00001101); i2c_stop();
while(1) {} }
|