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

我写了一个可以更改时间的程序,通过按键来选择要更改的小时、分钟等等,同时对应位置显示闪烁的光标,先写入一个地址,然后Write_Comm(0x0f);,但是我的时间显示是... 我写了一个可以更改时间的程序,通过按键来选择要更改的小时、分钟等等,同时对应位置显示闪烁的光标,先写入一个地址,然后 Write_Comm(0x0f); ,但是我的时间显示是这样 09:15:33 。“0”和“9”一个地址,“:”和“1”一个地址,怎样才能使光标显示在“15”下面呢? 展开
 我来答
hck2llj
2013-08-29 · TA获得超过2197个赞
知道小有建树答主
回答量:1196
采纳率:75%
帮助的人:1072万
展开全部

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

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时,清零,回到初始状态
0开拓者0
2013-08-29 · TA获得超过1404个赞
知道小有建树答主
回答量:1333
采纳率:72%
帮助的人:369万
展开全部
12864的操作单位是两个字符(一个汉字),也就是你说的一个地址。光标也只能这样按每位地址的两个字符闪,1和5在两个不同地址 所以屏幕命令无法实现你的要求。我的解决方法是 用自定义绘图,自己在需要设置的字符下绘制 下划线,想在哪儿绘多长都可以。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cc21aee
2013-08-29 · TA获得超过2044个赞
知道小有建树答主
回答量:1273
采纳率:100%
帮助的人:1220万
展开全部
利用图形显示用光标每隔一段时间比如0.5s把1和5覆盖0.5s就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式