利用E2PROM写的一个时钟

发布者:祝福的4号最新更新时间:2015-11-12 来源: eefocus关键字:E2PROM  时钟 手机看文章 扫描二维码
随时随地手机看文章
    E2PROM是基于I2C总线的数据存储器,网上很容易查到I2C总线协议的相关资料。

    本实验主要是实验的E2PROM的型号是AD24C02,其存储容量为2K。可重复擦写1,000,000次,数据可以保存100年。其引脚图如下:

利用E2PROM写的一个时钟

    其芯片固定的地址高四位为1010,由于此处仅仅使用了一块,因此A0,A1,A2均接地。此处在读写E2PROM的程序主要是采用祥哥的思想,加以改进后的一个时钟。程序如下:

=================================================================================================
#include
#define uchar unsigned char
#define uint  unsigned int
sbit sda=P3^7;  //端口定义
sbit scl=P3^6;
int t;
uchar code table[]={
     0x3F,  //"0"      //数码管显示字库
                 0x06,  //"1"
                 0x5B,  //"2"
                 0x4F,  //"3"
                 0x66,  //"4"
                 0x6D,  //"5"
                 0x7D,  //"6"
                 0x07,  //"7"
                 0x7F,  //"8"
                 0x6F,  //"9"
     };
void delay()
{ ; ;}
void delay1(uint z)
{
 uint x,y;
 for(x=z;x>0;x--)
  for(y=110;y>0;y--);
}
void start()   //起始信号
{
 sda=1;
 delay();
 scl=1;
 delay();
 sda=0;
 delay();

}
void stop() // 终止信号
{
 sda=0;
 delay();
 scl=1;
 delay();
 sda=1;
 delay();
}

void respons() //应答信号
{
 uchar i;
 scl=1;
 delay();
 while((sda==1) && (i<250))i++;//二者如果同时成立,则等待,如果有一个不成立则退出。
 scl=0;
 delay();  
}
void init()
{
 sda=1;
 delay();
 scl=1;
 delay();

}
void write_byte(uchar dat) //写一个字节
{
 uchar i,temp;
 temp=dat;

 for(i=0;i<8;i++)
 {
  temp=temp<<1; 
  scl=0;
  delay();
  sda=CY;//将溢出位送走 ,高位送走,溢出位在CY寄存器中
  delay();
  scl=1;
  delay();   //高电平时数据保持稳定
 }
 scl=0;
 delay();
 sda=1;//释放总线,方便读取应答信号
 delay();  
}

uchar read_byte() //读取一个字节数据
{
 uchar i,k;
 scl=0;
 delay();
 sda=1;
 delay();
 for(i=0;i<8;i++) //高位在前
 {
  scl=1;
  delay(); 
  k=(k<<1)|sda;
  scl=0;
  delay(); 
 }
 return k;
}

void write_add(uchar datadd,uchar date) //写存储器地址和数据
{
 start();
 write_byte(0xa0);//写芯片地址
 respons();
 write_byte(datadd);//向第三个存储器地址写数据
 respons();
 write_byte(date);
 respons();
 stop();

}
uchar read_date(uchar datadd) //读取存储器中的数据,参数为存储器的地址
{
 uchar dat;
 start();
 write_byte(0xa0); //写芯片地址
 respons();
 write_byte(datadd);//写存储器地址
 respons();
 start();
 write_byte(0xa1); //再次写芯片地址,改变数据方向
 respons();
 dat=read_byte();
 stop();
 return(dat);

}
void display(int shi,int fen,int miao)  //显示时间
{
 int a,b,c,d,e,f;
 a=shi/10;
 b=shi;
 c=fen/10;
 d=fen;
 e=miao/10;
 f=miao;

 P2=read_date(a);  //读取相应数字的地址
 P1=0xf0;
 delay1(1);
 P2=read_date(b);
 P1=0xf1;
 delay1(1);
 P2=0x40;
 P1=0xf2;
 delay1(1);
 P2=read_date(c);
 P1=0xf3;
 delay1(1);
 P2=read_date(d);
 P1=0xf4;
 delay1(1);
 P2=0x40;
 P1=0xf5;
 delay1(1);
 P2=read_date(e);
 P1=0xf6;
 delay1(1);
 P2=read_date(f);
 P1=0xf7;
 delay1(1);

}
void main()
{
 int num;
 int i;
 int shi,fen,miao;
 TMOD=0x01;//定时器0为工作方式1
 TH0=(65535-50000)/256;
 TL0=(65535-50000)%6;
 EA=1; //开总中断
 ET0=1;//开定时器0中断
 TR0=1;//启动定时器0
//*******此处运行一次即可*********
 init();
 for(i=0;i<10;i++)
 {
  write_add(i,table[i]); //依次写进数码管要显示的数据 ,存到E2P的前10个地址中
  delay1(50);   
 }
//******************************
 while(1)
 {
  if(t==20)
  {
   t=0;
   miao++;
   if(miao==60)
   {
    miao=0;
    fen++;
    if(fen==60)
    {
     fen=0;
     shi++;
     if(shi==24)
     shi=0;
    }
   }
  }
    display(shi,fen,miao);//显示时间
 }


}

