请教大神们仿真时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能不能显示。就知道是硬件的问题还是程序的问题了。
嗯,刚试了一下,是程序的问题,硬件没问题。