21ic问答首页 - LCD 12864串行,在9.83 编译通过,不正常, pic16f877a
LCD 12864串行,在9.83 编译通过,不正常, pic16f877a
f91682023-04-13
LCD 12864串行 通讯,在PICC9.0 编译没问题,在9.83 编译通过,但是运行不正常, pic16f877a
void SendByte(char Dbyte)
{
unsigned char i;
for(i=0;i<8;i++)
{
E_CLK = 0;
Dbyte=Dbyte<<1; //左移一位
RW_SID = CARRY; //移出的位给RW_SID
E_CLK = 1;
E_CLK = 0;
}
}
//* 函数名称 :ReceiveByte 串口接收一个字节
void WriteCommand(char Cbyte )
{
delay_ms(1);
SendByte(0xf8); //11111,RW(0),RS(0),0
SendByte(0xf0&Cbyte); //高四位
SendByte(0xf0&(Cbyte<<4));//低四位(先执行<<)
}
void WriteData(char Dbyte )
{
delay_ms(1);
SendByte(0xfa); //11111,RW(0),RS(1),0
SendByte(0xf0&Dbyte); //高四位
SendByte(0xf0&(Dbyte<<4));//低四位(先执行<<)
}
LCD 12864串行 通讯,在PICC9.0 编译没问题,在9.83 编译通过,但是运行不正常,
Dbyte=Dbyte<<1; //左移一位
RW_SID = CARRY; //移出的位给RW_SID
这一段无法得到正常的数据
void SendByte(char Dbyte)
{
unsigned char i;
for(i=0;i<8;i++)
{
E_CLK = 0;
Dbyte=Dbyte<<1; //左移一位
RW_SID = CARRY; //移出的位给RW_SID
E_CLK = 1;
E_CLK = 0;
}
}
//* 函数名称 :ReceiveByte 串口接收一个字节
void WriteCommand(char Cbyte )
{
delay_ms(1);
SendByte(0xf8); //11111,RW(0),RS(0),0
SendByte(0xf0&Cbyte); //高四位
SendByte(0xf0&(Cbyte<<4));//低四位(先执行<<)
}
void WriteData(char Dbyte )
{
delay_ms(1);
SendByte(0xfa); //11111,RW(0),RS(1),0
SendByte(0xf0&Dbyte); //高四位
SendByte(0xf0&(Dbyte<<4));//低四位(先执行<<)
}
LCD 12864串行 通讯,在PICC9.0 编译没问题,在9.83 编译通过,但是运行不正常,
Dbyte=Dbyte<<1; //左移一位
RW_SID = CARRY; //移出的位给RW_SID
这一段无法得到正常的数据
赞0
评论
2023-04-14
赞0
{RW_SID =1;}
else
{RW_SID =0;}
评论
2023-04-14
赞0
if( Dbyte&(0X80>>i)) //picc 9.83 不能用 CARRY
{RW_SID =1;}
else
{RW_SID =0;}
评论
2023-04-14
您需要登录后才可以回复 登录 | 注册