我想问一下,我想但P1.0输入低电平时P2.0输出高电平,P1.0输入高电平时,P2.0输出低电平,
我定义
#include<reg52.h>
sbit P2^0=A1;
sbit P1^0=A2;
void main()
{
while(1)
if(A1=0)
A2=1;
esle;
A2=0;
}
程序能正常刻录,但单片机没反应,外围电路没问题,请指导程序有什么错
sbit P2^0=A1;
sbit P1^0=A2;
sbit 语句等号后边应该是地址。
sbit P2^0=A1;能通过编译码?本人试一下:test.C(6): error C141: syntax error near '^', pected '='
很遗憾,没通过。
如果改成 sbit A1=P2^0; sbit A2=P1^0;试试。注意分号,语句只能使用英文字符。
还有if(A1=0) 也不妥吧,比较应为== 即 if(A1==0)才好。
另外else 后边不应有分号。
修改后的代码如下:
#include<reg52.h>
sbit A1=P2^0; //sbit P2^0=A1;
sbit A2=P1^0;//sbit P1^0=A2;
void main()
{
while(1)
{
if(A1==0)
{
A2=1;
}
else//esle;//单词也不对。
{
A2=0;
}
}
}
仅供参考。
sbit P1^0=A2;
sbit 语句等号后边应该是地址。
sbit P2^0=A1;能通过编译码?本人试一下:test.C(6): error C141: syntax error near '^', pected '='
很遗憾,没通过。
如果改成 sbit A1=P2^0; sbit A2=P1^0;试试。注意分号,语句只能使用英文字符。
还有if(A1=0) 也不妥吧,比较应为== 即 if(A1==0)才好。
另外else 后边不应有分号。
修改后的代码如下:
#include<reg52.h>
sbit A1=P2^0; //sbit P2^0=A1;
sbit A2=P1^0;//sbit P1^0=A2;
void main()
{
while(1)
{
if(A1==0)
{
A2=1;
}
else//esle;//单词也不对。
{
A2=0;
}
}
}
仅供参考。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-09-30
#include<reg52.h>
sbit A1=P1^0;//定义反了
sbit A2=P2^0;//
void main()
{
A1=0; //A1没给值.
while(1)
{//大括号
if(A1==0)//双等号才是判断
A2=1;
esle;
A2=0;
}//
}
sbit A1=P1^0;//定义反了
sbit A2=P2^0;//
void main()
{
A1=0; //A1没给值.
while(1)
{//大括号
if(A1==0)//双等号才是判断
A2=1;
esle;
A2=0;
}//
}
第2个回答 2013-09-30
#include<reg52.h>
sbit A1 = P2^0;
sbit A2 = P1^0; //这里你定义反了,能编译通过么?
void main()
{
while(1)
{ //这里加个大括号,循环执行括号内的语句
if(A1==0)
A2=1;
esle;
A2=0;
}
}
sbit A1 = P2^0;
sbit A2 = P1^0; //这里你定义反了,能编译通过么?
void main()
{
while(1)
{ //这里加个大括号,循环执行括号内的语句
if(A1==0)
A2=1;
esle;
A2=0;
}
}
第3个回答 2013-09-30
网友“听不清啊”回答的对的,你格式少了一对括号,少了括号程序应该就在不断跑while(1)这个语句了所以没有反应,其实好多程序在上单片机前可以在keil里面自己调试下看看觉得哪块有问题可以一句一句的跑
第4个回答 2013-09-30
你试一下:
#include<reg52.h>
sbit P2^0=A1;
sbit P1^0=A2;
void main()
{
while(1)
{
if(A1=0)
A2=1;
esle
A2=0;
}
}
#include<reg52.h>
sbit P2^0=A1;
sbit P1^0=A2;
void main()
{
while(1)
{
if(A1=0)
A2=1;
esle
A2=0;
}
}