导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→^_^,你的工资能分点给我们吗?程序写的可能不好,但是能用,

* 85316: [求助]aduc812数据如何写入外部存储器?

   baolqkun 
baolqkun发表的帖子 

 ^_^,你的工资能分点给我们吗?程序写的可能不好,但是能用,你自己看吧
//------------------------------------------------------------------------------
// Routine: change
// Inputs: high,low
// Outputs: none
// Purpose: 十六进制数转换成十进制,电压的量程是2.56V,满量程,最后的结果是浮点数
//------------------------------------------------------------------------------
float change(int high,int low) //把双字节的十六进制数转换成十进制的数
{
 unsigned int a,b,c,d,e;
 float f;
 a=(int)(high/16);   //AD高数据位的高位     
 b=high-a*16;     //AD高数据位的低位 
 c=(int)(low/16);   //AD中间数据位的高位 
 d=low-c*16;     //AD中间数据位的低位               
 e=a*16*16*16+b*16*16+c*16+d;//转换成十进制
 f=2.56*(e-32768)/32768;  //求出电压值
 return(f);     //返回实际的电压值 
}
//------------------------------------------------------------------------------
// Routine: minsam0
// Inputs: none
// Outputs: none
// Purpose: 分钟数据采样一次,通过串行口输出采样到的数据
//------------------------------------------------------------------------------
void minsam0( )
{
 EA = 0;   //关中断    
 RDY0 = 0;  // 主AD无效
 EADC = 1;  // enable ADC interrupt
 EA = 1;   //开中断
 ADCMODE = 0x23; // AD采样连续模式   
 result=1000*change(ADC0H,ADC0M); //把采集到的十六进制数据转换成十进制,然后把数据扩大1000倍
 result=(int)result;  //把值取整
 sprintf(vol,"%d",result);  //result中的湿度值,是两位数,把它送到VOL中 
 for(i=0;i  <3;i++)  //输出湿度值
 {
  SBUF=vol[i]; 
  while(TI==0);
  TI=0;
 }
}

发表时间:2005年11月3日19:54:02

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:出售二手CPLD   开发板一块!   当
[下一篇帖子]:我想做AD采样的,用EasyARM2100可以吧,大家讨论一下