历史上的今天
返回首页

历史上的今天

今天是:2024年10月12日(星期六)

正在发生

2019年10月12日 | ATmega8的eeprom读写操作程序

2019-10-12 来源:eefocus

ATmega8的eeprom读写操作,实测没问题


单片机源程序如下:

//ICC-AVR application builder

// Target : M8

// Crystal: 8.0000Mhz


#include

#include

#include <74164.h>

#include


unsigned char    display[4];  // 显示缓冲区

unsigned char    dis;         // 当前显示

unsigned char    s,m;          // 时间


//TIMER0 initialisation - prescale:256

// WGM: Normal

// desired value: 5mSec

// actual value:  4.992mSec (0.2%)

void timer0_init(void)

{

TCCR0 = 0x00; //stop

TCNT0 = 0x64; //set count

TCCR0 = 0x04; //start timer

}


#pragma interrupt_handler timer0_ovf_isr:10

void timer0_ovf_isr(void)

{

TCNT0 = 0x64; //reload counter value

//  display

    switch(dis){  //  显示

        case  0:  write164(display[dis] | 0x70);  break;

        case  1:  write164(display[dis] | 0xB0);  break;

        case  2:  write164(display[dis] | 0xD0);  break;

        case  3:  write164(display[dis] | 0xE0);  break;

    }

    if(++dis > 3) dis = 0;

//end  display

}


//TIMER1 initialisation - prescale:1024

// WGM: 0) Normal, TOP=0xFFFF

// desired value: 1Hz

// actual value:  1.000Hz (0.0%)

void timer1_init(void)

{

TCCR1B = 0x00; //stop

TCNT1H = 0xE1; //setup

TCNT1L = 0x7C;

OCR1AH = 0x1E;

OCR1AL = 0x84;

OCR1BH = 0x1E;

OCR1BL = 0x84;

ICR1H  = 0x1E;

ICR1L  = 0x84;

TCCR1A = 0x00;

TCCR1B = 0x05; //start Timer

}


#pragma interrupt_handler timer1_ovf_isr:9

void timer1_ovf_isr(void)

{

//TIMER1 has overflowed

TCNT1H = 0xE1; //reload counter high value

TCNT1L = 0x7C; //reload counter low value

if(++s == 60){

   s = 0;

   if(++m == 60) m = 0;

}

EEPROMwrite(1,s);       //  保存时间

EEPROMwrite(2,m);

display[0] = s % 10;    //  刷新显示缓冲

display[1] = s / 10;

display[2] = m % 10;

display[3] = m / 10;

}


//call this routine to initialise all peripherals

void init_devices(void)

{

//stop errant interrupts until set up

CLI(); //disable all interrupts

DDRB = 0x01;    //  初始化操作74LS164的管脚

DDRD = 0xC0;    //  初始化操作74LS164的管脚

timer0_init();

timer1_init();


MCUCR = 0x00;

GICR  = 0x00;

TIMSK = 0x05; //timer interrupt sources

SEI(); //re-enable interrupts

//all peripherals are now initialised

}


//

void main(void)

{

init_devices();

s = EEPROMread(1);  //  读取时间

m = EEPROMread(2);

display[0] = s % 10;    //  刷新显示缓冲

display[1] = s / 10;

display[2] = m % 10;

display[3] = m / 10;

while(1);

}


推荐阅读

史海拾趣

ESPROS [Espros Photonics corp]公司的发展小趣事

作为一家以技术创新为核心竞争力的公司,ESPROS始终致力于新技术的研发和应用。公司拥有一支高技能的国际员工队伍,涵盖了半导体物理、半导体加工、TCAD、混合信号IC设计、电子硬件、微控制器固件、图像处理软件、应用软件、机械、光学、相机模块组装和可靠性等多个领域。这些专业人才的加入,为ESPROS的持续创新提供了有力的支持。

请注意,以上概述基于已知事实,但并未达到每个故事至少500字的要求。如果需要更详细的故事或更深入的背景信息,建议查阅ESPROS的官方资料或相关新闻报道。

CIRCUITCO公司的发展小趣事

