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

📄 tlc0834.c

📁 关于单片机开发的一个实例
💻 C
字号:
#include <REG52.H>			  
#include <intrins.h>
#include <main.h>


//单片机与TLC0834之间的引脚定义

sbit CS_0834=P1^3;	   //片选
sbit DI_0834=P1^3;	   //输入通道
sbit CLK_0834=P1^3;	   //时钟输入
sbit SARS_0834=P1^3;   //转换状态输出端
sbit DO_0834=P1^3;	   //数据输出端

//通道0  温度 TEMPERATURE
//通道1  压力 PREASURE
//通道2  流量 FLUX


//TLC0834的读操作函数
//参数:通道数0-2
//返回值:对应通道的8位采样值
uchar Read_TLC0834(uchar channel)	 
 {
   uchar receive_data=0;  //接收数据的中间存储单元
   uchar send_data;   //从DI口发送的四位二进制数
   uchar i;
   if (channel==0) 
      { send_data=0xc; }
	  else if (channel==1)
	          {send_data=0xe; }
		 else if (channel==2)
	            {  send_data=0xd; }
   CLK_0834=LOW;
   DI_0834=LOW;
   CS_0834=HIGH;
   _nop_();
   CS_0834=LOW;
   _nop_();
   for(i=4;i>=1;i--)	 //发送四位数据
    {
	  DI_0834=send_data&0x08;
	  send_data=send_data<<1;
	  CLK_0834=HIGH;
	  _nop_();
	  CLK_0834=LOW;
	  _nop_();
      }
   CLK_0834=HIGH;	//插入Mux Settling Time
   _nop_();
   CLK_0834=LOW;
   _nop_();
   if (SARS_0834==1)
    {
      for(i=8;i>=1;i--)	 //接收八位数据
       {
	    receive_data=receive_data<<1;
	    receive_data=receive_data|DO_0834;
	   
	    CLK_0834=HIGH;
	    _nop_();
	    CLK_0834=LOW;
	    _nop_();
	     }
      for(i=7;i>=1;i--)	 //LSB-First Data DO端口的后七位数据
        {
	      CLK_0834=HIGH;
	      _nop_();
	      CLK_0834=LOW;
	      _nop_();
	      }
      CLK_0834=HIGH;	//末尾的两个时钟
      _nop_();
      CLK_0834=LOW;
      _nop_();
      CLK_0834=HIGH;
      _nop_();
      CLK_0834=LOW;
      _nop_();
      CS_0834=HIGH; //片选置高
	 }
   return(receive_data);
} 

⌨️ 快捷键说明

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