STC89C58单片机P2口莫名其妙的问题;求解

2019-07-15 17:37发布

#include<reg52.h>
void main()
{
        P1=0x00;
        P2=0x00;
        P1=0x55;
        while(1);

}
以上用破解后的keil3 软件编译通过;P1口接LED,结果的等全亮;怎么调试就发现P2=0x00;这语句不运行;P2是高8位地址线;更换单片机后还是不运行;我总结为
1,不是单片机问题;2,P2口操作不运行
以下是分别调试程序对应hex
P1=0x00;P2=x00;P1=0x55;while(1);
000000   02 00 03 78 7F E4 F6 D8 FD 75 81 07 02 00 0F E4
000010   F5 90 F5 A0 75 90 55 80 FE

P1=0x00;while(1);P1=0x55;while(1);
000000   02 00 03 78 7F E4 F6 D8 FD 75 81 07 02 00 0F E4
000010   F5 90 80 FE
P1=0x00;p1=0x55;while(1);
000000   02 00 03 78 7F E4 F6 D8 FD 75 81 07 02 00 0F E4
000010   F5 90 75 90 55 80 FE

P1=0x00;p2=0xff;P1=0x55;while(1);//运行达到效果
000000   02 00 03 78 7F E4 F6 D8 FD 75 81 07 02 00 0F E4
000010   F5 90 75 A0 FF 75 90 55 80 FE

求解??????

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
武力戡乱
1楼-- · 2019-07-15 22:54
 精彩回答 2  元偷偷看……
飞洒发生
2楼-- · 2019-07-16 04:52
不明白,为什么更换单片机之后不运行了
junou168
3楼-- · 2019-07-16 07:12
没用过这款,做成普通的IO口需不需要配置?
qq372848728
4楼-- · 2019-07-16 11:08
首先判断每个led的正负极是否连接都一致是否都正确,然后分别声明每个led的i/o口,
sbit led0 P1^0;
sbit led1 P1^1;
sbit led2 P1^2;
……依此类推到led7;然后分别对各个led送0或者1:
while(1)
{
led0=0;//每次只修改一个灯,对灯送0,看状态;然后修改程序送1,再看状态,灯是否能正常亮灭;
}
dianzifashaosyy
5楼-- · 2019-07-16 13:49
飞洒发生 发表于 2015-4-2 09:13
不明白,为什么更换单片机之后不运行了

是应为不运行才更还单片机!结果是一样的,判断不是单片机出问题的!
dianzifashaosyy
6楼-- · 2019-07-16 16:41
 精彩回答 2  元偷偷看……

一周热门 更多>