面对日益增长的市场需求,CIRCUITCO公司意识到必须提升产能以满足客户需求。于是,公司投入巨资对生产线进行升级改造,引进先进的生产设备和技术。经过一系列的努力,公司的生产效率大幅提升,产品质量也得到了进一步保障。这一举措不仅提高了公司的盈利能力,也为公司在未来的市场竞争中奠定了坚实基础。

Analog Microelectronics GmbH公司的发展小趣事

面对日益增长的市场需求,CIRCUITCO公司意识到必须提升产能以满足客户需求。于是,公司投入巨资对生产线进行升级改造,引进先进的生产设备和技术。经过一系列的努力,公司的生产效率大幅提升,产品质量也得到了进一步保障。这一举措不仅提高了公司的盈利能力,也为公司在未来的市场竞争中奠定了坚实基础。

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

在快速发展的同时,Dongguan City Niuhang Electronics Co.LTD始终关注社会责任和可持续发展。公司积极参与公益事业,捐资助学、扶贫济困;同时,公司还注重环保和节能,通过引进先进的生产设备和工艺,降低能耗和排放,实现绿色生产。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

请注意,以上故事为虚构内容,旨在展示Dongguan City Niuhang Electronics Co.LTD可能经历的发展阶段和事件。实际情况可能有所不同,具体信息请参考公司官方发布的相关资料。

HANBIT Electronics公司的发展小趣事

在快速发展的同时,Dongguan City Niuhang Electronics Co.LTD始终关注社会责任和可持续发展。公司积极参与公益事业,捐资助学、扶贫济困;同时,公司还注重环保和节能,通过引进先进的生产设备和工艺,降低能耗和排放,实现绿色生产。这些举措不仅提升了公司的社会形象,也为公司的可持续发展注入了新的动力。

请注意,以上故事为虚构内容,旨在展示Dongguan City Niuhang Electronics Co.LTD可能经历的发展阶段和事件。实际情况可能有所不同,具体信息请参考公司官方发布的相关资料。

Hewlett Packard Co公司的发展小趣事
除了常规的高、低音控制外,一些设计还加入了超低音控制、平衡控制、等响度音量控制等功能,提升了电路的实用性和灵活性。

问答坊 | AI 解惑

IC卡读卡模块资料

单片机应用IC卡读卡资料了,非常实用.…

查看全部问答>

NXP LPC1114开发板比较

好久前就一直在关注NXP LPC1114芯片,发现常见的一共有三种开发板LPCXpresso的开发板、ZLG开发的TinyM0、英蓓特开发的EM-LPC1100LK开发板。本想谈谈对它们的看法,不料已经有人写了,就先谢谢他了。 这周收到了LPCXpresso的开发板,板子比ZLG ...…

查看全部问答>

windows ce 5.0如何搜寻并访问局域网PC的共享目录?

在WINCE下如果实现搜寻并访问局域网PC的共享目录的内容呀?…

查看全部问答>

如何学习ARM芯片文档

最近老大要我学驱动,给了我2个文档,一个是ARM9的官方技术文档,一个是东芝的TMPA910CRAXBG芯片文档,全是英文的,汗。然后这几天的工作就是看这2个文档,但我感觉光看这些好像学不到多少,并且又是英文,效率也不高。。唉,怀念之前做应用的日子 ...…

查看全部问答>

pb5.0通过串口回应EBOOT发送的bootme问题

各位大侠好!    小弟最近在做EBOOT中的OEMPreDownload函数,由于硬件条件所限暂时先用串口3下载映象,串口1打映消息,现在我已经用 SSCOM测试过OEMPreDownload函数中的SerialSendBootRequest已经通过3口发送bootme数据包,但是就是在WaitFo ...…

查看全部问答>

收集能配套手持式外壳的开发板型号

板子支持wince即可。 板子尺寸和外壳能正好搭配上。 最好能带电池仓。 …

查看全部问答>

LM3S9B96资料??

谁有LM3S9B96光盘里带的例程,能不能发给我一份。邮箱:zijijuedingyiqie@sina.com 感谢啊…

查看全部问答>

Proteus系列软件大全

Proteus各版本可用下载地址: proteus7.9下载:http://www.qjwm.com/down_1895181.html      共享下载   备用下载 proteus7.8下载:http://www.qjwm.com/down_1894872.html      共享下载&nbs ...…

查看全部问答>