新手请教, 灯为什么不亮?电平为什么无法拉高?

[复制链接]
2956|21
 楼主| 北斗小星 发表于 2015-1-22 11:51 | 显示全部楼层 |阅读模式








程序如下:

#include<reg52.h>
sbit k0=P1^0;
sbit k1=P1^1;
sbit k3=P3^2;
sbit mc1=P2^0;
sbit mc2=P2^1;

void delay(int i)           //延时
{
        for(i>0;i;i--)
        {
                int j=120;
                --j;
        }
}

void k3_INT0() interrupt 0           //中断急停
{
        delay(50);
        if(k3==0)
        {
                mc1=1;
                mc2=0;
                P0=0xcc;
        }
}

/*void key()                           //按键扫描
{
       
}        */

void main()
{
        P0=0x00;                                  //初始化
        mc1=1;
        mc2=0;
        EA=1;
        EX0=1;
        IT0=1;
        while(1)
        {
        if(k0==0)
        {
                delay(100);                        //去抖动
                if(k0==0)
                {
                        P0=0x10;                  //1亮,向右转
                        mc1=0;
                        mc2=0;
                }
        }
        else
        {
                P0=0x00;
        //        mc1=1;
        //        mc2=0;
        }

        if(k1==0)
        {
                delay(100);                  //去抖
                if(k1==0)
                {
                        P0=0xff;                        //2亮,向左转
                        mc1=1;
                        mc2=1;
                }
        }
        else
        {
                P0=0x00;
        //        mc1=1;
        //        mc2=0;
        }
        }
}



按键K0/K1按下时,P0口一直无法拉高,这是为什么?   请教

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 北斗小星 发表于 2015-1-22 11:54 | 显示全部楼层
原本想法是:k0按下时有一个灯亮,k2按下时接好的灯全亮。
现在问题是按键按下后,P0口没有置1,灯无法点亮。
eydj2008 发表于 2015-1-22 12:31 | 显示全部楼层
DEBUG呀  

评分

参与人数 1威望 +1 收起 理由
北斗小星 + 1 感谢指点

查看全部评分

戈卫东 发表于 2015-1-22 16:00 | 显示全部楼层
看起来很简单。
。。。。。。。
 楼主| 北斗小星 发表于 2015-1-22 16:47 | 显示全部楼层
eydj2008 发表于 2015-1-22 12:31
DEBUG呀

我把灯的型号改了,然后  亮了
 楼主| 北斗小星 发表于 2015-1-22 16:54 | 显示全部楼层
戈卫东 发表于 2015-1-22 16:00
看起来很简单。
。。。。。。。

就是一个电机正反转,加亮灯
robin7513 发表于 2015-1-22 16:55 | 显示全部楼层
本帖最后由 dirtwillfly 于 2015-1-22 22:07 编辑

估计是Proteus内部的原件驱动特性引起的。之前发现过运放和三极管出现过类似问题。毕竟是仿真软件,不能当真。。。

评分

参与人数 1威望 +1 收起 理由
北斗小星 + 1 感谢指点

查看全部评分

 楼主| 北斗小星 发表于 2015-1-22 17:00 | 显示全部楼层
robin7513 发表于 2015-1-22 16:55
估计是Proteus内部的原件驱动特性引起的。之前发现过运放和三极管出现过类似问题。毕竟是仿真软件,不能当 ...

原来如此,谢谢大师
 楼主| 北斗小星 发表于 2015-1-22 17:04 | 显示全部楼层
robin7513 发表于 2015-1-22 16:55
估计是Proteus内部的原件驱动特性引起的。之前发现过运放和三极管出现过类似问题。毕竟是仿真软件,不能当 ...

我就是把灯的型号由模拟改成了数字,然后就亮了
dirtwillfly 发表于 2015-1-22 22:09 | 显示全部楼层
北斗小星 发表于 2015-1-22 17:04
我就是把灯的型号由模拟改成了数字,然后就亮了



proteus仿真的结果有时候不能全当真

评分

参与人数 1威望 +1 收起 理由
北斗小星 + 1 感谢指点

查看全部评分

 楼主| 北斗小星 发表于 2015-1-23 16:31 | 显示全部楼层
怎么无法结贴呢?
xbyu520 发表于 2015-1-23 19:58 | 显示全部楼层
我来迟了,恭喜你解决了问题
chenchangbiao 发表于 2015-1-25 18:07 | 显示全部楼层
路过 学习了
 楼主| 北斗小星 发表于 2015-1-26 08:55 | 显示全部楼层
xbyu520 发表于 2015-1-23 19:58
我来迟了,恭喜你解决了问题

:lolthank you
 楼主| 北斗小星 发表于 2015-1-26 08:56 | 显示全部楼层
chenchangbiao 发表于 2015-1-25 18:07
路过 学习了

:handshake
icekoor 发表于 2015-1-26 09:10 | 显示全部楼层
Proteus有专门的论坛,里面相关的帖子会更多些
http://proteus.haotui.com/bbs.php
dianziyangshu 发表于 2015-1-26 18:50 | 显示全部楼层
嗅嗅匆匆 发表于 2015-1-26 19:58 | 显示全部楼层
ywzqdpj 发表于 2015-1-26 20:27 | 显示全部楼层
仿真真的代替不了实际
 楼主| 北斗小星 发表于 2015-1-27 08:48 | 显示全部楼层
icekoor 发表于 2015-1-26 09:10
Proteus有专门的论坛,里面相关的帖子会更多些
http://proteus.haotui.com/bbs.php

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

本版积分规则

1

主题

40

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部