AVR看门狗及EEPROM

AVR单片机EEPROM和FLASH区别

AVR单片机EEPROM和FLASH区别 为什么A VR单片机既有FLASH又有EEPROM?我如果要烧写程序只用HEX文件行么?那个EEP文件有什么作用? 你的程序代码是保存在FLASH里的,只烧写HEX文件就可以。EEP文件是EEPROM的初始化数据文件,如果不烧写,EEPROM会保持FF,如果烧写了这个文件,就会按照你的初始化要求初始化EEPROM。在实际中有时往往不仅仅需要程序代码,还需要用到一些数据,而这些数据又会根据情况的不同而变化。举个例子,比如我要测量一个电机的转数,而每天电机最多测量12个小时,要求记录这12个小时的转数,然后第二天从这个数值继续测量,当然第二天单片机也会重新上电。遇到这个情况你如何去保存你的记录数值呢?当然这就需要用到EEPROM了。EEPROM存取数据方便,掉电不丢失,适合记录这种要求有变化又要求掉电不丢失的数据。当然EEPROM也可以作为程序存储器来存放程序。但是A VR单片机的BOOTLOADER是ATMEL提供的,只能够从FLASH开始。其次,即使能够使用EEPROM做程序存储器,如今也不会采用这样的方式,因为EEPROM造价比FLASH要高很多,同时存取速度比FLASH要慢得多,因此如今的程序基本都是被放入FLASH中,而EEPROM只用来存放那些不希望丢失的数据而用了 FLASH 一个静态的只读存储器,单片机本身无法修改自己 EEPROM 是指5V或3.3V可擦写存储器,可以由单片机本身编程写入一般用来做掉电保护,也可以由烧程器写入。烧程时当然只用HEX文件AVR编程的时候,可以对EEPROM编程 设置你想要的初始化量 简单的说,flash是保存程序的,eeprom是保存程序需要用到的,掉电不会丢失的变量,通常是初始值之类的。通常flash不会被程序改写(avr有bootloader 功能,可以修改flash甚至bootloader自身),而eeprom则很容易被改写。 一般来讲,实际应用中eeprom用的不多,除非对成本极为看重,因为片内的eeprom比较不可靠,当电压不稳时,数据容易丢失。 AVR系列单片机的FLASH存储器、SRAM存储器、EEPROM存储器各有什么用途? FLASH:单片机运行的程序存储的地方。

STC单片机内部EEPROM的应用

ISPEN:ISP/IAP功能允许位。0:禁止ISP/IAP编程改变Flash,1:允许编程改变Flash SWBS:软件选择从用户主程序区启动(0),还是从ISP程序区启动(1)。 SWRST:0:不操作,1:产生软件系统复位,硬件自动清零。 ISP_CONTR中的SWBS与SWRST这两个功能位,可以实现单片机的软件启动,并启动到ISP区或用户程序区,这在“STC单片机自动下载”一节,亦有所应用。 如: ISP_CONTR=0x60; 则可以实现从用户应用程序区软件复位到ISP程序区开始运行程序。 ISP_CONTR=0x20; 则可以实现从ISP程序区软件复位到用户应用程序区开始运行程序。

(以上的建议时钟是(WT2、WT1、WT0)取不同的值时的标称时钟,用户系统中的时钟不要过高,否则可能使操作不稳定。) 以下是具体的实现代码: EEPROM操作函数: #define RdCommand 0x01 #define PrgCommand 0x02 #define EraseCommand 0x03 #define Error 1 #define Ok 0 #define WaitTime 0x01

#define PerSector 512 unsigned char xdata Ttotal[512]; /* ---------------------------------------------------------------------打开 ISP,IAP 功能 ---------------------------------------------------------------------*/ void ISP_IAP_enable(void) { EA=0;/* 关中断*/ ISP_CONTR|=0x18;/*0001,1000*/ ISP_CONTR|=WaitTime;/*写入硬件延时*/ ISP_CONTR|=0x80;/*ISPEN=1*/ } /* ---------------------------------------------------------------------关闭 ISP,IAP 功能 ---------------------------------------------------------------------*/ void ISP_IAP_disable(void) { ISP_CONTR&=0x7f;/* ISPEN = 0 */ ISP_TRIG=0x00; EA=1;/* 开中断 */ } /* ----------------------------------------------------------------------公用的触发代码 ----------------------------------------------------------------------*/ void ISPgoon(void) { ISP_IAP_enable();/* 打开 ISP,IAP 功能 */ ISP_TRIG=0x46;/* 触发ISP_IAP命令字节1 */ ISP_TRIG=0xb9;/* 触发ISP_IAP命令字节2 */ _nop_(); }

avrEEPROM数据丢失问题原因与解决方案

