打印

汇编 如何用键盘调整1302时间 LCD1602显示

[复制链接]
2480|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wdyang|  楼主 | 2010-7-14 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟在学习时钟电路  用1602显示 而且是用汇编 编的。设置初始化后的程序,时间都能正常显示。但是对于如何调整时间的设置程序,小弟一直没能修改好。
我觉得应该是 先把时钟晶振停止振荡,然后通过光标,按键结合修改时间数据,再送回到时钟,时钟晶振重新启动,1602显示。不知道这样想对不对?
希望各位 大虾 指教一二。小弟不胜感激........

相关帖子

沙发
new1988| | 2010-7-14 19:22 | 只看该作者
1302里面有个停止标志位,你把那个位置一它就不走了。

使用特权

评论回复
板凳
NE5532| | 2010-7-14 20:10 | 只看该作者
先想清楚需求,画流程图,不要埋着头就写!

使用特权

评论回复
地板
wdyang|  楼主 | 2010-7-15 08:05 | 只看该作者

RE: 谢谢 new1988的指点

2# new1988

不过小弟尝试加入 datasheet 中给的时钟停止位操作程序。
INT:
MOV COM,#80H             ;命令字节为80H
MOV ByteC,#01H           ;单字节传送模式
MOV R1,#Send               ;数据地址赋给R1
MOV Send,#80H             ;数据内容为80H(振荡器停止)
LCALL WR_Byte              ;调用写入数据子程序
RETI

但是这样加进去,中断后毫无反应,时钟还是依旧走时,显示没有停止。不知是什么原因。反复删掉或更改某些指令也不好用。 希望 大虾 能再指点指点.....:lol

使用特权

评论回复
5
wdyang|  楼主 | 2010-7-15 08:17 | 只看该作者
3# NE5532
非常感谢 前辈的教诲  
流程图,晚辈也画了。但是由于可能刚接触1302、1602没几天,所以有些指令可能运用的还不是很好......光有想法或流程,还不知道是否能有相应的指令或程序实现,因此导致错误。 :)

使用特权

评论回复
6
wdyang|  楼主 | 2010-7-15 08:55 | 只看该作者

RE:

2# new1988
把R1换成R0就好用了。不过我想这有区别吗,R0不会是在这里有什么特别用途吧?(1302初始化时,就是把秒寄存器地址给R0,也不是很清楚为什么这样,知识看很多初始化程序都是这么写的)换成R1为什就不行了。
不过还有一个问题就是,使用这个程序后,时钟是从初始时间开始,而不是我所想要的把现在的时间停止不动,一直显示。难道还是因为R0才回到初始化的时间的吗?不是很明白.....

使用特权

评论回复
7
new1988| | 2010-7-15 13:16 | 只看该作者
初始化程序放在大循环外面啊,每次复位都只执行一次初始化程序。写这样的程序还是用C吧!汇编麻烦的很

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

44

帖子

1

粉丝