avr单片机读写时钟芯片DS3231程序(通过测试)

发布者:chinapxf最新更新时间:2019-10-24 来源: 51hei关键字:avr单片机  读写时钟芯片  DS3231 手机看文章 扫描二维码
随时随地手机看文章

实时时钟芯片DS3231,该款芯片是目前世界上精度最高的集成,也是业内最先推出、采用简单音叉晶体和集成电路即可提供±2分钟/年时间保持精度的芯片。


//程序由AT24C系列的读写程序改写而来,不同点只在于器件地址的不同

#include

#include

#define uchar unsigned char

#define uint  unsigned int

void DelayUs(uchar i);

void CLK(uchar PD);//设置SCL的电平

void IO(uchar PD);//设置IO的电平

void SetIO(uchar i);//设置IO为输入输出

//IIC读写函数供外部main函数调用

void WriteDs3231_OneByte(unsigned char addr,unsigned char ddata);

unsigned char ReadDs3231_OneByte(unsigned char addr);

void DelayMs(uchar i)

{

uint count;

for(;i!=0;i--)for(count=100;count!=0;count--);

}

//设置SCL的电平

void CLK(uchar PD)

{if(PD==1) PORTD|=0x08;//SCL置1

else       PORTD&=~0x08;//SCL置0

}

//设置IO的电平

void IO(uchar PD)

{if(PD==1) PORTD|=0x04;//IO置1

else       PORTD&=~0x04;//IO置0

}

/////////////////////////////////

//IIC

//*******************Start条件****************//

void Start(void)

{

CLK(0);DelayMs(2);

IO(1); DelayMs(2);

CLK(1);DelayMs(2);

IO(0); DelayMs(2);

CLK(0);DelayMs(2);

}

//*******************Stop条件****************//

void Stop(void)

{

CLK(0);  DelayMs(2);

IO(0);   DelayMs(2);

CLK(1);  DelayMs(2);

IO(1);   DelayMs(2);

CLK(0);  DelayMs(2);

}

//********************发送数据************//

void SendData(uchar Xdata)  

{uchar count;

for(count=0;count!=8;count++)

  {

  CLK(0); DelayMs(2);

  if(Xdata&0x80)

   IO(1);

  else

   IO(0);

  DelayMs(2);

  CLK(1); DelayMs(2);

  Xdata<<=1;

}

//以下把SDA置1释放总线

CLK(0);DelayMs(2);

CLK(1);DelayMs(2);

CLK(0);DelayMs(2);

}

/////////////接收数据///////////////////

uchar  ReceiveData(void)  

{

uchar count;

uchar temp;

uchar value=0;

DDRD&=~0x04;//设置为输入

  for(count=0;count!=8;count++)

  {

  value<<=1;

  CLK(1); DelayMs(2);

  temp=PIND;//读引脚

  if((temp&0x04)==0x04) value++;

  DelayMs(2);

  CLK(0); DelayMs(2);

}

DDRD|=0x04;//设置为输出

//以下输出NOACK

CLK(0);DelayMs(2);

IO(1);DelayMs(2);

CLK(1);DelayMs(2);

CLK(0);DelayMs(2);

return value;

}

//////////////以下供main调用/////////////////

//向addr写一个数据

void WriteDs3231_OneByte(unsigned char addr,unsigned char ddata)

{

    Start();

SendData(0xd0);//器件寻址

SendData(addr);//存储器寻址

SendData(ddata);//写入数据

Stop();

DelayMs(2000);

}

///////////////////////////////

//从addr读一个数据

unsigned char ReadDs3231_OneByte(unsigned char addr)

{

    uchar temp;

    Start();

SendData(0xd0);//器件寻址

SendData(addr);//存储器寻址

Start();

    SendData(0xd1);   //设置读

temp = ReceiveData();//读取数据

Stop();

DelayMs(2000);

return temp;    

}



关键字:avr单片机  读写时钟芯片  DS3231 引用地址:avr单片机读写时钟芯片DS3231程序(通过测试)

上一篇:ATMEGA168+L298控制电机正反转的代码与Proteus仿真
下一篇:自制AVR控制1W变频器

推荐阅读最新更新时间:2024-11-05 16:31

技术知识分享之AVR单片机简介及其特性分析
AVR单片机是Atmel公司1997年推出的RISC 单片机 ,RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC 并非只是简单地去减少指令,而是通过使计算机的结构更加简单合理而提高运算速度的。RISC优先选取使用频率最高的简单指令,避免复杂指令:并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于 AVR 采用了RESC的这种结构,使AVR系列单片机都具备了1MIPS/MHz(百万条指令每秒/兆赫兹)的高速处理能力。 AVR 单片机 吸收了DSP双总线的特点,采用Harvard总线结构,因此单片机的程序存储器和数据存储器是分离的,并且可对具有相同地址的程序存储器和
[电源管理]
基于AVR单片机设计的手机自动售货机
   引 言   移动增值业务产品的核心特点是移动性、即时性和个人性。移动增值服务是在通信技术、计算机技术和互联网技术不断发展融合的基础上,在人们以信息为基础的各种应用需求快速增长的激励下,在社会信息化水平日益提高的前提下,迅速发展的一种全新的服务方式。由于移动通信自身所具有的可移动性、无时空限制性、专属性、安全性和时尚性的特点,加上基于这些特点之上的短信息、游戏、支付、定位、办公等丰富多彩的应用服务,使得我国的移动增值业务在短短数年里从无到有,迅速发展为欣欣向荣的产业。本系统采用的是以ATmegal28单片机为核心的自动售货机,通过BENQ的13SM/GPRS M22模块与服务器通信来实现以手机支付形式的移动增值服务系统。在
[单片机]
基于<font color='red'>AVR单片机</font>设计的手机自动售货机
电源管理:基于AVR单片机的多功能电源设计
引 言 随着嵌入式系统设计技术的发展,在设计和仿真中,系统 工程师 对 电源 的要求也越来越高。在嵌入式系统设计是使用8031 单片机 和74系列 集成电路 时,所有使用74系列集成电路的 电路 板都使用单一的5 V电源供电就可以了。当时的供电电源部分不是一个需要太多注意的单元,基本上5 V的电源能满足所有的数字集成电路设计的需要。而近几年来,随着技术的发展,集成电路里的 三极管 变得越来越小并且工作的 电压 越来越低,使得嵌入式系统开发的重点从系统的速度,转到 低功耗 设计上。因此在同一个嵌入式系统中,存在多种不同电压的电源供电,从低于1 V到高于5 V都存在。而且在系统的稳定性和可靠性测
[电源管理]
电源管理:基于<font color='red'>AVR单片机</font>的多功能电源设计
基于ATmega8L-8PI单片机的医用臭氧治疗仪的设计
概述   臭氧作为一种高效冷杀菌手段,目前已经被广泛应用在各行各业中。具有高效、迅速杀菌作用的臭氧在医院环境消毒、术前消毒等方面应用广泛,其治疗效果优于其它传统杀菌治疗仪。因此研制一种运行稳定、使用方便、便携的臭氧治疗仪产品,为妇科疾病患者提供一种方便有效的在家治疗方式,具有实际意义。   目前市面上的同类型产品都是采用80C51单片机为控制核心的, 虽然也能实现它所需求的功能,但执行速度慢,在长期工作环境中,特别在臭氧治疗仪的内部大功率气泵模块和臭氧发生器的干扰下,系统功耗高和抗干扰性能差,系统性能不稳定等问题便凸现出来。对此本文采用了ATMEL公司的一款AVR高档单片机,对控制系统作了改进,提高了整机的性能。 臭氧产生的原
[单片机]
基于ATmega8L-8PI单片机的医用臭氧治疗仪的设计
基于单片机及MODEM的MTU、RTU无线电遥测系统
一、引言     基于AVR单片机及专用MODEM芯片的MTU(Master Terminal Unit中心调度机)、RTU无线电遥测系统。     分散地分布在全市的管网监测点上的远端RTU(系统可带256个RTU)采集数据,进行数据处理后通过无线电台向中心调度端发送数据,中心调度端接收到数据后进行数据处理,数据存储,并送给模拟屏显示。 二、设计思想     原有系统的使用中,主要存在以下几个问题:1. 无线通信波特率低(300bps),误码率高,巡测速度慢,最多带32个RTU终端;2. 当某一远程RTU端的无线电台一直处于长时间误发射状态时(简称“长发” )一直占用系统频点,由于系统共用一组无线电频点,这将
[嵌入式]
AVR单片机基础介绍
AVR单片机是ATMEL公司研制开发的一种新型单片机,它与51单片机、PIC单片机相比具有一系列的优点: 1:在相同的系统时钟下AVR运行速度最快; 2: 芯片内部的Flsah、EEPROM、SRAM容量较大; 3:所有型号的Flash、EEPROM都可以反复烧写、全部支持在线编程烧写(ISP); 4:多种频率的内部RC振荡器、上电自动复位、看门狗、启动延时等功能,零外围电路也可以工作; 5:每个IO口都可以以推换驱动的方式输出高、低电平,驱动能力强; 6:内部资源丰富,一般都集成AD、DA模数器;PWM;SPI、USART、TWI、I2C通信口;丰富的中断源等。 目前支持AVR单片机编译器的语言主要有
[单片机]
AVR单片机在无线自动报靶系统中的应用
目前,在野外射击训练考核中,大部分还是通过人工报靶的方法,带有很多人为因素(如报靶人员的主观性、情绪等),影响报靶的结果,使得射手不能正确了解自己的成绩,不利于打靶水平的提高。虽然现在市面上出现了一些自动报靶产品,但这些产品的成本高、系统比较复杂,并且占用场地。因此,本文根据实际训练需要,研制出了集轻武器射击训练所需的所有功能于一体的、基于AVR单片机的一种无线自动报靶系统。该系统包括精确和非精确报靶,射击成绩的自动实时显示、统计和打印,可以满足多种武器和多种射击模式的训练需求,对目标的隐显时机、次数、间隔等均按训练大纲要求由电脑自动控制,既可同时监控多个(25个)靶位的射击情况,也可单独监控一个靶位的射击情况。 1 系统组成
[工业控制]
<font color='red'>AVR单片机</font>在无线自动报靶系统中的应用
AVR单片机中断应用设计要点
AVR的中断源比较多,尤其是ATmega128,一共有35个外部以及内部中断源。通常情况下,Flash程序存储器空间的最低位置(0x0000-0x0045)定义为复位和中断向量空间。完整的中断向量见第二章表2-23。在中断向量表中,处于低地址的中断向量所对应的中断拥有高优先级,所以,系统复位RESET拥有最高优先级。 A.中断设计注意点: 1.具备Bootloader功能的AVR,其中断向量区可以在Flash程序存储器空间最低位置和Bootloader区的头部来回迁移,这主要用于配合Bootloader程序的应用。如果不使用Bootloader功能,一般不要中断向量区进行迁移。 2.Flash较小的AVR芯片,其一个中断向量占
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved