有人能解释一下每一行程序的意思吗

/********************************************************************

  • 名称 : write_sfm2(uchar hang,uchar add,uchar date)

  • 功能 : 显示2位十进制数,如果要让第一行,第五个字符开始显示"23" ,调用该函数如下

        write_sfm1(1,5,23)
    
  • 输入 : 行,列,需要输入1602的数据

  • 输出 : 无

  • **********************************************************************/
    void write_sfm2(uchar hang,uchar add,uint date)
    {
    if(hang==1)

       write_com(0x80+add);
    

    else

       write_com(0x80+0x40+add);
    

    write_data(0x30+date/10);

    write_data(0x30+date%10);    
    

    }

write_com()不清楚是干嘛的,从代码来看的话,其他行的地址跟第一行的区别在于一个0x40
write_data()中0x30也不清楚干嘛的,data/10是取十位,data%10是取个位