xiaohuoniu17 2023-12-27 21:30 采纳率: 0%
浏览 3

我想实现 8 路数据的采集,假设8路信号均为 0-5V 的电压信号,采集数据可通过数码管显示,但是实现不了,请告诉我错误的原因

img

sbit start=P3^0;
sbit eoc=P3^1;
sbit oe=P3^2;
sbit L1=P3^3;
sbit L2=P3^4;
sbit L3=P3^5;
sbit L4=P3^6;
sbit Key1=P0^0;
sbit Key2=P0^1;
sbit Key3=P0^2;
sbit A_C=P0^5;
sbit A_B=P0^6;
sbit A_A=P0^7;
unsigned char K=1,vol=0;
unsigned char s[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay(unsigned int n)
{
    unsigned int i=0;
    for(i=0;i<n*200;i++)
    {
        ;
    }
}
void Choose()
{   
        unsigned char state;
        P0=0xff;
        state=P0;
        state=state&0x03;
      K=state;
   switch(state)
        {
    case 0:   A_A=0; A_B=0; A_C=0;      break  ;
    case 1:   A_A=1; A_B=0; A_C=0;      break  ;
    case 2:   A_A=0; A_B=1; A_C=0;      break  ;
    case 3:   A_A=1; A_B=1; A_C=0;      break  ;
    case 4:   A_A=0; A_B=0; A_C=1;      break  ;
    case 5:   A_A=1; A_B=0; A_C=1;      break  ;
    case 6:   A_A=0; A_B=1; A_C=1;      break  ;
    case 7:   A_A=1; A_B=1; A_C=1;      break  ;
   }
} 
void adc()
{ 
    Choose();
    start=0;
    start=1;
    delay(5);
    start=0;
    while(eoc!=1);
    oe=1;
    vol=P2;
    oe=0;
        
}
display()
{

 while(1)
 { L1=1; L2=0; L3=0; L4=0;
 P1=s[0];
 delay(1);
 L1=0; L2=1; L3=0; L4=0;
 P1=s[K+1];
 delay(1);
 L1=0; L2=0; L3=1; L4=0;
 P1=s[vol/51]|0x80;  
 delay(1);
 L1=0; L2=0; L3=0; L4=1;
 P1=s[vol*100%510];  
 delay(1);
 if(P2!=vol)
    break;
}
}

void main()
{
    while(1)
    {
        adc();
        display();
    }
}


  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-12-28 08:28
    关注

    【相关推荐】



    • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7655171
    • 除此之外, 这篇博客: 智能硬件的工作原理与发展定位中的 2、那软件又是如何控制芯片引脚的0v和5v呢? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      程序实际上是用语言写的电路,开发中的各种语言编写完成后,经过编译、汇编后形成010101的二进制数,然后烧录进存储区中,把存储器变为真正的高低电平,处理器将存储的指令和数据取出来算出引脚到底是高还是低 ,根据高低输出0v和5v去开关电路,也就达到了开始讲的和人本质去闭合和打开电路的效果 。
      在这里插入图片描述


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 12月27日
  • 修改了问题 12月27日
  • 修改了问题 12月27日
  • 创建了问题 12月27日