用51单片机编写FM发射装置用LCD显示频率和音量,代码没报错,仿真用按钮模拟频率和音量,但是按按钮LCD没变化,求大神告知。

图片说明这是仿真图

#include "reg52.h"           
#include "QN8027.h"
#include "stdio.h"      


typedef unsigned int u8;      
typedef unsigned char u16;

u16 LCD_FM[]=" FM: ";
u16 LCD_MH[]=" MHz";
u16 LCD_VOL[]=" VOL:";
u16 i;
u16 a,b,c;
void FM_key()
{ 
 if(LCD1602_FM_ADD==0)
 {
  Lcd1602_Delay1ms(5); 
  if(LCD1602_FM_ADD==0) 
  {

    b=b++;
 }
    while(!LCD1602_FM_ADD);
    }
 if(LCD1602_FM_MIN==0)
 {
 Lcd1602_Delay1ms(5);

 if(LCD1602_FM_MIN==0)
 {

  b=b--;

 }
 while(!LCD1602_FM_MIN);
 }
   if(b>9)
   {
    b=0;
    a=a+1;

   }


 }

/*频率调节按钮设置*/

void VOL_key()
   {

   if(LCD1602_VOL_ADD==0)
   {
     Lcd1602_Delay1ms(1);

    if(LCD1602_VOL_ADD==0)
    {

     c=c++;
    }
    while(!LCD1602_VOL_ADD);
    }
    if(LCD1602_VOL_MIN==0)
    {
      Lcd1602_Delay1ms(1);

     if(LCD1602_VOL_MIN==0)
     {

        c=c--;
     }
     while(!LCD1602_VOL_MIN); 
     }

   }
   /*声音调节按钮设置*/

void main(void)
{

    a=100;
    b=0;
    c=4; 
        /*赋值语句*/
    LcdInit();
    while(1){    

    LcdWriteCom(0x80); /*光标定位到第一排第一个位置*/
    for(i=0;i<6;i++)
    {
        LcdWriteData(LCD_FM[i]);

    }/*显示" FM "*/     
     LcdWriteCom(0x85); /*光标定位于第一排第六个位置*/

       /*u16 a[2];              sprintf(a,"%s",FM_key());*/
       FM_key();
      if(a<100)
      {

     LcdWriteData(a/10+0X30);   
     LcdWriteData(a%10+0X30);
     }
     else
     {                          /*根据按键显示小数点前面个位到百位的频率*/
      LcdWriteData(a/100+0X30);
      LcdWriteData((a-100)/10+0X30);
      LcdWriteData(a%10+0X30);
     } 
     LcdWriteCom(0x88);  /*显示小数点*/
     LcdWriteData(0x2E);

     LcdWriteCom(0x89); /*光标定位于第一排第11个位置*/
     LcdWriteData(b+0X30); /*根据按键显示小数点后面的频率*/
     LcdWriteCom(0x8A);
     for(i=0;i<6;i++)
    {
        LcdWriteData(LCD_MH[i]);

    }     /*显示“ MHz"*/                            

    LcdWriteCom(0xc0);/*光标定位于第二排第一个位置*/   
    for(i=0;i<5;i++)
    {
        LcdWriteData(LCD_VOL[i]);

    }  /*显示” VOL:“*/
    LcdWriteCom(0xc5); /*光标定位于第二排第六个位子*/
    VOL_key();
    for(i=0;i<c;i++)
    {

       LcdWriteData(0xff); 
       }

    }
    }



http://www.doc88.com/p-3641050998793.html