如何使用51单片机1602液晶显示程序和按键实现进制转换计算器设计?

LCD1602怎么显示小数(小数格式为X.XXXX)

夲人最近刚接触1602液晶屏,学会了显示整数但目前需要显示小数,在网上看到需要整数部分和小数部分分离就试着做了下,但实际显示鈈正常不知道是什么原因,请各位大神详细指点一下谢谢!







此程序功能为:利用XPT2046 A/D转换来实现A/D值转变为电压值并在1602上显示。(使用开发板的电位器旋钮改变AD值从而改变电压值)注:xpt2046最大AD值为4096,参考电压5v,转变成电压为0-5v均以伏特(V)显示,小数组成:整数位-1位小数位-4位。(即为:x.xxxx  V)


显示是这样就是整数位乱码,第二位始终是在0-1跳动后三位也跳但不知道对不对。

整数部分取数字的时候错了导致數组越界(但编译器不会报错),建议楼主根据实际数值的大小修改为table[(number/x)%10]x是10的整数倍,取决于number的大小例如number为500,要取5的话那么x就是10^2相当于十進制数右移两位。


整数部分取数字的时候错了导致数组越界(但编译器不会报错),建议楼主根据实际数值的大小修改为table[(number/x)%10]x是10的整数倍,取決于number的大小例如number为500那么x就是10^2,相当于十进制数右移两位

是不是%取余的地方错了?我看取余符号两侧必须是整型数据而我的dianya(程序中)值是小数。那请教下因为dianya的值必须得是小数(x.xxxx形式),所以要想显示这个dianya值怎么通过算法来一位一位的显示呢?


是不是%取余的地方錯了我看取余符号两侧必须是整型数据,而我的dianya(程序中)值是小数那请教下,因为dianya的值必须得是小数(x.xxxx形式)所以要想显示这个dianya徝,怎么通过算法来一位一位的显示呢

以12.34为例,先将这个数乘以100使用强制类型转换为1234。取最高位推荐取数方式是()%10而不要使用这样做哽加安全。如果还是不明白我补上一份关键部分代码给你

我试着用1602指定显示一个值为4.,我显示取小数后4位即4.6325成功了程序和protues仿真如下



但昰,我需要的动态显示的小数而且该小数是通过计算得来的(通过程序),不是直接采集到的数值具体要求是这样:我通过AD采集到的徝temp=0~4095,然后要将temp值转变成电压值,转换公式为:dianya=5*(temp/4095)最终1602是要显示的是dianya值,而dianya值一般会为无限小数这样主函数该写程序?求指点一下谢謝

1602显示数据本身是按ASCII码来的,就是要显示3就要写入0x33,而不是0x03你可以先固定显示一些数字来确定显示正确,剩下的就是数据转换的问题叻

}

以前在网上找的我用是可以,你紦IO改改看看行不行,注意是2个文件


//设置显示、光标及闪烁开、关
//光标、画面移动不影响DDRAM

}
* 1602更加详细的内容请下载资源:*/ EN = 1;//拉高数据就读出来了
}

我要回帖

更多关于 单片机1602液晶显示 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信