1 / 6
文档名称:

DS1302编程与PROTEUS仿真.docx

格式:docx   大小:102KB   页数:6页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

DS1302编程与PROTEUS仿真.docx

上传人:xiaobaizhua 2022/7/24 文件大小:102 KB

下载得到文件列表

DS1302编程与PROTEUS仿真.docx

相关文档

文档介绍

文档介绍:data: - 0-
?L ne: 00:00:00
CRYSTAL-
LCD1
LMU' bL
>XTAL1



XTAL2


}
}
// 写地址、数据
void write(uchar addr,uchar dat) {
rst=0;sclk=0;rst=1; send(addr);//发送地址 send(dat);//发送数据
rst=1;
}
//---读取 8 位
uchar receive()
{
uchar i;
uchar dat=0;
//循环8次
for(i=0;i<8;i++)
{
sclk=1;
dat>>=1;
sclk=O;〃下降沿读取 io=1;〃读引脚前置一 if(io==1)dat|=Ox8O;
}//此时 dat 为 16 进制比如说 Ox1O dat=(dat/16)*1O+dat%16;
//转化为 1O 进制,现在是 1O;
return(dat);//返 回值
}
// 读时钟
uchar read(uchar addr)
{
uchar dat=O; rst=O;sclk=O;rst=1; send(addr);//发送地址 dat=receive();〃接收 rst=O;return(dat);
}
// 16O2
//延时
void delay(uint n)
{
uint i;
for(;n>O;n--) for(i=2OO;i>O;i--);
}
//判断是否忙
void check()
{
rs=O;
rw=1; //读 e=1
port=OxOO;
e=1; while(busy);
e=O;
//写指令
void sendcommand(uchar command)
{ check();
rs=0; //指令 rw=0; //写 e=0;
port=command;
e=1; _nop_();_nop_();
e=0; //写入指令
} //写数据 void writedata(uchar dat)
{ check();
rs=1; //数据
rw=0;
port=dat;
e=1;
_nop_();_nop_();
e=0;
} //光标位置 void pos(uint p)
{
sendcommand(p|0x80);〃第一行第一个 0x80;
}
void init()
{
sendcommand(0x38); // 8位数据,双列,5*7字形 delay(1);
sendcommand(0x0c); //开 0x08 关 delay(1);
sendcommand(0x06);〃地 址增加一 delay(1);
sendcommand(0x01);〃清 屏 delay(1);
}
void welcome()
{
int i=0;
uchar string[]="data:";
uchar up[]="time:";
init();delay(10);
pos(0);delay(1);
while(str