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

📄 tlc5615.c

📁 串行DA TLC5615,10bit 3线控制。简便、易用。
💻 C
字号:
/*******************************************************************************
*  标题:  蓝海微芯LJD-SY-5200单片机开发系统演示程序                            *
*  文件:  TLC5615.C                                                            *
*  日期:  2006-8-11                                                            *
*  版本:  1.0                                                                  *
*  作者:  蓝海微芯                                                             *
*  网站: http://www.ljd-2008.com                                              *
********************************************************************************
*  描述:                                                                       *
*         D/A TLC5615转换程序                                                  *     
*                                                                              *
*                                                                              *
********************************************************************************
* 【版权】 Copyright(C)微芯科技 http://www.bluemcu.com    All Rights Reserved  *          
* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息!                  *
*******************************************************************************/
#include<reg51.h>
#include <absacc.h>
#include <intrins.h>

typedef unsigned char uchar;
typedef unsigned int  uint;

sbit CS   = P1^7;        /* DA片选信号   */
sbit SCLK = P1^6;        /* DA时钟信号   */
sbit DIN  = P1^5;        /* 数字数据输入 */

void delay(uint us);         /* 延时子函数             */
void dac_5615(uint data_in); /* 写入DAC的10bit输入数据 */

void delay(uint us)
{
  uchar i;
  while(us--)
  {
    for (i=0; i<125; i++);
  }
}
/********************************************************************
函 数 名:dac_5615()
功    能:写入DAC的10bit输入数据 
说    明:
调    用:
入口参数:
出口参数:
***********************************************************************/
void dac_5615(uint data_in)
{
  uchar i;

  data_in <<= 6;       /* 精度10位,所以左移6位 */
  CS   = 0;
  SCLK = 0;

  for (i=0;i<12;i++)   /* 逐位传递12次,由于10位传完需要传送2位0 */
  {
    DIN  = (bit)(data_in&0x8000);
    SCLK = 1;
    data_in <<= 1;
    SCLK = 0;
  }
  CS   = 1;
  SCLK = 0;
  _nop_(); 
}
/**************主程序**************/
main()
{
  uint i;
    

  while(1)
  {

   
    for (i=0; i<0x3ff; i+=40)
    {
      dac_5615(i);
	  LCD_write_char(1,0,ASCII[dispbuf[i]&0xf]);
	  LCD_write_char(1,1,ASCII[dispbuf[i]>>4&0xf]);
	  LCD_write_char(1,2,ASCII[dispbuf[i]>>4&0xf]);
	  LCD_write_char(1,3,ASCII[dispbuf[i]>>4&0xf]);
      delay(50);
    }
    delay(2000);
  }
}

⌨️ 快捷键说明

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