avr EEPROM 数据丢失问题原因与解决方 案 总结一下引起AVR内部EEPROM数据丢失的原因: 1.程序问题; 2.程序跑飞; 3.EEPROM相关寄存器因强磁场、高压静电等外部干扰出错所产生的写入动作; 4.系统有很大的感性负载,在断电的时候会产生一 个反向高压,EEPROM有可能会自擦除。 ……(还有什么原因,欢迎大家继续列举,以便完善及想办法解决) 针对问题1,程序问题不再该文讨论范围内。 针对问题2,程序跑飞,这个因该是引起EEPROM数据丢失的主要原因。但是引起程序跑飞的原因却是多方

面的。 第一.电压不正常,工作不稳定,程序跑飞。针对这个问题,可以开启内部BOD、或者外加复位芯片解决,在低功耗场合,外部复位是有必 要的,毕竟BOD功耗太高。 第二,晶体振荡受干扰,频率不稳定,程序跑飞。针对这个问题,建议晶体使用全幅振荡,并且走线的时候尽量短,并且使用地线隔离。 第三系统受外界环境干扰,修改了PC等寄存器,程序跑飞。针对这个干扰问题,这个引起程序跑飞的可能性应该不大,如果环境实在恶劣 ,那么就应该想到做电磁屏蔽,ESD保护等,如果还不行,那么只能建议换换别的单片机试试看了。 针对问题3,我们只能优化电路设置,尽量避免,比如加屏蔽罩,加ESD保护,加TVS保护,电源加电容退耦等等。

针对问题4,如果系统真的具有很大的感性负载,那么请注意加续流二极管、滤波电容等做保护,不要让这种反向高压产生,无论如何,这 种因为感性负载突然断电自激产生的高压,不仅仅会对EEPROM有影响,而是对整个系统都存在威胁。 ================================================= ================================================= ============ 经过上面硬件上的一些处理,虽然EEPROM数据丢 失的可能已经很小了,但是我们仍然不能保证EEPROM数据就不会丢失了。这时EEPROM数据的可*性,那就得从软件上去考虑了,接着我们从 软件的方面继续讨论。 我的做法是,数据分块,分区,校验,备份。当然这里讲的处理方法,仅仅是提供一种想法,你可以做不同数据长度的分块,不同大小的 分区,采用不同的地址映射方法,以及采用更多次的数据备份。下面以Mega168为例继续讨论。 1.Mega168EEPROM512字节,把EEPROM分为两个区,每个

GPIO 和看门狗使用例子说明

GPIO和看门狗使用例子说明 1. 概述: 验证和使用,GPIO和看门狗API例子程序。  SOM2386/2388, 4(GPIO)+3(GPIO或中断线可选)路双向可编程数字I/O。 l 4位双向口(PIO0,PIO1,PIO10,PIO11) l 3位可选双向口(IRQ2/PIO12, IRQ3/PIO13, IRQ6/PIO31) PCM3386/3388 ,提供4(GPIO) 和14路(5V电平)单向数字I/O通道。  l 4位双向口(PIO0,PIO1,PIO10,PIO11)  l 8位单向输入I/O,(GP10,GP11,GP12,GP13,GP14,GP15,GP16,GP17)  IO地址=0x200H  l 8位单向输出I/O (GP20,GP21,GP22,GP23,GP24,GP25)  IO地址=0x208H(bit5 ̄bit0) 2. 环境: l 虚拟显示环境(参见搭建虚拟显示环境相关文档) 3. 演示方法和效果: l PC下载方式 l 使用BC45,打开C:\lanry\example\gpio\GPIODEMO.IDE工程。 l 编译下载到目标板上(参见演示录象)。 l 单步,验证相应的代码。 4. API函数说明 #define PIO0 0 /*4位gpio*/ #define PIO1 1 /*4位gpio*/ #define PIO10 10 /*4位gpio*/ #define PIO11 11 /*4位gpio*/ #define PIO12 12 /*3位中断或gpio可选*/ #define PIO13 13 /*3位中断或gpio可选*/ #define PIO31 31 /*3位中断或gpio可选*/ char PIORead(int PIO_BIT_INDEX ) ; 功能: 片上通用IO读函数: PIORead 入口参数:int PIO_BIT_INDEX cpu 上双向IO索引号 返回值: char =0,表示输入为低电平,=1表示输入高电平,=3,表示失败,方向设置有错 注意: 函数功能,只有在相应的位方向设置为输入时,才是有效的 som2386/2388 中PIO_BIT_INDEX,可选值集(PIO0 , PIO1, PIO10, PIO11, PIO12, PIO13, PIO31)。 PCM3386/3388中PIO_BIT_INDEX,可选值集(PIO0 , PIO1, PIO10, PIO11 )。char PIOWrite(int PIO_BIT_INDEX, char Val ) ;

51单片机内部EEPROM的应用

