📄 22222_fun.c
字号:
/**************************/
/* 初始化函数 */
/**************************/
INT_1()
{
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=0xa0; /*光标形状设置*/
PR12();
com=0x80; /*显示方式设置逻辑"或"合成*/
PR12();
com=0x9c; /*显示开关设置 开文本和图形显示*/
PR12();
}
/***************************/
/* 清显示函数 */
/***************************/
CLEAR()
{
unsigned int i;
dat1=0x00;
dat2=0x00;
com=0x24; /* 设置显示地址 */
PR1();
com=0xb0; /* 设置自动写方式 */
PR12();
for(i=0;i<8200;i++) /* 清8K存储器 */
{
ST3();
d_add=0x00;
}
com=0xb2; /* 设置自动写结束方式 */
PR12();
}
/**************************/
/* CGRAM函数 */
/**************************/
CGRAM()
{
unsigned int i;
dat1=0x03;
dat2=0x00;
com=0x22; /* 设置CGRAM偏置地址 */
PR1();
dat1=0x00;
dat2=0x1c;
com=0x24; /* 设置存储器地址指针 */
PR1();
com=0xb0; /* 设置自动写方式 */
PR12();
for(i=0;i<64;i++)
{
ST3();
d_add=CGTAB[i];
}
com=0xb2; /* 设置自动写结束方式 */
PR12();
}
/********************************/
/* 汉字写入(文本方式)函数 */
/********************************/
CCW1_PR()
{
unsigned int i,j;
i=para1;
j=i*O_Y+O_X;
dat1=j%256;
dat2=j/256;
com=0x24; /* 设置显示地址 */
PR1();
dat2=code_1; /* 写入左上半部汉字代码 */
com=0xc0;
PR11();
dat2=code_1+0x02; /* 写入右上半部汉字代码 */
PR11();
j=j+i;
dat1=j%256; /* 显示RAM地址修正 */
dat2=j/256;
com=0x24;
PR1();
dat2=code_1+0x01; /* 写入左下半部汉字代码 */
com=0xc0;
PR11();
dat2=code_1+0x03; /* 写入右下半部汉字代码 */
PR11();
}
/********************************/
/* 汉字写入(图形方式)函数 */
/********************************/
CCW2_PR()
{
unsigned int i,j,count1;
i=para1;
j=i*O_Y+O_X+0x0800; /* 图形显示区首地址为0x0800*/
for(count1=0;count1<16;count1++)
{
dat1=j%256; /* 显示地址设置 */
dat2=j/256;
com=0x24;
PR1();
dat2=CCTAB[code_1][count1];
com=0xc0;
PR11();
dat2=CCTAB[code_1][count1+16];
PR11();
j=j+i;
}
}
/********************************/
/* 西文字符写入(文本属性)函数 */
/********************************/
CW2_PR()
{
unsigned int i,j;
i=para1;
j=i*O_Y+O_X;
dat1=j%256;
dat2=j/256;
com=0x24; /* 显示地址设置 */
PR1();
dat2=code_1;
com=0xc4; /* 数据写 */
PR11();
dat2=0x08;
com=0x24;
PR1();
dat2=attr; /* 写入属性参数 */
com=0xc4;
PR11();
}
/****************************/
/* 绘点函数 */
/****************************/
W_DOT()
{
unsigned char i,j;
unsigned int k;
i=para1;
j=O_X%8;
O_X=O_X/8;
k=i*O_Y+O_X+0x0800;
dat1=k%256;
dat2=k/256;
com=0x24;
PR1();
j=0x07-j;
com=i|0xf8; /* 位操作 */
PR12();
}
/****************************/
/* 写指令和写数据函数 */
/****************************/
PR1() /* 双字节参数指令写入入口 */
{
ST01();
d_add=dat1; /* 取第一参数单元数据 */
PR11();
}
PR11() /* 单字节参数指令写入入口 */
{
ST01();
d_add=dat2; /* 取第二参数单元数据 */
PR12();
}
PR12() /* 无参数指令写入入口 */
{
ST01();
c_add=com; /* 写入指令代码 */
}
/************************************************/
/* 判状态位S1,S0 函数(读写指令和读写数据状态) */
/************************************************/
ST01()
{
do
{
ACC=c_add;
}
while(Acc_0==0,Acc_1==0);
}
/************************************/
/* 判状态位S2函数(数据自动读状态) */
/************************************/
ST2()
{
do
{
ACC=c_add;
}
while(Acc_2==0);
}
/************************************/
/* 判状态位S3函数(数据自动写状态) */
/************************************/
ST3()
{
do
{
ACC=c_add;
}
while(Acc_3==0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -