ad.c

来自「键盘扫描子程序.lcd1602液晶显示子程序.ad子程序」· C语言 代码 · 共 54 行

C
54
字号
//========================模数转换==================
//功能:模数转换
//入口参数:通道地址
//出口参数:转换结果
//=================================================
#include "CPLD.h"
unsigned char adc(unsigned char a)
{ unsigned char d[10],adr[4];
  unsigned char j,z,result=0;
 
for(j=4;j>0;j--)          //分解地址  
{ adr[j-1]=a%2;
  a=a/2;
}

p13=0;                 //选中芯片
 
for(j=10,z=4;j>0;j--,z--)        //送地址
 { 	
 	  p10=1;
              
   if(z>0) p11=adr[z];
            
      p10=0;      
              
 }

for(;p32==1;);                      //等待转换结束
                  
p13=0;                             //重新选中芯片

for(j=10,z=0;j>0;j--,z++)           //时钟脉冲/接收数据,下降沿开始接收数据
 {
      p10=1; 
             
   if(z<4) p11=adr[z];  //送地址
              
 	    d[j-1]=p12;      //   获得数据
       p10=0;
          
 }

for(j=9,z=128;j>2;j--)      //合成数据 d[9]为高位,d[3]为低位,舍去最低两位
{
  result=z*d[j]+result;
   z=z/2;
}

p13=1;
 
   return result;                   //返回数据

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?