[mw_shl_code=c,true]//显示数字/字母/汉字 
//12*24 ZF_12 
//24*24 ZF_24 
//16*32 ZF_16 
//32*32 ZF_32 
void LCD_WX(u8 m,u16 x,u16 y,u16 cr,u8 a,u8 b,u8 c) 
{ 
        u8 i,j,k,CH,CL; 
        switch(m) 
                { 
                case ZF_12 : LCD_SetWindows(x,y,x+11,y+23);break; 
                case ZF_16 : LCD_SetWindows(x,y,x+15,y+31);break; 
                case ZF_24 : LCD_SetWindows(x,y,x+23,y+23);break; 
                case ZF_32 : LCD_SetWindows(x,y,x+31,y+31);break; 
                default : return; 
                } 
        LCD_RS=1; 
        F_CS=0; 
        CH=cr>>8; 
        CL=cr; 
        SPDAT=0x03; 
        while(SPSTAT<0x80); 
        SPSTAT=0xFF;   
        SPDAT=a; 
        while(SPSTAT<0x80); 
        SPSTAT=0xFF; 
        SPDAT=b; 
        while(SPSTAT<0x80); 
        SPSTAT=0xFF; 
        SPDAT=c; 
        while(SPSTAT<0x80); 
        SPSTAT=0xFF; 
                SPDAT=0; 
                while(SPSTAT<0x80); 
                SPSTAT=0xFF; 
        for(i=0;i<m;i++) 
                {         
                k=SPDAT; 
                SPDAT=0; 
                for(j=0;j<8;j++) 
                        { 
                        if(k&0x80) 
                                { 
                                LCD_H=0; 
                                LCD_L=0; 
                                } 
                        else 
                                { 
                                LCD_H=CH; 
                                LCD_L=CL; 
                                } 
                        k<<=1; 
                        LCD_WR=0; 
                        LCD_WR=1; 
                        } 
                } 
                SPSTAT=0xFF; 
                F_CS=1; 
} 
//输入一个数字,返回尾部横坐标 
//自动消隐,ch=1,带小数点 
//X,Y,起始坐标值 
u16 LCD_WS(u8 m,u16 x,u16 y,u16 cr,u16 dat,bit ch)        //输入一个数字,返回尾部横坐标 
{ 
        u16 i; 
        i=x; 
        if(dat>5000)return 0; 
        if(dat>999)i=LCD_ZF(m,i,y,cr,dat/1000); 
        if(dat>99)i=LCD_ZF(m,i,y,cr,(dat%1000)/100); 
        i=LCD_ZF(m,i,y,cr,(dat%100)/10); 
        if(ch)i=LCD_ZF(m,i,y,cr,mm_dg); 
        i=LCD_ZF(m,i,y,cr,dat%10); 
        return i; 
} 
u16 LCD_ZF(u8 m,u16 x,u16 y,u16 cr,u16 dat)        //显示字符函数 
{ 
        u16 i; 
        u8 a,b,c; 
        a=0x13; 
        switch(m) 
                { 
                case ZF_12 : i=15620+dat*ZF_12;break; 
                case ZF_16 : i=14916+dat*ZF_16;break; 
                case ZF_24 : i=16268+dat*ZF_24;break; 
                case ZF_32 : i=50380+dat*ZF_32;a=0x1a;break; 
                default : return 0; 
                } 
        b=i>>8; 
        c=i; 
        LCD_WX(m,x,y,cr,a,b,c); 
        switch(m) 
                { 
                case ZF_12 : return (x+12); 
                case ZF_16 : return (x+16); 
                case ZF_24 : return (x+24); 
                case ZF_32 : return (x+32); 
                } 
}[/mw_shl_code] 
 |