找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2760|回复: 6
打印 上一主题 下一主题
收起左侧

愁死我了,有人能帮忙看看嘛

[复制链接]
跳转到指定楼层
楼主
电子设计小比赛,遇到一个地方不明白头疼死了仿真图在附件里,程序如下
#include<reg52.h>
void main()
{ void delay(char ms);
  char temp,password[4],i=1;
  P0=0X00;
  P1=0X00;
  P3=0XFE;
  while(1)
  { temp=P3;
   if(temp!=0xfe)
    break;//有按键按下跳出循环,先不考虑消抖问题
  }
  P0=0x3f;//数码管显示8   
     
  

}
void delay(char ms)
{
char i,j;
for(i=112;i>0;i--)
  for(j=ms;j>0;j--);
}

按说应该是按下按键后才显示0,为什么我还没按就显示零了啊愁死了求解答啊

QQ截图20141026134353.png (20.78 KB, 下载次数: 107)

QQ截图20141026134353.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:66032 发表于 2014-10-26 15:16 | 只看该作者
这样改一下, 因为程序已执行到最后一句, 松手不显示0
void main()
{ void delay(char ms);
  char temp,password[4],i=1;
  P0=0X00;
  P1=0X00;
  P3=0XFE;
  while(1)
  {
     temp=P3;
     while (temp==0xfe)
      P0=0x3f;//数码管显示0
   
  }

评分

参与人数 1威望 +50 黑币 +50 收起 理由
admin + 50 + 50 共享资料的积分奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:67940 发表于 2014-10-26 15:25 | 只看该作者
......
回复

使用道具 举报

地板
ID:66897 发表于 2014-10-26 21:44 | 只看该作者
mqwu 发表于 2014-10-26 15:16
这样改一下, 因为程序已执行到最后一句, 松手不显示0
void main()
{ void delay(char ms);

你好,首先谢谢你解答。。。你这个temp只要不按下按键按说应该一直等于0xfe的啊,所以应该一直显示零啊,但为什么仿真时候啥都不显示呢。。。。。和我这个一样,好像是单片机认为temp一直不等于0xfe?不应该啊temp不是用来储存P3吗怎么能不等呢???
回复

使用道具 举报

5#
ID:66840 发表于 2014-10-27 08:37 | 只看该作者
while(1)
   {
         temp=P3;
         while (temp!=0xfe)
          {       
                  P0=0x3f;//数码管显示8   
                 
          }

   }

评分

参与人数 1黑币 +50 收起 理由
huqin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

6#
ID:61876 发表于 2014-10-27 18:39 | 只看该作者
  你用的是共阴数码管,P0=0x3f;这句就是显示数字0的代码。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:68284 发表于 2014-11-2 22:02 | 只看该作者
模拟软件是什么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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