修正版本.txt

来自「12位ADC-TLC2543的驱动程序」· 文本 代码 · 共 42 行

TXT
42
字号

M8  TLC2543
PB5-DATADIN
PB0-DATAOUT
PB1-#CS
PB2-CLOCK

//本程序没有使用tlc2543的EOC(转换结束标志)信号,片选一直处于选中,也可以自己加入片选信号
unsigned int tlc2543(unsigned char senddata)
{ 
  unsigned int  recdata = 0;
  unsigned int  i = 0;
  senddata = 0B11010000;//控制字
  recdata = 0;//接收到的转换结果数据
  //PORTB &= 0B11111101;//片选使能(可选)
  NOP();
  NOP();
 for(i=0;i<12;i++)
   {
	if(senddata & 0x80)
	  PORTB |= 0B00100000;
	else  PORTB &= 0B11011111;//准备发送控制字
	senddata <<= 1;
	
	if(PINB & 0x01)
	  recdata |= 0x0001;
        else  recdata &= 0xfffe;
	recdata <<= 1;//接收上次转换结果
	
        
	PORTB |= 0B00000100;//时钟上升沿
	NOP();NOP();
	PORTB &= 0B11111011;//时钟下降沿
	NOP();NOP();
  }
  
 // PORTB |= 0B00000010;//片选禁止(可选)
  NOP();NOP();
  recdata >>= 1;
  recdata &= 0x0fff;//截取低12位
  return(recdata);
}

⌨️ 快捷键说明

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