附 录 附录一:
/********************************************************************
* 名称 : delay_uint() * 功能 : 小延时。 * 输入 : 无 * 输出 : 无
****************************************************************/ void delay_uint(uint q) { }
/**************************************************************** * 名称 : write_com(uchar com) * 功能 : 1602命令函数 * 输入 : 输入的命令值 * 输出 : 无
****************************************************************/ void write_com(uchar com) {
while(q--);
e=0;
10
}
rs=0; rw=0; P0=com; delay_uint(25); e=1;
delay_uint(100); e=0;
/**************************************************************** * 名称 : write_data(uchar dat) * 功能 : 1602写数据函数 * 输入 : 需要写入1602的数据 * 输出 : 无
****************************************************************/ void write_data(uchar dat) {
e=0; rs=1; rw=0; P0=dat; delay_uint(25); e=1;
11
}
delay_uint(100); e=0;
/**************************************************************** * 名称 : write_string(uchar hang,uchar add,uchar *p)
* 功能 : 修改显示器中某位数的数值,比如要让第二行行,第四个字符最初的显示\,调用该函数如下
write_string(1,5,\
* 输入 : 行,列,需要输入1602的数据 * 输出 : 无
****************************************************************/ void write_string(uchar hang,uchar add,uchar *p) {
if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
while(1) {
if(*p == '\\0') break; write_data(*p); p++;
12
}
}
/****************lcd1602上显示两位十进制数*********************/ void write_sfm2(uchar hang,uchar add,uint date) { }
/*******************lcd1602上显示1位十进制数*******************/ void write_sfm1(uchar hang,uchar add,uint date) { }
/****************lcd1602上显示3位十进制数**********************/
if(hang==1)
write_com(0x80+add); if(hang==1)
write_com(0x80+add);
else
write_com(0x80+0x40+add);
write_data(table_num[date/10]); write_data(table_num[date]);
else
write_com(0x80+0x40+add);
write_data(table_num[date]);
13
相关推荐: