avr 中 字符串输出函数 void LCD_write_char(unsigned char c) 如何确定字符数组中 c 的位置?

这是一个avr中字符串输出函数,输出地方为5110液晶屏。前面定义了一个font6x8(6x8像素)的字符数组。我不理解的是:字符c怎么确定是哪个字符呢?还有c-=32;... 这是一个avr 中字符串输出函数,输出地方为5110液晶屏。前面定义了一个font6x8 (6 x8像素)的字符数组。我不理解的是:字符c 怎么确定是哪个字符呢? 还有
c-=32; 是什么意思?
void LCD_write_char(unsigned char c)
{
unsigned char line;
c-=32;
for (line=0; line<6; line++)
LCD_write_byte(pgm_read_byte(font6x8+c*6+line), 1);
}
和其配套使用的是另外一个函数:
void LCD_write_String(unsigned char X,unsigned char Y,char *s)
{
LCD_set_XY(X,Y);
while (*s)
{
LCD_write_char(*s);
s++;
}
}
我不解的是:譬如说LCD_write_String(0,0,'helloworld');在应用时,h字符h怎么寻找到他在数组中的位置的?难道是ascii 中类似的自动寻找?
展开
 我来答
a1335335332
2010-12-18
知道答主
回答量:3
采纳率:0%
帮助的人:3.2万
展开全部
c-=32是ASCII码 字符前面的一些符号了.是不能显示的...有空看一下ASCII码的表就知道了,,这个函数是从第一个字符开始显示的..
liupan9999
2010-12-20 · TA获得超过551个赞
知道答主
回答量:236
采纳率:0%
帮助的人:186万
展开全部
意思是按大写输出?
因为在ASIC表中小写a刚好比大写的A多32

也有可能是如楼上所说,在ASIC表中前32个字符是不能显示的,
你的程序可能在定义的时候就将第一个字符“!”编号定义成了1,而实际上在ASIC表中“!”是第33个符号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式