本人最近刚接触1602液晶屏,学会了显示整数。但目前需要显示小数,在网上看到需要整数部分和小数部分分离,就试着做了下,但实际显示不正常。不知道是什么原因,请各位大神详细指点一下,谢谢!
附:我的LCD1602显示部分主程序:
void main(void)
{
uint temp; //存放AD转换值
long dianya;
LCD_Init();
LCD_Clear();//清屏
LCD_Write_String(0,0," Voltage Value "); //液晶第一行显示“Voltage Value ” (电压值)
while (1)
{
temp = Read_AD_Data(0x94); // 读取ADC转换值(电位器-最大4096)
dianya=5.0000*(temp/(2^12)) ; //通过计算得到电压值(根据分辨率)
LocateXY(4,1); // 定位屏幕第二行第三列
LCD_Write_Data(table[dianya/1]); //高位在前,低位在后,共5位---第1位
DelayMs(25);
LCD_Write_Data(0x2E); //液晶显示:点——“.” 0x2E为点的地址
DelayMs(25);
LCD_Write_Data(table[dianya%10000/1000]); //第2位
DelayMs(25);
LCD_Write_Data(table[dianya%10000%1000/100]); //第3位
DelayMs(25);
LCD_Write_Data(table[dianya%10000%1000%100/10]); //第4位
DelayMs(25);
LCD_Write_Data(table[dianya%10000%1000%100%10]); //第5位
DelayMs(25);
LCD_Write_Data(0x20); //液晶显示:空格——“ ” 0x20为空格的地址
DelayMs(25);
LCD_Write_Data(0x56); //液晶显示:大写字母V——“V” 0x56为V的地址
DelayMs(25);
}
}
此程序功能为:利用XPT2046 A/D转换来实现A/D值转变为电压值并在1602上显示。(使用开发板的电位器旋钮改变AD值,从而改变电压值)
注:xpt2046最大AD值为4096,,参考电压5v,转变成电压为0-5v。均以伏特(V)显示,小数组成:整数位-1位,小数位-4位。(即为:x.xxxx V)
1