DS1302读写操作
来源:互联网 发布:arttemplate需要的数据 编辑:程序博客网 时间:2024/06/04 23:32
void Write1302(unsigned char dat)
{
unsigned char i;
SCLK=0; //拉低SCLK,为脉冲上升沿写入数据做好准备
delaynus(2); //稍微等待,使硬件做好准备
for(i=0;i<8;i++) //连续写8个二进制位数据
{
DATA=dat&0x01; //取出dat的第0位数据写入1302
delaynus(2); //稍微等待,使硬件做好准备
SCLK=1; //上升沿写入数据
delaynus(2); //稍微等待,使硬件做好准备
SCLK=0; //重新拉低SCLK,形成脉冲
dat>>=1; //将dat的各数据位右移1位,准备写入下一个数据位
}
}
void WriteSet1302(unsigned char Cmd,unsigned char dat)
{
RST=0; //禁止数据传递
SCLK=0; //确保写数据前SCLK被拉低
RST=1; //启动数据传输
delaynus(2); //稍微等待,使硬件做好准备
Write1302(Cmd); //写入命令字
Write1302(dat); //写数据
SCLK=1; //将时钟电平置于已知状态
RST=0; //禁止数据传递
}
unsigned char Read1302(void)
{
unsigned char i,dat;
delaynus(2); //稍微等待,使硬件做好准备
for(i=0;i<8;i++) //连续读8个二进制位数据
{
dat>>=1; //将dat的各数据位右移1位,因为先读出的是字节的最低位
if(DATA==1) //如果读出的数据是1
dat|=0x80; //将1取出,写在dat的最高位
SCLK=1; //将SCLK置于高电平,为下降沿读出
delaynus(2); //稍微等待
SCLK=0; //拉低SCLK,形成脉冲下降沿
delaynus(2); //稍微等待
}
return dat; //将读出的数据返回
}
unsigned char ReadSet1302(unsigned char Cmd)
{
unsigned char dat;
RST=0; //拉低RST
SCLK=0; //确保写数居前SCLK被拉低
RST=1; //启动数据传输
Write1302(Cmd); //写入命令字
dat=Read1302(); //读出数据
SCLK=1; //将时钟电平置于已知状态
RST=0; //禁止数据传递
return dat; //将读出的数据返回
}
- DS1302读写操作
- DS1302读写
- DS1302基本的读写
- DS1302 时钟操作
- ds1302
- DS1302
- DS1302
- Ds1302
- DS1302
- ds1302
- DS1302
- DS1302
- stm8及DS1302的一些操作
- 51单片机对DS1302突发模式的读写
- ds1302时钟芯片简单操作及BCD相关注意事项
- 读写操作
- DS1302程序
- DS1302 万年历
- Leetcode 449. Serialize and Deserialize BST (Medium) (cpp)
- 在ubuntu上搭建FTP服务器
- android studio 安装
- 文档摘要
- VC 2012 visualstudio的项目属性表 .props文件
- DS1302读写操作
- redis 随笔(一)
- windows无法启动mysql服务(位于本地计算机上。错误1067:进程意外终止)
- js几种经典排序
- flaot 类型介绍
- linux下tar gz bz2 tgz z等众多压缩文件的压缩与解压方法
- Java线程同步:synchronized锁住的是代码还是对象
- 【leetcode】leetcode 刷题 笔记 (不定期更新)
- LinearLayout与Relativivelayout