利用ADuC834构成二次仪表系统
ADuC834的用户闪速/电擦除数据存储器的容量为4kB,利用这些EEPROM可以进行系统配置信息的存储。具体程序如下:
sfrEDARL=0xe6;
#defineF_READ0x01/*读取页*/
#defineF_WRITE0x02/*写入页*/
#defineF_VERIFY0x04/*检测页*/
#defineF_ERASE0x05/*擦除页*/
#define_F_ERASEALL0x06/*全部擦除*/
floatflash_read(unsignedcharf_add)/*从地址f_add读取浮点数据*/
{
floatidataf_data=0;
floatidata*ph;
ucharidata*puc;
pf=&f_data;
puc=(ucharidata*)pf;
EDARL=f_add;
ECON=0x01;
*puc=EDATA1;
++puc;
*puc=EDATA2;
++puc;
*puc=EDATA3;
++puc;
*puc=EDATA4;
returnf_data;
}
unsignedcharflash_write(unsignedcharf_add,floatf_data)
/*写浮点数据f_data到地址f_add*/
{
floatidata*pf;
ucharidata*puc;
ucharidatatemp;
pf=&f_data;
puc=(ucharidata*)pf;
EDARL=f-add;
ECON=0x05;/*首先擦除*/
EDARL=f_add;
EDATA1=*(puc++);
EDATA2=*(puc++);
EDATA3=*(puc++);
EDATA4=*(puc);
ECON=0x02;/*写数据*/
ECON=0x04;/*检测数据
temp=ECON;
if(temp==0)returnTRUE;
elsereturnFLASE;
}
4结论
本文所描述的二次仪表的软硬件设计具有采集速度快、精度高、系统体积小的特点,特别适用于需要进行复杂运算且要求采集精度较高、体积较小的系统中。在实际的设计开发中,使用ADuC834可在很大程序上缩短开发时间并降低成本。另外,笔者设计的这款二次仪表在实际应用中也取得了很好的使用效果。
《利用ADuC834构成二次仪表系统(第2页)》