求教:怎样将AD转换的二进制数据转换成十进制,用LCD1602显示?单片机C语言程序不知道怎么写...谢谢~

 我来答
百度网友c6746721f
2015-03-25 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:72
采纳率:100%
帮助的人:59.2万
展开全部
8位AD,最大255;
uchar num;
num=AD_receive();//把AD采集回来的数据保存
write_com(0x80);//1602从0x80开始显示数据
write_data(num/100+0x30); //显示字符百位,后面以此类推
write_data(num%100/10+0x30);//十位数
write_data(num%10+0x30);//个位数

至于1602的驱动程序,网上多得是,找找就有了
追问
我就是这么写的,可能是我表达的不好吧,因为我做的是烟雾报警器,所以我想把具体的浓度(0~10000ppm)显示在1602上,可是1602上显示的范围就是0~255,我试过写 num=num*10000/256;再逐位显示,可是不成...就是不懂怎么写...
追答
1602怎么可能显示那么少,是你变量数据类型设置有问题吧,要是显示10000,num数据类型设置为 unsigned int 型,0-65536,uchar 最大只到255,数据会溢出的,显示方式一样,取余和取整,每一位显示。
查晓筠0i5
2015-03-25 · TA获得超过2752个赞
知道大有可为答主
回答量:2.1万
采纳率:1%
帮助的人:4974万
展开全部
需要给你写吗
我做单片机设计的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式