首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想用c51 (Keil)在液晶屏上打印多维字符数组。

我想用c51 (Keil)在液晶屏上打印多维字符数组。
EN

Stack Overflow用户
提问于 2014-02-06 05:11:21
回答 2查看 1.1K关注 0票数 1

(数组由一串字符初始化)

当我使数组变得更大时,我也收到一个错误,说“数据段太大”。如何将数组从"CODE“复制到"XDATA"?或者这不是问题所在?

编辑:同样,当我以这种方式调用函数时,lcd跳过数组中的元素i,并打印下一个元素i。

任何帮助我都将不胜感激。

代码语言:javascript
复制
  unsigned char piece [4] [8];   
  lcd_msg_write(piece[0]);  //rank     
  lcd_write(SecondLine);    
  lcd_msg_write(piece[1]);    
  lcd_write(SecondLine);    
  lcd_msg_write(piece[2]);  
  lcd_write(SecondLine);    
  lcd_msg_write(piece[3]);    
  lcd_write(SecondLine);

void lcd_msg_write(char * ptr2) 
{ 
   int x; 
   RS = 1;    
   for (x=0; x<8;x++)    
        lcd_write(*ptr2++);    //write till end of string reached 
   RS = 0;   
}

void lcd_write(unsigned char display_data)//LCD 1 {    
   EN = 1;    
   P0 = display_data;    
   EN = 0;    
   delay_5msec();   //delay to allow write operation to complete    
}
EN

回答 2

Stack Overflow用户

发布于 2014-02-06 06:23:02

您可以将变量放入扩展数据,如下所示:

代码语言:javascript
复制
unsigned char xdata variable;

lcd :同样,当我以这种方式调用函数时,

跳过数组中的元素i并打印下一个元素i。

如果我理解正确的话,我想你的数组里面有一些像0这样的值,这就是为什么它可以跳过它。如果您显示真实的输出(以文本形式),我可以告诉您更多信息。但至于代码的正确性,一切都没问题。它也可以是LCD的字符表,因此您写入了一些LCD不支持或不知道的错误字符。

票数 1
EN

Stack Overflow用户

发布于 2014-05-13 18:48:41

我认为问题是由于char *ptr2.尝试无符号的char *而不是char *

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21588593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档