找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1322|回复: 6
打印 上一主题 下一主题
收起左侧

求单片机大神告知,为什么按钮没法控制lcd上面数字变化

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include "reg52.h"                        
  2. #include "QN8027.h"
  3. #include "stdio.h"               


  4. typedef unsigned int u8;         
  5. typedef unsigned char u16;

  6. u16 LCD_FM[]=" FM: ";
  7. u16 LCD_MH[]=" MHz";
  8. u16 LCD_VOL[]=" VOL:";
  9. u16 i;
  10. u16 a,b,c;
  11. void FM_key()
  12. {
  13. if(LCD1602_FM_ADD==0)
  14. {
  15.   Lcd1602_Delay1ms(5);
  16.   if(LCD1602_FM_ADD==0)        
  17.   {

  18.         b=b++;
  19. }
  20.          while(!LCD1602_FM_ADD);
  21.         }
  22. if(LCD1602_FM_MIN==0)
  23. {
  24. Lcd1602_Delay1ms(5);

  25. if(LCD1602_FM_MIN==0)
  26. {

  27.   b=b--;

  28. }
  29. while(!LCD1602_FM_MIN);
  30. }
  31.    if(b>9)
  32.    {
  33.            b=0;
  34.         a=a+1;

  35.    }


  36. }

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

  38. void VOL_key()
  39.    {

  40.    if(LCD1602_VOL_ADD==0)
  41.    {
  42.             Lcd1602_Delay1ms(1);

  43.         if(LCD1602_VOL_ADD==0)
  44.         {
  45.          
  46.          c=c++;
  47.         }
  48.         while(!LCD1602_VOL_ADD);
  49.         }
  50.         if(LCD1602_VOL_MIN==0)
  51.         {
  52.           Lcd1602_Delay1ms(1);
  53.         
  54.          if(LCD1602_VOL_MIN==0)
  55.          {
  56.             
  57.             c=c--;
  58.          }
  59.          while(!LCD1602_VOL_MIN);
  60.          }
  61.          
  62.    }
  63.    /*声音调节按钮设置*/

  64. void main(void)
  65. {

  66.         a=100;
  67.         b=0;
  68.         c=4;
  69.         /*赋值语句*/
  70.         LcdInit();
  71.         while(1){         
  72.         
  73.         LcdWriteCom(0x80); /*光标定位到第一排第一个位置*/
  74.         for(i=0;i<6;i++)
  75.         {
  76.                 LcdWriteData(LCD_FM[i]);
  77.                         
  78.         }/*显示" FM "*/         
  79.      LcdWriteCom(0x85); /*光标定位于第一排第六个位置*/
  80.         
  81.            /*u16 a[2];                                   sprintf(a,"%s",FM_key());*/
  82.            FM_key();
  83.           if(a<100)
  84.           {
  85.         
  86.          LcdWriteData(a/10+0X30);        
  87.           LcdWriteData(a%10+0X30);
  88.          }
  89.          else
  90.          {                                                        /*根据按键显示小数点前面个位到百位的频率*/
  91.           LcdWriteData(a/100+0X30);
  92.           LcdWriteData((a-100)/10+0X30);
  93.           LcdWriteData(a%10+0X30);
  94.          }
  95.          LcdWriteCom(0x88);         /*显示小数点*/
  96.          LcdWriteData(0x2E);

  97.          LcdWriteCom(0x89);        /*光标定位于第一排第11个位置*/
  98.      LcdWriteData(b+0X30); /*根据按键显示小数点后面的频率*/
  99.          LcdWriteCom(0x8A);
  100.          for(i=0;i<6;i++)
  101.         {
  102.                 LcdWriteData(LCD_MH[i]);
  103.                         
  104.         }          /*显示“ MHz"*/                                                        

  105.         LcdWriteCom(0xc0);/*光标定位于第二排第一个位置*/        
  106.         for(i=0;i<5;i++)
  107.         {
  108.                 LcdWriteData(LCD_VOL[i]);
  109.                         
  110.         }  /*显示” VOL:“*/
  111.         LcdWriteCom(0xc5); /*光标定位于第二排第六个位子*/
  112.         VOL_key();
  113.         for(i=0;i<c;i++)
  114.         {
  115.         
  116.            LcdWriteData(0xff);
  117.            }
  118.                
  119.         }
  120.         }
  121.         
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2020-5-5 10:31 | 只看该作者
while(!LCD1602_VOL_ADD); ?
拉电阻接在开关前而不是开关后。
回复

使用道具 举报

板凳
ID:736422 发表于 2020-5-5 15:29 | 只看该作者
什么意思,能具体点吗?
回复

使用道具 举报

地板
ID:736422 发表于 2020-5-5 15:38 | 只看该作者
能具体点吗?
回复

使用道具 举报

5#
ID:736422 发表于 2020-5-5 15:48 | 只看该作者

while(!LCD1602_VOL_ADD); ?这个是防止一直按着开关的
回复

使用道具 举报

6#
ID:462827 发表于 2020-5-5 20:52 | 只看该作者
你的上拉电阻都画错了
回复

使用道具 举报

7#
ID:736422 发表于 2020-5-6 17:38 | 只看该作者
我改了,还是不行
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表