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

📄 lcd_fuza_yemiam_kongzhi.c

📁 对LCD的键盘控制和复杂显示系统的人机界面 代码在12864上已经成功调通,按照程序的管脚配置把相应管脚连好,即可实现液晶显示,有什么问题可给我发E-MAIL:wangxiongke-119@163
💻 C
📖 第 1 页 / 共 4 页
字号:
                  g=1.41536;  //由截止频率计算公式:"g=sqrt((1/(2*1.42*1.42))*(1/(2*1.42*1.42))+1); g=g+1+1/(2*1.42*1.42);g=sqrt(g);"计算所得
                  g=fasong[0]/g;
                  g=3000000/(g*1.57*1000)-64;
                  g=g*10;
                  data_convert[3]=g;
                  data_convert[4]=data_convert[3]/10;
                  data_convert[5]=data_convert[3]%10;  
                  if(data_convert[5]>=5)
                    {data_convert[4]=data_convert[4]+1;} //含有浮点数据的浮点数组成员可以直接给整形变量传值,不过只能传递整数部分!                  
                  m[3]=data_convert[4];
                  data_convert[9]= data_convert[4];                           //数组元素给单一的变量传值  
                 
                 
                 
                //程控放大的数据计算! 
                  fasong[1]=fasong[2];                 
                  fasong[1]= fasong[1]/1000;   
                  fasong[1]=sqrt(fasong[1]);  //直接应用"math.h"中的库函数即可
                  fasong[1]= fasong[1]*256;
                         //把浮点数据可以直接传递给字符型变量,而且只是将浮点型数据的整数部分传递给过去!!!
                                           //浮点数据不能进行"fasong[1]=fasong[1]%10'这样的运算!!
             
                 data_convert[1]=fasong[1]*10;    //局部变量不能给全局变量赋值
                 data_convert[0]= data_convert[1]/10;
                 data_convert[2]= data_convert[1]%10;   
                 if(data_convert[2]>=5)
                    {data_convert[0]=data_convert[0]+1;} //含有浮点数据的浮点数组成员可以直接给整形变量传值                            
                 m[2]=data_convert[0];                            //数组元素给单一的变量传值
                 data_convert[8]=data_convert[0];  
   }                                                                                     
    
//******************************************************



  //显示出最终发送出去的频率的控制数据的"BCD"码和程控放大的"BCD"码BCD控制代码
void BCD_jisuan(void)   
{
   uchar i=0,j=0,k=0;
  // uint  data_convert[4];
   for(i=6;i<=7;i++)
      {
       data_convert[i]=data_convert[i+2];
       if((data_convert[i]>0)&&(data_convert[i]<10))
         {
         j=0; 
         jieguo_BCD[i][j++]=data_convert[i];
         }
       
       if((data_convert[i]>=10)&&(data_convert[i]<=63))
         {
         j=0; 
         jieguo_BCD[i][j++]=data_convert[i]/10;
         jieguo_BCD[i][j++]=data_convert[i]%10;
         }
       
       if((data_convert[i]>=26)&&(data_convert[i]<100))
         {
         j=0;                  
         jieguo_BCD[i][j++]=data_convert[i]/10;
         jieguo_BCD[i][j++]=data_convert[i]%10;
         }
       if((data_convert[i]>100)&&(data_convert[i]<256))     
         {
         j=0;  
         jieguo_BCD[i][j++]=data_convert[i]/100;
         jieguo_BCD[i][j++]=data_convert[i]%100/10;  
         jieguo_BCD[i][j++]=data_convert[i]%10;
         }      
     
     for(k=0;k<j;k++)
       { if(jieguo_BCD[i][k]==0)jiguo_BCD_Ma[i][k]=s0;
         if(jieguo_BCD[i][k]==1)jiguo_BCD_Ma[i][k]=s1;
         if(jieguo_BCD[i][k]==2)jiguo_BCD_Ma[i][k]=s2;
         if(jieguo_BCD[i][k]==3)jiguo_BCD_Ma[i][k]=s3;
         if(jieguo_BCD[i][k]==4)jiguo_BCD_Ma[i][k]=s4;
         if(jieguo_BCD[i][k]==5)jiguo_BCD_Ma[i][k]=s5;
         if(jieguo_BCD[i][k]==6)jiguo_BCD_Ma[i][k]=s6;
         if(jieguo_BCD[i][k]==7)jiguo_BCD_Ma[i][k]=s7;
         if(jieguo_BCD[i][k]==8)jiguo_BCD_Ma[i][k]=s8;
         if(jieguo_BCD[i][k]==9)jiguo_BCD_Ma[i][k]=s9;
       }
    }    

}



/*

void measure(void)      //测量并将测量的数据转化为能显示的字符串
{    uchar i=0,j=0,k=0;
  for(i=1;i<=3;i++)
      {  celiang[i]=celiang[i]*1000/0x0fff*5;//长整形变量是不会带小数点的呀!
         if(celiang[i]>=100000)
         {   j=0;
             jieguo[i][j++]=celiang[i]/100000;
             jieguo[i][j++]=celiang[i]%100000/10000;
             jieguo[i][j++]=celiang[i]%10000/1000;
             jieguo[i][j++]=12;
             jieguo[i][j++]=celiang[i]%1000/100;
             jieguo[i][j++]=celiang[i]%100/10;
             jieguo[i][j++]=celiang[i]%10;     }
              
        if((celiang[i]>=10000)&&(celiang[i]<100000))
         {   j=0;
             jieguo[i][j++]=celiang[i]/10000;            
             jieguo[i][j++]=celiang[i]%10000/1000;
             jieguo[i][j++]=12;
             jieguo[i][j++]=celiang[i]%1000/100;
             jieguo[i][j++]=celiang[i]%100/10;
             jieguo[i][j++]=celiang[i]%10;    }
              
        if((celiang[i]>=1000)&&(celiang[i]<10000))
         {   j=0;
             jieguo[i][j++]=celiang[i]/1000;                         
             jieguo[i][j++]=12;
             jieguo[i][j++]=celiang[i]%1000/100;
             jieguo[i][j++]=celiang[i]%100/10;
             jieguo[i][j++]=celiang[i]%10;    } 
             
        if(celiang[i]<1000)
         {   j=0;
             jieguo[i][j++]=0;
             jieguo[i][j++]=12;
             jieguo[i][j++]=celiang[i]%1000/100;
             jieguo[i][j++]=celiang[i]%100/10;
             jieguo[i][j++]=celiang[i]%10;   } 
             
         for(k=0;k<j;k++)
       {   if(jieguo[i][k]==0)cel[i][k]=s0;
         if(jieguo[i][k]==1)cel[i][k]=s1;
         if(jieguo[i][k]==2)cel[i][k]=s2;
         if(jieguo[i][k]==3)cel[i][k]=s3;
         if(jieguo[i][k]==4)cel[i][k]=s4;
         if(jieguo[i][k]==5)cel[i][k]=s5;
         if(jieguo[i][k]==6)cel[i][k]=s6;
         if(jieguo[i][k]==7)cel[i][k]=s7;
         if(jieguo[i][k]==8)cel[i][k]=s8;
         if(jieguo[i]556[k]==9)cel[i][k]=s9;
         if(jieguo[i][k]==12)cel[i][k]=s;    }
     }    
}
   
     */  
 

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

void  warning_page(void)      
  {                  //输入错误提示界面 
          
          clsr();        //  clear screen
          delayms(100);
           prl0(0x3f);prr0(0x3f);   //开显示
            delayms(100);
          
           if((fasong[2]<10)&&(fasong[3]<15)) 
              {
                  hzw_pr(0x00,0x00,fang);//放
                  hzw_pr(0x00,0x10,da);//大
                  hzw_pr(0x00,0x20,bei_shu);//倍
                  hzw_pr(0x00,0x30,shu);//数
                  hzw_pr(0x00,0x40,he);//和
                  hzw_pr(0x00,0x50,pin); //频
                  hzw_pr(0x00,0x60,lv);//率
                  hzw_pr(0x00,0x70,dou);//都
                  hzw_pr(0x02,0x30,guo);//过
                  hzw_pr(0x02,0x40,xiao);//小      
              }
           else if((fasong[2]>1000)&&(fasong[3]>29)) 
              {
                  hzw_pr(0x00,0x00,fang);//放
                  hzw_pr(0x00,0x10,da);//大
                  hzw_pr(0x00,0x20,bei_shu);//倍
                  hzw_pr(0x00,0x30,shu);//数
                  hzw_pr(0x00,0x40,he);//和
                  hzw_pr(0x00,0x50,pin); //频
                  hzw_pr(0x00,0x60,lv);//率
                  hzw_pr(0x00,0x70,dou);//都
                  hzw_pr(0x02,0x30,guo);//过
                  hzw_pr(0x02,0x40,da);//大
               
               }
           else if((fasong[2]>1000)&&(fasong[3]<15)) 
               {
                  hzw_pr(0x00,0x10,fang);//放
                  hzw_pr(0x00,0x20,da);//大
                  hzw_pr(0x00,0x30,bei_shu);//倍
                  hzw_pr(0x00,0x40,shu);//数
                  hzw_pr(0x00,0x50,guo);//过
                  hzw_pr(0x00,0x60,da);//大
                  hzw_pr(0x02,0x10,jie);//截
                  hzw_pr(0x02,0x20,jiezhi);//止
                  hzw_pr(0x02,0x30,pin);//频                   
                  hzw_pr(0x02,0x40,lv);//率  
                  hzw_pr(0x02,0x50,guo);//过
                  hzw_pr(0x02,0x60,xiao);//小
               }
          
          
           else if((fasong[2]<10)&&(fasong[3]>29)) 
               {
                  hzw_pr(0x00,0x10,fang);//放
                  hzw_pr(0x00,0x20,da);//大
                  hzw_pr(0x00,0x30,bei_shu);//倍
                  hzw_pr(0x00,0x40,shu);//数
                  hzw_pr(0x00,0x50,guo);//过
                  hzw_pr(0x00,0x60,xiao);//小
                  hzw_pr(0x02,0x10,jie);//截
                  hzw_pr(0x02,0x20,jiezhi);//止
                  hzw_pr(0x02,0x30,pin);//频                   
                  hzw_pr(0x02,0x40,lv);//率  
                  hzw_pr(0x02,0x50,guo);//过
                  hzw_pr(0x02,0x60,da);//大
               }
          
          
           else if(fasong[2]<10) 
               {
                   hzw_pr(0x00,0x10,fang);//放
                   hzw_pr(0x00,0x20,da);//大
                   hzw_pr(0x00,0x30,bei_shu);//倍
                   hzw_pr(0x00,0x40,shu);//数
                   hzw_pr(0x00,0x50,she);//设
                   hzw_pr(0x00,0x60,she_zhi);//置
                   hzw_pr(0x02,0x30,guo);//过
                   hzw_pr(0x02,0x40,xiao);//小               
                }
           else if(fasong[2]>1000)  
                { 
                   hzw_pr(0x00,0x10,fang);//放
                   hzw_pr(0x00,0x20,da);//大
                   hzw_pr(0x00,0x30,bei_shu);//倍
                   hzw_pr(0x00,0x40,shu);//数
                   hzw_pr(0x00,0x50,she);//设
                   hzw_pr(0x00,0x60,she_zhi);//置
                   hzw_pr(0x02,0x30,guo);//过
                   hzw_pr(0x02,0x40,da);//大
  
                 }
           else if(fasong[3]<15)       
                {  
                   hzw_pr(0x00,0x20,pin); //频
                   hzw_pr(0x00,0x30,lv);//率
                   hzw_pr(0x00,0x40,she);//设
                   hzw_pr(0x00,0x50,she_zhi);//置
                   hzw_pr(0x02,0x30,guo);//过
                   hzw_pr(0x02,0x40,xiao);//小
                 }
          else if(fasong[3]>29) 
                { 
                   hzw_pr(0x00,0x20,pin); //频
                   hzw_pr(0x00,0x30,lv);//率
                   hzw_pr(0x00,0x40,she);//设
                   hzw_pr(0x00,0x50,she_zhi);//置
                   hzw_pr(0x02,0x30,guo);//过
                   hzw_pr(0x02,0x40,da);//大
                }
           hzw_pr(0x04,0x10,qing);//请
           hzw_pr(0x04,0x20,chong);//重
           hzw_pr(0x04,0x30,xinjiu);//新
           hzw_pr(0x04,0x40,shu_ru);//输
           hzw_pr(0x04,0x50,ru);//入
           hzw_pr(0x04,0x60,tan_1); //!!!
      p=1;           
   }    
//***************************************************
void transmit(void)//发送输入的数值
 {    
   
   uchar i;
    jisuan();
    BCD_jisuan();
    if((fasong[2]<10)||(fasong[2]>1000)||(fasong[3]<15)||(fasong[3]>29))
         { warning_page();}
    
    else {  sending_page();
            P4DIR=0xff;    //从P4管脚输出控制D/A模数转换的放大倍数控制的数据!
            P3DIR|=0XFF;
            P2DIR|=0XFF;
            P2OUT=0XFF;
            P2OUT&=~MAX_313;//现在进行放大,就选择"输入*1000"的数据!!
            P2OUT&=~LPA;     //选择低通滤波器!  
            P2OUT&=~LPB;
            P4OUT=m[2];      
            P3OUT&=~DA_CP;
            P3OUT|=DA_CP;
            
             //发送滤波器A的工作模式"1"
            P6DIR=0x03f;                  
            P6OUT=0xb0; 
            P2DIR|=0XFF;   
            P2OUT=0XFF;      //当我们处理这个位为"0"会不会在干扰的情况下使别的管脚也为"0",所以全部先输出"高电平"
            P2OUT&=~LPA;     //选择低通滤波器!  
            P2OUT&=~LPB;
            P3OUT&=~MAX_CP;   //从74HC374的输出数据!
            P3OUT|=MAX_CP;  
            
            i=m[3];
            i&=0x03;i<<=4;i|=0x01;i|=0xb0;
            P6OUT=i;
            P3OUT&=~MAX_CP;   //从74HC374的输出数据!
            P3OUT|=MAX_CP;  
            
            i=m[3];
            i&=0x0b;i<<=2;i|=0x02;i|=0xb0;
            P6OUT=i;
            P3OUT&=~MAX_CP;   //从74HC374的输出数据!
            P3OUT|=MAX_CP;  
     
            i=m[3];
            i&=0x30;i|=0x03;i|=0xb0;
            P6OUT=i;
            P3OUT&=~MAX_CP;   //从74HC374的输出数据!
            P3OUT|=MAX_CP;  

⌨️ 快捷键说明

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