打印

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

[复制链接]
1494|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gaohq|  楼主 | 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;
   }
}

相关帖子

沙发
nin124| | 2008-7-26 17:19 | 只看该作者

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

使用特权

评论回复
板凳
gaohq|  楼主 | 2008-7-26 17:23 | 只看该作者

就上面的个小程序还跑飞

在调试时跳出反汇编窗口如下图

使用特权

评论回复
地板
sport945| | 2008-7-26 17:26 | 只看该作者

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

使用特权

评论回复
5
gaohq|  楼主 | 2008-7-26 17:27 | 只看该作者

回2楼

把for(; ;)改成while(1)还是一样的.

使用特权

评论回复
6
gaohq|  楼主 | 2008-7-26 18:00 | 只看该作者

回4楼

试过了,也一样不行.

使用特权

评论回复
7
农民讲习所| | 2008-7-26 18:18 | 只看该作者

不用P0,用其它口

使用特权

评论回复
8
程序匠八| | 2008-7-26 20:46 | 只看该作者

按键有用吗

使用特权

评论回复
9
jerkoh| | 2008-7-26 20:51 | 只看该作者

re

程序匠八

程序匠入,哈哈哈

使用特权

评论回复
10
utopia779| | 2008-7-26 20:58 | 只看该作者

我觉得你硬件有问题!

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

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

我是个初学者!愚见

使用特权

评论回复
11
utopia779| | 2008-7-26 21:07 | 只看该作者

另外:

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

你试试吧

使用特权

评论回复
12
vrgood| | 2008-7-27 00:32 | 只看该作者

编译有什么的问题?

从调试窗口代码来看,怎么都是4C?
编译有什么的问题?

使用特权

评论回复
13
vrgood| | 2008-7-27 00:35 | 只看该作者

看我的编译结果

看我的编译结果

使用特权

评论回复
14
木马河| | 2008-7-27 01:17 | 只看该作者

随风倒时光

随风倒时光 

使用特权

评论回复
15
gaohq|  楼主 | 2008-7-27 16:04 | 只看该作者

问题解决

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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

378

主题

3763

帖子

5

粉丝