新闻中心

EEPW首页>嵌入式系统>设计应用> LCD上实现数字时钟

LCD上实现数字时钟

作者: 时间:2016-11-23 来源:网络 收藏
这里使用1602液晶实现数字时钟,这里需要注意的是LCD1602液晶的驱动写法,可以参考太阳人公司出品的datasheet,具体的程序如下:
#include
# define uchar unsigned char
# define uint unsigned int
sbit rs=P1^0;
sbit rw=P1^1;
sbit e=P1^2;
uchar table[]={0,1,2,3,4,5,6,7,8,9};
uchar num,shi,fen,miao;
void delay(uchar dly)
{
uint x,y;
for(x=0;x<=110;x++)
for(y=0;y
;
}
void write_com(uchar com)//写命令
{
rs=0;
P2=com;
delay(1);
e=1;
delay(1);
e=0;
}
void write_data(uchar num)//写数据
{
rs=1;
P2=num;
delay(1);
e=1;
delay(1);
e=0;
}
void init()
{
e=0;
rw=0;
num=0;
miao=0;
fen=0;
shi=0;
TMOD=0x01;
EA=1;
TR0=1;
ET0=1;
write_com(0x38);//初始化命令
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80);
}
void time() interrupt1
{
TH0=(65535-46080)/256;
TL0=(65535-46080)% 256;
num++;
}
void main()
{
init();
write_com(0x80);
write_data(table[0]);
write_com(0x81);
write_data(table[0]);
write_com(0x83);
write_data(table[0]);
write_com(0x84);
write_data(table[0]);
write_com(0x86);
write_data(table[0]);
write_com(0x87);
write_data(table[0]);
write_com(0x82);
write_data(:);
write_com(0x85);
write_data(:);
while(1)
{
if(num==20)
{
miao++;
num=0;
}
if(miao==60)
{
fen++;
miao=0;
write_com(0x83);
write_data(table[fen/10]);
write_com(0x84);
write_data(table[fen ]);// % 10 ,神马情况,% 咋个写不进去
}
if(fen==24)
{
shi++;
fen=0;
write_com(0x80);
write_data(table[shi/10]);
write_com(0x81);
write_data(table[shi ]);// % 10
}
write_com(0x86);
write_data(table[miao/10]);
write_com(0x87);
write_data(table[miao ]); // % 10
}
}



关键词:LCD数字时

评论


技术专区

关闭