proteus吧 关注:19,338贴子:99,239
  • 6回复贴,共1

求告知LCD为什么不亮,LTC1864的A/D转换

只看楼主收藏回复



1楼2020-05-13 20:25回复
    源代码:
    //-----------------------------------------------------------------
    // 液晶控制与显示程序
    //-----------------------------------------------------------------
    #include <reg51.h>
    #include <intrins.h>
    #include <stdio.h>
    #include <math.h>
    #define INT8U unsigned char
    #define INT16U unsigned int
    sbit SDO = P2^0; //寄存器选择线
    sbit SCK = P2^1; //读/写控制线
    sbit CONV = P2^2; //使能控制线
    extern void Initialize_LCD();
    extern void LCD_ShowString(INT8U r,INT8U c,INT8U*str);
    extern void delay_ms(INT16U x) ;
    //-----------------------------------------------------------------
    //读取LTC1864模数转换值(16位,2字节)
    //-----------------------------------------------------------------
    INT16U Read_ADC ()
    {
    INT8U i; INT16U dat = 0x00;
    SCK = 1;
    CONV=0;CONV=1;
    _nop_();_nop_();_nop_();_nop_();
    CONV = 0;
    for(i=0;i<16;i++)
    {
    SCK=0;_nop_();SCK=1;
    dat = (dat<<1)| SDO;
    }
    SCK = 0;
    return dat;
    }
    //-----------------------------------------------------------------
    //主程序
    //-----------------------------------------------------------------
    void main()
    {
    char dispBuff[17] ;
    Initialize_LCD() ;
    LCD_ShowString(0,0, "LTC1864 A/D Test");
    while (1)
    {
    sprintf(dispBuff,"Curr Volt:%4.2fv",Read_ADC() * 5.0 / 65535.0);
    LCD_ShowString(1,0,dispBuff) ;
    }
    }


    2楼2020-05-13 20:25
    回复
      2026-03-07 08:40:11
      广告
      不感兴趣
      开通SVIP免广告
      代码没错误,但是我也是个菜鸟,不知道代码哪里有问题,咋改啊


      3楼2020-05-13 20:27
      回复
        显示什么


        IP属地:山东来自Android客户端4楼2020-05-15 10:06
        回复
          是转换结果没显示?


          IP属地:山东来自Android客户端5楼2020-05-15 10:09
          回复
            私信


            来自iPhone客户端6楼2020-05-15 13:00
            回复
              你的代码确实没啥错误,但是你想显示,你得有个换算的公式吧


              7楼2020-09-08 14:23
              回复