求助51单片机LCD1602数字显示的问题
											
程序代码:
#include<stc15.h>
#include<intrins.h>
#include<gpio.h>
#define uchar unsigned char
#define uint  unsigned int
#include<lcd1602.h>
//uint m,f,s;     //秒、分、时
uint m1,m2;     //秒的个位、十位
uint f1,f2;     
uint s1,s2;
uint aa;
uchar dis1[]={0x30,0x30,0x3a,0x30,0x30,0x3a,0x30,0x30};
uint i;
void Delay1ms()        //@11.0592MHz
{
    unsigned char i, j;
    _nop_();
    _nop_();
    _nop_();
    i = 11;
    j = 190;
    do
    {
        while (--j);
    } while (--i);
}
void Delayxms(uint x)
{
    uint i;
    for(i=0;i<x;i++)
    {
        Delay1ms();
    }
}
 void init()
{
    TMOD=0x01;                //计数器T0计数
    TH0=(65536-50000)/256;    //设置T0  50ms定时的初始值
    TL0=(65536-50000)%256;
    EA=1;                    //开放CPU中断
    ET0=1;                    //允许外部中断
    TR0=1;                    //定时器开始计时
    aa=0;
    m1=0;
}
void timer0() interrupt 1
{
    TH0=(65536-50000)/256; //每50MS产生一次中断,给寄存器装初值并累加aa
    TL0=(65536-50000)%256;
    aa++;
}
void time_add()
{
    /*m1=0,m2=0,f1=0,f2=0,s1=0,s2=0;
    lcd_data(0x30+0x30+0x3a+0x30+0x30+0x3a+0x30+0x30);*/
    if(aa==20)
    {
        aa=0;
        m1++;
        if(m1>9)
        {
            m1=0;
            m2++;
            if(m2>5)
            {
                m2=0;
                f1++;
                if(f1>9)
                {
                    f1=0;
                    f2++;
                    if(f2>5)
                    {
                        f2=0;
                        s1++;
                        if(s1>9)
                        {
                            s1=0;
                            s2++;
                            if(s2>5)
                            {
                                m1=0;
                                m2=0;
                                f1=0;
                                f2=0;
                                s1=0;
                                s2=0;
                            }
                        }
                    }
                }
            }
        }
    }
}
void main()
{
    gpio();
    lcd_init();      //初始化
    Delayxms(20);
    m1=0,m2=0,f1=0,f2=0,s1=0,s2=0;
    init();      //定时器
    while(1)
    {
        time_add();
        dis1[7]=m1+'0';
        dis1[6]=m2+'0';
        dis1[4]=f1+'0';
        dis1[3]=f2+'0';
        dis1[1]=s1+'0';
        dis1[0]=s2+'0';
        i=0;
        while(i<8)
        {
            lcd_start(4+i);
            lcd_data(dis1[i]);
            i++;
        }
    }
}请问红色部分的代码是怎么回事?是加上'0'就能将数字转换成ASCII码了吗?



											
	    

	


											