单片机光标显示问题 12864方面的
我写了一个可以更改时间的程序,通过按键来选择要更改的小时、分钟等等,同时对应位置显示闪烁的光标,先写入一个地址,然后Write_Comm(0x0f);,但是我的时间显示是...
我写了一个可以更改时间的程序,通过按键来选择要更改的小时、分钟等等,同时对应位置显示闪烁的光标,先写入一个地址,然后 Write_Comm(0x0f); ,但是我的时间显示是这样 09:15:33 。“0”和“9”一个地址,“:”和“1”一个地址,怎样才能使光标显示在“15”下面呢?
展开
3个回答
展开全部
你可以这么做,我没有使用编译器,个别单词可能打错,明白意思就行。
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时,清零,回到初始状态
展开全部
12864的操作单位是两个字符(一个汉字),也就是你说的一个地址。光标也只能这样按每位地址的两个字符闪,1和5在两个不同地址 所以屏幕命令无法实现你的要求。我的解决方法是 用自定义绘图,自己在需要设置的字符下绘制 下划线,想在哪儿绘多长都可以。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
利用图形显示用光标每隔一段时间比如0.5s把1和5覆盖0.5s就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询