基于51单片机DS1302LCD1602数字时钟显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
delay(5);
}
void write_a_byte_tods1302(uchar x)
{
uchar i;
for(i=0;i<8;i++)
{
IO=x&0x01;
sclk=1;
sclk=0;
x=x>>1;
}
}
uchar get_a_byte_fromds1302()
{
uchar i,b=0x00;
for(i=0;i<8;i++)
dispaly_string(0x00,lcd_buffer1);
dispaly_string(0x40,lcd_buffer2);
}
}
strcpy(lcd_buffer1+13,week[datetime[5]]);
zhuanhuan(datetime[2],lcd_buffer2+5);
zhuanhuan(datetime[1],lcd_buffer2+8);
zhuanhuan(datetime[0],lcd_buffer2+11);
{
while((busy()&0x80)==0x80);
RW=0;
RS=1;
P0=dat;
EN=1;
delay(5);
EN=0;
}
void init()
{
writecmd(0x38);
delay(5);
writecmd(0x01);
delay(5);
writecmd(0x06);
delay(5);
writecmd(0x0c);
a[1]=d%10+'0';
}
void main()
{
init();
while(1)
{
gettime],lcd_buffer1+5);
zhuanhuan(datetime[4],lcd_buffer1+8);
zhuanhuan(datetime[3],lcd_buffer1+11);
{
b|= _crol_((uchar)IO,i);
sclk=1;
sclk=0;
}
return b/16*10+b%16;
}
uchar read_data(uchar addr)
{
uchar dat;
rst=0;sclk=0;rst=1;
write_a_byte_tods1302(addr);
dat=get_a_byte_fromds1302();
}
void dispaly_string(uchar p,uchar *s)
{
uchar i;
set_pos(p);
for(i=0;i<16;i++)
{
writedata(s[i]);
delay(5);
}
}
void zhuanhuan(uchar d,uchar *a)
{
a[0]=d/10+'0';
sclk=1;sclk=0;
return dat;
}
void gettime()
{
uchar i,addr=0x81;
for(i=0;i<8;i++)
{
datetime[i]=read_data(addr);
addr=addr+2;
}
}
void set_pos(uchar p)
{
writecmd(p|0x80);
sbit RW=P2^1;
sbit EN=P2^2;
sbit IO=P1^0;
sbit sclk=P1^1;
sbit rst=P1^2;
uchar *week[]={"SUN","****","MON","TUS","WEN","THU","FRI","SAT"};
uchar lcd_buffer1[]={"DATE 00-00-00 "};
uchar lcd_buffer2[]={"TIME 00:00:00 "};
uchar datetime[7];
void delay(uchar ms)
{
uchar i;
while(ms--)
for(i=0;i<120;i++);
}
//忙检测
uchar busy()
{
uchar test;
RW=1;
RS=0;
EN=1;
test=P0;
EN=0;
return test;
}
//写LCD命令
void writecmd(uchar cmd)
{
while((busy()&0x80)==0x80);
RS=0;
RW=0;
P0=cmd;
EN=1;
delay(5);
EN=0;
}
//发送数据
void writedata(uchar dat)
#include <reg51.h>
#include <intrins.h>
#include <string.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]="I LIKE MCU!";
sbit RS=P2^0;
相关文档
最新文档