功能
读取P1.4电压,显示到口袋板显示屏,电压越高亮灯越多。
部分程序
cpp
while (1)
{
ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion start
LPM0;
adcvalue = ADC10MEM; //原始数据 0到1023
adtest = (float) adcvalue / 1024.0 * 3.3;
dis_num_6(adtest); //显示电压
//电压最大值最小值限制
if (adcvalue <= min_YIN)
adcvalue = min_YIN;
if (adcvalue > max_YIN)
adcvalue = max_YIN;
//偏差值
adcvalue = adcvalue - min_YIN;
//总体范围
temp1 = max_YIN - min_YIN;
//每一段多少
duan = temp1 / 8;
//控制小灯怎么点亮
if (adcvalue > duan * 7) //0就是点亮 1就是不亮 这里表示8个灯全部亮
{
PinOUT(0, 0); /* 指定0号管脚输出为0 */
PinOUT(1, 0); /* 指定1号管脚输出为0 */
PinOUT(2, 0); /* 指定0号管脚输出为0 */
PinOUT(3, 0); /* 指定1号管脚输出为0 */
PinOUT(4, 0); /* 指定0号管脚输出为0 */
PinOUT(5, 0); /* 指定1号管脚输出为0 */
PinOUT(6, 0); /* 指定0号管脚输出为0 */
PinOUT(7, 0); /* 指定1号管脚输出为0 */
}
else if (adcvalue > duan * 6) //0就是点亮 1就是不亮 这里表示7个灯全部亮
{
PinOUT(0, 0); /* 指定0号管脚输出为0 */
PinOUT(1, 0); /* 指定1号管脚输出为0 */
PinOUT(2, 0); /* 指定0号管脚输出为0 */
PinOUT(3, 0); /* 指定1号管脚输出为0 */
PinOUT(4, 0); /* 指定0号管脚输出为0 */
PinOUT(5, 0); /* 指定1号管脚输出为0 */
PinOUT(6, 0); /* 指定0号管脚输出为0 */
PinOUT(7, 1); /* 指定1号管脚输出为0 */
}
else if (adcvalue > duan * 5) //0就是点亮 1就是不亮 这里表示6个灯全部亮
{
PinOUT(0, 0); /* 指定0号管脚输出为0 */
PinOUT(1, 0); /* 指定1号管脚输出为0 */
PinOUT(2, 0); /* 指定0号管脚输出为0 */
PinOUT(3, 0); /* 指定1号管脚输出为0 */
PinOUT(4, 0); /* 指定0号管脚输出为0 */
PinOUT(5, 0); /* 指定1号管脚输出为0 */
PinOUT(6, 1); /* 指定0号管脚输出为0 */
PinOUT(7, 1); /* 指定1号管脚输出为0 */
}
else if (adcvalue > duan * 4) //0就是点亮 1就是不亮 这里表示5个灯全部亮
{
PinOUT(0, 0); /* 指定0号管脚输出为0 */
PinOUT(1, 0); /* 指定1号管脚输出为0 */
PinOUT(2, 0); /* 指定0号管脚输出为0 */
PinOUT(3, 0); /* 指定1号管脚输出为0 */
PinOUT(4, 0); /* 指定0号管脚输出为0 */
PinOUT(5, 1); /* 指定1号管脚输出为0 */
PinOUT(6, 1); /* 指定0号管脚输出为0 */
PinOUT(7, 1); /* 指定1号管脚输出为0 */
}
else if (adcvalue > duan * 3) //0就是点亮 1就是不亮 这里表示4个灯全部亮
{
PinOUT(0, 0); /* 指定0号管脚输出为0 */
PinOUT(1, 0); /* 指定1号管脚输出为0 */
PinOUT(2, 0); /* 指定0号管脚输出为0 */
PinOUT(3, 0); /* 指定1号管脚输出为0 */
PinOUT(4, 1); /* 指定0号管脚输出为0 */
PinOUT(5, 1); /* 指定1号管脚输出为0 */
PinOUT(6, 1); /* 指定0号管脚输出为0 */
PinOUT(7, 1); /* 指定1号管脚输出为0 */
}
else if (adcvalue > duan * 2) //0就是点亮 1就是不亮 这里表示3个灯全部亮
{
PinOUT(0, 0); /* 指定0号管脚输出为0 */
PinOUT(1, 0); /* 指定1号管脚输出为0 */
PinOUT(2, 0); /* 指定0号管脚输出为0 */
PinOUT(3, 1); /* 指定1号管脚输出为0 */
PinOUT(4, 1); /* 指定0号管脚输出为0 */
PinOUT(5, 1); /* 指定1号管脚输出为0 */
PinOUT(6, 1); /* 指定0号管脚输出为0 */
PinOUT(7, 1); /* 指定1号管脚输出为0 */
}
else if (adcvalue > duan * 1) //0就是点亮 1就是不亮 这里表示2个灯全部亮
{
PinOUT(0, 0); /* 指定0号管脚输出为0 */
PinOUT(1, 0); /* 指定1号管脚输出为0 */
PinOUT(2, 1); /* 指定0号管脚输出为0 */
PinOUT(3, 1); /* 指定1号管脚输出为0 */
PinOUT(4, 1); /* 指定0号管脚输出为0 */
PinOUT(5, 1); /* 指定1号管脚输出为0 */
PinOUT(6, 1); /* 指定0号管脚输出为0 */
PinOUT(7, 1); /* 指定1号管脚输出为0 */
}
else if (adcvalue > 50) //0就是点亮 1就是不亮 这里表示1个灯全部亮
{
PinOUT(0, 0); /* 指定0号管脚输出为0 */
PinOUT(1, 1); /* 指定1号管脚输出为0 */
PinOUT(2, 1); /* 指定0号管脚输出为0 */
PinOUT(3, 1); /* 指定1号管脚输出为0 */
PinOUT(4, 1); /* 指定0号管脚输出为0 */
PinOUT(5, 1); /* 指定1号管脚输出为0 */
PinOUT(6, 1); /* 指定0号管脚输出为0 */
PinOUT(7, 1); /* 指定1号管脚输出为0 */
}
else //0就是点亮 1就是不亮 这里表示0个灯全部亮
{
PinOUT(0, 1); /* 指定0号管脚输出为0 */
PinOUT(1, 1); /* 指定1号管脚输出为0 */
PinOUT(2, 1); /* 指定0号管脚输出为0 */
PinOUT(3, 1); /* 指定1号管脚输出为0 */
PinOUT(4, 1); /* 指定0号管脚输出为0 */
PinOUT(5, 1); /* 指定1号管脚输出为0 */
PinOUT(6, 1); /* 指定0号管脚输出为0 */
PinOUT(7, 1); /* 指定1号管脚输出为0 */
}
}
}
// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
LPM0_EXIT;
}
全部的代码
cpp
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2