ADC0832模数转换MSP430单片机程序+电路图

发布者:RadiantSerenity最新更新时间:2021-05-14 来源: eefocus关键字:ADC0832  模数转换  MSP430 手机看文章 扫描二维码
随时随地手机看文章

下面是电路图:





ADC0832封装图


ADC0832与单片机连接图



ADC0832时序图

程序源码下载:


#include

#define DO (P1IN&BIT7)

#define uchar unsigned char

#define uint unsigned int

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

sbit cs=P2^0;

sbit clk=P2^1;

sbit DI=P2^2;

sbit DO=P2^6;

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

uint adval;

uchar temp;

uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void delay(uint ms)

{

uchar j;

while(ms--)

{

for(j=0;j<120;j++);

}

}

void ADC_start()

{

P2OUT|=BIT0;//cs=1

_NOP();

P2OUT&=~BIT1;//clk=0

_NOP();

P2OUT&=~BIT0;//cs=0

_NOP();

P2OUT|=BIT2;//DI=1

_NOP();

P2OUT|=BIT1;//clk=1

_NOP();

P2OUT&=~BIT2;//DI=0;

_NOP();

P2OUT&=~BIT1;//clk=0;

_NOP();

}

void ADC_read(uint CH)

{

uchar i;

ADC_start();

if(CH==0) //选择通道0

{

P2OUT|=BIT2;// DI=1;

P2OUT |=BIT1;//clk=1;

_NOP();

_NOP();

P2OUT &=~BIT1;//clk=0;//第一个下降沿来DI=1

_NOP();

_NOP();

P2OUT |=BIT2;//DI=0;

P2OUT |=BIT1;//clk=1;

_NOP();

_NOP();

P2OUT&=~BIT1;//clk=0;//第二个下降沿来DI=0,DI两次为10,选ch0通道

_NOP();

_NOP();

}

else //选择通道1

{

P2OUT|=BIT2;// DI=1;

P2OUT |=BIT1;//clk=1;

_NOP();

_NOP();

P2OUT &=~BIT1;//clk=0;//第一个下降沿来DI=1

_NOP();

_NOP();

P2OUT |=BIT2;//DI=1;

P2OUT |=BIT1;//clk=1;

_NOP();

_NOP();

P2OUT&=~BIT1;//clk=0;//第二个下降沿来DI=0,DI两次为11,选ch1通道

_NOP();

_NOP();

}

/****************下降沿读数据*******************/

P2OUT|=BIT1;//clk=1;

_NOP();

P2OUT&=~BIT1;//clk=0;再来下降沿读书

for(i=0;i<8;i++)

{

P2OUT|=BIT2;// DI=1;

if(DO) // 判断DO;

{

temp |=0x01;

}

else

{

temp &=0xfe;

}

P2OUT&=~BIT1;//clk=0;

_NOP();

_NOP();

P2OUT|=BIT1;//clk=1;//上升沿来,左移1位

temp=temp<<1;

}

adval=temp;

}

/********显示数据********************************/

void display(uint dat)

{

P2OUT &=~BIT3;//关闭个位显示P2.3

P2OUT &=~BIT4;//关闭十位显示P2.4

P2OUT |=BIT5;//开启百位显示P2.5

P1OUT=tab[dat/100];

delay(1);

P1OUT=0xff;

P2OUT &=~BIT3;//关闭个位显示P2.3

P2OUT |=BIT4;//开启十位显示P2.4

P2OUT &=~BIT5;//关闭百位显示P2.5

P1OUT=tab[(dat%100)/10];

delay(1);

P1OUT=0xff;

P2OUT |=BIT3;//开启个位显示P2.3

P2OUT &=~BIT4;//关闭十位显示P2.4

P2OUT &=~BIT5;//关闭百位显示P2.5

P1OUT=tab[dat/10];

delay(1);

P1OUT=0xff;

}

void main()

{


WDTCTL = WDTPW + WDTHOLD;

P2DIR =0x3f;

P1DIR|=0x7f;

while(1)

{

ADC_read(0);

delay(1);

display(adval);

}

}


关键字:ADC0832  模数转换  MSP430 引用地址:ADC0832模数转换MSP430单片机程序+电路图

上一篇:MSP430中断嵌套问题
下一篇:使用MSP430F1121中断须要注意的问题

小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved