MSP430G2553单片机驱动TLC5540

发布者:angelbaby最新更新时间:2015-06-17 来源: 51hei关键字:MSP430G2553  TLC5540  ADC转换 手机看文章 扫描二维码
随时随地手机看文章
#include

#include "stdio.h"
typedef unsigned char      INT8U;
typedef unsigned int       INT16U;
#define ADC_CTRL_DIR_PORT      (P2DIR)
#define ADC_CTRL_OUT_PORT      (P2OUT)
#define ADC_DATA_DIR_PORT     (P1DIR)
#define ADC_DATA_IN_PORT       (P1IN)

#define ADC_OE_BIT        (BIT0)
#define ADC_CLK_BIT       (BIT1)

#define ADC_OE_H          (ADC_CTRL_OUT_PORT |=  ADC_OE_BIT)
#define ADC_OE_L          (ADC_CTRL_OUT_PORT &= ~ADC_OE_BIT)

#define ADC_CLK_H         (ADC_CTRL_OUT_PORT |=  ADC_CLK_BIT)
#define ADC_CLK_L         (ADC_CTRL_OUT_PORT &=~ ADC_CLK_BIT)

INT16U RcvDataBuff_G[50];
void ADC_RcvData(INT16U *pData,INT16U RcvDataNum);
INT16U ADC_RcvOneData(void);
void ClockInit(void);
void ADC_PortInit(void);
unsigned char UartInit(unsigned long baud,unsigned char parity,unsigned char dataBits,unsigned char stopBits);
void UART_PutChar( int c);
void UART_PutString( int *s);
unsigned char UART_GetChar();

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;
  unsigned char i;
    INT16U ADC_Temp;

  ADC_PortInit();
  ClockInit();
    UartInit(9600,'n',8,1);
  _EINT();

while(1)
{
  ADC_RcvData(RcvDataBuff_G,50);
       for(i = 0;i < 50;i++)
  printf("ADC_Ruselt = %d ",RcvDataBuff_G[i]);
  // ADC_Temp = (INT16U)ADC_RcvOneData();
  //printf("ADC_Ruselt = %d ",ADC_Temp);
__delay_cycles(100000);
}
}

void ADC_PortInit(void)
{
  ADC_CTRL_DIR_PORT |= ADC_OE_BIT + ADC_CLK_BIT;
  ADC_DATA_DIR_PORT  = 0x00;//数据输入端口
}
void ClockInit(void)
{
  if(CALDCO_1MHZ == 0xff || CALBC1_1MHZ == 0xff)
  {
    while(1);
  }
  DCOCTL  = CALDCO_1MHZ;
  BCSCTL1 = CALBC1_1MHZ;
}

INT16U ADC_RcvOneData(void)
{
  INT16U ADCResult,i;
  ADC_CLK_L;
  ADC_OE_H;
  for(i = 0;i < 3;i++)
  {
    ADC_CLK_L;
    _NOP();
    ADC_CLK_H;
  }
  ADC_OE_L;
  ADCResult = ADC_DATA_IN_PORT;
  return (ADCResult);
}
void ADC_RcvData(INT16U *pData,INT16U RcvDataNum)
{
  INT16U i;
  for(i = 0;i < RcvDataNum;i++)
  {
    pData[i] = (INT16U)ADC_RcvOneData();
  }
}

关键字:MSP430G2553  TLC5540  ADC转换 引用地址:MSP430G2553单片机驱动TLC5540

上一篇:MSP430单片机驱动MSM7512程序
下一篇:单片机红外解码查询法(HS9148)

推荐阅读最新更新时间:2024-03-16 14:04

