功能
讀取P1.4電壓,顯示到口袋板顯示屏,電壓越高亮燈越多。
部分程序
while (1){ADC10CTL0 |= ENC + ADC10SC; // Sampling and conversion startLPM0;adcvalue = ADC10MEM; //原始數據 0到1023adtest = (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;
}
全部的代碼
https://docs.qq.com/sheet/DUEdqZ2lmbmR6UVdU?tab=BB08J2