首页 圈子 我的社区 微课程 问答 积分兑换 活动 投票 搜索 文章 软件

STC15W4K32S4单片机ADC,P1端口不能输入模拟信号的问题

yongjun
2019-05-19 16:21:15

采用STC官方的ADC查询全程,修改串口1的波特率为9600,晶振11.0592MHz,ADC初始化如下:

/*----------------------------
初始化ADC
----------------------------*/
void InitADC()
{
P1ASF = 0xff; //设置P1口为AD口
ADC_RES = 0; //清除结果寄存器
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
Delay(2); //ADC上电并延时
}

STC15W4K32S4的P1端口输出为全部为高,接入电位器,不能调节和改变P1引脚的电压。P1端口已经设置为高阻输入,电路图和串口数据如下:




用户评论 (3)
  • Wangwj

    2019-05-21 16:47:33 Wangwj 1#

    yongjun

    P1M0 = 0x00;
    P1M1 = 0xFF;

    #define URMD 0 //0:使用定时器2作为波特率发生器


    /*----------------------------
    初始化串口
    ----------------------------*/
    void InitUart()
    {
    SCON = 0x5a; //设置串口为8位可变波特率
    #if URMD == 0
    T2L = 0xE8; //设置波特率重装值
    T2H = 0xfE; //9600 bps(65536-11059200/4/9600)
    AUXR = 0x14; //T2为1T模式, 并启动定时器2
    AUXR |= 0x01; //选择定时器2为串口1的波特率发生器
    #elif URMD == 1
    AUXR = 0x40; //定时器1为1T模式
    TMOD = 0x00; //定时器1为模式0(16位自动重载)
    TL1 = 0xd8; //设置波特率重装值
    TH1 = 0xff; //115200 bps(65536-18432000/4/115200)
    TR1 = 1; //定时器1开始启动
    #else
    TMOD = 0x20; //设置定时器1为8位自动重装载模式
    AUXR = 0x40; //定时器1为1T模式
    TH1 = TL1 = 0xfb; //115200 bps(256 - 18432000/32/115200)
    TR1 = 1;
    #endif
    }

    很感谢老师的问题提出,我们这边会将问题测试描述反馈。

  • yongjun

    2019-05-20 12:26:58 yongjun 2#

    P1M0 = 0x00;
    P1M1 = 0xFF;

    #define URMD 0 //0:使用定时器2作为波特率发生器


    /*----------------------------
    初始化串口
    ----------------------------*/
    void InitUart()
    {
    SCON = 0x5a; //设置串口为8位可变波特率
    #if URMD == 0
    T2L = 0xE8; //设置波特率重装值
    T2H = 0xfE; //9600 bps(65536-11059200/4/9600)
    AUXR = 0x14; //T2为1T模式, 并启动定时器2
    AUXR |= 0x01; //选择定时器2为串口1的波特率发生器
    #elif URMD == 1
    AUXR = 0x40; //定时器1为1T模式
    TMOD = 0x00; //定时器1为模式0(16位自动重载)
    TL1 = 0xd8; //设置波特率重装值
    TH1 = 0xff; //115200 bps(65536-18432000/4/115200)
    TR1 = 1; //定时器1开始启动
    #else
    TMOD = 0x20; //设置定时器1为8位自动重装载模式
    AUXR = 0x40; //定时器1为1T模式
    TH1 = TL1 = 0xfb; //115200 bps(256 - 18432000/32/115200)
    TR1 = 1;
    #endif
    }

  • lichangle

    2019-05-20 10:59:02 lichangle 3#

    我试了一下, 不光是adc有问题, 串口波特率也不对