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

📄 tlc2543.c

📁 tlc2543模数转换芯片
💻 C
字号:
#include"reg54.h"
#include"intrins.h"
#include"absacc.h"

//#define ((conver_ad_dat/4096)*5012) TLC2543_DATA

sbit tlc2543_eoc=P3^7;
sbit tlc2543_clk=P1^7;
sbit tlc2543_add=P1^4;
sbit tlc2543_dat=P1^5;
sbit tlc2543_cs0=P1^6;

sfr out_data=0x80;
sbit disp_bit0=P2^4;
sbit disp_bit1=P2^5;
sbit disp_bit2=P2^6;
sbit disp_bit3=P2^7;

unsigned char data disp_code[11]={0xc0,0xf9,0xa4,0xb0,	// 0, 1, 2, 3
				0x99,0x92,0x82,0xf8,0x80,0x90, 0xff};// 4, 5, 6, 7, 8, 9, off
unsigned int tlc2543_ad_conversion(unsigned char data channels_number);//AD转换函数
void delay_1ms(unsigned char ms);

void iniltion()
{
 TMOD&=0X0f;
 TMOD|=0X20;
 TH1=0Xfd;
 TL1=0Xfd;			
 TR1=0;
 SCON=0X50;
 TR1=1;
}
void main()
{unsigned char data disp_thousand,disp_hundred,disp_decade,disp_entry;
 unsigned int data conver_ad_dat;
 unsigned long data conver_ad_data;
 
 iniltion();
 for(;;)
     {
      conver_ad_dat=tlc2543_ad_conversion(0x00);
	  conver_ad_data=conver_ad_dat;
      conver_ad_data<<=12;
      conver_ad_data+=0x393544;
	  conver_ad_dat=conver_ad_data/4096;
      disp_thousand=conver_ad_dat/1000;
      disp_hundred=conver_ad_dat%1000/100;
	  disp_decade=conver_ad_dat%1000%100/10;
      disp_entry=conver_ad_dat%1000%100%10;

	  out_data=(disp_code[disp_thousand])&0x7f;
      disp_bit0=0;
      delay_1ms(5);
      out_data=0xff;
      disp_bit0=1;
	  out_data=disp_code[disp_hundred];
      disp_bit1=0;
      delay_1ms(5);
      out_data=0xff;
      disp_bit1=1;
	  out_data=disp_code[disp_decade];
      disp_bit2=0;
      delay_1ms(5);
      out_data=0xff;
      disp_bit2=1;
	  out_data=disp_code[disp_entry];
      disp_bit3=0;
      delay_1ms(5);
      out_data=0xff;
      disp_bit3=1;
    }
}
/*
unsigned int tlc2543_ad_conversion(unsigned char channels_number)
{
 unsigned char data i,temp;
 unsigned int conver_dat=0x0000;
 channels_number<<=4; 
 tlc2543_clk=0;
 tlc2543_cs0=1;
 tlc2543_cs0=0;
 temp=channels_number;
 for(i=0;i<12;i++)
  {conver_dat<<=1;
   tlc2543_add=(bit)(temp&0x80); 
   conver_dat|=tlc2543_dat;
   tlc2543_clk=1;
   _nop_();
   _nop_();
   _nop_();
   tlc2543_clk=0;
   _nop_();
   _nop_();
   _nop_();
   temp<<=1;
  }
 tlc2543_cs0=1;
 return(conver_dat&0x0fff);
}*/

unsigned int tlc2543_ad_conversion(unsigned char data channels_number)
{
 unsigned char data i,temp;																		   
 unsigned int conver_dat=0x0000;
 channels_number<<=4;
 tlc2543_cs0=1;
 tlc2543_clk=0;
 tlc2543_cs0=0;
 temp=channels_number;
 for(i=0;i<12;i++)
 {
  conver_dat<<=1;
  conver_dat|=tlc2543_dat;
  tlc2543_add=(bit)(temp&0x80);
  tlc2543_clk=1;
  _nop_();
  tlc2543_clk=0;
  temp<<=1;
 }
 tlc2543_cs0=1;
 return(conver_dat&0x0fff);
}

void delay_1ms(unsigned char ms)
{
 unsigned char i;
  while(ms--)
  for(i=0;i<120;i++);
}


⌨️ 快捷键说明

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