发布网友 发布时间:2022-04-22 06:40
共2个回答
热心网友 时间:2024-02-14 05:49
预处理控制行又称预处理命令,是C编译系统的一个组成部分。C语言提供的预处理功能主要有以下三种: (1) 宏定义; (2) 文件包含; (3) 条件编译。 它们分别用宏定义命令、文件包含命令和条件编译命令来实现。为了与一般C语句相区别,这些命令以符号"#"开头,并且在其行的末尾不用分号。详见C编译器手册或较详细的C语言程序设计教材。 8. 问:EEPROM、FLASH和其它存储器有何不同? 答:最初的存储器有随机存取的(RAM)和只读的(ROM),现每一种都有亚型,甚至有混合型的第三类存储器。RAM系列中有静态的(SRAM)和动态的(DRAM)。ROM从掩膜ROM演化到PROM(可编程的ROM)和EPROM(可擦写可编程ROM)。混合型的存储器有EEPROM、FLASH和NVRAM。EEPROM和FLASH存储器是ROM的子代,而NVRAM是SRAM的改版。 EEPROM是电可擦除的、可编程的ROM。FLASH存储器是存储器技术最新的发展。FLASH和EEPROM技术十分类似,是EEPROM的变种。它们主要的差别是:FLASH一次只能擦除一个块,而不是一字节一字节地擦除。典型的块大小在256B~16KB范围。FLASH容量可以做得很大,且价格适中。FLASH比EEPROM要流行得多,并且还迅速地取代了很多ROM、PROM和EPROM。 NVRAM通常只是一个带有后备电池的SRAM,价格昂贵。它的使用次数没有*,而EPROM、EEPROM和FLASH都有擦写次数的*。 9. 问:嵌入式系统应用领域有哪些? 答:现有的嵌入式系统的数量之大、种类之多,使人不可能不卷入嵌入式系统的发展潮流。电脑微波炉是一个嵌入式应用系统;录像机是一个嵌入式应用系统;电视遥控板是一个嵌入式应用系统。如果电视带电脑,那它也是一个嵌入式应用系统。依据MOTORORA公司发布的信息:1990年的汽车平均含14个微控制器,到2000年则达到35个。 机顶盒、路由器、调制解调器,一句话,Internet的基础设施都是嵌入式应用系统,它使得嵌入式系统的应用变得越来越流行。嵌入式市场的增长主要是由于嵌入式系统的新应用和新发展。处理器的速度、总线宽度的增加,以及制造商能集成到一个芯片上的外设数量的加大都增加了嵌入式系统可用芯片的种类,以及其对应用的适应能力。RISC(精简指令集计算机)芯片在高端嵌入式应用中现已是常见的了,甚至在不算很高挡的应用中也是如此。例如,Sega公司的一种游戏机就有3个32位Hitachi SH RISC 处理器。小型、可嵌入、完全基于PC的板卡是中等规模系统中常见的;而超小型的微控制器则统治低端系统,如PHILIPS的8051系列和MICROCHIP公司的PIC系列。嵌入式系统无处不在,它渗透于我们生活的各个角落——电器、玩具、汽车、医疗仪器、飞机等。
热心网友 时间:2024-02-14 05:49
直接利用PICC C编译器的宏:变量=eeprom_read(地址);这个是读EEPROM。eeprom_write(地址,数据);写EEPROM。这样读写很方便。如果不这么用也可以自己写。函数如下:
//*****************************************************************
// 对EEPROM写数据程序代码
//*****************************************************************
void EEPROMwrite(uchar EEAddr,uchar Cmd)
{
EEADR = EEAddr; //EEPROM的地址
EEDAT = Cmd; //EEPROM的写数据 EEDATA = Cmd;
EEPGD = 0;
//CFGS = 0; //PIC18F中要用到
GIE = 0;
WREN = 1;
EECON2 = 0x55; //必须按这样的时序
EECON2 = 0xAA;
WR = 1;
while(WR==1); //等待写操作完成
GIE = 1;
}
//****************************************************************
// 对EEPROM读数据程序代码
//****************************************************************
uchar EEPROMread(uchar EEAddr)
{
uchar ReEEPROMread;
EEADR = EEAddr;
EEPGD = 0;
//CFGS = 0; //PIC18F中要用到
GIE = 0;
RD = 1;
ReEEPROMread = EEDAT; //EEPROM的读数据 ReEEPROMread = EEDATA;
RD = 0;
GIE = 1;
return ReEEPROMread;
}
以上就是对EEPROM的读写两种方式。我觉得直接用宏方便省事。