标题: 如何通过改变延时函数 改变单片机流水灯左移移速 就是用按键模块 加或是减 延时时... [打印本页]

作者: 小白学51单片机    时间: 2018-12-26 01:02
标题: 如何通过改变延时函数 改变单片机流水灯左移移速 就是用按键模块 加或是减 延时时...


作者: HC6800-ES-V2.0    时间: 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;
                        }
                }

        }       
}
操作时,按键的时间稍长一点,不然单片机扫描不到按键,它的运行速度太快。
这类操作最好还是用外部中断,用扫描法总是不怎么舒服。
作者: mosqu    时间: 2018-12-26 08:10
延时函数的话,传个变量啊
uchar a = 50;
delay(a);这样
按键加减a
作者: 周超然    时间: 2018-12-26 08:19
while(1)
{
uchar count;
bit=bit>1;
P0=bit;
delay(count);
count=scanf_key();
}
简单写了思路,你自己在好好想想,多百度,勤练手


作者: xuyaqi    时间: 2018-12-26 08:29
延时时间长短和赋给它的值有关,你可以通过按键改变赋值大小,从而改变延时长短。
作者: 弓长张    时间: 2018-12-26 08:55
你的题目看不完,后面的看不见了,具体也不清楚你问什么。&#129300;
作者: phang    时间: 2018-12-26 09:14
使用定时器实现点亮LED,定时器可以调整中断时间。
作者: 天风情    时间: 2018-12-26 09:15
用两个按键,一个延时加,一个延时减,检测到哪一个按键按下就调用延时函数,延时不同的值即可




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1