用51hei-5板子学习单片机内部EEPROM的应用 STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPRO M,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点。 ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。 IAP:In Application Programable 是指在应用编程,就是片子提供一系列的机制(硬件/软件上的)当片子在运行程序的时候可以提供一种改变flash数据的方法。通俗点讲,也就是说程序自己可以往程序存储器里写数据或修改程序。这种方式的典型应用就是用一小段代码来实现程序的下载,实际上单片机的ISP功能就是通过IAP技术来实现的,即片子在出厂前就已经有一段小的boot程序在里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到存储区。大家要注意千万不要尝试去擦除这段ISP引导程序,否则恐怕以后再也下载不了程序了。STC单片机内部有几个专门的特殊功能寄存器负责管理ISP/IAP 功能的,见表1。 表1 ISP/IAP相关寄存器列表 名称地址功能描述D7D6D5D4D3D2D1D0复位值ISP_DATA E2h Flash数据寄存器1111 1111 ISP_ADDRH E3h Flash高字节地址寄 存器0000 0000 ISP_ADDRL E4h Flash低字节地址寄 存器0000 0000 ISP_CMD E5h Flash命令模式寄存 器 ----------MS2MS1MS0xxxx x000 ISP_TRIG E6h Flash命令触发寄存 器 xxxx xxxx ISP_CONTR E7h ISP/IAP 控制寄存器ISPEN SWBS SWRST----WT2WT1WT0000x x000 ISP_DATA:ISP/IAP操作时的数据寄存器。

单片机内的Flash与EEPROM作用及区别(精)

单片机内的 Flash 与 EEPROM 作用及区别 单片机运行时的数据都存在于 RAM (随机存储器中, 在掉电后 RAM 中的数据是无 法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用 EEPROM 或FLASHROM 等 存储器来实现。在传统的单片机系统中, 一般是在片外扩展存储器, 单片机与存储器之间通 过 IIC 或 SPI 等接口来进行数据通信。这样不光会增加开发成本,同时在程序开发上也要花 更多的心思。在 STC 单片机中内置了 EEPROM (其实是采用 IAP 技术读写内部 FLASH 来 实现 EEPROM ,这样就节省了片外资源,使用起来也更加方便。下面就详细介绍 STC 单 片机内置 EEPROM 及其使用方法。 flash 是用来放程序的,可以称之为程序存储器,可以擦出写入但是基本都是整个扇区进行的 . 一般来说单片机里的 flash 都用于存放运行代码,在运行过程中不能改; EEPROM 是用来保存用户数据,运行过程中可以改变,比如一个时钟的闹铃时 间初始化设定为 12:00,后来在运行中改为 6:00,这是保存在 EEPROM 里, 不怕掉电,就算重新上电也不需要重新调整到 6:00 下面是网上详细的说法,感觉不错:

FLASH 和 EEPROM 的最大区别是 FLASH 按扇区操作, EEPROM 则按字节操作, 二者寻址方法不同,存储单元的结构也不同, FLASH 的电路结构较简单,同样容量占芯片面积较小,成本自然比 EEPROM 低,因而适合用作程序存储器, EEPROM 则更多的用作非易失的数据存储器。当然用 FLASH 做数据存储器也行, 但操作比EEPROM 麻烦的多,所以更“人性化”的 MCU 设计会集成 FLASH 和 EEPROM 两种非易失性存储器,而廉价型设计往往只有 FLASH ,早期可电擦写型 MCU 则都是EEPRM 结构,现在已基本上停产了。 在芯片的内电路中, FLASH 和 EEPROM 不仅电路不同,地址空间也不同,操作方法和指令自然也不同, 不论冯诺伊曼结构还是哈佛结构都是这样。技术上, 程序存储器和非易失数据存储器都可以只用 FALSH 结构或 EEPROM 结构, 甚至可以用“变通”的技术手段在程序存储区模拟“数据存储区” ,但就算如此,概念上二者依然不同,这是基本常识问题。 EEPROM :电可擦除可编程只读存储器, Flash 的操作特性完全符合 EEPROM 的定义,属 EEPROM 无疑,首款 Flash 推出时其数据手册上也清楚的标明是EEPROM ,现在的多数 Flash 手册上也是这么标明的,二者的关系是“白马”和 “马” 。至于为什么业界要区分二者, 主要的原因是 Flash EEPROM 的操作方法和传统 EEPROM 截然不同,次要的原因是为了语言的简练,非正式文件和口语中Flash EEPROM 就简称为 Flash , 这里要强调的是白马的“白” 属性而非其“马” 属性以区别 Flash 和传统 EEPROM 。 Flash 的特点是结构简单, 同样工艺和同样晶元面积下可以得到更高容量且大数据量 下的操作速度更快,但缺点是操作过程麻烦,特别是在小数据量反复重写时, 所以在 MCU 中 Flash 结构适于不需频繁改写的程序存储器。 很多应用中,需要频繁的改写某些小量数据且需掉电非易失,传统结构的EEPROM 在此非常适合, 所以很多 MCU 内部设计了两种 EEPROM 结构, FLASH

AVR常用操作

IAR编译器配置(AVR ) 一、EEPROM 区域数据存储: __eeprom unsigned char a;//定义一个变量存放在EEPROM空间 __eeprom unsigned char a @ 0x8;//定义一个变量存放在EEPROM空间0X08单元 __eeprom unsigned char p[] @ 0x22//定义一个数组存放在EEPROM空间,开始地址为0X22单元 __eeprom unsigned char a @ 0x08=9;//定义一个常数存放在EEPROM空间0X08单元 __eeprom unsigned char p[] @0x22={1,2,3,4,5,6,7,8}; EEPROM操作宏取函数:在comp_a90.h intrinsics.h头文件里有详细说明。 自动生成.eep文件置:在Project->Options->linker->config>的linker command line中观察该Project使用了哪个XCL文件。本文使用M8编译,使用文件 是”TOOLKIT_DIR$\src\template\cfgm8.xcl”-Ointel-extended,(CODE)=.hex -Ointel-extended,(XDATA)=.eep 二、FLASH 区域数据存储: 用关键字__flash 控制来存放,__ flash 关键字写在数据类型前后效果一样 __flash unsigned char a @ 0x8;//定义变量存放在flash 空间0X08单元__flash unsigned char p[] @ 0x22//定义数组存放在flash 空间,开始地址为0X22单元 __flash unsigned char a @ 0x08=9;//定义常数存放在flash 空间0X08单元 __flash unsigned char p[] @ 0x22={1,2,3,4,5,6,7,8}; unsigned int __flash * p;//定义个指向flash 空间地址的指针,16位。 unsigned int __farflash * p;//定义指向flash 空间地址的指针,24位。 __flash unsigned char * p; //定义指向SARMM空间地址的指针,指针本身存放在flash 中。 flash 操作宏函数:在comp_a90.h intrinsics.h头文件里有详细说明 三、IAR编译器对位的支持更强大: PORTB_ Bit2=1; //置PORTB的第2位=1 PORTC_Bit4=PORTB_Bit2;//把PORTB的第2位传送到PORTC的第4位 四、头文件 avr_macros.h里面包含了读写16位寄存器的简化书写,和几个位操作函数 comp_a90.h对大量的内在函数做了简要书写,flash 操作宏函数 ina90.h包含"inavr.h" "comp_A90.h"文件 intrinsics.h内在函数提供最简单的操作处理器底层特征。休眠,看门狗,FLASH函数。 iomacro.H I/O寄存器定义文件样本。 #include #include #include #include #include #include #include #include #include

51单片机内部EEPROM的应用

STC89C51、52内部都自带有2K字节的EEPROM,54、55和58都自带有16K字节的EEPROM,STC单片机是利用IAP技术实现的EEPROM,内部Flash擦写次数可达100,000 次以上,先来介绍下ISP与IAP的区别和特点。 知识点:ISP与IAP介绍 ISP:In System Programable 是指在系统编程,通俗的讲,就是片子已经焊板子上,不用取下,就可以简单而方便地对其进行编程。比如我们通过电脑给STC单片机下载程序,或给AT89S51单片机下载程序,这就是利用了ISP技术。 IAP:In Application Programable 是指在应用编程,就是片子提供一系列的机制(硬件/软件上的)当片子在运行程序的时候可以提供一种改变flash数据的方法。通俗点讲,也就是说程序自己可以往程序存储器里写数据或修改程序。这种方式的典型应用就是用一小段代码来实现程序的下载,实际上单片机的ISP功能就是通过IAP技术来实现的,即片子在出厂前就已经有一段小的boot程序在里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到存储区。大家要注意千万不要尝试去擦除这段ISP引导程序,否则恐怕以后再也下载不了程序了。 STC单片机内部有几个专门的特殊功能寄存器负责管理ISP/IAP功能的,见表1。 表1 ISP/IAP相关寄存器列表 名称地址功能描述D7 D6 D5 D4 D3 D2 D1 D0 复位值 ISP_DATA E2h Flash数据寄存 器1111 1111 ISP_ADDRH E3h Flash高字节地址寄存 器0000 0000 ISP_ADDRL E4h Flash低字节地址寄存 器0000 0000 ISP_CMD E5h Flash命令模式寄存器-- -- -- -- -- MS2 MS1 MS0 xxxx x000 ISP_TRIG E6h Flash命令触发寄存 器xxxx xxxx ISP_CONTR E7h ISP/IAP 控制寄存器ISPEN SWBS SWRST -- -- WT2 WT1 WT0 000x x000 ISP_DATA:ISP/IAP操作时的数据寄存器。ISP/IAP从Flash读出的数据放在此处,向Flash写入的数据也需放在此处。 ISP_ADDRH:ISP/IAP操作时的地址寄存器高八位。 ISP_ADDRL:ISP/IAP操作时的地址寄存器低八位。 ISP_CMD:ISP/IAP操作时的命令模式寄存器,须命令触发寄存器触发方可生效。命令模式如表2所示。 表2 ISP_CMD寄存器模式设置 D7 D6 D5 D4 D3 D2 D1 D0 模式选择 保留命令选择 -- -- -- -- -- 0 0 0 待机模式,无ISP操作 -- -- -- -- -- 0 0 1 对用户的应用程序flash区及数据flash区字节读 -- -- -- -- -- 0 1 0 对用户的应用程序flash区及数据flash区字节编程 -- -- -- -- -- 0 1 1 对用户的应用程序flash区及数据flash区扇区擦除 程序在系统ISP程序区时可以对用户应用程序区/数据Flash区(EEPROM)进行字节读/字节

单片机STC89C52RC 内部EEPROM

单片机STC89C52RC 内部EEPROM 2011-09-06 12:15 单片机运行时的数据都存在于R A M(随机存储器)中,在掉电后R A M 中的数据是 无法保留的,那么怎 样使数据在掉电后不丢失呢?这就需要使用EEP R O M 或FL A S HR O M 等存储器来实现。在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过I I C或S P I等接口来进行数据通信 这样不光会增加开发成本,同时在程序开发上也要花更多的心思。在S T C单片机中内置了E E P R O M(其实是采用I S P/I A P技术读写内部F L A S H来实现E E P R O M),这样就节省了片外资源,使用起来也更加方便。下面 就详细介绍S T C单片机内置E E P R O M及其使用方法 S T C各型号单片机内置的E E P R O M的容量最小有2K,最大有16K,基本上很好地满足项目的需要,更 方便之处就是节省了周边的E E P R O M器件,达到节省成本的目的,而且内部E E P R O M的速度比外部的 E E P R O M的速度快很多。 S T C各型号单片机内置的E E P R O M是以512字节为一个扇区,E E P R O M的起始地址=F A L S H容量值+1, 那么S T C89C52R C的起始地址为0x2000,第一扇区的起始地址和结束地址0x2000~0x21F F,第二扇区 的起始地址和结束地址0x2200~0x23F F,其他扇区如此类推。 深入重点: ?传统的E E P R O M是电可擦可编程只读存储一种掉电后数据不丢失的存储芯片。 ?S T C89C52R C的E E P R O M是通过I S P/I A P技术读写内部F L A S H来实现E E P R O M。 ?S T C89C52R C的E E P R O M起始地址为0x2000,以512字节为一个扇区,E E R P O M的大小为2K字节STC89C52RC 与EEPORM 实现的寄存器有6 个,分别是ISP_D AT A、

10KV-35kv看门狗高压真空开关说明书-安装技术规范-厂家选型要求

10KV-35kv看门狗高压真空开关说明书-安装技术规范-厂家选型要求 陕西泰开高压开关制造有限公司(简称“泰开高压开关”原西安高压开关厂分支)是一家专业 从事高压真空开关及相关高压产品的研发、生产及销售于一体的重点高新技术企业,高压电 器设备骨干企业,从事高压电力设备生产已有三十余年,拥有宽敞的净化生产区,拥有先进 的生产设备和完善的高压试验、检测设施,以其优越的性能、技术、精湛的工艺、可靠的质量、优质的服务赢得了广大用户的赞誉,并跟多家合资企业、外资企业建立了长期稳定的合 作伙伴关系,我厂专业生产12-40.5KV户内外高压断路器,永磁真空断路器,智能、预付费、小型化、双电源、看门狗等真空断路器,六氟化硫断路器,负荷开关,隔离开关,高压熔断器,避雷器,变压器,高低压成套,电缆分支箱,充气柜,自动化设备电器等高低压电器。 自创建以来一直本着“服务至上“的经营宗旨。不折不扣做好售前,售中,售后,服务各处细节之点,本顾客之所想,为在电气行业中而努力奋斗不止。 陕西泰开高压开关厂是中国高压开关行业定点生产厂家,已成为我国高压开关设备的研发

和生产基地,特别在城网、农网改造和电站改造中一站式供应单位,是国家经贸委城乡电网建设、改造所需设备***的生产企业,坚持走高新技术之路,坚持高新技术产品的研发,近年来陆续开发了10KV智能永磁快速真空断路器,高压智能双电源自动转换装置等,并针对智能电网的新要求,高压断路器本体能更快速地动作,具有更小的分散性、更高的可靠性,终达到同步关合的要求,而随着我国电网不断扩大及用电负荷的迅猛增长,原有10KV电压等级配电网难以满足供电要求,公司适时开发出了24KV户外永磁快速真空断路器,特别是在小型化断路器上有全新的发展,针对35KV真空断路器取得了突破性的成功。公司将结合对电力设备市场导向的分析,继续并努力开发高新产品。 ZW32型智能分界开关、控制箱体改为柜体式结构方式的产品,箱体采用不锈钢或铁板喷塑 材质生产。此产品在结构上安装方便,外观美观,高压部分与外箱完全隔离,并且在设备带 电情况下高压室无法开门操作,只有在停电情况下才能将高压室门打开,安全可靠。产品占 用面积小,是生活区、工矿企业与箱式变配套使用*的组合产品。人员可就地操作开关动作。分界开关部分采用真空开关并带有保护电流互感器,与智能控制器实现零序、过流、速断保护,可以实现自动切除单相接地故障和自动隔离相间短路故障。确保非故障用户的用电安全。此产品具备了FTU功能实现开关遥控分合闸;也具有GPRS远程操控功能。 ZW32看门狗断路器可以手动操作、电动操作、遥控器操作及远程主机操作。断路器由本体、操作机构、控制器三部分组成(隔离开关由用户选择加装)。断路器根据需要可配置CT(保护 电流互感器)、ZCT(零序电流互感器)、u(电压互感器),作为控制器的检出器。 ZW32看门狗断路器配置了不同功能的控制器,构成智能开关,并可构筑多种形式的配 网自动化系统,且能够逐步升级。 二、使用环境条件 1、周围空气温度:上限+40度,下限—40度; 2、海拔:≤2000m(若海拔增高,则额定绝缘水平相应提高; 3、风压:不超过700Pa(相当于风速34m/s); 4、地震烈度:不超过8度; 5、污秽等级:Ⅳ级; 6、zui大日温差:不超过25度; 7、相对湿度:日平均不大刊5%,月平均不大于90% 8、无易燃、爆炸危险、化学腐蚀及剧烈振动的场所。

AVR使用范例--EEPROM使用详解

AVR使用范例--EEPROM使用详解 本页关键词:什么是eeprom spi eeprom eeprom程序eeprom资料eeprom结构eeprom 读写eeprom的读写 本页详细介绍ICC自带EEPROM操作函数的操作方法,包括单字符读写,数组读写,结构体读写。 程序代码:下载相关文件 ?void main(void) ?{ ? unsigned char temp1,temp2; /*定义变量*/ ? unsigned char buffer[10]; /*定义数组*/ ? unsigned char buf[]="AVR与虚拟仪器"; /*定义字符串*/ ? ? EEPROMwrite(0x10,'a'); /*单字符写入到0x10,注意是单引号*/ ? temp1 = EEPROMread(0x10); /*读一个字符到temp1*/ ? ? ? EEPROM_WRITE(0x20,"abcdefg"); /*写字符串到0x20*/ ? EEPROM_READ(0x20,temp2); /*读字符到temp2,temp2=a*/ ? EEPROM_READ(0x20,buffer); /*读字符串到数组中 buffer[10]=abcdefg */ ?

? EEPROM_WRITE(0x30,buf); /*数组中的值写到EEPROM中:0X30开始为"AVR与虚拟仪器"*/? ? while(1) ? ; ?} ? 调试后的效果: 调试eeprom的时候,记住设置Avr studio保护eeprom数据,否则每次都会将eeprom中的数据改为0xFF。如下图: 打开调试选项: 钩选保护eeprom数据选项:

52单片机内部EEPROM

#include #include #define uchar unsigned char #define uint unsigned int sbit en=P2^7; sbit rs=P2^6; sbit rw=P2^5; void delay(unsigned char z) { unsigned char j,i; for (i=0;i> 8); //送地址高字节

1.蜀越圆形拨码看门狗说明书

分界开关智能控制器BKM600-FDR (V2.0)

前言 亲爱的用户,感谢您们长期以来对四川蜀越电气有限公司的大力支持,我们秉承给予您们热诚、周到、满意、快捷永远的服务。请在使用该设备之前仔细阅读本技术使用手册,特别注意以下事项。 注意事项 !装置加电之前必须可靠接地。 !装置工作电源位置是否接正确,电流输入极性是否接正确,电压输入相序是否接正确。 !严禁装置在带电情况下插拔航空插头,避免一次回路CT开路。 !装置交流回路1.2倍额定电压可以连续工作,交流回路2倍额定电流可以连续工作,10倍额定电流可允许10S,40倍额定电流可允许1S。 !装置开入量的输入为无源接点(装置内提供DC220V直流电压),请仔细检查是否正确。 !储能电机电源为AC220V交流电压,从本装置内输出。 !第一次运行该产品时,必须进行相关定值整定才能保障装置正常运行,非相关专业人员不得修改装置内参数、定值等内容。 !相关专业人员严格按电力调度或生产部门下达的定值单进行定值整定以及系统配置的设定,只有正确进行全面整定后才能确保装置安全可靠运行。 谢谢合作!! 四川蜀越电气有限公司

1.产品纵述 ?本公司长期以来从事电力系统自动化系统及设备研究、开发、生产,属高科技企业,现已推出BKM600-FDR智能控制器。 ? BKM600-FDR“看门狗”控制器是中压架空线电网的监控单元,与柱上开关配合实现远程遥控及自动化管理,监控单元适合与开关近距离安装,适用于35KV及以下户外开关设备配套使用。? BKM600-FDR“看门狗”控制器是集线路测量、保护、控制、信号监视及通讯于一体的综合自动化户外智能控制设备,适用于各种中压电网(不接地电网、经电阻接地、经消弧线圈接地、直接接地电网),具备处理单条架空线开关远程操作的全部功能。 ?具备基本的保护功能:线路保护功能、自动重合闸、线路故障检测、接地故障监测、开关的本地控制、远程遥控功能(带手持遥控器)、GSM短信远程操作(选配)。 2.产品的安装及维护 注意:在安装装置过程中,装置带有危险的强电有可能会导致设备永久性损坏或人员伤亡,因此在安装、调试、检修操作时仅限于经过严格的培训和具有该专业技术人员。 2.1、安装: ?装置外观图 2.2、装置机体安装: ?安装本产品时请请按照封页3图示,用安装架固定控制器于杆上,安装架用户自行设计。 ?安装时将BKM600-FDR控制器操作面板垂直向下固定安装,不可倒置。 ?安装时控制器的接地线一定要可靠接好。 ?柱上安装示意图 分界开关本体与控制器同杆安装,其连接示意如下图

AVR使用范例EEPROM使用详解

本页详细介绍ICC自带EEPROM操作函数的操作方法,包括单字符读写,数组读写,结构体读写。 程序代码:下载相关文件 ?void main(void) ?{ ? unsigned char temp1,temp2; /*定义变量*/? unsigned char buffer[10]; /*定义数组*/? unsigned char buf[]="AVR与虚拟仪器"; /*定义字符串*/? EEPROMwrite(0x10,'a'); /*单字符写入到0x10,注意是单引号*/ ? temp1 = EEPROMread(0x10); /*读一个字符到temp1*/ ? EEPROM_WRITE(0x20,"abcdefg"); /*写字符串到0x20*/ ? EEPROM_READ(0x20,temp2); /*读字符到temp2,temp2=a*/ ? EEPROM_READ(0x20,buffer); /*读字符串到数组中 buffer[10]=abcdefg */ ? EEPROM_WRITE(0x30,buf); /*数组中的值写到EEPROM中:0X30开始为"AVR与虚拟仪器"*/ ? while(1) ? ; ?} 调试后的效果: 调试eeprom的时候,记住设置Avr studio保护eeprom数据,否则每次都会将eeprom中的数据改为0xFF。如下图: 打开调试选项: 钩选保护eeprom数据选项: 打开相关观测窗口:

按F10逐条语句运行,查看运行结果。 1. 地址10上的值被改写为“a” 2. temp1的值变为a,及读取了地址0x10的值a: 3. abcdefg写入20开始的地址:

TI--M4内部EEPROM详解

M4里面的EEPROM并不是编址在内存空间中的,而是直接通过操作寄存器(Register)进行读写的。所以EEPROM中间的某个地址就是只属于EEPROM的地址,并不和内存地址有冲突。 要想方便的使用EEPROM,最好的办法就是使用TI的StellarisWare驱动库程序: #include "inc/hw_memmap.h" #include "inc/hw_types.h" #include "inc/hw_timer.h" #include "inc/hw_ints.h" #include "inc/hw_gpio.h" #include "driverlib/sysctl.h" #include "driverlib/eeprom.h" unsigned long pulRead[2]; void main() { unsigned long pulData[2]; // 系统工作在50MHZ SysCtlClockSet(SYSCTL_SYSDIV_4 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN |SYSCTL_XTAL_16MHZ); // 使能EEPROM SysCtlPeripheralEnable(SYSCTL_PERIPH_EEPROM0); // 初始化EEPROM EEPROMInit(); pulData[0] = 0x12345678; pulData[1] = 0x56789abc; // 向EEPROM里面0x400地址写入数据 EEPROMProgram(pulData, 0x400, sizeof(pulData)); // 读回来 EEPROMRead(pulRead, 0x400, sizeof(pulRead)); while(1) { }

STC单片机EEPROM的应用和程序

STC单片机EEPROM的应用和程序 (2009-04-22 21:58:34) 转载▼ 标签: 杂谈 分类:Program 最近,由于工作的需要,用STC89C52来开发新产品,要用天STC的Eeprom的功能,上网也找了一点资料,得到很大帮助,真的非常感谢。程序是我在网上摘录的,调试通过了,不过我产品在用动态扫描显示的,由于在Eeprom擦除时要用几十毫秒,会有一闪烁的。不过这是正常的。 单片机运行时的数据都存在于RAM(随机存储器)中,在掉电后RAM 中的数据是无 法保留的,那么怎样使数据在掉电后不丢失呢?这就需要使用EEPROM 或FLASHROM 等存储器来实现。在传统的单片机系统中,一般是在片外扩展存储器,单片机与存储器之间通过IIC 或SPI 等接口来进行数据通信。这样不光会增加开发成本,同时在程序开发上也要花更多的心思。在STC 单片机中内置了EEPROM(其实是采用IAP 技术读写内部FLASH 来 实现EEPROM),这样就节省了片外资源,使用起来也更加方便。下面就详细介绍STC 单片机内置EEPROM 及其使用方法。 STC 各型号单片机内置的EEPROM 的容量各有不同,见下表: (内部EEPROM 可以擦写100000 次以上) 上面提到了IAP,它的意思是"在应用编程",即在程序运行时程序存储器可由程序自 身进行擦写。正是是因为有了IAP,从而可以使单片机可以将数据写入到程序存储器中,使得数据如同烧入的程序一样,掉电不丢失。当然写入数据的区域与程序存储区要分开来,以使程序不会遭到破坏。 要使用IAP 功能,与以下几个特殊功能寄存器相关: ISP_DATA:ISP/IAP 操作时的数据寄存器。 ISP/IAP 从Flash 读出的数据放在此处,向Flash 写的数据也需放在此处 ISP_ADDRH:ISP/IAP 操作时的地址寄存器高八位。 ISP_ADDRL:ISP/IAP 操作时的地址寄存器低八位。 ISP_CMD:ISP/IAP 操作时的命令模式寄存器,须命令触发寄存器触发方可生效。 ISP_TRIG:ISP/IAP 操作时的命令触发寄存器。 当ISPEN(ISP_CONTR.7)=1 时,对ISP_TRIG 先写入0x46,再写入0xb9,ISP/IAP 命令才会生效。 单片机芯片型号起始地址内置EEPROM 容量(每扇区512 字节) STC89C51RC,STC89LE51RC 0x2000 共八个扇区 STC89C52RC,STC89LE52RC 0x2000 共八个扇区 STC89C54RD+,STC89LE54RD+ 0x8000 共五十八个扇区 STC89C55RD+,STC89LE55RD+ 0x8000 共五十八个扇区 STC89C58RD+,STC89LE58RD+ 0x8000 共五十八个扇区 寄存器标识地址名称7 6 5 4 3 2 1 0 初始值 ISP_DATA 0xE2 ISP/IAP闪存数据寄存器11111111 ISP_ADDRH 0xE3 ISP/IAP 闪存地址高位00000000

马潮老师:AVR应用经验

AVR 应用经验 作者:马潮老师 /整理:armok / 2005-01-17/ https://www.360docs.net/doc/1412753761.html, AVR与传统类型的单片机相比,除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。 但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还采用和沿袭以前传统的硬件和软件设计思想和方法的话,是不能用好AVR的,甚至也不能真正的了解AVR的特点和长处。 功能越好的器件,需要具备更高技术和能力的人来使用和驾驭它。就象一部好的F1赛车,只有具备高超技术的驾驶员才能充分体会到车的特点,并能最大限度的发挥出车的性能。 AVR具有上手入门快,开发方便简单的特点,但要充分体会和发挥AVR的优点,还需要应用工程师本身的硬软件设计开发能力的不断学习、实践提高。 “外行看热闹,内行看门道”,对于有一定基础的嵌入式和单片机系统设计开发的工程师,不妨先简单尝试一下AVR。 开发环境与工具:PC+下载线+实际的系统板 PC上的开发软件: AVR Studio(Free)汇编+汇编调试+高级语言调试+软件仿真 ICC、CVAVR、BASCOM-AVR 高级语言程序开发+程序下载。其中一个购买正版全功能,作为主要的开发环境,其它使用DEMO版,作为辅助及参考。 AVR ISP下载线: STK200 and STK200+ and STK300 ISP programmer。通过PC的打印机口,采用ISP技术将系统运行代码(HEX、BIN)和数据写入AVR芯片的Flash和EEProm中,编程AVR的配置熔丝位和加密位。支持决大多数的AVR芯片、以及ATMEL的51兼容芯片89S8252、89S52等。在ICC、CVAVR、BASCOM-AVR、BASCOM-8051中都内含对该下载线的支持程序。免费专用的下载程序:SLISP、PonyProg2000等。 尽量不使用仿真器的建议: 在开发和调试系统程序时,有许多人完全依赖于仿真器,一旦离开了仿真器时就感觉无从下手。其实,由于AVR的Flash存贮器可方便的使用ISP技术在线的多次擦写,因此建议尽量不使用(依赖)仿真器来开发和调试程序。 在实际开发过程中,程序的调试可以从下几方面入手: 现在的高级语言编译器(如C编译器)可以产生效率很高的机器代码,因此建议大家尽量使用高级语言编写系统程序。 使用Atmel公司提供AVR Studio软件模拟仿真环境,以及其他的软件模拟仿真环境(BASCOM-AVR)。 尽可能使用高级语言编写系统程序。 利用目标板上的LED、LCD或异步串口。见附件“没有仿真器的情况下如何开发AVR”的介绍。

相关文档
最新文档