gpt4 book ai didi

c - 我想在 c51 (Keil) 的液晶显示器上打印一个多维字符数组

转载 作者:太空宇宙 更新时间:2023-11-04 02:51:36 27 4
gpt4 key购买 nike

(数组是用一堆字符初始化的)

当我使数组变大时,我也会收到“数据段太大”的错误消息。如何将数组从“CODE”复制到“XDATA”?或者这不是问题所在?

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

如有任何帮助,我将不胜感激。

  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
}

最佳答案

您可以像这样将变量放入 XDATA:

unsigned char xdata variable;

EDIT: Also when I call the function this way, the lcd skips element [i] [] in the array and prints the next element [i].

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

关于c - 我想在 c51 (Keil) 的液晶显示器上打印一个多维字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21588593/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com