标题: 51单片机LCD1602问题,按一次加100;加到200,就乱码了,求解 [打印本页]

作者: dh981226    时间: 2019-7-17 15:01
标题: 51单片机LCD1602问题,按一次加100;加到200,就乱码了,求解
case 1: //电位器值增加
  {
    unsigned char n = 0;
    CS = 0;
    U_D = 1;
    _nop_();
    //for(n=10;n>0;n--)
    //{
     INC = 0;
     _nop_();
     _nop_();
     INC = 1;
    //}
    CS = 1;
   
    VOLUME+=100;
    if(VOLUME > 10000)VOLUME = 10000;
    DISPLAY[0] = VOLUME/10000+0x30;
    DISPLAY[1] = (VOLUME%10000/1000)+0x30;
       DISPLAY[2] = (VOLUME%1000/100)+0x30;
       DISPLAY[3] = (VOLUME%100/10)+0x30;
       DISPLAY[4] = VOLUME%10+0x30;
       Lcd_Set_xy(2,7);
    Lcd_Wdat(DISPLAY[0]);   
    Lcd_Wdat(DISPLAY[1]);   
    Lcd_Wdat(DISPLAY[2]);   
    Lcd_Wdat(DISPLAY[3]);   
    Lcd_Wdat(DISPLAY[4]);
   
  }
  break;


有这个显示,按一次加100;加到200,就乱码了,求解

作者: angmall    时间: 2019-7-17 19:02
你这个是变量VOLUME 是 unsigned char类型的  数据类型的上限是255
作者: winwor    时间: 2019-7-18 17:17
很有可能就是VOLUME的类型不匹配,如果加到300却显示55,那就基本可以确定了
作者: 木木哒的木木    时间: 2019-7-18 19:46
51单片机unsigned char最大值为0~255




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1