77范文网 - 专业文章范例文档资料分享平台

MSP430x14x系列单片机程序实例(5)

来源:网络收集 时间:2019-08-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

ADC12CTL0 |= ADC12SC; //开启转换 ADC12CTL0 &= ~ADC12SC; //清零

Flag=0; //清零标志位 } } }

6、DAC5615-DAC直接控制测试程序

/********************************************************************

//DM430-A型开发板DAC转换程序,板载TLC5615芯片,10位电压型DAC,5V供电 //程序控制方式采用模拟时序方式,模拟TLC5615时序进行操作,也可以用SPI方式操作 //DAC转换输出直接驱动LED发光二极管DS3,输出由暗变亮,再由亮变暗,循环 ********************************************************************/

#include

#include \ //开发板配置头文件,主要配置IO端口信息

//*********************************************************************** // MSP430IO口初始化

//*********************************************************************** void Port_Init() {

LED8SEL = 0x00; //设置IO口为普通I/O模式,此句可省 LED8DIR = 0xFF; //设置IO口方向为输出 LED8PORT = 0xFF; //P2口初始设置为FF

P3SEL = 0x00; //设置IO口为普通I/O模式,此句可省

P3DIR |= BIT1 + BIT3; //DIN管脚、SCLK管脚输出模式,DOUT输入模式 P3OUT = 0xFF; //初始值0xFF

P5SEL = 0x00; //设置IO口为普通I/O模式,此句可省 P5DIR |= BIT4; //CS管脚输出模式 P5OUT = 0xFF; //初始值0xFF }

//************************************************************************* // DAC转换程序

//************************************************************************* void DAC_Ser(uint data) {

uchar i;

uint DACDATA2;

DACCS0; //片选DAC,置低有效 SCLK0; //时钟信号拉低

for (i=0;i<16;i++) //尽管是10位DAC,但是其寄存器为16位,只有10位数据有效 {

DACDATA2=data&0x8000; //逐位取出 if(DACDATA2>>15) DIN1; else

DIN0;

SCLK1; //上升沿数据锁存 data<<=1; //移位 SCLK0; }

delay_us(10); DACCS1; SCLK0; }

//************************************************************************* // 主程序

//*************************************************************************

void main(void) {

uint DACDATA;

WDT_Init(); //看门狗初始化 Clock_Init(); //时钟初始化

Port_Init(); //端口初始化,用于控制IO口输入或输出

Close_LED(); while(1) {

for(DACDATA=0x000;DACDATA<0x3ff;DACDATA++) //连续转换,输出电压从小到大 {

DACDATA=DACDATA<<2;

DAC_Ser(DACDATA); //送入DAC进行转换 DACDATA=DACDATA>>2; delay_ms(2); }

//delay_ms(10);

for(DACDATA=0x3ff;DACDATA>0x00;DACDATA--) //连续转换,输出电压从大到小 {

DACDATA=DACDATA<<2;

DAC_Ser(DACDATA); //送入DAC进行转换 DACDATA=DACDATA>>2; delay_ms(2); } } }

7、DAC5615-SPI-DAC通过SPI接口控制测试程序

/********************************************************************

//DM430-A型开发板DAC转换程序,板载TLC5615芯片,10位电压型DAC,5V供电 //采用SPI控制方式驱动,使用SPI0,使用前需要先对SPI进行初始化

//DAC转换输出直接驱动LED发光二极管DS3,输出由暗变亮,再由亮变暗,循环 ********************************************************************/

#include

#include \ //开发板配置头文件,主要配置IO端口信息

//*********************************************************************** // MSP430IO口初始化

//*********************************************************************** void Port_Init() {

LED8SEL = 0x00; //设置IO口为普通I/O模式,此句可省 LED8DIR = 0xFF; //设置IO口方向为输出 LED8PORT = 0xFF; //P2口初始设置为FF

P3SEL |= 0x0E; //设置IO口为普通I/O模式,此句可省

P3DIR |= BIT1 + BIT3; //DIN管脚、SCLK管脚输出模式,DOUT输入模式 P3OUT = 0xFF; //初始值0xFF

P5SEL = 0x00; //设置IO口为普通I/O模式,此句可省 P5DIR |= BIT4; //CS管脚输出模式 P5OUT = 0xFF; //初始值0xFF }

/************************************************* 函数功能:SPI初始化,使用串口0工作在SPI模式下

操作内容:配置串口为SPI模式以及设置相关寄存器

*************************************************/

void SPI_Init(void) {

P3SEL |= 0x0E; //设置USART0相关IO口功能,CS片选设置为普通IO,3线SPI设置为第二功能 P3SEL &= ~0x11;

P3OUT |= 0x01; //初始化时设置CS为高,SD卡不选 P3DIR |= 0x1B; //对于输入输出方向,第二功能也需要配置 P3DIR |= BIT0;

UCTL0 = SWRST; // 配置SPI接口,初始化前需先置SWRST高

UTCTL0 = CKPH | SSEL1 | SSEL0 | STC; // SPI时钟为SMCLK, 3线模式(STE无效), UCLK延时半个周期, 数据在上升沿输出或输入锁存

UBR00 = 0x02; // 0x02: UCLK/2 (4 MHz), works also with 3 and 4

UBR10 = 0x00; // -\

UMCTL0 = 0x00; // SPI模式下,必须设置该寄存器为00 UCTL0 = CHAR | SYNC | MM | SWRST; // 8位SPI主机模式、复位状态

UCTL0 &= ~SWRST; // 配置完后清零SWRST,必须这样的过程,否则可能出现不可预料错误

ME1 |= USPIE0; // 使能USART0为SPI模式,允许 while (!(IFG1 & UTXIFG0)); // USART0发送缓冲器空 }

//************************************************************************* // SPI发送数据函数

//************************************************************************* void spiSendByte(uchar data) {

TXBUF0 = data; //写数据到发送缓冲器 while ((IFG1&UTXIFG0) ==0); // 如果未准备好,则等待 IFG1&=~UTXIFG0; }

//************************************************************************* // 主程序

//*************************************************************************

void main(void) {

uint da_data,da_data2;

WDT_Init(); //看门狗初始化 Clock_Init(); //时钟初始化

Port_Init(); //端口初始化,用于控制IO口输入或输出

SPI_Init(); Close_LED(); while(1) {

for(da_data=0;da_data<0x03ff;da_data++) {

da_data = da_data<<2;

DACCS0;

da_data2=(da_data&0xff00); da_data2>>=8; spiSendByte(da_data2);

spiSendByte(da_data&0x00ff);

DACCS1;

da_data = da_data>>2;

delay_ms(1); }

delay_ms(100);

for(da_data=0x3ff;da_data>0;da_data--) {

da_data = da_data<<2;

DACCS0;

da_data2=(da_data&0xff00); da_data2>>=8; spiSendByte(da_data2);

spiSendByte(da_data&0x00ff);

DACCS1;

da_data = da_data>>2;

delay_ms(1); }

//连续转换,输出电压从小到大 //使能DAC //提取数据的高8位

//高8位移到低8位,便于赋值 //写数据的低8位到SPI数据寄存器 //关闭使能 //连续转换,输出电压从大到小 //使能DAC //提取数据的高8位

//高8位移到低8位,便于赋值 //写数据的低8位到SPI数据寄存器 //关闭使能

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库MSP430x14x系列单片机程序实例(5)在线全文阅读。

MSP430x14x系列单片机程序实例(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/681230.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: