请指点下这个小程序的问题

[复制链接]
 楼主| 发表于 2008-7-26 16:49 | 显示全部楼层 |阅读模式
我在P1_7接个按键到地,程序意图是让单片机不停扫描P1口,当按键按下时(P1^7=0)P0口输出0X00,否则,P0口输出0X44.现在是不论我按不按按键,输出都是0X00.
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
void delay(uint delaytime)
{
  uint i;
  for(;delaytime>0;delaytime--)
   {
      for(i=0;i<124;i++)
       {;}
    }
 }
      
void main()

  P1=0xff;
  for(;;) 
   {
      if( P1_7==0)
      {
    P0=0X00;
        delay(3000);
    }
      else P0=0x44;
   }
}
发表于 2008-7-26 17:19 | 显示全部楼层

for(;;)改成while(1)试试.

 楼主| 发表于 2008-7-26 17:23 | 显示全部楼层

就上面的个小程序还跑飞

在调试时跳出反汇编窗口如下图
发表于 2008-7-26 17:26 | 显示全部楼层

else P0=0x44;后加 delay(3000);试试

 楼主| 发表于 2008-7-26 17:27 | 显示全部楼层

回2楼

把for(; ;)改成while(1)还是一样的.
 楼主| 发表于 2008-7-26 18:00 | 显示全部楼层

回4楼

试过了,也一样不行.
发表于 2008-7-26 18:18 | 显示全部楼层

不用P0,用其它口

发表于 2008-7-26 20:46 | 显示全部楼层

按键有用吗

发表于 2008-7-26 20:51 | 显示全部楼层

re

程序匠八

程序匠入,哈哈哈
发表于 2008-7-26 20:58 | 显示全部楼层

我觉得你硬件有问题!

你看看在P1^7口。上面接一个上拉电阻怎么样???
你得硬件和程序:
P17口按下之后是低
按键接触之后的双胎可能是未定的

同时,单片机复位之后的引脚电平也可能是未定的!
你试试加个上拉试试!
不行咱们再想办法

我是个初学者!愚见
发表于 2008-7-26 21:07 | 显示全部楼层

另外:

换其它口也行!
P0口内部是没有上拉电阻的!

你试试吧
发表于 2008-7-27 00:32 | 显示全部楼层

编译有什么的问题?

从调试窗口代码来看,怎么都是4C?
编译有什么的问题?
发表于 2008-7-27 00:35 | 显示全部楼层

看我的编译结果

看我的编译结果
发表于 2008-7-27 01:17 | 显示全部楼层

随风倒时光

随风倒时光 
 楼主| 发表于 2008-7-27 16:04 | 显示全部楼层

问题解决

谢谢各位!!!!!
从大家的反馈中看出程序是没问题,在排出了硬件问题后在13楼的提醒下在LAOGU网下了个KEIL C 装上,好了。太可恶了,随开发板送出的个软件都不正确,差点毁了我学单片机的积极性。
可惜下载下来的那个有2K程序的限制,那位给个完全版的啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

378

主题

3765

帖子

5

粉丝
快速回复 返回顶部 返回列表