void timer_0() interrupt 1     //定时器0中断
{
 TH0=(65535-50000)/256;
 TL0=(65535-50000)%6;
 t++; 
}

关键字:E2PROM  时钟 引用地址:利用E2PROM写的一个时钟

上一篇:基于1602液晶的温度感应器
下一篇:简单的DS18B20温度测试

推荐阅读最新更新时间:2024-03-16 14:39

STM32 F103 时钟树详解
刚入STM32 用了也有一段时间了,先做了中断,CAN,SPI。都是跟着网上的例子直接粘贴外设的初始化代码,看的大概能懂,但是时钟一直迷迷糊糊,不清不楚。 STM32为了实现低功耗,而设计的功能完善构成复杂的时钟系统,称之时钟树。使外设功能的时钟可自配置。因为STM32外设众多,而不同的项目用到的外设参差不齐,所以可控的时钟可以实现降低产品功耗。 所有的外设在使用之前都必须设置时钟信号,才可以正常工作。以STM32F103C8T6时钟树为例,如下图所示: 图7和图8道理一样的,大家觉得那个容易理解就看那个图 图8 STM32的四个时钟源 外部时钟 1 高速外部时钟(HSE):外部时钟源,晶振频率可取范围
[单片机]
STM32 F103 <font color='red'>时钟</font>树详解
LPC2294的实时时钟显示设计
  ARM(Advarlced RISC Machine)是设计这种处理器内核的公司的名字,ARM核并非芯片。ARM核与其他部件,如RAM、ROM、片内外设,组合在一起才构成现实的芯片。ARM作为一类微处理器的通称,作为一种低功耗、高性能的32位嵌入式微处理器,现在已经被广泛应用在各个领域中。   ARM应用的开发工具主要包括集成开发环境IDE、评估板和JTAG仿真器等。国内使用较多的IDE为ARM公司的SDT、ADS以及英蓓特公司的Embest IDE。仿真器有ARM公司的Muti-ICE和英蓓特公司的Embest系列ARM JTAG仿真器等。   可以在PC机上开发一个嵌入式系统,利用集成开发环境编写并编译链接产生ARM处
[单片机]
LPC2294的实时<font color='red'>时钟</font>显示设计
C8051F120与RS422总线的时钟同步技术
   引 言   由于指令的速度不断加快,单片机在各个方面的性能大为提高,比如多个单片机之间的时钟同步。Silicon Labs公司的C8051F系列单片机的执行速度最高可以达到100MIPS,这使得更高精度的时钟同步成为可能。时钟同步是一个在多单片机相互配合时经常遇到的问题,主要有两种同步方式——绝对同步和相对同步。绝对同步是指各个控制器和一个标准的时间进行同步,比如北京时间、华盛顿时间等等;而相对时钟同步是指各个单片机和一个相对稳定的时钟进行同步,与外界的时间没有联系。本文主要针对RS422总线组成的网络的高精度时钟同步问题,提出了一种相对时钟同步解决方案。    1 整体框架结构   RS422网络中,多个单片机的连接
[单片机]
Maxim 推出具EMI噪声抑制的扩频时钟发生器
Maxim推出具有业内最佳EMI噪声抑制的扩频时钟发生器MAX31C80/MAX31D80。MAX31C80/MAX31D80能够采用任何时钟频率或晶体产生所要求的输出时钟频率,为设计人员提供极大灵活性。器件利用高质量、低抖动( 75ns)的可编程分数PLL提供2MHz至134MHz输出频率,与晶体或时钟输入无关。有源扩频抖动调节技术能够扩展EMI噪声频谱,从而实现最平坦的频谱扩展,并且在扩展频谱的边缘或中心频率处不会出现明显的能量/噪声尖峰。器件集成了晶体振荡器、经过缓冲的振荡器输出、可编程分数PLL以及扩频发生器,大大降低了元件数量、尺寸以及成本。器件优异的扩频输出可理想用于驱动特定频率下具有较大EMI尖峰的微处理器、存
[模拟电子]
Maxim 推出具EMI噪声抑制的扩频<font color='red'>时钟</font>发生器
英特尔与SiTime联手开发5G调制解调器MEMS时钟解决方案
英特尔与MEMS时钟方案提供商SiTime公司宣布,将共同为英特尔5G调制解调器平台开发耐用、小型、低功耗的微机电(MEMS)时钟解决方案。SiTime公司的MEMS产品具备增强的高可靠性和对环境刺激的高耐受度,已应用于消费级电子产品、网络和通信基础设施、医疗、工业和汽车应用等领域。 SiTime的MEMS时钟解决方案产品零件小巧且低功耗,能将稳定性、可靠性和性能提升20倍 英特尔公司副总裁兼通信与设备事业部总经理Cormac Conroy博士表示:“英特尔的调制解调器技术和SiTimes公司的MEMS时钟解决方案将为5G调制解调器提供更高级别的可靠性,并使客户真正的在最大程度上利用5G所带来的性能和容量。” 英特尔
[家用电子]
英特尔与SiTime联手开发5G调制解调器MEMS<font color='red'>时钟</font>解决方案
基于FPGA的多时钟片上网络设计
在FPGA 上设计一个高性能、灵活的、面积小的通信体系结构是一项巨大的挑战。大多数基于FPGA的片上网络都是运行在一个单一时钟下。随着FPGA技术的发展,Xilinx公司推出了Virtex-4平台。该平台支持同一时间内32个时钟运行 ,也就是说每个片上网络的内核可以在一个独立的时钟下运行, 从而使每个路由器和IP核都运行在最佳频率上。因此适用于设计多时钟片上网络,实现高性能分组交换片上网络。 1 多时钟片上网络架构的分析 片上网络结构包含了拓扑结构、流量控制、路由、缓冲以及仲裁。选择合适网络架构方面的元素,将对片上网络的性能产生重大影响 。 (1)网络拓扑:在设计中,选择Mesh拓扑结构。Mesh结构拥有最小的面积开销以及
[嵌入式]
基于FPGA的多<font color='red'>时钟</font>片上网络设计
基于DSP的高速线扫描相机的实现
  现代化生产和科学研究对图像采集系统的要求日益提高。高速线扫描相机作为数字图像采集、传输的前端设备,其扫描的速度和质量很大程度上决定了整个系统的性能。市面上的线扫描相机非常昂贵,因此有必要开发物美价廉的高速线扫描相机。   设计高速线扫描相机,包括相机本身的硬件结构和相机操作的相关软件两部分。从相机的结构上看,线扫描相机作为图像采集和视觉信息获取设备,其主要功能是将光学图像信号转换为数字图像信号。一般来说,它由光学成像部分、光电转换部分(由模拟光信号转换为模拟电信号)及A/D转换等部分组成。光电转换部分一般由固体图像传感器来实现。    图1 相机的系统结构图 图2 相机内部CPLD生成时钟信号和控制信号功能框图 图
[嵌入式]
基于GPS授时及时钟细分的管线破坏定位
1 引言 管道运输业具有成本低、节省能源、安全性高、传送距离长及供给稳定等优点。在运输液体、气体和浆液等方面具有独特的优势,尤其在石油、化工、天然气及城市供水等产业中有着不可替代的作用。我国管道建设在近二十年得到了快速的发展,并且在十一五发展规划中明确提出还要建设四大油气管道。 随着管龄的增长,由于自然损坏造成的泄漏变得日益严重,特别是在各大采油作业区及广远的输油气管路上,人为破坏偷盗现象时有发生。管道泄漏不仅会影响管道输送的正常进行,造成重大经济损失,而且当输送有毒害、腐蚀性、易燃易爆的介质时,还会污染环境,引起火灾爆炸事故。因此,对管道泄漏的检测及破坏点定位具有极为重要的现实意义 。 引发管道泄漏事故的种种原因中,人为
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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