找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

1602LCD显示遇到的问题!!

[复制链接]
admin 发表于 2012-9-2 12:06:57 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
小弟初学,想用1602LCD做一个万年历!可是遇到一个问题,那就是按键设置时间和程序运行显示时间的问题,问题是这样的:
按键设置时间,那么应该是个位为9,再加一的话就应该个位为零十位加一。
那么我在按键设置时间时用了lcd_wdat(init[0]/10+0x30)显示秒的十位(其中init【0】为从DS1302读取的秒的数据)
lcd_wdat(init[0]/%10+0x30)显示秒的个位
在时间显示中我是用lcd_wdat(((init[0]&0x70)>>4)+0x30)显示秒十位
lcd_wdat(((init[0]&0x70)>>4)+0x30)显示秒个位
问题就出来了,因为按键设置是按照十进制来的,假如当前按键设置成了55保存近了init[0],那么在显示时间时init【0】里面的数据时55的十六进制也就是37,那么按键设置完毕时间显示程序显示秒时就由设置好的55变成37,并从37开始计时!

我想过将时间显示里面的lcd_wdat(((init[0]&0x70)>>4)+0x30)改成lcd_wdat(init[0]/10+0x30)这种,可是这么一来,显示的秒就不对了,不是从1到60而是中间会跳的,9->16,25->32,41->48,57->64,73->80,而且是90秒才向分进位。

鉴于此,我又将按键设置程序里面的时间显示改成lcd_wdat(((init[0]&0x70)>>4)+0x30)这种形式,虽然没了上诉两个问题,不过又多出个问题来,那就是由于是16进制,所以我的按键按到9接着按不会出现10而是0:(因该是10对应的字符吧),要多按5下,也就是一共15次后才出现10,而且秒最多只能到30几来着,我设置的是能按到59的。
各位大虾,救命了,这个问题困扰小弟已经一周多了,一直弄不出来!哪位大侠可以联系我,我要拜师!417717643,大侠这是我扣扣,方便的话教我
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-24 23:51 , Processed in 0.055877 second(s), 13 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表