专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
求教:诺基亚5110液晶如何显示变量?
2020-01-22 12:17
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
15258
15
15
我想在诺基亚5110上显示个浮点型变量,要怎么进行转换显示呢,弄了老半天都不行,请大虾们求教……
或者有这方面资料的希望共享下,谢谢了·····
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
qinkaiabc
1楼-- · 2020-01-23 05:52
char a[10]={'0','1','2','3','4','5','6','7','8','9'};
void LCD_write_english_int(unsigned char X,unsigned char Y,char s)
{
LCD_set_XY(X,Y);
LCD_write_char(s);
}
LCD_write_english_int(0,3,a[i]);
加载中...
qqwangte
2楼-- · 2020-01-23 10:17
同求、、、楼主弄好了没?求教、、、
加载中...
fjzhangqin
3楼-- · 2020-01-23 14:04
qqwangte 发表于 2013-8-19 23:32
同求、、、楼主弄好了没?求教、、、
恩,已经调好了,就是用数组的方法。
首先设定一个数组:
uchar tempstr[7]={0x30,0x30,0x30,0x30,0x30,0x30,0x30} ; //初始化 为0;
然后对你所求的变量进行分解
例如我所求的变量为V
tempstr[0]=v/100+0x30;
tempstr[1]=v%100/10+0x30;
tempstr[2]=v%10+0x30;
显示时则调用:
LCD_write_char(tempstr[0]);
write_english_string(32,1,".");
LCD_write_char(tempstr[1]);
LCD_write_char(tempstr[2]);
write_english_string(52,1,"m/s");
以下为相关的调用函数
void LCD_write_char(uchar c) //写单个字符
{
uchar line;
c=c-32;
for(line=0;line<6;line++)
LCD_write_byte(font6x8[c][line],1);
}
void write_english_string(uchar X,uchar Y,uchar *s) //写 字符串
{
uchar i;
LCD_set_XY(X,Y);
for(i=0;i<strlen(s);i++)
{
LCD_write_char(s
);
}
}
加载中...
zbj2014cn
4楼-- · 2020-01-23 15:13
精彩回答 2 元偷偷看……
加载中...
zbj2014cn
5楼-- · 2020-01-23 18:08
而且前面的0没法消掉啊
加载中...
zbj2014cn
6楼-- · 2020-01-23 23:36
void LCD_write_count(unsigned long int count)
{
unsigned char tempstr[9]={0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30} ;
//将count送入缓冲区
tempstr[0]=count/10000000+0x30;
tempstr[1]=count%10000000/1000000+0x30;
tempstr[2]=count%10000000%1000000/100000+0x30;
tempstr[3]=count%10000000%1000000%100000/10000+0x30;
tempstr[4]=count%10000000%1000000%100000%10000/1000+0x30;
tempstr[5]=count%10000000%1000000%100000%10000%1000/100+0x30;
tempstr[6]=count%10000000%1000000%100000%10000%1000%100/10+0x30;
tempstr[7]=count%10000000%1000000%100000%10000%1000%100%10+0x30;
//判断count显示位数
if(count>10000000)
{
LCD_write_char(tempstr[0]);
LCD_write_char(tempstr[1]);
LCD_write_char(tempstr[2]);
LCD_write_char(tempstr[3]);
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((10000000>count)&&(count>=1000000))
{
LCD_write_char(tempstr[1]);
LCD_write_char(tempstr[2]);
LCD_write_char(tempstr[3]);
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((1000000>count)&&(count>=100000))
{
LCD_write_char(tempstr[2]);
LCD_write_char(tempstr[3]);
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((100000>count)&&(count>=10000))
{
LCD_write_char(tempstr[3]);
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((10000>count)&&(count>=1000))
{
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((1000>count)&&(count>=100))
{
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((100>count)&&(count>=10))
{
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else
{
LCD_write_char(tempstr[7]);
}
}
加载中...
上一页
1
2
3
下一页
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
东软载波ESF0654 PDS开发板串口USART0代码分享
1 个回答
普通32位单片机使用linux的应用代码
5 个回答
东软载波ESF0654 PDS开发板AT24C04的调试
9 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
void LCD_write_english_int(unsigned char X,unsigned char Y,char s)
{
LCD_set_XY(X,Y);
LCD_write_char(s);
}
LCD_write_english_int(0,3,a[i]);
恩,已经调好了,就是用数组的方法。
首先设定一个数组:
uchar tempstr[7]={0x30,0x30,0x30,0x30,0x30,0x30,0x30} ; //初始化 为0;
然后对你所求的变量进行分解
例如我所求的变量为V
tempstr[0]=v/100+0x30;
tempstr[1]=v%100/10+0x30;
tempstr[2]=v%10+0x30;
显示时则调用:
LCD_write_char(tempstr[0]);
write_english_string(32,1,".");
LCD_write_char(tempstr[1]);
LCD_write_char(tempstr[2]);
write_english_string(52,1,"m/s");
以下为相关的调用函数
void LCD_write_char(uchar c) //写单个字符
{
uchar line;
c=c-32;
for(line=0;line<6;line++)
LCD_write_byte(font6x8[c][line],1);
}
void write_english_string(uchar X,uchar Y,uchar *s) //写 字符串
{
uchar i;
LCD_set_XY(X,Y);
for(i=0;i<strlen(s);i++)
{
LCD_write_char(s);
}
}
{
unsigned char tempstr[9]={0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30} ;
//将count送入缓冲区
tempstr[0]=count/10000000+0x30;
tempstr[1]=count%10000000/1000000+0x30;
tempstr[2]=count%10000000%1000000/100000+0x30;
tempstr[3]=count%10000000%1000000%100000/10000+0x30;
tempstr[4]=count%10000000%1000000%100000%10000/1000+0x30;
tempstr[5]=count%10000000%1000000%100000%10000%1000/100+0x30;
tempstr[6]=count%10000000%1000000%100000%10000%1000%100/10+0x30;
tempstr[7]=count%10000000%1000000%100000%10000%1000%100%10+0x30;
//判断count显示位数
if(count>10000000)
{
LCD_write_char(tempstr[0]);
LCD_write_char(tempstr[1]);
LCD_write_char(tempstr[2]);
LCD_write_char(tempstr[3]);
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((10000000>count)&&(count>=1000000))
{
LCD_write_char(tempstr[1]);
LCD_write_char(tempstr[2]);
LCD_write_char(tempstr[3]);
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((1000000>count)&&(count>=100000))
{
LCD_write_char(tempstr[2]);
LCD_write_char(tempstr[3]);
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((100000>count)&&(count>=10000))
{
LCD_write_char(tempstr[3]);
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((10000>count)&&(count>=1000))
{
LCD_write_char(tempstr[4]);
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((1000>count)&&(count>=100))
{
LCD_write_char(tempstr[5]);
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else if((100>count)&&(count>=10))
{
LCD_write_char(tempstr[6]);
LCD_write_char(tempstr[7]);
}
else
{
LCD_write_char(tempstr[7]);
}
}
一周热门 更多>