单片机光标显示问题 12864方面的

2025-01-05 10:53:07
推荐回答(3个)
回答1:

你可以这么做,我没有使用编译器,个别单词可能打错,明白意思就行。

unsigned char Time_Buffer[8] = {"09:15:33"};// 这是定义了一个数组来作为时钟显示
unsigned char Setting_Status = 0;    // 状态标志,0:无设置 1:设置时钟 2:分钟
bit Time_500ms_IS_OK = 0; 
// 这个标志位可以用延时来改变它的状态,最好用定时器,500毫秒改变一次,0变1变0循环
// 这个是用来做闪烁标志的,当状态为小时或分钟设置时,判断这个标志位来改变Time_Buffer的赋值。如Time_500ms_IS_OK == 1,Time_Buffer[3] = Time_Buffer[4] = ' ';为0时,就让Time_Buffer[3] = Minute / 10; ime_Buffer[4] = Minute % 10;

// 需要注意的是,你需要在12864的驱动程序里写一个可以显示字符串的子函数
// 在while里面,Setting_Status 状态为0时,显示正常的不闪烁的数
Write_Strins( 0, 0, Time_Buffer,8 );// 第1行第1个位置显示这个字符串

// 当按键按下,改变Setting_Status的值,进入小时/分钟/退出设置
// 当Setting_Status==3时,清零,回到初始状态

回答2:

12864的操作单位是两个字符(一个汉字),也就是你说的一个地址。光标也只能这样按每位地址的两个字符闪,1和5在两个不同地址 所以屏幕命令无法实现你的要求。我的解决方法是 用自定义绘图,自己在需要设置的字符下绘制 下划线,想在哪儿绘多长都可以。

回答3:

利用图形显示用光标每隔一段时间比如0.5s把1和5覆盖0.5s就行了