t6963c的c51程序

时间:2012-04-25来源:网络
BR> row/=8;col/=8;
dat=0;//不反显数据
if (attribute)dat=0xff;//反显数据
for(i=0;in;i++)
{
// for(line=0;line16;line++)
for(line=1;line15;line++)
{

Addr=(uint)(row*8+line)*30 + col+i+grhome;//一row占8line,一line30个字节.一列1字节图
wr_cmd_2(LC_ADD_POS,Addr);//设置白线开始地址
wr_data(dat);//画一条白线
wr_cmd_0(LC_UNCHANGED_WR);
}
}
}
/**********************************
//= 函数原型: void fill_CGRAM(void)
//= 功 能: 填充CGRAM数据
//= 参 数:
//= 返 回 值:
//= 函数性质:私有函数
**********************************/
void fill_CGRAM(void)
{
uint i,char_sequence_number;
uint hz_adder;
uchar code *p;
//处理ASCII点阵
for (char_sequence_number=0;ASCII_SUB_INDEX[char_sequence_number]!='';char_sequence_number++)
{
for(i=0;ASCII_LIB_INDEX[i]!='';i++)//从总表中定位要显示字符的位置
{
if (ASCII_SUB_INDEX[char_sequence_number]==ASCII_LIB_INDEX[i])
{
break;
}
}

if(ASCII_LIB_INDEX[i]==''){i=1;}//字符不存在,则装载第一字符,非0个

i=i*16;//每个ASCII字符16个字节
p = ASCII_DOT_LIB[i];

wr_cmd_2(LC_ADD_POS,CGRAMSTART+char_sequence_number*16);//设置CGRAM开始地址
wr_cmd_0(LC_AUT_WR);
for(i=0;i16;i++)
{
awr_data(*p++); // 写数据
}
wr_cmd_0(LC_AUT_OVR); // 自动写结束
}

hz_adder = CGRAMSTART+char_sequence_number*16;
//处理汉字点阵
for (char_sequence_number=0;HZ_SUB_INDEX[char_sequence_number]!='';char_sequence_number+=2)
{
for(i=0;HZ_LIB_INDEX[i]!='';i+=2)//从总表中定位要显示字符的位置
{
if ((HZ_SUB_INDEX[char_sequence_number]==HZ_LIB_INDEX[i])(HZ_SUB_INDEX[char_sequence_number+1]==HZ_LIB_INDEX[i+1]))
{
break;
}
}
if(HZ_LIB_INDEX[i]==''){i=0;}
i=i*16;//每个hz占32个字节
p = HZ_DOT_LIB[i];

wr_cmd_2(LC_ADD_POS,hz_adder+char_sequence_number*16);//设置CGRAM开始地址
wr_cmd_0(LC_AUT_WR);
for(i=0;i32;i++)
{
awr_data(*p++); // 写数据
}
wr_cmd_0(LC_AUT_OVR); // 自动写结束
}
}

1 2 3 4 5

关键词: t6963c c51程序

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版