时钟芯片和lcd问题
void LcdDisplay()
{
LcdWriteCom(0x80+0X40);
LcdWriteData('0'+TIME[2]/16); //时
LcdWriteData('0'+(TIME[2]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[1]/16); //分
LcdWriteData('0'+(TIME[1]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[0]/16); //秒
LcdWriteData('0'+(TIME[0]&0x0f));
LcdWriteCom(0x80);
LcdWriteData('2');
LcdWriteData('0');
LcdWriteData('0'+TIME[6]/16); //年
LcdWriteData('0'+(TIME[6]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[4]/16); //月
LcdWriteData('0'+(TIME[4]&0x0f));
LcdWriteData('-');
LcdWriteData('0'+TIME[3]/16); //日
LcdWriteData('0'+(TIME[3]&0x0f));
LcdWriteCom(0x8D);
LcdWriteData('0'+(TIME[5]&0x07)); //星期
}
LcdWriteCom(0x80+0X40);
LcdWriteData('0'+TIME[2]/16); //时
LcdWriteData('0'+(TIME[2]&0x0f));
LcdWriteData('-');
比如上面一段程序啊。LcdWriteCom();是写指令。(0x80+0x40)代表从1602的第二行起始位置显示,1602每一行有16个字符,当然你也可以从第二行第二个字符开始显示如: LcdWriteCom(0x80+0X41);
LcdWriteData('0'+TIME[2]/16); //时
LcdWriteData('0'+(TIME[2]&0x0f)); 这两行嘛,就是将数组TIME[2]里面的数据高八位和低八位分别显示了(注:这是我猜的,就看你怎么存储了。)
这个是个子程序吧,你可以找找这个函数定义和声明的地方,括号里的看上去是控制字。
是1602液晶屏吧,第一行显示年月日,第二行显示时分秒
括号里面的是你要写的数据,time应该是时钟的时,分,秒等参数的值,读取时钟信息的时候可以获得
不是 我说的括号是这个括号里的LcdWriteCom(0x80);
对啊 那你知道括号里代表什么么 是显示屏上显示数据的位置么?
0x80表示1602的第一行的起始位置,0x80+0x40表示1602的第二行的起始位置
0x80表示1602的第一行的起始位置,0x80+0x40表示1602的第二行的起始位置
可以查看1602指令,否则你不知道是让LCM干什么的!
这些都包括在子函数里 什么不懂就往子函数里找 保你一找一个准
这个你是通过什么知道的 能具体点么
这是规定,单片机书里面有介绍
要写入数据的起始地址,显示屏基本都这样