新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于RlTOS和ISP功能数字仪表系统设计实现

基于RlTOS和ISP功能数字仪表系统设计实现

作者:时间:2012-02-09来源:网络收藏

void SetPage(unsigned char page0,unsigned char pagel)

{

MasterWriteI(0xb8 | pagel);

SlaveWriteI(0xb8 | page0);

}

void SetColumn(unsigned char address0,unsigned char addressl)

{

MasterWriteI(0x3f addressl);

SlaveWfiteI(0x3f address0);

}

//在主控制器操作的左边LCM屏上显示一列信息(由8个像素点构成)

void MasterPutChar(unsigned char masterchar)

{

ReadState();

MasterWriteD(masterchar);

}

一般说来。AT89S52的RAM存储空间是有限的,而图形或字符的点阵代码(可以下载相关的应用插件,由.bmp文件或字符自动生成)如果太大,放置到RAM区会出现内存不足的告警提示,为此可按如下方式处理:

unsigned char code Dotn[]=lOxOO,Ox00,0x30,

0x00,0x30,Ox00,Ox00,0x00};

即将点阵代码通过code关键字限定后放于ROM区域内。

}

return(midtemp);

}

void delay(unsigned char out)

{

unsigned char in;

for(in=out;in>O;in--);

}

4 的结构原理

功能集成到成型的PCB上就可以实现程序的实时更新与升级操作,其结构原理如图5所示,这对于复杂工程系统设计显然是很方便的,也是切实可行的。

55

5 结论

随着智能仪器仪表技术的发展,显示模块的液晶化已成为一种较为流行的趋势。本文给出的软硬件设计方案已在某武器系统的调试过程中得到正确、可靠、稳定的运行。它不仅克NT模似仪表体积大、故障率高的缺陷,而且由于运用了技术,使数据检测的敏捷度得到大幅提升。另外,功能的在线集成也为系统功能的扩充预留了空间。


3.3 DSl8820的1-Wire子程序

DSl8820的突出优点是将现场采集的环境温度直接以数字形式输出,这样可以省去后续的信号放大及模/数转换部分,构建外围电路的元件少且相对简单,系统成本低廉;1-Wire接口与AT89S52通信,其结构便于多点测量且易于扩展;测温范围宽(-550℃~1250℃)且精度高。

对l-Wire的操作关键是软件时序的处理,对于不同的晶体振荡器其延时参数是不同的,本系统以12MHz为例给出如下主要程序代码:

bit DallassReset(void)

{

unsigned char presence=0;

DallassDataout=1; //发出复位脉冲前先释

放总线

delay(10);

DallassDataout=0;

delay(240);//保证延时在4801μs~9601μs之间

DaUassDataout=1;

delay(35);

Dresence=DallassDataout;

delay(60);

return(presence);

}

//写时序从主控制器把总线拉低时开始

void writeCommand(unsigned char command)

{

unsigned char count;

for(count=O;count8;count++)

{

DallassDataout=0;

if(command0x01==1)

{

DallassDataout=1;

//写“1”时序在将总线拉低后,AT89S52主控制器必须在15μs内释放总线,所以此语句之前不能有较长时间的延时语句

}

delay(35);//无论写“1”还是写“0”时序都必须有至少601as的低电平 DallassDataout=1;//总线恢复的过程

command=command>>1;

}

}

//读时序从主控制器将总线拉低至少1μs后释放总线的时刻开始

unsigned char readdata(void)

{

unsigned char value;

unsigned char midtemp=0;

for(value=0;value8;Value++)

{

I DallassDataout=0;

midtemp=midtemp>>1;

-nop_O;

_nop_O;

DallassDataout=1;

//读时序时,控制器必须在15μs内释放总线,然后采样总线状态,所以此语句之前不能延时太长的时间的延时语句

if(DallassDataout==1)

{

midtemp=midtemp | 0x80;

//因为midtemp初始被赋值为0,所以如果采样总线状态为0则不必处理,0会自动被返回

}

delay(35);

//延时70μs完成此次Bit

位读时序过程,为下一次读作准备

电能表相关文章:电能表原理

上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