微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请教大神们仿真时P2口怎么没反应啊?那里出错了

请教大神们仿真时P2口怎么没反应啊?那里出错了

时间:10-02 整理:3721RD 点击:

#include <reg51.h>
#include <intrins.h>
sbit cs=P1^0;
sbit clk=P1^1;
sbit DI=P1^2;
sbit DO=P1^2;
unsigned char i;
unsigned int data1=0,data2=0;
unsigned char adcturn(bit ch)
{  
   cs=0;
   clk=0;DI=1;_nop_();_nop_();
   clk=1;_nop_();_nop_();
   clk=0;DI=1;_nop_();_nop_();
   clk=1;_nop_();_nop_();
   clk=0;DI=ch;_nop_();_nop_();
   clk=1;_nop_();_nop_();
   clk=0;_nop_();_nop_();
   for(i=8;i>0;i--)
   {
     clk=1;_nop_();_nop_();
     clk=0;_nop_();_nop_();
     if(DO)
       data1=(data1<<1)|0x01;
     else
       data1=data1<<1;
    }
    for(i=8;i>0;i--)
    {
      if(DO)
        data2=(data2>>1)|0x80;
      else
        data2=data2>>1;
      clk=1;_nop_();_nop_();
      clk=0;_nop_();_nop_();
     }
     cs=1;
     return((data1==data2)? data1:data2);
}
void main()
{
  while(1)
  {
   P2=adcturn(0);
   }
}


我也试过这种情况,很大可能是排阻的问题,你设置一下排阻的阻值看看。要不就设置排阻不参与仿真,看P2口有没输出。

嗯,我设置了但还是这种情况。程序的问题吗?

你想写一个简单的LED闪烁程序,用P2作出口端口。看看LED能不能显示。就知道是硬件的问题还是程序的问题了。

嗯,刚试了一下,是程序的问题,硬件没问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top