微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MSP430之ADC12之1602显示

MSP430之ADC12之1602显示

时间:12-02 来源:互联网 点击:
interrupt void ADC12ISR (void)
{
static uint temp = 0;
results[temp++] = ADC12MEM0;
if(temp == 32)
{
uchar i;
unsignedlongsum = 0;
temp = 0;
for(i = 0; i < 32; i++)
{
sum += results[i];
}
sum >>= 5;//除以32

Trans_val(sum);
}
}
/*******************************************
函数名称:Trans_val
功 能:将16进制ADC转换数据变换成三位10进制
真实的模拟电压数据,并在液晶上显示
参 数:Hex_Val--16进制数据
n--变换时的分母等于2的n次方
返回值 :无
********************************************/
void Trans_val(uint dat)
{
unsignedlongtemp;
uint Curr_Volt;
uchar ptr[3];
temp = dat;
temp = (temp < 5) + dat; //temp = dat * 33
//移位比直接乘效率要高
temp = (temp < 3) + (temp < 1); //temp = temp * 10
//一个数左移N位等于这个数乘以2的N次方
Curr_Volt = temp >> 12;//Curr_Volt = temp / 2^n一个数右移N位等于除以2的N次方
ptr[0] = Curr_Volt/100;
ptr[1] = Curr_Volt %100/10;
ptr[2] = Curr_Volt%10;
//在液晶上显示变换后的结果
Write1602(0x80+0x40,ptr[0]+0x30);
Write1602(0x80+0x41,.);
Write1602(0x80+0x42,ptr[1]+0x30);
Write1602(0x80+0x43,ptr[2]+0x30);
Write1602(0x80+0x44,V);
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top