da-tlc5615.rar

  • grasswolfs
    了解作者
  • Asm
    开发工具
  • 1KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 8
    下载次数
  • 2010-01-25 15:43
    上传日期
由单片机作为控制核心,10位DA,德州仪器公司的TLV5615源代码
da-tlc5615.rar
  • da-tlc5615.c
    1.3KB
内容介绍
#include <stdio.h> #include <absacc.h rel='nofollow' onclick='return false;'> #include <intrins.h> #include <./atmel/at89x52.h> #include "source.h" unsigned int mv_to_dat(unsigned int mv) { #define vref_2times 5 unsigned int dat; dat=mv*(1024/5); dat &=0x3ff; return dat; } void spi_write(unsigned int dat) { unsigned char i; TLC_NCS=0; TLC_CLK_SET; for(i=0;i<16;i++) { TLC_DIN=((dat&0x8000)>0)?1:0; TLC_CLK_PULSE; dat<<=1; } TLC_CLK_SET; TLC_NCS=1; } #define slow_mode 0x4000 #define fast_mode 0x0000 #define normal_power_mode 0x0000 #define save_power_mode 0x2000 void writea_refreshb(unsigned int mv) { unsigned int dat; dat=mv_to_dat(mv); dat <<=2; dat |=fast_mode|normal_power_mode|0x8000; spi_write(dat); } void write_doublebuf(unsigned int mv) { unsigned int dat; dat=mv_to_dat(mv); dat <<=2; dat |=fast_mode|normal_power_mode|0x0001; spi_write(dat); } void refresh_two_volt(unsigned int chla_mv,unsigned int chlb_mv) { write_doublebuf(chlb_mv); writea_refreshb(chla_mv); } void refresh_chla_volt(unsigned int mv) { writea_refreshb(mv); } main() { unsigned int chlb_mv,chla_mv; unsigned int i; IE=0X40; EA=1; chlb_mv=1000; chla_mv=2000; i++; if(i==10000) { chla_mv=1000; refresh_chla_volt(chla_mv); } else if(i==30000) { i=0; chlb_mv=3000; refresh_two_volt(chla_mv,chlb_mv); } }
评论
    相关推荐