OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6950|回复: 5

将数组内的数字转化为用字符串显示数字

[复制链接]

22

主题

109

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2015-5-28
在线时间
0 小时
发表于 2015-9-4 09:02:30 | 显示全部楼层 |阅读模式
先粘贴程序————(改自战舰实验13)
int main(void)
 {  
  u8 x=150;
  u8 View_Data[3]; //存放数字
  delay_init();     //延时函数初始化  
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
uart_init(115200); //串口初始化为115200
  LED_Init();     //LED端口初始化
LCD_Init();
POINT_COLOR=RED;
//sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//将LCD ID打印到lcd_id数组。
  while(1) 
{  


POINT_COLOR=RED;
   View_Data[0]=(6000/x)/100+0x30;
View_Data[1]=(6000/x)%100/10+0x30;
View_Data[2]=(6000/x)%10+0x30;

  LCD_ShowString(30,100,200,16,16,View_Data);
LCD_ShowString(30,130,200,12,12,"2014/5/4");          
delay_ms(1000);
x++;

}
首先你要明白什么事字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符

在用51和无字库的1602字符串显示数字时一般都会+0x30

ASCII产生————(百度知道)
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。

个人理解:
你要是想通过屏幕显示数字,可以直接调用显示数字的函数与显示字符串的函数。
有人会问了,直接调用显示数字的函数不就行吗?为啥还要调用显示字符串的函数,还得修改,为什么请个人说下。。
这里我也不清楚,反正我是移植51
程序,开始时候是想直接调用显示数字函数,可是不好使,不得不调用显示字符串的函数

只有将数字转化为ASCII才算做字符串,
来开始查表————(百度一下ASCII,会出现一个表格)
在表格里,0对应的是0x30,那么十以内的数字加0(0x30)不就是ASCII吗。

以上是个人理解,恳请个人前辈批评指导。


再不玩命努力,你就老了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

109

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
367
金钱
367
注册时间
2015-5-28
在线时间
0 小时
 楼主| 发表于 2015-9-4 10:30:52 | 显示全部楼层
u8 View_Data[3]={0x30,0x31,0x32}; 
while(1) 

  LCD_ShowString(30,110,200,16,16,View_Data); 
  LCD_ShowString(30,130,200,12,12,"2014/5/4"); 

这个是 论坛里的亲分享的
再不玩命努力,你就老了
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165559
金钱
165559
注册时间
2010-12-1
在线时间
2118 小时
发表于 2015-9-4 22:29:35 | 显示全部楼层
不错,谢谢分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-21 11:15:34 | 显示全部楼层
正点原子 发表于 2015-9-4 22:29
不错,谢谢分享。

你好,问一下如果是字符串数组的话该怎么显示的呢
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-21 11:16:11 | 显示全部楼层
逍遥居士_888 发表于 2015-9-4 10:30
u8 View_Data[3]={0x30,0x31,0x32}; 
while(1) 
{ 
  LCD_ShowString(30, ...

为什么要把数字转换成字符型来显示呢
回复 支持 反对

使用道具 举报

33

主题

310

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
495
金钱
495
注册时间
2016-12-31
在线时间
63 小时
发表于 2017-3-21 11:20:46 | 显示全部楼层
正点原子 发表于 2015-9-4 22:29
不错,谢谢分享。

我也有这疑问,直接调用显示数字的函数不就行吗?为啥还要调用显示字符串的函数,还得修改
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-25 03:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表