关于12864液晶屏移动光标的问题!!!求大神帮忙。
为什么执行移动光标的程序 后为什么移动不成功,光标只是向右移动了一位然后就又回到第一位了,并且在第一位闪烁,按正常的话是执行完移动光标程序后应该是在第二位闪烁,实在是搞不明白,由于不会传视频,只能上传一个大概的图片了。你用的什么MCU,用的什么库驱动的,要想让别人替你搞明白,你自己先得把问题描述明白啊 zoomdy 发表于 2017-2-7 20:11
你用的什么MCU,用的什么库驱动的,要想让别人替你搞明白,你自己先得把问题描述明白啊 ...
stm8s207,这个不太重要吧,,,,:funk:没用库函数,直接操作寄存器
/* 12864 发送数据函数 --------------------------------------------------------*/
void Send_Dat_12864(u8 Type,u8 Type1,u8 data)
{
En_Low;
if(Type)
Dat;
else
Cmd;
if(Type1)
Read;
else
Write;
Data_12864 = data;
Delay_ms(5);
En_High;
Delay_ms(5);
En_Low;
}
/* 12864 设置坐标函数 --------------------------------------------------------*/
void Send_Pos_12864(u8 X,u8 Y)
{
u8 Pos;
if(X == 0)
X = 0X80;
if(X == 1)
X = 0X90;
if(X == 2)
X = 0X88;
if(X == 3)
X = 0X98;
Pos = X+Y;
Send_Dat_12864(Cmd_12864,Write_12864,Pos);
}
/* 12864 初始化函数 ----------------------------------------------------------*/
void LCD12864_Init(void)
{
Send_Dat_12864(Cmd_12864,Write_12864,0x0c);
Send_Dat_12864(Cmd_12864,Write_12864,0x30);
Send_Dat_12864(Cmd_12864,Write_12864,0x01);
}
main()
{
LCD12864_Init(); //LCD1602初始化
while(1)
{
Send_Pos_12864(0,0);
while(str != '\0')
{
Send_Dat_12864(Dat_12864,Write_12864,str);
Delay_ms(5);
num++;
}
Send_Dat_12864(Cmd_12864,Write_12864,0x06);
Send_Dat_12864(Cmd_12864,Write_12864,0x94);
} 是不是指针问题 感觉是初始化的问题,可以看看手册 ST7920横向坐标是以“字”为单位的,程序设计的时候要特别注意。
分享一款以像素点位单位的I2C 12864带字库,用起来很方便。
https://pan.baidu.com/s/1c1Ic1kk 12864怎样该成I2C接口? ldptest 发表于 2017-11-21 22:08
12864怎样该成I2C接口?
我用过的I2C接口支持多国语言字库12864液晶屏。
页:
[1]