找回密码
 立即注册

QQ登录

只需一步,快速开始

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

这个单片机流水灯程序不按照循环走,按下按键就全部亮了.我加过延时函数了

[复制链接]
跳转到指定楼层
楼主
ID:1003254 发表于 2022-1-24 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个程序流水灯循环的时候,不按照循环走,按下按键就全部亮了,我加过延时函数了,也是一次全部亮。求助各位学霸。

单片机源程序如下:
#include<reg52.h>
#define u8 unsigned char
sbit S7=P3^0;
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;

u8 code LedChar[18] =

    {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

     0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,

     0xbf,0x7f};

void LedXun_huan();
void InitSystem();
void Chosse573(u8 i);

void InitSystem()
{
        Chosse573(5);
        P0=0X00;
}

void Delay(u8 t)
{
        while(t)
        {
                t--;
        }
}

void Chosse573(u8 i)
{
        switch(i)
        {
                case 4:        P2=(P2&0X1F)|0X80;break;
                case 5:        P2=(P2&0X1F)|0XA0;break;
                case 6:        P2=(P2&0X1F)|0XC0;break;
                case 7:        P2=(P2&0X1F)|0XE0;break;
        }
}

void KeyDriver()
{
        if(S7==0)
        {
                Delay(500);
                if(S7==0)
                LedXun_huan();
        }
}

void LedXun_huan()
{
        u8 i;
        Chosse573(4);
        for(i=0;i<8;i++)
        {
                P0=~(0x01<<i);
        }
}

void main()
{
        InitSystem();
        while(1)
        {
                KeyDriver();
        }
}

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

使用道具 举报

沙发
ID:161164 发表于 2022-1-24 14:59 | 只看该作者
延时放错地方了
而且延时间太短了

void Delay1ms(u8 x)                //@11.0592MHz
{
        unsigned char i, j;
        do
        {
                _nop_();
                i = 2;
                j = 199;
                do
                {
                        while (--j);
                } while (--i);
        }while(--x);
}

略。。。

void LedXun_huan()
{
        u8 i;
        Chosse573(4);
        for(i=0;i<8;i++)
        {
                P0=~(0x01<<i);
                                Delay1ms(200);
        }
}

略。。。
回复

使用道具 举报

板凳
ID:1003254 发表于 2022-1-24 18:09 | 只看该作者
lkc8210 发表于 2022-1-24 14:59
延时放错地方了
而且延时间太短了

好的,已解决,谢谢
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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