本帖最后由 f9168 于 2023-4-13 11:44 编辑
LCD 12864 的串行通讯程序 C语言
void SendByte(char Dbyte)
{
unsigned char i,j;
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));//低四位(先执行<<)
}
以上程序在PICC9 编译没问题, 在9.83 编译运行就不正常,
Dbyte=Dbyte<<1; //左移一位
RW_SID = CARRY; //移出的位给RW_SID
这一段无法得到正确的数据, 请问是哪里有问题,感觉Dbyte没有传到数据,或者CARRY有问题 |