历史上的今天

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

正在发生

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

发布者:数字梦想 来源: eefocus关键字:ATmega8  eeprom  读写操作 手机看文章 扫描二维码
随时随地手机看文章

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);

}


关键字:ATmega8  eeprom  读写操作 引用地址:ATmega8的eeprom读写操作程序

上一篇:atmega128 AD 转换
下一篇:BASCOM-AVR版调光演示程序

推荐阅读

随着国内工业化进程的加快,工业机器人市场正是蒸蒸日上。据相关统计数据显示,2013至2016年期间,我国国产工业机器人销售数量仅一年便增长31%左右,去年国内工业机器人销量更是突破10万台,其应用也延伸至医疗、汽车、教育以及科学考察等领域。 但可以看到的是,目前国内的工业机器人仍存在诸多技术问题尚待解决,越来越多的企业也开始转向与人工智能...
1、金属管浮子流量计工作原理:根据金属管浮子在锥形管内的高度来测量流量,利用流体通过浮子和管壁之间的间隙时产生的压差来平衡浮子的重量,流量越大,浮子被托得越高,使其具有更大的环隙面积,也即环隙面积随流量变化,所以一般称为面积法。它较多地利用于中、小流量的测量,有配以电远传或气远传发信器的类型。2、金属管浮子流量计分类:①按锥管材料...
最近由于公司项目需要STM8S105K这颗芯片,这两天我也捣鼓了下,正好现在开通了博客,以此记录下自己的工作。 开发环境: window10操作系统; IAR for STM8; 开发工具; window10电脑; STM8S105K4t6最小系统; ST-link烧录器 本人之前工作上主要使用STM32芯片,开发STM8S时,是使用ST的库开发还是直接操...
9月28日,OFweek 2021中国智能制造数字化转型峰会暨维科杯工业自动化及数字化行业年度评选颁奖典礼盛大开幕,辰星(天津)自动化设备有限公司荣获维科杯·OFweek2021中国工业自动化及数字化行业卓越技术创新企业奖,CEO宋涛作为企业核心领导人,获得维科杯·OFweek2021中国工业自动化及数字化行业先锋人物奖。29日,在OFweek 2021中国机器人系统集成商峰...

史海拾趣

问答坊 | AI 解惑

请假大家2个关于充电器的问题:

请假大家2个关于充电器的问题: 一:不知道为什么我用的充电器总是烧前级220V近来的电阻; 二:就是我给锂电池充电,2节理电池串联8.4V,请问我若是想在充电器与电池之间加上一个保护二极管,请问充电器的电压要多大?(因为我测试发现二极管的压降 ...…

查看全部问答∨

HDC泄露问题

大家好,小弟最近在WINCE上开发了一个俄罗斯方块,但运行到一段时间后,方块就不会下落了。经过DEBUG知道,其实程序还是正常运行的,只是图片不再更新了。我用的是bitblt函数去贴图,所以也申请了几个HDC,用完后也删除了。初步估计是这个HDC泄露, ...…

查看全部问答∨

Win CE 系统密码如何破解?

我有一台GPS机器,Win CE4.2系统, 主芯片是: Centralty  AT280B-BCZ的, 但由于系统加了密,密码输入后记错了,再怎么也解不开,请教专家,如何破解?谢谢!…

查看全部问答∨

请教熟知嵌入式开发的朋友

要做嵌入式开发需要至少知道哪些基本知识阿? 最基础的知识我对嵌入式开发还一知半解…

查看全部问答∨

ARM 调试除了状况 求教

            Isr_Init();    [0xebfff672]   bl       Led_Test                         &nbs ...…

查看全部问答∨

为什么我的nfs mount可以成功,却看不到文件列表

PC的NFS服务器配置:      exportfs 文件已经配置                     /nfs *(rw,sync)      showmount 显示:     ...…

查看全部问答∨

高分求助:Wince下如何旋转屏幕?平台是PXA270

如题,现在我们的显示是320(x)×240(y),想改成240(x)×320(y).…

查看全部问答∨

CLKOUT输出

请教高手,1114的CLKOUT如何输出时钟,我将IO设置为CLKOUT输出,但是CLKOUT没有输出,不知道是什么原因,谢谢。…

查看全部问答∨

关于stm32IAP的另类实现

iap是在应用编程,也就是说里面有了用户程序,这样要编程的时候就要跳到另一段代码去实现,stm32给的例子是把用户区flash分成2块来实现的。 但是其中给isp用的系统区还是存在的,既然isp的程序代码还在,那干脆就跳到系统区去实现得了。刚刚 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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