找回密码
 立即注册

QQ登录

只需一步,快速开始

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

为啥我的程序初始化之后,灯还会亮

[复制链接]
跳转到指定楼层
楼主
ID:257618 发表于 2017-12-5 12:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我的代码

#include<STC15F2K60S2.H>

void delay(int a);
void keyscan();
int s1=16;

void main()
{P2=0XA0;P0=0X00;P2=0X80;P0=0XFF;
        keyscan();
        if(s1==0)
        {
        P0=0X55;}
}


void delay(int a)
{  int i; int b;for(i=a;a>0;a--)

        for(b=845;b>=0;b--);
}
void keyscan()
{if (        P30==0)
        {delay(5);
        if(P30==0)
        {s1=0;
        }
        while(P30!=1)
        {}
        }
  else if (        P31==0)
{delay(5);
        if(P31==0)
        {s1=1;
        }
        while(P31!=1)
        {}
        }
        else        if (        P32==0)
                {delay(5);
        if(P32==0)
        {s1=2;
        }
        while(P32!=1)
        {}
        }
                else if (        P33==0)
                {delay(5);
        if(P33==0)
        {s1=3;
        }
        while(P33!=1)
        {}
        }
}

程序上电之后,八个led灯还会亮,但是亮的程度和正常led灯量灭不太一样,
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2017-12-5 13:48 | 只看该作者
因为你的main程序没有主循环,一直不断的初始化。改这样试试。
void main()
{
//        P2=0XA0;
//        P0=0X00;
        P2=0X80;
        P0=0XFF;
        while(1)
        {
                keyscan();
                if(s1==0)
                {
                        P0=0X55;
                }
        }
}
回复

使用道具 举报

板凳
ID:257693 发表于 2017-12-5 14:40 | 只看该作者
谢谢了。高见。
回复

使用道具 举报

地板
ID:257698 发表于 2017-12-5 14:43 | 只看该作者
帮忙顶
回复

使用道具 举报

5#
ID:257703 发表于 2017-12-5 14:48 | 只看该作者
主程序的问题,加入一个死循环
回复

使用道具 举报

6#
ID:257702 发表于 2017-12-5 14:54 | 只看该作者
可能单片机里面已经写入程序了
回复

使用道具 举报

7#
ID:257618 发表于 2017-12-5 15:04 | 只看该作者
wulin 发表于 2017-12-5 13:48
因为你的main程序没有主循环,一直不断的初始化。改这样试试。
void main()
{

可以了,但是为啥呢,程序在主函数里一直走,走完之后再从头再执行一遍吗?
回复

使用道具 举报

8#
ID:257618 发表于 2017-12-5 15:12 | 只看该作者
wulin 发表于 2017-12-5 13:48
因为你的main程序没有主循环,一直不断的初始化。改这样试试。
void main()
{

可以了,但是为啥会这样,他走完主程序之后不就停了吗
回复

使用道具 举报

9#
ID:257725 发表于 2017-12-5 15:40 | 只看该作者
你的程序可能有错误  好好看看  
回复

使用道具 举报

10#
ID:164602 发表于 2017-12-5 15:45 | 只看该作者
风案件快递 发表于 2017-12-5 15:12
可以了,但是为啥会这样,他走完主程序之后不就停了吗

单片机在执行完主函数后,如果没有其它设置,会再次从头执行主函数,不会停下来的。

评分

参与人数 1黑币 +5 收起 理由
风案件快递 + 5 很给力!

查看全部评分

回复

使用道具 举报

11#
ID:257738 发表于 2017-12-5 15:50 来自手机 | 只看该作者
程序可能有错误
回复

使用道具 举报

12#
ID:205044 发表于 2017-12-5 16:12 | 只看该作者
主程序的问题,加入一个死循环
回复

使用道具 举报

13#
ID:257618 发表于 2017-12-5 17:09 | 只看该作者
HC6800-ES-V2.0 发表于 2017-12-5 15:45
单片机在执行完主函数后,如果没有其它设置,会再次从头执行主函数,不会停下来的。

好的懂了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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