历史上的今天
今天是:2025年05月14日(星期三)
2021年05月14日 | ADC0832模数转换MSP430单片机程序+电路图
2021-05-14 来源:eefocus
下面是电路图:

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); } }
上一篇:MSP430中断嵌套问题
史海拾趣
|
在以前的电信网络中,以TDM业务为主,随着Internet的兴起和发展,IP业务正逐渐越来越占据主导地位,现在各个业务网络都在考虑转型,包括PSTN网络,移动网络,而转型中最大的特点就是IP化;电信业务的IP化已经成为未来的业务发展趋势,也就是说未来 ...… 查看全部问答> |
|
转载时请注明出处和作者联系方式 文章出处:http://www.limodev.cn/blog 作者联系方式:李先静 <xianjimli@gmail.com>FTK支持主题,利用主题配置和图片,可以模仿各种不同的GUI风格。FTK的默认界面风格很大程度上仿照了android的界面风格: ...… 查看全部问答> |
|
安装CCS3.3,打开软件报错 Can\'t Initialize Target CPU: Error 0x80002240/-122 Fatal Error during: Initialization, OCS, Control, This error was generated by TI\'s USCIF driver. SC_ERR_CMD_PARM A bad parameter value was detec ...… 查看全部问答> |
|
http://downloads.angstrom-distri ... beaglebone/archive/ 谁知道bbb发货来的时候是哪个镜像啊? … 查看全部问答> |




