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

📄 tlc2453.c

📁 驱动Tlc2543,应用于51单片机
💻 C
字号:
#include <AT89X52.H>
#include<ABSACC.H>    
#include<STDIO.H>    
#include<INTRINS.H>

#pragma small   
   
#define  uchar unsigned char    
#define  uint  unsigned int    
   
/*  A/D端口定义  */   
   
sbit   AD_CLK                  =P2^3;   
sbit   AD_DATAIN               =P2^2;   
sbit   AD_OUT                  =P2^1;   
sbit   AD_CS                   =P2^0;   
   
uint Read2543(uchar);   
void ADdelay(uchar);   
   
   
void main()                           /*主程序*/   
  {   
  uint  AD_DATA;            /*AD结果*/   
  uchar ad_port;           /*模拟量输入端口号*/   
   
  ad_port=0xd0;   
a:  AD_DATA=Read2543(0xb0);   
  //AD_DATA=Read2543(0xc0);    
 goto a;   
  }   
   
///////////////////////////////////////////////////////////////////////////    
//////////////////// Read2543子程序 //////////////////////////////////////    
//////////////////////////////////////////////////////////////////////////    
uint Read2543(uchar port)        /*A/D转换子程序*/   
  {   
  uchar  i;   
  uint  ad_dat;               /*A/D子程序返回AD结果变量*/   
  ad_dat=0;   
  AD_CLK=0;   
  AD_CS=1;   
  AD_DATAIN=0;   
  //AD_OUT=0;    
  AD_CS=0;   
  ADdelay(19);   
  for(i=1;i<=12;i++)             /*12位DATA INPUT*/   
    {   
    AD_DATAIN=(bit)(port&0x80);   
   ADdelay(19);   
    AD_CLK=1;                       //上升沿送入    
    port<<=1;   
   ADdelay(19);   
    AD_CLK=0;   
    }   
   
  AD_CS=1;   
  ADdelay(19);   
  AD_CS=0;   
 ADdelay(19);   
  for(i=1;i<=12;i++)              /*12位AD_DATAIN OUTPUT*/   
    {   
    if (AD_OUT) {ad_dat|=0x01;}   
   
    ADdelay(19);   
    AD_CLK=1;   
    ADdelay(19);   
    AD_CLK=0;   
    ADdelay(19);   
    if(i<12)   
    ad_dat=ad_dat<<1;   
    }   
  AD_CS=1;   
  return(ad_dat);   
  }   
   
////////////////////////////////////////////////////////////////////    
////////////////////  AD延时程序///////////////////////////////////////    
/////////////////////////////////////////////////////////////////////    
 void ADdelay(uchar i1)               /*延时程序,延时i1个机器周期*/   
   {   
   uchar ii;   
   for(ii=0;ii<=i1;ii++)   
     {   
     _nop_();   
     }   
   }   


⌨️ 快捷键说明

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