TLV1543AD转换器驱动代码

/**********************************AD (TLC1543)**********************************************/
#include <reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit CS=P1^7;      //TLC1543与89c52的接口连接线路
sbit DOUT=P1^6;
sbit ADIN=P1^5;
sbit CLOCK=P1^4;
sbit EOC=P1^3;
uint readTLC1543();
void delay1543(uint time);
extern void lcdwnumat(uchar pos, uint num);
uchar add=0;
uint Voltage0=1;
unsigned long int Voltage[4];
unsigned  int Vot0[5],Vot1[5],Vot2[5],Vot3[5],Vot4[5];
uchar Channal=0;
void Tl1543Init()
{
    uchar i;
    CS=1;
    delay1543(10);
    CS=0;
    ADIN=0;
空气太阳能    CLOCK=0;
    EOC=1;
    for(i=0;i<10;i++)
    {
    CLOCK=1;
    CLOCK=0;
    }  //填充10个脉冲,前4个设置下一次转换通道0
}
uint readTLC1543()
{
    uint i,ad=0;
    uchar port;
    if(Channal>5)port=0;
      else port=Channal;
    CS=0;          //片选使能
   
    while(!EOC);    //等待转换完成
    for(i=0;i<4;i++) //把通道写入TLC1543芯片中
烟气道    {
        ADIN=(bit)(port&0x08);  //输入转换地址通道
        port<<=1; //
        CLOCK=1;
        if(DOUT)ad|=0x01;
        ad<<=1;      //高位在前
        CLOCK=0;  //
    }
    for(i=4;i<10;i++)//
太阳能光伏控制器卡因是什么制成的    {
        CLOCK=1;
        if(DOUT)ad|=0x01;
        ad<<=1;      //高位在前
        CLOCK=0;
    }
    CS=1;
    ad>>=1;
贴纸机    ad&=0x03ff;
    //if(Channal==3)lcdwnumat(0x45,ad);
    return(ad);
}
void delay1543(uint time)
{
    uint i;
    for(i=time;i>0; i--)
        {;}
}
void ReadVoltage()
{
  uint Votbuf=0,Vote;
  Votbuf=readTLC1543();
  if(Votbuf>Voltage0)Vote=Votbuf-Voltage0;
  else Vote=0;
  switch(Channal)
鞋帮  {
  case 1:Vot0[add]=Vote*31/64;break; //0 放大100倍
  case 2:Vot1[add]=Vote*31/64;break; //1 放大10000倍
  case 3:Vot2[add]=Vote*31/64;break; //2 放大100倍
  case 4:Vot3[add]=Vote*31/64;break; //3 放大100倍
  case 5:Vot4[add]=Vote*31/64;break; //4 放大10000倍
  //case 0:Voltage0=Votbuf;lcdwnumat(0,Voltage0);break;
  }
  if(++Channal==7)
  {
  Channal=0;  //通道地址回0
  if(++add==4)add=0;
  }
  Voltage[0]=(unsigned long int)(Vot0[0]+Vot0[1]+Vot0[2]+Vot0[3])/4;
  Voltage[1]=(unsigned long int)(Vot1[0]+Vot1[1]+Vot1[2]+Vot1[3])/4;
  Voltage[2]=(unsigned long int)(Vot2[0]+Vot2[1]+Vot2[2]+Vot2[3])/4;
  Voltage[3]=(unsigned long int)(Vot3[0]+Vot3[1]+Vot3[2]+Vot3[3])/4;
  Voltage[4]=(unsigned long int)(Vot4[0]+Vot4[1]+Vot4[2]+Vot4[3])/4;
}

本文发布于:2024-09-22 05:20:41,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/200221.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:通道   转换   太阳能   地址   连接   脉冲   线路   填充
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议