导航:首页 > 操作系统 > 51单片机流水灯速度

51单片机流水灯速度

发布时间:2023-01-19 23:03:33

A. C51单片机按下独立按键切换流水灯或跑马灯的流动速率

流水灯每变化一次,即流动一步,都要延时的,通常是调延时子程序,而且要带一个延时的时间值,例如:
delay(5000);如果所带参数是一个常数,那流水灯的速度就是固定不变的。如果改成一个变量,如:
delay(speed); 这速度就可以变化可调了。这样,通过按键改变变量speed的值,就调速度了。

B. 51单片机 流水灯运行10后熄灭,同时流水灯的速度是500毫秒

我觉得应该把
if(pp==20)
{
pp=0;
miao--;
}
放到中断函数里面去。因为你的中断是每50毫秒执行一次,而主函数的死循环一次时间很长,而且还有延时500毫秒的函数,因此在一次while(1)的循环里就有多次中断函数被执行,pp就自增了不至一次,主函数里面的if(pp==20)就检测不了,也可以改为if(pp>20)。
这只是我的猜想,也没有试过。

C. 为什么51单片机的流水灯板子上执行速度慢,模拟的时候很快

你的外部晶振有没小了,或者有内部晶振的,烧写时选择错了

D. 我想用二个按键来控制51单片机流水灯速度,要求1一个加速一个减速,要求2下次通电时能记忆上次最后的速度.

还是用第一个,但电路需要修改,p3口需要接上拉电阻,4.7k-
10k
的上拉电阻,才能保证p3口的引脚在没有按键时是高电平。

E. 我想用二个按键来控制51单片机流水灯速度,要求1一个加速一个减速,要求2下次通电时能记忆上次最后的速度.

可以利用if语句和I++、I--、功能调节变量的值,然后把这个变量联系到延时函数中去就差不多了,请试一试。

F. 51单片机按键控制流水灯速度

你可以简单地认为单片机只能输出5V或者0V的电压
分别对应1和0,那么LED灯的另一端接地或者接5V,如果你
的单片机输出5V接到LED灯,LED灯另一端接地

那就产生电压了,电路就导通了,灯就亮了
,反之也是这个道理。时间方面可以写大致的延时,或者用定时器,这样就比较精确了,你学会了这个就可以说入门了。

G. 51单片机控制流水灯编程求救啊!!!

#define<reg52.h>
sbit K1=P1^0;
sbit K2=P1^1;
sbit K3=P1^2;
unsigned int time=500;
unsigned char z[]={0xfe,0xfd,0xfb};
void delay(unsigned int c) //误差 0us
{
unsigned char b;
for(c;c>0;c--)
for(b=125;b>0;b--);
}

main()
{
unsigned char i;
TMOD = 0x01; //50ms中断 按键扫描
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
while(1)
{
for(i=0;i<3;i++)
{P0=z[i]; delay(time);}
}
}

void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x3C;
TL0 = 0x0B0;
if(!K1) //K1键按下
{
delay(2);
if(!K1) time=200; //速度1 值越大越慢
}

if(!K2) //K2键按下
{
delay(2);
if(!K2) time=700; //速度2
}

if(!K3) //K2键按下
{
delay(2);
if(!K3) time=1500; //速度3
}
}

原创手打 望采纳

H. 51单片机汇编怎么用四个独立按键来控制流水灯的速度

不用中断一样的实现,而且可以有多少个按键就可以有多少种流水灯方式。你使用的键盘函数直接调用流水灯函数就可以。比如使用独立键盘,if(P1.1==0) light_water(); 然后:
void light_water()
{
num=1;
for(a=0;a<8;a++)
{
P1.1=num<<1;
delay(1000); //延时;
keyboard();//执行时又不停扫描键盘函数;
}
}
这样就会有一个LED从右往左移动8次;那么当第一次流水未完时,又调用第二个流水函数light_water1就能中断当前执行的流水函数又去执行第二个流水灯函数了。

I. 51单片机里面的,如何使流水灯流的越来越快

改变流转时间不难

问题是还必须保持原来的亮度

因为灯点亮的时间太短的话,亮度会大打折扣

延时函数不方便调整速度
用定时器比较好

J. 51单片机中怎样用一个按键控制三种模式的流水灯,如控制流水灯流水速率(每按一下加速,到三后返回和第一次

#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
sbit anjian = P1^0; //按键位
void delay(uint16 h) //延时程序
{
while(h--);
}
main()
{ uint8 k = 0 , i = 0;
P0 = 0xff;
anjian = 1;
while(1)
{
P0 = ~(1<<k++);
if(anjian == 0)
{
delay(200);
if(anjina == 0) i++;
if(i == 3)
i = 0;
}
switch(i)
{
case 0: delay(10000);break;
case 1: delay(20000);break;
case 2: delay(20000); break;
}
if(k==8) k=0;
}

}
//头一次回答问题,多多支持,全部知识都是自学的,但是我试验过可以符合你的要求运行,谢谢

阅读全文

与51单片机流水灯速度相关的资料

热点内容
程序员为世界带来的贡献 浏览:214
程序员招聘自荐信 浏览:693
魔兽键位设置命令宏 浏览:645
程序员没有目标了 浏览:828
抢答器c程序编程 浏览:703
什么app可以自己玩 浏览:76
刨客app是什么 浏览:963
cad输入命令栏不见了 浏览:834
做故事集可以用什么app 浏览:692
qq邮箱发送压缩包 浏览:672
程序员桌面机器人 浏览:589
xjr快速开发平台源码 浏览:159
java接口runnable 浏览:31
python怎么运行web服务器 浏览:349
notepad编程代码 浏览:740
什么安卓的毛病最少 浏览:611
hp的pjl设备访问命令 浏览:635
googlewebp图片压缩技术 浏览:215
tbc萨满加血宏命令 浏览:757
pdf闪 浏览:289