weixin_58258853 2022-06-23 15:51 采纳率: 0%
浏览 25

为什么我硬件仿真adc进入不了中断 芯片sh88f2051

void InitADC()
{
ADCH = 0X01 ; //P1.0作为AD
ADCON = 0X80; //使能ADC AN0
ADT = 0X88;
ADDH = 0X00;
ADDL = 0X00;
}

void main()
{
P1M0 = 0X02; //P1.1高阻输入
P1M1 = 0X00;

P3M0 = 0X00;
P3M1 = 0X00;

P4M0 = 0X00;
P4M1 = 0X00;

EA = 1;
EADC = 1;
IPL0 = 0X40;
IPH0 = 0X40;

InitADC();
ADCON |=0X01;    //启动ADC

while(1)
    {
        AD10_store =(AD10_store|ADDH)&0x00ff;
        Value = (AD10_store<<2)|(ADDL&0X03);        
        Vout = (Value*5)/1023;
        V = Vout;
        displayS(V);
        ADCON |=0X01;
    }

}

void ADC() interrupt 6
{
ADCON &= 0XBF;
}

  • 写回答

2条回答 默认 最新

  • 乐观的study123 2022-06-23 16:49
    关注

    //while中的 ADCON |=0X01;放到中断里
    void InitADC()
    {
    ADCH = 0X01 ; //P1.0作为AD
    ADCON = 0X80; //使能ADC AN0
    ADT = 0X88;
    ADDH = 0X00;
    ADDL = 0X00;
    }

    void main()
    {
    P1M0 = 0X02; //P1.1高阻输入
    P1M1 = 0X00;

    P3M0 = 0X00;
    P3M1 = 0X00;

    P4M0 = 0X00;
    P4M1 = 0X00;

    EA = 1;
    EADC = 1;
    IPL0 = 0X40;
    IPH0 = 0X40;

    InitADC();
    ADCON |=0X01; //启动ADC

    while(1)
    {
    AD10_store =(AD10_store|ADDH)&0x00ff;
    Value = (AD10_store<<2)|(ADDL&0X03);
    Vout = (Value*5)/1023;
    V = Vout;
    displayS(V);

    }
    

    }

    void ADC() interrupt 6
    {
    ADCON &= 0XBF;
    ADCON |=0X01;
    }

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月23日

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?