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);
}
{
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);
}
MSP430ADC121602显 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)