Код: Выделить всё
#define E 0b00000001
#define RD_W 0b00000010
#define A0 0b00000100
#define RST 0b00001000
#define C PORTB.4
#define C_L 1
#define C_R 0
#define DATA PORTA //Шина данных
#define COM PORTB //порт управляющих выводов
void writecom (char com,char CS)
{
SBit(COM,E);
CBit(COM,RD_W);
PORTB.4=CS;
CBit(COM,A0);
#asm("nop");
#asm("nop");
DATA = com;
CBit(COM,E);
#asm("nop");
#asm("nop");
SBit(COM,E);;
}
void WriteData(char data, char CS)
{
SBit(COM,E);
CBit(COM,RD_W);
PORTB.4=CS;
SBit(COM,A0);
#asm("nop");
#asm("nop");
DATA=data;
CBit(COM,E);
#asm("nop");
#asm("nop");
SBit(COM,E);
CBit(COM,E);
}
void WriteXY(char x,char y,char CS)
{C=CS;
writecom((0b00000000+x),CS);
writecom((0b10111000+y),CS);
}Вот так всё работать будет
Код: Выделить всё
init_LCD();
clear();
WriteXY(0,0,C_R);
WriteData(0b10101010,C_R);
WriteXY(1,0,C_R);
WriteData(0b01010101,C_R);
WriteXY(2,0,C_R);
WriteData(0b10101010,C_R);а так, как положено, не хочет ни в какую:
Код: Выделить всё
init_LCD();
clear();
WriteXY(0,0,C_R);
WriteData(0b10101010,C_R);
WriteData(0b01010101,C_R);
WriteData(0b10101010,C_R);