基于AVR系列单片机,DS1302时钟芯片的具体用法
一、引脚连接
二、DS1302初始化
void ds1302_init(void)
{Pin1设置为低电平; /*RST脚置低*/Pin2设置为低电平 /*SCK脚置低*/Pin1设置为输出 /*RST脚设置为输出*/Pin2设置为输出 /*SCK脚设置为输出*/
}
三、向DS1302输入数据,用来设置开始计时的初始时间
void ds1302_write_byte(unsigned char addr, unsigned char date){unsigned char i;RST引脚设置为高电平,开启DS1302时钟总线;/*写入目标地址:addr*/MCU中的Pin3设置为输出模式;addr = addr & 0xFE; //最低位置零,开启写,寄存器0位为0时写,为1时读for (i = 0; i < 8; i ++){if (addr & 0x01) {Pin3输出一个高电平;}else {Pin3输出一个低电平;}Pin2输出一个高电平;Pin2输出一个低电平;addr = addr >> 1;//最低位串行输出,数据右移}/*写入数据:d,将对应数据写入对应地址*/MCU中的Pin3设置为输出模式;for (i = 0; i < 8; i ++){if (date& 0x01) {Pin3输出一个高电平;}else {Pin3输出一个低电平;}Pin2输出一个高电平;Pin2输出一个低电平;date = date>> 1;}RST引脚设置为低电平,开启DS1302时钟总线;
}
四、读取DS1302中的时间数据,用以操作
unsigned char ds1302_read_byte(unsigned char addr)
{unsigned char i;unsigned char temp;RST引脚置位高电平,开启总线;/*写入目标地址:addr*/MCU中Pin3设置为输出模式;addr = addr | 0x01; //最低位置高,寄存器0位为0时写,为1时读for (i = 0; i < 8; i ++) {if (addr & 0x01) {Pin3设置高电平;}else{Pin设置低电平;}Pin2高电平;Pin3低电平;addr = addr >> 1;}/*输出数据:outdate*/Pin3设置为输入模式;for (i = 0; i < 8; i ++){outdate= outdate>> 1;if (Pin3读取的电平为高) {outdate|= 0x80;//最高位设置为1}else {outdate&= 0x7F;//最高位设置为0}Pin2高电平;Pin3低电平;}关闭DS1302总线; /*停止DS1302总线*/return outdate;
}
五、非注释中文需要自己设计
六、以下为网上可查到的有关DS1302芯片数据的网页
DS1302详解_比特冬哥的博客-CSDN博客_ds1302
基于AVR系列单片机,DS1302时钟芯片的具体用法相关推荐
- 蓝桥杯单片机DS1302时钟芯片驱动代码注释
蓝桥杯单片机DS1302时钟芯片驱动代码之前的疑惑注释了下 /* DS1302 芯片包含一个 实时时钟/日历和 31 字节的静态 RAM. 与时钟/RAM 通讯只需要三根线: CE,I/O (数据线) ...
- 51单片机DS1302时钟芯片应用Proteus仿真
系列文章目录 第一章 51单片机Proteus仿真(一) DS1302使用 文章目录 系列文章目录 前言 一.DS1302时序解读 二.BCD码转十进制解读 三.Proteus仿真 四.详细代码 前言 ...
- (给自己看)51单片机DS1302时钟芯片
老规矩先上DS1302.c的代码 #include <regx52.h>//首先 DS1302_Init(); // DS1302_SetTime();//再在while中DS1302_R ...
- 单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》...
引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准 ...
- 单片机课程设计——《基于AT89S52单片机和DS1302时钟芯片的电子时钟(可蓝牙校准)》... 1
引言 本设计以AT89S52单片机为控制核心,时钟芯片DS1302提供时钟源,配合LCD1602液晶显示模块,组成基本硬件系统,同时利用HC-05嵌入式蓝牙串口通讯模块,可在手机端进行日期.时间的校准 ...
- 51单片机进阶案例(1)——基于MATLAB GUI的单片机串口与PC的通信实现实时时钟和双向可调时钟功能(利用DS1302时钟芯片和LCD1602液晶屏)
目录 一.案例描述 二.实现功能 三.51单片机部分实现 3.1 实时时钟的实现 3.2 串口通信的实现 3.2.1 接收数据 3.2.2 发送数据 四.MATLAB部分实现 4.1 GUI界面 4. ...
- 用单片机用c语言做闹钟,基于单片机与ds1302时钟芯片的电子闹钟C程序
原标题:基于单片机与ds1302时钟芯片的电子闹钟C程序 #include #define w_second 0x80 //秒写入地址 #define w_minute 0x82 //分写入地址 #d ...
- 基于51单片机ds1302时钟、ds18b20、lcd12864的恒温器
目录 项目:基于51单片机ds1302时钟.ds18b20的恒温器 功能说明: 运行流程: 效果展示: 供电方式: 用途: 提高: 附: ...
- 使用51单片机和DS1302时钟芯片做一个简易的电子时钟
简易的电子时钟实验 一.前言 二.DS1302模块介绍 三.驱动DS1302的代码 3.1 初始化DS1302时钟芯片 3.2 读取DS1302时钟芯片的时间 3.3 设置DS1302时钟芯片的时间 ...
最新文章
- jquery easyUI分页dataGrid-Json
- mysql grant %_MySQL的Grant命令详解
- 二分逼近二分查找 高效解析800万大数据之区域分布
- DB-Engines 2018:PostgreSQL 蝉联“年度数据库”称号
- 解决Win10不能访问共享文件夹的问题
- 用Python盘点那些豆瓣评分低于3.0的奇葩电影
- Spring Security HttpSecurity
- 力扣-83 删除排序链表中的重复元素
- CDN原理 CDN技术是什么
- html 自定义打印模板,如何自定义打印模板
- 两向量点乘坐标运算_向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读...
- 双十一数码产品选什么好?双十一数码好物推荐
- Mockito使用简介
- Python - 内置函数详解(截至v3.6.x)
- 盗版升级win10仍是盗版
- catia利用宏批量改名的方法_CATIA批量改名功能大揭秘
- Angular $injector:unpr Unknown provider 问题原因汇总
- 大多数企业数字化转型的真正目的其实只是为了能多裁点人
- 【刷题】——小红书三套卷
- 八张图表示八大排序算法