找回密码
 立即注册

QQ登录

只需一步,快速开始

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

如何通过改变延时函数 改变单片机流水灯左移移速 就是用按键模块 加或是减 延时时...

[复制链接]
跳转到指定楼层
楼主
ID:421466 发表于 2018-12-26 01:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3黑币

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

使用道具 举报

沙发
ID:164602 发表于 2018-12-26 08:04 | 只看该作者
我做了个程序,你看看。
#include<reg52.h>
#include<intrins.h>

#define LED P2
sbit k1=P3^1;
sbit k2=P3^0;

void Delay10ms(unsigned char c)
{
    unsigned char a,b;
    for(;c>0;c--)
        for(b=38;b>0;b--)
            for(a=130;a>0;a--);
}

void main()
{
        unsigned char i,a=50;
        LED=0xfe;
        Delay10ms(a);
        while(1)
        {
                LED=_crol_(LED,1);
                Delay10ms(a);
                if(k1==0)
                {
                        Delay10ms(1);
                        if(k1==0)
                        {
                                a=a+10;
                            while((i<50)&&(k1==0))
                            {
                                    Delay10ms(1);
                                    i++;
                            }
                            i=0;
                        }
                }
                if(k2==0)
                {
                        Delay10ms(1);
                        if(k2==0)
                        {
                                a=a-10;
                            while((i<50)&&(k2==0))
                            {
                                    Delay10ms(1);
                                    i++;
                            }
                            i=0;
                        }
                }

        }       
}
操作时,按键的时间稍长一点,不然单片机扫描不到按键,它的运行速度太快。
这类操作最好还是用外部中断,用扫描法总是不怎么舒服。
回复

使用道具 举报

板凳
ID:410399 发表于 2018-12-26 08:10 | 只看该作者
延时函数的话,传个变量啊
uchar a = 50;
delay(a);这样
按键加减a
回复

使用道具 举报

地板
ID:449525 发表于 2018-12-26 08:19 | 只看该作者
while(1)
{
uchar count;
bit=bit>1;
P0=bit;
delay(count);
count=scanf_key();
}
简单写了思路,你自己在好好想想,多百度,勤练手

回复

使用道具 举报

5#
ID:94031 发表于 2018-12-26 08:29 | 只看该作者
延时时间长短和赋给它的值有关,你可以通过按键改变赋值大小,从而改变延时长短。
回复

使用道具 举报

6#
ID:337280 发表于 2018-12-26 08:55 | 只看该作者
你的题目看不完,后面的看不见了,具体也不清楚你问什么。&#129300;
回复

使用道具 举报

7#
ID:396960 发表于 2018-12-26 09:14 | 只看该作者
使用定时器实现点亮LED,定时器可以调整中断时间。
回复

使用道具 举报

8#
ID:426861 发表于 2018-12-26 09:15 | 只看该作者
用两个按键,一个延时加,一个延时减,检测到哪一个按键按下就调用延时函数,延时不同的值即可
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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