单片机IO口输出问题

单片机的电路按照上图连接,可以使用串口成功下载程序,但是就是不能改变P2口的状态,比如程序写成这样
#include <reg52.h>

void main()
{
while(1)
{
p1^1=1;
p1^0=0;
}
}
用万用表测量时P1口的状态并未发生改变,希望大家可以给些有用的建议或者解决方案。

第1个回答  2012-08-06
你的意思大概就是给IO赋值的时候,赋值是1,你测到的IO口状态应该就是高电平,
赋值为0的时候,那么测到的IO状态就是低电平的吧?
如果是那样的话,你要把IO设置成输出状态,然后你去赋值给IO口,就可以用万用表测到IO 的变化的了
单片机的IO口如果是输入状态,那么你赋值给IO口,外面用万用表是测不到的了!本回答被网友采纳
第2个回答  2012-08-06
#include <reg52.h>

void main()
{
while(1)
{ //你的程序能编译吗?
P1^1=1;
P1^0=0;
}
}
1你的程序能编译吗?
2.你的程序中P是小写的:"p" reg52.h中定义的是 大写的P吧。你的程序编译时应该出错,编译不了,生成不了HEX文件的。
3.单片机复位后IO口默认输出的是高电平,你程序中P1^1=1;执行你的程序后,测试时一真都是高电平,所以没有变化。
4。如将p改为P后P1^0口用万用表测应为低电平。
5.你程序中的是P1口不是P2口,所以P2口不会变化。本回答被提问者采纳
第3个回答  2012-08-06
改变P2口的状态?????
具体现象??
晶振可以正常起振吗?
第4个回答  2012-08-06
你邮箱多少?我可以给你发过去。