atmega8 例程:FLASH版5110
发布时间:2020-12-15 06:54:09 所属栏目:百科 来源:网络整理
导读:今天试试把数组存到flash里,再读出来,就在原先5110的工程上进行修改,能看出来我改在哪里了吗? ? #include "includes.h"uint8 Chinese_Font[][25]PROGMEM = { /*-- 文字: 芜 --*/ /*-- 楷体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 高度不是8的倍
今天试试把数组存到flash里,再读出来,就在原先5110的工程上进行修改,能看出来我改在哪里了吗? ? #include "includes.h" uint8 Chinese_Font[][25]PROGMEM = { /*-- 文字: 芜 --*/ /*-- 楷体9; 此字体下对应的点阵为:宽x高=12x12 --*/ /*-- 高度不是8的倍数,现调整为:宽度x高度=12x16 --*/ { 0x00,0x48,0xDE,0xFE,0xF4,0x76,0x24,0x04,0x00,0x02,0x03,0x01,0x00 },………………
/*********************************************************** ** 名 称:void LCD_Write_Char(uint8 c) ** 功 能:写一个字符 ** 入口参数:c 要写入的字符 ** 出口参数:无 ** 使用说明:无 **********************************************************/ void LCD_Write_Char(uint8 c) { uint8 line = 0; c -= 32; for (line = 0; line < 6; line++) { LCD_Write_Byte(pgm_read_byte(&ASSIC_Font[c][line]),1); } }
/*********************************************************** ** 名 称:void LCD_Write_Chinese_String(uint8 X,uint8 Y,uint8 ch_with,** uint8 num,uint8 s[][],uint8 line,uint8 row) ** 功 能:向指定坐标写入中文句子 ** 入口参数:X,Y 设置的坐标 ** ch_with 汉字的宽度 ** num 汉字的数量 ** s 数组 ** line 从第几行开始 ** row 字与字间的宽度 ** 出口参数:无 ** 使用说明:无 **********************************************************/ void LCD_Write_Chinese_String(uint8 X,uint8 num,uint8 row) { uint8 i = 0; uint8 n = 0; uint8 (*catch)[25] = s; LCD_Set_XY(X,Y); /*写字符串*/ for (i = 0;i < num;) { for (n = 0; n < ch_with * 2; n++) { if (n == ch_with) { if (i == 0) { LCD_Set_XY(X,Y + 1); } else { LCD_Set_XY((X + (ch_with + row) *i),Y + 1); } } //从flash里读取数据 LCD_Write_Byte(pgm_read_byte(&catch[line + i][n] ),1); } i++; LCD_Set_XY((X + (ch_with + row) * i),Y); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |