新闻中心

EEPW首页>模拟技术>设计应用> t6963c的c51程序

t6963c的c51程序

作者: 时间:2012-04-25 来源:网络 收藏
了256*256,请修改这个函数 PointX,PointY的类型
//= Mode 1:显示 0:清除该点
**********************************/
Pixel(unsigned char PointX,unsigned char PointY, bit Mode)
{
unsigned int StartAddr;
unsigned char dat;
StartAddr=(uint)PointX*30 + PointY/8 + grhome;
dat=LC_BIT_OP+7-PointY%8; //生产位操作命令画点的数据
if(Mode) dat=dat|0x08;
wr_cmd_2(LC_ADD_POS,StartAddr);//设置该点所在单元地址
wr_cmd_0(dat); // 利用位操作命令画点
}


/**********************************
//= 函数原型: void line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode)
//= 功 能: 划线函数
//= 参 数: 坐标1,坐标2,显示点或清除点
//= 返 回 值:
//= 函数性质:私有函数
//= 其它:显示点阵不超过255*255
/**********************************/

void line( unsigned char y1,unsigned char x1, unsigned char y2,unsigned char x2, bit Mode)
{
unsigned char x,y;
float k,b;
if( abs(y1-y2) = abs(x1-x2) ) // |k|=1
{
k=((float)y2-y1) / ((float)x2-x1) ;
b=y1-k*x1;
if( x1 = x2 )
{
for(x=x1;x=x2;x++)
{
y=(uchar)(k*x+b);
Pixel(x, y, Mode);
}
}
else
{
for(x=x2;x=x1;x++)
{
y=(uchar)(k*x+b);
Pixel(x, y, Mode);
}
}
}
else // abs(y1-y2) > abs(x1-x2) |K|>1
{
k=((float)x2-x1) / ((float)y2-y1) ;
b=x1-k*y1;
if( y1 = y2 )
{
for(y=y1;y=y2;y++)
{
x=(uchar)(k*y+b);
Pixel( x , y,Mode );
}
}
else
{
for(y=y2;y=y1;y++)
{
x=(uchar)(k*y+b);
Pixel( x , y,Mode );
}
}
}
}

/**********************************
//= 函数原型: void ShowChar(uchar row,uchar col,uchar ch)
//= 功 能: 在指定行列显示8*16字符
//= 参 数: 坐标行,坐标列,字符串指针
//= 返 回 值:
//= 函数性质:公有函数
//=其它:所有可显示字符不超过128个,否则本函数有溢出的可能
**********************************/
void showchar(uchar col,uchar row,uchar *chp)
{
#define hzp chp
uchar char_sequence_number;
uchar ascii_num;
row/=8;col/=8;
while (*chp != '')
{
if (*chp0x80)//西文
{
for (char_sequence_number=0;ASCII_SUB_INDEX[char_sequence_number]!='';char_sequence_number++)
{
if (ASCII_SUB_INDEX[char_sequence_number]==*chp)
{
chp++;
break;
}

}
if(ASCII_SUB_INDEX[char_sequence_number]==''){chp++;char_sequence_number=1;}

char_sequence_number*=2;//一个ASCII字符占两个8*8字符
//写字符上半部分
char_addr_Pointer_Set(row,col);//设置Vram地址
wr_data(char_sequence_number); //写数据
wr_cmd_0(LC_UNCHANGED_WR); //写命令

//写字符下半部分
row+=1;//下半部分在下一行

char_addr_Pointer_Set(row,col);//设置Vram地址
wr_data(char_sequence_number+1); //写数据
wr_cmd_0(LC_UNCHANGED_WR); //写命令



关键词:t6963cc51程序

评论


相关推荐

技术专区

关闭