⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd1.c

📁 我在公司做的基于430F206的互感器现场效验仪
💻 C
📖 第 1 页 / 共 3 页
字号:
                }
                                              
        else                                              
                {
                        Dis_Data[Counter+1]='+';
                        Dis_Data[Counter+2]='0';
                        Dis_Data[Counter+3]='0';
                }
                
        for (Counter=0;Counter<Dot_Bit+6;Counter++)
                Lcd_Character(Row,Column++,Dis_Data[Counter]);
                
}

/*==============================================*/

/************************************************/
/*                                              */
/*      Lcd_Int:        显示整型数子程序        */
/*                      (8x8点阵)              */
/*      Row:    行坐标<0-29(240/8-1)>           */
/*      Column: 列坐标<0-39(320/8-1)>           */
/*      Int_Data:       实型数                  */
/*                                              */
/************************************************/

void    Lcd_Int(unsigned int Row,unsigned int Column,long int Int_Data)
{
        int     Dis_Data[15];   /*      Int Max(16Bit)=32768    */
        int     Counter=1;
        long int        temp;  
        
        if (Int_Data<0)
                {
                        Int_Data=-1*Int_Data;
                        Dis_Data[0]='-';
                        Counter=1;
                }       
        else if(Int_Data>0)
                {
                        Dis_Data[0]=' ';
                        Counter=1;
                }
        else
                {
                        Dis_Data[0]=' ';
                        Dis_Data[1]='0';
                        Counter=2;
                }
        for (;Int_Data>0;Counter++)
                {
                        temp=Int_Data;
                        Int_Data=Int_Data/10;
                        Dis_Data[Counter]=0x30+(temp-Int_Data*10);
                }
                                                                 
        Lcd_Character(Row,Column,Dis_Data[0]);
        for (;Counter>1;Counter--)
                {
                        Lcd_Character(Row,++Column,Dis_Data[Counter-1]);
                }       
}               

/*==============================================*/

/************************************************/
/*                                              */
/*      Lcd_Real8x16:   显示实型数子程序        */
/*                      (8x16点阵)             */
/*      Row:    行坐标<0-29(240/8-1)>           */
/*      Column: 列坐标<0-39(320/8-1)>           */
/*      Real_Data:      实型数                  */
/*      Dot_Bit:        显示有效位数            */
/*                                              */
/************************************************/

void    Lcd_Real8x16(unsigned int Row,unsigned int Column,double Real_Data,unsigned int Dot_Bit,unsigned int Flag)
{

        int     Dis_Data[20];
        int     Counter=1;
        int     Dot_Flag=0;
        pointer *Data_Add;

        if (Real_Data<0)        
                {
                        Dis_Data[0]='-';
                        Real_Data=fabs(Real_Data);
                }
        else    Dis_Data[0]=' ';

        while (Real_Data>=10.0)
                {
                        Real_Data=Real_Data/10.0;
                        Dot_Flag++;
                        Counter=1;
                }

        while (Real_Data<1)
                {                    
                        Real_Data=Real_Data*10.0;
                        Dis_Data[1]='0';
                        Dis_Data[2]='.';
                        Counter=3-Dot_Flag;
                        Dis_Data[Counter]='0';
                        Dot_Flag--;
                }


        for (Counter=Counter;Counter<=(Dot_Bit+1);Counter++)
                {       
                        Dis_Data[Counter]=(int)Real_Data+0x30;
                        Real_Data=(Real_Data-(Dis_Data[Counter]-0x30))*10.0;
                        if (Dot_Flag==0)
                                {
                                        Counter=Counter+1;
                                        Dis_Data[Counter]='.';
                                }
                        Dot_Flag--;
                }

                
        for (Counter=0;Counter<Dot_Bit+2;Counter++)
                {
                        Data_Add=Ascii+((Dis_Data[Counter]-0x20)<<4);
                        Lcd_Cctw(Row,Column,8,16,Data_Add,Flag);           
                        Column++;
                }
                
}

/*==============================================*/

/************************************************/
/*                                              */
/*      Lcd_Exp8x16:    科学计数法显示实型数    */
/*                      子程序(8x16点阵)        */
/*      Row:    行坐标<0-29(240/8-1)>           */
/*      Column: 列坐标<0-39(320/8-1)>           */
/*      Real_Data:      实型数                  */
/*      Dot_Bit:        显示有效位数            */
/*                                              */
/************************************************/

void    Lcd_Exp8x16(unsigned int Row,unsigned int Column,double Real_Data,unsigned int Dot_Bit,unsigned int Flag)
{
        int     Dis_Data[20];
        int     Counter=1;
        int     Dot_Flag=0;
        pointer *Data_Add;
        

        if (Real_Data<0)        
                {
                        Dis_Data[0]='-';
                        Real_Data=fabs(Real_Data);
                }
        else    Dis_Data[0]=' ';

        while (Real_Data>=10.0)
                {
                        Real_Data=Real_Data/10.0;
                        Dot_Flag++;
                }

        while (Real_Data<1)
                {                    
                        Real_Data=Real_Data*10.0;
                        Dot_Flag--;
                }

                        
                

        for (Counter=1;Counter<=(Dot_Bit+1);Counter++)
                {       
                        Dis_Data[Counter]=(int)Real_Data+0x30;
                        Real_Data=(Real_Data-(Dis_Data[Counter]-0x30))*10.0;
                        if (Counter==1)
                                {
                                        Counter=Counter+1;
                                        Dis_Data[Counter]='.';
                                }
                }                        


        Dis_Data[Counter]='e';
        if (Dot_Flag<0) 
                {
                        Dot_Flag=-1*Dot_Flag;
                        Dis_Data[Counter+1]='-';
                        Dis_Data[Counter+2]=Dot_Flag/10+0x30;
                        Dis_Data[Counter+3]=Dot_Flag-(Dot_Flag/10*10)+0x30;
                }
        else    if (Dot_Flag>0) 
                {
                        Dis_Data[Counter+1]='+';
                        Dis_Data[Counter+2]=Dot_Flag/10+0x30;
                        Dis_Data[Counter+3]=Dot_Flag-(Dot_Flag/10*10)+0x30;
                }
                                              
        else                                              
                {
                        Dis_Data[Counter+1]='+';
                        Dis_Data[Counter+2]='0';
                        Dis_Data[Counter+3]='0';
                }
                
        for (Counter=0;Counter<Dot_Bit+6;Counter++)
                {
                        Data_Add=Ascii+((Dis_Data[Counter]-0x20)<<4);
                        Lcd_Cctw(Row,Column,8,16,Data_Add,Flag);           
                        Column++;
                }
                
}

/*==============================================*/

/************************************************/
/*                                              */
/*      Lcd_Int8x16:    显示整型数子程序        */
/*                      (8x8点阵)              */
/*      Row:    行坐标<0-29(240/8-1)>           */
/*      Column: 列坐标<0-39(320/8-1)>           */
/*      Int_Data:       实型数                  */
/*                                              */
/************************************************/

void    Lcd_Int8x16(unsigned int Row,unsigned int Column,long int Int_Data,unsigned int Flag)
{
        int     Dis_Data[15];   /*      Int Max(16Bit)=32768    */
        int     Counter=1;
        long int        temp;  
        pointer *Data_Add;
        
        if (Int_Data<0)
                {
                        Int_Data=-1*Int_Data;
                        Dis_Data[0]='-';
                        Counter=1;
                }       
        else if(Int_Data>0)
                {
                        Dis_Data[0]=' ';
                        Counter=1;
                }
        else
                {
                        Dis_Data[0]=' ';
                        Dis_Data[1]='0';
                        Counter=2;
                }
        for (;Int_Data>0;Counter++)
                {
                        temp=Int_Data;
                        Int_Data=Int_Data/10;
                        Dis_Data[Counter]=0x30+(temp-Int_Data*10);
                }
                                                                 
        Data_Add=Ascii+((Dis_Data[0]-0x20)<<4);
        Lcd_Cctw(Row,Column++,8,16,Data_Add,Flag);           

        for (;Counter>1;Counter--)
                {
                        Data_Add=Ascii+((Dis_Data[Counter-1]-0x20)<<4);
                        Lcd_Cctw(Row,Column,8,16,Data_Add,Flag);           
                        Column++;
                }       
}               

        /*输出8x16点阵字符*/
void    Lcd_Out8x16(unsigned int Row,unsigned int Column,pointer *Data_Add,unsigned int Flag)
{
	Lcd_Cctw(Row,Column,8,16,Data_Add,Flag); 
}            

        /*输出16x16点阵字符*/
void    Lcd_Out16x16(unsigned int Row,unsigned int Column,pointer *Data_Add,unsigned int Flag)
{
	Lcd_Cctw(Row,Column,16,16,Data_Add,Flag); 
}            

        /*输出16x32点阵字符*/
void    Lcd_Out16x32(unsigned int Row,unsigned int Column,pointer *Data_Add,unsigned int Flag)
{
	Lcd_Cctw(Row,Column,16,32,Data_Add,Flag); 
}            

        /*输出24x24点阵字符*/
void    Lcd_Out24x24(unsigned int Row,unsigned int Column,pointer *Data_Add,unsigned int Flag)
{
	Lcd_Cctw(Row,Column,24,24,Data_Add,Flag); 
}            

        /*输出32x32点阵字符*/
void    Lcd_Out32x32(unsigned int Row,unsigned int Column,pointer *Data_Add,unsigned int Flag)
{
	Lcd_Cctw(Row,Column,32,32,Data_Add,Flag); 
}            

/*==============================================*/
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -