⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 0832.c

📁 关于TLC5615和ADC0832的实践应用
💻 C
字号:
#include "reg51.h"

#define uint unsigned int
#define uchar unsigned char

sbit SPI_CLK = P1^7;    //DA寄存器定义
sbit SPI_DATA = P1^5;
sbit CS_DA = P2^4;

sbit AD_CLK = P2^3;    //AD寄存器定义
sbit AD_DATA = P2^1;
sbit CS_AD = P2^2;


void da5615(uint da)   //DA转换函数
{
 uchar k;
 da<<=6;
 CS_DA=0;     //片选置低   

 for (k=0;k<12;k++)
  {
   SPI_CLK=0;
   SPI_DATA=(bit)(da&0x8000);   //依次取其最高位
   SPI_CLK=1;
   da<<=1;
  }

 CS_DA=1;   //片选置高,完成一次转换
 SPI_CLK=0;
}


uchar ad0832()  //AD转换函数,返回转换数值
{
 uchar input,i;
 input=0x00;

 AD_CLK=0;    //清时钟,片选置低
 AD_DATA=0;
 CS_AD=0;
 
 for (i=0;i<3;i++)  //写入配置位,双通道单极性输入,选中通道1
 {
  AD_DATA=1;
  AD_CLK=1;
  AD_CLK=0;
  }

 for (i=0;i<8;i++)  //启动转换
 {
  input<<=1;
  AD_CLK=1;
  AD_CLK=0;
  if (AD_DATA) input++;
  }

 CS_AD=1;   //转换结束
 return (input);
}


main()
{
  uchar j,temp;
  da5615(250);   //DA转换,输出一定值电压,送入AD0832的通道1
  temp=ad0832(); //AD转换
  TMOD=0x20;     //串口初始化  
  TH1=0xFD;     //baud:9600
  TL1=0xFD;
  SCON=0x50;
  PCON=0;
  TR1=1;
  for(j=0;j<10;j++)
  {
    SBUF=temp;    //AD转换的数值送串口显示
    while(TI==0);
    TI=0;
     }
}

⌨️ 快捷键说明

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