导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→tlc2543的控制程序[deer8107]

 *第24507篇: tlc2543的控制程序

  
楼 主:deer8107 2004年8月6日17:54
 tlc2543的控制程序
偶是个新手,但也经常来这瞎转,学到了不少东西,这两天在学C51,把前些日子串行通讯A/D转换芯片TLC2543的控制程序换成了c语言的,哪个兄弟有用可以共享,望大家别笑偶!!

#include   <AT89X52.H>  
#define uint  unsigned int
#define uchar unsigned char
#define  CLK P1_0
#define  CS P1_3
#define  DOUT P1_2
#define  DIN P1_1 

sbit A_0=ACC^0;//方便位操作
sbit A_1=ACC^1;
sbit A_2=ACC^2;
sbit A_3=ACC^3;
sbit A_4=ACC^4;
sbit A_5=ACC^5;
sbit A_6=ACC^6;
sbit A_7=ACC^7;

sbit B_0=B^0;//方便位操作
sbit B_1=B^1;
sbit B_2=B^2;
sbit B_3=B^3;
sbit B_4=B^4;
sbit B_5=B^5;
sbit B_6=B^6;
sbit B_7=B^7;
uint adctrl(uchar chl )//第一种办法
{ uint  data resl;
  uchar data dl;
  uchar data dh;
  CLK=0; 
  CS=1;
  CS=0;
  B=0;

  ACC=chl;
  DIN=A_7;
  B_7=DOUT;
  CLK=1;
  CLK=0;
 
  
  DIN=A_6;
  B_6=DOUT;
  CLK=1;
  CLK=0;

  DIN=A_5;
  B_5=DOUT;
  CLK=1;
  CLK=0;

  DIN=A_4;
  B_4=DOUT;
  CLK=1;
  CLK=0;

  DIN=A_3;
  B_3=DOUT;
  CLK=1;
  CLK=0;

  DIN=A_2;
  B_2=DOUT;
  CLK=1;
  CLK=0;

  DIN=A_1;
  B_1=DOUT;
  CLK=1;
  CLK=0;

  DIN=A_0;
  B_0=DOUT;
  CLK=1;
  CLK=0;

  
  dh=B;
  B_3=DOUT;
  CLK=1;
  CLK=0;

  B_2=DOUT;
  CLK=1;
  CLK=0;   

  B_1=DOUT;
  CLK=1;
  CLK=0;   

  B_0=DOUT;
  CLK=1;
  CLK=0;   

  dl=B;
  dl=dl&0x0f;
  resl=dh*16+dl;
  return(resl);

uint adctrl1(uchar chl)//第二种办法
{
   uint  data resl;
   uchar data dl;
   uchar data dh;
   char i; 
   CLK=0; 
   CS=1;
   CS=0;
   B=0;
   for(i=7;i>  =0;i--)
    {    
      ACC=0;
      DIN=(chl>  >  i)&1;
      ACC=(ACC|DOUT)  <  <i;
      B=B|ACC;
      CLK=1;
      CLK=0;    
     }
    dh=B;
    B=0;
    for(i=3;i>  =0;i--)
     {
      ACC=0;
      ACC=(ACC|DOUT)  <  <i;
      B=B|ACC;
      CLK=1;
      CLK=0;
     }
    dl=B;  
  resl=dh*16+dl;
  return(resl); 

void main()

  uint data adat;

  TMOD=0x20;
  SCON=0x50;
  TL1=0xfd;
  TH1=0xfd;
  P3_7=1;
  TR1=1;
  ET1=0;
  EA=1;  
  adat=adctrl1(0x00);
  while(1)
   {  adat=adctrl1(0x00);//调用第二种办法
      SBUF=((uchar*)&adat)[0];
      while(!TI);
      TI=0;
      SBUF=((uchar*)&adat)[1];
      while(!TI);
     TI=0;
    }
}



>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:如何在proteus环境中下载C51的软件程序

[下一篇主题]:AS-311通信服务器(串口与TCP/IP协议转换)