📄 ha0_de.c
字号:
}
void Test(uint command,uint p1,uint p2)
{
com = command;
dat1 = p1;
dat2 = p2;
ST01();
d_add = dat1;
ST01();
d_add = dat2;
ST01();
c_add = com;
} //
/*----------------- 判状态位S1,S0 函数(读写指令和读写数据状态)------------- */ //
ST01() //
{ //
do //
{ ACC=c_add;} //
while(Acc_0==0,Acc_1==0); //
} // */ //
/*----------------- 判状态位S3函数(数据自动写状态)-------------------------*/ //
ST3() //
{ //
do //
{ //
ACC=c_add; //
} //
while(Acc_3==0); //
} //
/*--------------------------西文字符写入(文本属性)函数-------------------- */ //
write_english() //
{ //
uint 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(); //
//
} //
//
/*----------------------------------初始化函数----------------------------*/ //
INT_1() //
{ //
dat1=0x00; //设文本显示区域首地址 //
dat2=0x00; //
com=0x40; //
PR1(); //
dat1=para1; //设文本显示区域宽度 //
dat2=0x00; //
com=0x41; //
PR1(); //
/* dat1=0x08; //设图形显示区域首地址 //
dat2=0x08; //
com=0x42; //
PR1(); */
w_cmd2(0x41,0x08,0x08); //
/* dat1=0x20; //设图形显示区域宽度 //
dat2=0x20; //
com=0x43; //
PR1(); */
w_cmd2(0x43,0x20,0x20); //
com=0xa0; //光标形状设置 //
PR12(); //
com=0x80; //显示方式设置逻辑"或"合成,可以使用00H-7FH内部符号 //
PR12(); //
com=0x9c; //显示开关设置 开文本和图形显示,9d 光标闪 //
PR12(); //
} //
/*-------------------------清显示函数-----------------------*/ //
CLEAR() //
{ //
uint i; //
// dat1=0x00; //
// dat2=0x00; //
// com=0x24; // 设置显示地址 //
//PR1();
// Test(0x24,0x00,0x00);
w_cmd2(0x24,0x00,0x00); //
/*com=0xb0; //设置自动写方式 //
PR12(); */
w_cmd0(0xb0); //
for(i=0;i<8200;i++) // 清8K存储器 //
{ //
ST3(); //
d_add=0x00; //
} //
//com=0xb2; // 设置自动写结束方式 //
w_cmd0(0xb2); //
} // //
/*--------------------------------汉字写入(图形方式)函数---------------*/ //
write_word_phto() //
{ //
uint 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();
w_cmd2(0x24,dat2,dat1); //
dat2=CCTAB[code_1][count1]; //
com=0xc0; //
// PR11();
w_cmd1(0xc0,dat2); //
dat2=CCTAB[code_1][count1+16];
com=0xc0;
w_cmd1(0xc0,dat2); //
// PR11(); //
j=j+i; //
} //
} //
//
/*------------------------ 汉字写入一串(图形方式)-------------------------*/ //
write_phto_str(uchar x,uchar y,uchar addr,uchar many) //
{ //
uint i; //
O_X=x; //
O_Y=y; //
code_1=addr; //
for(i=0;i<many;i++) //
{ //
write_word_phto(); //
O_X=O_X+2; //
code_1=code_1+1; //
} //
} // //
/*----------------------写入一串西文------------------------*/ //
write_english_str(uchar x,uchar y,uchar many,uchar w) //
{ // x--列 y--行 many--多少个字符 w---起始点 //
uint j; //
com=0x80; // 显示方式设置 //
PR12(); //
com=0x9c; // 显示状态设置 //
PR12(); //
O_X=x; //
O_Y=y; //
for(j=w;j<(w+many);j++) //
{ //
code_1=num[j]; //
write_english(); //
O_X++; //
} //
}
//-----------------------------------所有始化程序--------------------------------------------
void start(void)
{
EA=1; ES=1;RI=0;ET0=1;//-----开定时中断-----------
TMOD=0x22; //方式二 T1作串口通信用 T0作为计时用
TH0=0x18;
TL0=0x18;
TL1 = 0xFD;
TH1 = 0xFD;
TR0=0; //初始化时不计时
TR1=1;
RI=0;
PCON = 0x00;
SCON = 0xD8;
}
//---------------------------------------液晶显示程序---------------------------------------
void play(void)
{
write_phto_str(0x05,0x00,0x0d,10); //吉林省大学生电子竞赛
write_phto_str(0x00,0x5f,0x00,5); //显示执行时间
num[3]=Number[miao];num[2]=Number[shi_miao];//读秒,十秒
num[1]=Number[fen]; num[0]=Number[shi_fen]; //读分,十分
write_english_str(0x0a,0x0d,2,0); //分
write_phto_str(0x0d,0x5f,0x05,1); //分值
write_english_str(0x0f,0x0d,2,1); //秒
/* write_phto_str(0x12,0x5f,0x06,1); //秒值
write_phto_str(0x00,0x3f,0x07,1); // 水
write_phto_str(0x06,0x3f,0x08,1); // 重
write_phto_str(0x08,0x3f,0x04,1); // 水重__:
write_phto_str(0x00,0x4f,0x09,4); //设定值
write_phto_str(0x08,0x4f,0x04,1); //设定值__:
write_english_str(0x0a,0x09,4,4); //水重--值
write_phto_str(0x0f,0x3f,0x17,1); //克--设定值 */
if(flag)
{
write_english_str(0x0a,0x0b,4,8); //设定值--值
write_phto_str(0x0f,0x4f,0x17,1); //克--设定值
}
else
{
write_phto_str(0x0a,0x4f,0x18,3); //请输入
write_phto_str(0x10,0x4f,0x09,4); //设定值
write_phto_str(0x18,0x4f,0x1b,1); // !
}
delay(1);
}
//----------------------------------计算重量程序--------------------------------------
void make_data( uint table, uint bian_liang )//table作为存放数据数据的起始位置
{
int buf=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -