DH MSP显示正在连接服务器,小弟的第一个MSP430昨晚ADC之后采用并行接口方式显示在12864......

#include  

double data;//用来存储ADC12MEM中的数据

unsigned int a,b,c=0; //用来存储将要显示在LCD上的各位数据

//初始化时钟

void initclock(void){

BCSCTL1=RSEL2+RSEL1+RSEL0+DIVA_1;//XT2开启 LFXT1工作在低频模式 ACLK 2分频( 注释:原来的人没做分频,我担心频率过高) 最高的标称频率

DCOCTL=DCO2+DCO1+DCO0;//DCO为最高频率

do{

IFG1&=~OFIFG;//清除振荡器失效标志

for(unsigned int i=255;i>0;i--);

}while(IFG1&OFIFG);//判断XT2是否起振

BCSCTL2=SELM1+SELS;//MCLK SMCLK时钟源为TX2CLK不分频

}

//延时函数

void delay(unsigned int m){

for(unsigned int i=0;i

_NOP();

}

//ADC12采样初始化,并打开中断子程序计算采样值的大小

void initADC12(){

P6SEL=0X01;//P6.0作为模拟输入

ADC12IE=0X01; //开放中断ADC12IFG.0

ADC12CTL0=ADC12ON+SHT0_4+REFON+REF2_5V;//打开ADC转换的核,采用内部参考电压2.5v;

ADC12CTL1=SHP;   //信号源内部触发

ADC12CTL0 |=ENC;  //开放使能

_EINT();//开放系统总中断

ADC12CTL0 |=ADC12SC; //开始转换,转换完成之后自动进入中断服务子程序

}

#pragma vector=ADC_VECTOR

__interrupt void ADC12ISR(){

data=ADC12MEM0*2.5/4095;  //data为全局变量

}

//基本写入函数命令

void Lcd_InsWrite(unsigned int i,char Instruction)

{

P4DIR=0XFF; // P4口设置成输出模式

if(i==0)

P3OUT=0x1F; // RS=0,R/W=0 写指令

else P3OUT=0x9F; // RS=0,R/W=0 写数据

P3OUT|=BIT5; //E=1 使能

P4OUT=Instruction; //功能设定

delay(3); //延时

P3OUT&=~BIT5; //E=0:下降沿锁存数据

}

//LCD初始化函数

//函数声明:采用MSP430端口p3.5-3.7连接LCD的E,RW,和RS端口;P4口用来传送数据

void init_lcd(void)

{

P3DIR=0XE0; //P3.5-E,P3.6-R/W,P3.7-RS输出

Lcd_InsWrite(0,0x30); //基本指令

delay(400);

Lcd_InsWrite(0,0x01); //清除显示

delay(400);

Lcd_InsWrite(0,0x0e);

// 显示状态设定:整体显示,游标on,游标位置反白

delay(400);

}

//将ADC转换后的值写入LCD

void WriteData(){

data*=100;

int temp=(int)data;

a=temp/100;//考虑到由于内部参考电压的限制,且仅考虑两位小数的情况

b=(temp%100)/10;

c=(temp%10);

Lcd_InsWrite(1,a+0x30);

Lcd_InsWrite(1,'.');

Lcd_InsWrite(1,b+0x30);

Lcd_InsWrite(1,c+0x30);

delay(400);

}

//主函数部分

void main(){

WDTCTL=WDTPW+WDTHOLD;//关闭看门狗

initClock();//初始化时钟

initADC12();//ADC12采样初始化,并打开中断子程序计算采样值的大小

init_lcd(); //lcd初始化

WriteData(); //将采样值分别计算出对应位的输出

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值