历史上的今天
今天是:2025年01月30日(星期四)
2018年01月30日 | msp430 ADC10单通道多次转换
2018-01-30 来源:eefocus
MSP430 ADC10单通道多次转换
#include "msp430x22x4.h"
#define uchar unsigned char
#define uint unsigned int
#define LCDen 0X80; //P3的高三位做控制线
#define lcdrw 0X40;
#define lcdrs 0X20;
void delay(uint z) //延时程序
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
void write_com(uchar com) //写指令
{
P3OUT&=~lcdrs;
P4OUT=com;
delay(5);
P3OUT |= lcden;
delay(5);
P3OUT &= ~lcden;
}
void write_data(uchar date) //写数据
{
P3OUT|=lcdrs;
P4OUT=date;
delay(5);
P3OUT|=lcden;
delay(5);
P3OUT &= ~lcden;
}
void init() //初始化
{
P3OUT &= ~lcdrw;
P3OUT &= ~lcden;
write_com(0x38);//显示模式设置
write_com(0x0f);//
write_com(0x06);//
write_com(0x01);//
write_com(0x80+0x00);//
}
uchar num;
uchar table[]="0123456789";
uint dada[5];
volatile float ad_value;
void main( void )
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
BCSCTL1 =CALBC1_1MHz; //设定DCO 为1MHZ
DCOCTL =CALBC1_1MHZ;
P2SEL = 0X01;
P3SEL=0X00;
P3DIR=0XFF;
P3OUT=0X00;
P4SEL=0X00;
P4DIR=0XFF;
P4OUT=0X00;
init();
//时钟源选AD 内部时钟并4 分频,选通道10,AD 启动信号来源选TA.OUT1,选单通道连续采样
ADC10CTL1=ADC10DIV_3+INCH_0+SHS_1+CONSEQ_2;
//选1.5V 为正向参考,地为负参考,AD 中断使能,打开参考,启动AD 模块(不是启动AD 转换)
ADC10CTL0=SREF_1+ADC10SHT_3+ADC10IE+REFON+ADC10ON+REF2_5V;
TACCR0=30; //延时等待参考稳定
TACCTL0 |=CCIE; //CCR0 中断使能
TACTL=TACLR+MC_1+TASSEL_2; //TA 增计数,时钟源为smclk
_BIS_SR(LPM0_bits+GIE); //进入低功耗0,使能总中断,等待参考稳定
TACCTL0 &=~CCIE; //CCR0 中断禁止
_BIC_SR(GIE); //关总中断
ADC10CTL0 |=ENC; //AD 转换使能
TACCTL1=OUTMOD_4; //CCR1 选输出模式4,当TAR=0 时,输出高电平
TACTL =TASSEL_2+MC_2; //TA 改为连续计数,smclk 时钟源
while(1)
{
_BIS_SR(LPM0_bits+GIE); //进入低功耗0,使能总中断,等待10AD 完成
write_com(0x80+0x00);
for(num=0;num<5;num++)
{
write_data(table[dada[num]]);
delay(5);
}
_BIS_SR(GIE);
}
}
#pragma vector = TIMERA0_VECTOR //TA0 中断服务,用来参考稳定
__interrupt void ta0_isr(void)
{
TACTL=0; //关TA
_BIC_SR_IRQ(LPM0_bits); //退出低功耗
}
#pragma vector = ADC10_VECTOR //ADC10 中断服务
__interrupt void adc_isr(void)
{
_BIC_SR_IRQ(LPM0_bits);
ad_value=ADC10MEM/409.2; //保存AD 结果
for(uchar i=0;i<5;i++)
{
dada[i]=ad_value;
ad_value=ad_value-dada[i];
ad_value=ad_value*10;
}
_BIC_SR(GIE);
}
史海拾趣
|
我现在在做毕业设计,题目是.可是我现在缺很多资料,许多东西到网上找也不全 希望谁有这方面题目的东西可以给我发一下,谢谢! 我需要彩灯循环控制器的电路图,我设计的有缺陷,希望能给个能够独立运行出来的进行参考!!!… 查看全部问答> |
|
单身、年轻、精力充沛、积极向上的移动工程师坚持不懈地追求更好的收入,硅谷几十年来就扮演着“生手训练营”的角色,但那时的场景现在已经不复存在。非常积极能干的人现在都去了印度。 今年你拿了啊多少? “EE T ...… 查看全部问答> |
|
求助!!怎样在pcb中添加一个文件的同时可以出现相关联多个库文件 在pcb中建立元器件库,同一个part但是可以导入多个和改封装一样的库文件,如在pads layout 中添加一个SO14封装,右键属性(Properties),弹出一个对话筐,在decal中下拉,可以出现自己另外做的SO14M1,SO14M2,SO14M3等宽体,或窄体的SO14封装… 查看全部问答> |
|
我最近正在使用IAR 编写atmega128的ucos系统 不过在isr.r90文件中,有一句汇编语句 小弟不太懂 希望高人指教。 RSEG CODE:CODE:NOROOT(0) 这条语句中的0代表什么意思? 在写中断汇编的时候, ...… 查看全部问答> |