51单片机学习:ADC模数转换实验--外部通道电压采集
实验名称:ADC模数转换实验--外部通道电压采集 接线说明: 实验现象:下载程序后,数码管上显示AD模块采集外部通道AIN3的电压值 注意事项: ***************************************************************************************/ #include public.h #include smg.h #include xpt2046.h /******************************************************************************* * 函 数 名 : main * 函数功能 :
[单片机]
msp430g2553仿真器下载线制作
网上这方面的教程特别难找,以下是本人总结的msp430g2553和仿真器连接图。 单片机引脚图: 实际设计最小系统: 仿真器与电路板连接图:
[单片机]
<font color='red'>msp430g2553</font>仿真器下载线制作
msp430g2553硬件IIC
#include msp430g2553.h #include uart.h unsigned char RX_Data; void I2C_Init(unsigned char SA);//I2C初始化,SA为从器件地址 void I2C_ReadData(unsigned char address);//I2C读出某一地址的数据 unsigned char I2C_WriteData(unsigned char address,unsigned char data);//I2C向某一地址写入数据 void delay(void); void I2C_Init(unsigned char SA) { P1SEL |=
[单片机]
STM32 ADC转换(DMA)
上次博客已经讲了如何实现ADC转换。这次我使用DMA来帮助ADC的转换。用DMA的话,可以实现多路ADC通道同时转化了。 下面就讲讲怎么借助DMA实现DAC的多路转换。还是基于我自己的规范工程。 1、工程的修改 1)由于要使用ADC功能,必须使用到库文件stm32f10x_adc.c,所以将是stm32f10x_adc.c文件添加到STM32F10x_StdPeriod_Driver工程组中。 2)这次需要使用DMA功能,所以还要讲stm32f10x_dma.c文件添加到STM32F10x_StdPeriod_Driver工程组中. 3)打开stm32f10x_conf.h文件,将原先屏蔽的:#include stm32f
[单片机]
STM32 <font color='red'>ADC</font><font color='red'>转换</font>(DMA)
MSP430G2553(一)IO外部中断说明与实例
这一篇文章将说明MSP430G2553的IO中断配置,整个P1的IO都可以配置IO中断,但中断处理函数只有一个,MSP430和大多数MCU一样提供上升沿、下降沿选择。 在Launchpad上有按键S2,接在P1.3口,当按下后P1.3将接入高电平,从而触发中断。 所有寄存器的具体名称和地址,可以查看M430G2553 datasheet 第 21页中对于P1的寄存器定义 在实例代码中,配置了P1.3和P1.6的LED灯,当按下P1.3的按键产生中断,LED灯将切换点亮 1.按键的中断配置 要配置按键中断,需要先设置P1.3口为输入,并且设置上拉电阻以保障稳定性, P1DIR &= ~BIT3;//设置P1.3为输入 P1REN
[单片机]
STM32多通道ADC规则转换实现
vu16 ADC_RCVTab ; //自己添加 int main(void) { #ifdef DEBUG debug(); #endif RCC_Configuration(); NVIC_Configuration(); GPIO_Configuration(); LcdShow_Init(); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);//使能DMA时钟 DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = ADC1_DR_A
[单片机]
TI 经典模数转换器讲解之ADS805
模数 转换器,ADS805,速度不算太快,但是一般情况下就够用了,整体综合性能还是蛮好的。 它可以用在CCD成像、数字化基带处理、复印机和测试仪器等等。 特性: 1.20MHz 、12位,高动态范围 2.高信噪比68dB 3.内外参考电压 4.具有输入超调警示标志,在信号调理电路中能够利用此标志进行增益减小调节 5.数字识错技术保障良好的线性度 1管脚具有超过限定值指示功能 15管脚为输出使能端 18管脚为输入变化范围选择 19管脚为参考电压选择端 20、22管脚分别为底层参考和顶层参考 23管脚为补充输入端 28为给入的输出驱动电压 图3 时序图 通
[模拟电子]
采用差分PulSAR ADC AD7982转换单端信号
   电路功能与优势   许多应用都要求通过高分辨率、差分输入ADC来转换单端模拟信号,无论是双极性还是单极性信号。本直流耦合电路可将单端输入信号转换为差分信号,适合驱动PulSAR系列ADC中的18位、1 MSPS器件AD7982。该电路采用单端转差分驱动器ADA4941-1 和超低噪声5.0 V基准电压源ADR435 ,可以接受许多类型的单端输入信号,包括高压至低压范围内的双极性或单极性信号。整个电路均保持直接耦合。如果需要重点考虑电路板空间,可以采用小封装产品,图1所示的所有IC均可提供3 mm × 3 mm LFCSP或3 mm × 5 mm MSOP小型封装。 图1:单端转差分直流耦合驱动器电路(原理示意图)
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved