打印

一个指针问题求助

[复制链接]
1533|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liu1028tao|  楼主 | 2014-1-10 23:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define DATA P0
unsigned char Font8x16[][16]={
{字模},
{字模},//这些字模是所有的ASCII码,并按照ASCII的顺序排放的,
};
unsigned char clor[7]={七种颜色的编码};
/**********************************************************
字符显示子函数
**********************************************************/
void LCD_ShowChar(uchar x,uchar y,uint For_color,uint Bk_color, char ch)
{
uchar temp;
uchar pos,t;

LCD_SetRamAddr(x,x+7, y,y+15);//8*16字模
ch = ch-32; //按照ASCII编码顺序的到相应字母的编码
for(pos=0;pos<16;pos++)
{
temp= Font8x16[ch][pos];

for(t=0;t<8;t++)
{
if(temp&0x80)
LCD_Wirte_Data16(For_color); //textcolor
else
LCD_Wirte_Data16(Bk_color); //backcolor
temp<<=1;
}

}
}
/**********************************************************
显示字符串子函数
x,y:起点坐标
*p:字符串起始地址
**********************************************************/
void LCD_ShowString(uchar x,uchar y,uint For_color,uint Bk_color,char *p)
{
while(*p!='\0')
{
LCD_ShowChar(x,y,For_color,Bk_color,*p);
x+=8;
p++;
}
}
/**********************************************************
写命令与数据子函数
**********************************************************/
void LCD_Write(uchar type, uint value)
{
LCD_CS = 0;//液晶的片选端
LCD_RS = type; // 0: command 1: data

LCD_WR = 0;液晶写信号端
DATA = (uchar)value;;
LCD_WR = 1;//上上升沿读取信号
LCD_CS = 1;
}
/**********************************************************
写16位数据子函数
**********************************************************/
void LCD_Wirte_Data16(uint value) // color data
{
LCD_CS = 0;
LCD_RS = 1;
LCD_WR = 0;
DATA = (uchar)value;
LCD_WR = 1;
LCD_WR = 0;
DATA = (uchar)(value>>8) ;
LCD_WR = 1;
LCD_CS = 1;
}
/*********************************************************
写寄存器子函数
**********************************************************/
void Reg_Write(uint reg,uint value)
{
LCD_Write(TYPE_LCD_COMMAND,reg);
LCD_Write(TYPE_LCD_DATA,value);
}
/**********************************************************
设置显示窗口子函数
**********************************************************/
void LCD_SetRamAddr(uint xStart, uint xEnd, uint yStart, uint yEnd)
{
Reg_Write(0x09, xStart);
Reg_Write(0x10,yStart);
Reg_Write(0x11,xEnd);
Reg_Write(0x12,yEnd);
Reg_Write(0x18, xStart);
Reg_Write(0x19, yStart);
LCD_Write(TYPE_LCD_COMMAND,0x22); // 0x22
}
main()

//手机发帖,液晶的初始化部分略过
LCD_ShowString(10,u20,color[2],color[3],”mydigit012345”);//疑问在这里,为什么这里写入一组字符串它能显示出来呢?我的屏又没有字库,这个字符串和unsigned char Font8x16[][16]这个数组有什么对应关系呢?
while(1);

相关帖子

沙发
dragon_hn| | 2014-1-13 10:43 | 只看该作者
Font8x16就是字库

使用特权

评论回复
板凳
戈卫东| | 2014-1-13 11:57 | 只看该作者
你的程序你自己都完全不看么?别人给你解答仍然是程序,你不看不是仍然无法理解么?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

40

帖子

0

粉丝