📄 t6963.txt
字号:
/************************************/
void ST3(void)
{
do
{
ACC=LCMCW;
}
while(ACC_3==0);
}
/**************************/
/* 初始化子程序 */
/**************************/
void chushi_1(void)
{
dat1=0x00; /*设文本显示区域首地址*/
dat2=0x00;
com=0x40;
PR1();
dat1=para1; /* 设文本显示区域宽度 */
dat2=0x00;
com=0x41;
PR1();
dat1=0x00; /*设图形显示区域首地址*/
dat2=0x08;
com=0x42;
PR1();
dat1=para1; /*设图形显示区域宽度*/
dat2=0x00;
com=0x43;
PR1();
com=0xa7; /*光标形状设置*/
PR12();
com=0x80; /*显示方式设置逻辑"或"合成*/
PR12();
com=0x9c; /*显示开关设置 开文本和图形显示*/
PR12();
}
/***************************/
/* 清显示子程序 */
/***************************/
void CLEAR(void)
{
unsigned char i,j;
dat1=0x00;
dat2=0x00;
com=0x24;
PR1();
com=0xb0;
PR12();
for(i=0;i<205;i++) /* 205 */
{
for(j=0;j<=40;j++) /* 40 */
{
ST3();
LCMDW=0x00;
}
}
com=0xb2;
PR12();
}
/********************************/
/* 16点阵汉字写入(图形方式)子程序 */
/********************************/
void CCW2_PR(uchar x1)
{ unsigned char i,count1;
unsigned int j;
i=para1;
j=i*O_Y+O_X+0x0800;
for(count1=0;count1<32;count1=count1+2)
{
dat1=j%256;
dat2=j/256;
com=0x24;
PR1();
dat2=CCTAB[code_1][count1];
com=0xc0;
if(x1==0)
{dat2=~dat2;}
PR11();
dat2=CCTAB[code_1][count1+1];
if(x1==0)
{dat2=~dat2;}
PR11();
j=j+i;
}
}
//***************************
/*32*32汉字写入方法*/
//***************************
void CCW2_BIG(uchar x1)
{
unsigned char i,count1;
unsigned int j;
i=para1;
j=i*O_Y+O_X+0x0800;
for(count1=0;count1<128;count1=count1+4)
{
dat1=j%256;
dat2=j/256;
com=0x24;
PR1();
dat2=ccbig[code_1][count1];
com=0xc0;
if(x1==0)
{dat2=~dat2;}
PR11();
dat2=ccbig[code_1][count1+1];
if(x1==0)
{dat2=~dat2;}
PR11();
dat2=ccbig[code_1][count1+2];
com=0xc0;
if(x1==0)
{dat2=~dat2;}
PR11();
dat2=ccbig[code_1][count1+3];
if(x1==0)
{dat2=~dat2;}
PR11();
j=j+i;
}
}
void CCW2_Num(uchar x1)
{ unsigned char i,count1;
unsigned int j;
i=para1;
PR1();
j=i*O_Y+O_X+0x0800;
for(count1=0;count1<16;count1++)
{
dat1=j%256;
dat2=j/256;
com=0x24;
PR1();
dat2=CCNum[code_1][count1];
com=0xc4;
if(x1==0)
{dat2=~dat2;}
PR11();
j=j+i;
}
}
void W_DOT(unsigned char x,unsigned char y) //画点
{
unsigned char i,j;
unsigned int a;
i=para1;
j=x%8;
x=x/8;
a=i*y+x+0x0800;
dat1=a%256;
dat2=a/256;
com=0x24;
PR1();
j=0x07-j;
com=j|0xf8;
PR12();
}
//画各种直线(包括斜线) x为横坐标0~240(F0),Y为纵坐标128(80)
void Line(unsigned char x1,unsigned char y1,unsigned char x2,unsigned char y2)
{
uchar i,x,y,width,height,temp;
unsigned int temp1;
if((x1==x2)||(y1==y2))
{
if(x2<x1)
{temp=x1;x1=x2;x2=temp;}
if(y2<y1)
{temp=y1;y1=y2;y2=temp;}
for(i=x1;i<=x2;i++)
W_DOT(i,y1);
for(i=y1;i<=y2;i++)
W_DOT(x1,i);
}
else
{
if(x2>x1)
width=x2-x1;
else
width=x1-x2;
if(y2>y1)
height=y2-y1;
else
height=y1-y2;
if(width>height)
{
for(i=0;i<=width;i++)
{
if(x2>x1)
x=x1+i;
else
x=x1-i;
temp1=(int)height*(int)i/(int)width;
y=temp1%256;
if(y2>y1)
y=y+y1;
else
y=y1-y;
W_DOT(x,y);
}
}
else
{
for(i=0;i<=height;i++)
{
if(y2>y1)
y=y1+i;
else
y=y1-i;
temp1=(int)width*(int)i/(int)height;
x=temp1%256;
if(x2>x1)
x=x+x1;
else
x=x1-x;
W_DOT(x,y);
}
}
}
}
void main()
{ uchar i;
P0=0xf0;
P2=0x00;
chushi_1();
CLEAR();
Line(52,24,80,80);
O_Y=0;
for(i=0;i<9;i++)
{ CCW2_PR(1);
code_1=i;
O_X=i*2;
}
while(1)
{ ; }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -