单片机流水灯实例
之前我们学习单片机时,总是以51单片机作为入门芯片,而想要对单片机的程序进行编译,那么首先要安装KEIL文件,这里就不做介绍。
编译完成后,在我们的文件夹下找到.hex的文件,将其烧写到我们的芯片中即可。
这里简单的介绍一下入门的各类流水灯程序,有兴趣的可以实验一下。
#include<reg51.h> //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void Delaytime(uint x)//定义延时函数
{
uint i,j;
for(i=x;i>0;i--)
for(j=250;j>0;j--);
}
void main(){
uint i;
uchar temp;
while(1){
//8个流水灯逐个闪动:
temp=0x01;
for(i=0;i<8;i++){
P0=~temp;
Delayms(50);
temp<<=1;
}
//8个流水灯反向逐个闪动:
temp=0x80;
for(i=0;i<8;i++){
P0=~temp;
Delayms(50);
temp>>=1;
}
//8个流水灯依次全部点亮:
temp=0xfe;
for(i=0;i<8;i++){
P0=temp;
Delayms(50);
temp<<=1;
}
//8个流水灯依次反向全部点亮:
temp=0x7f;
for(i=0;i<8;i++){
P1=temp;
Delayms(50);
temp>>=1;
}
}
}
这些程序也可以用我们之前介绍的软件进行模拟,线路如下所示:
51单片机实例讲解,由按钮控制流水灯程序
由按钮控制流水灯控制要求:在单片机的PP3.0口和P3.1口线上分别接上一个按钮SB1和SB2,P0口上接8只发光二极管LED1~LED8。当按下SB1时,8只发光二极管按方式一从LED1~LED8间隔1s交替正向流水点亮一次,即LED1亮→LED2亮→LED3亮→LED4亮→LED5亮→LED6亮→LED7亮→LED8亮。
当按下SB2时,8只发光二极管按方式二从LED1~LED8间隔1s依次点亮一次,即LED1亮→LED1+LED2亮→LED1+LED2+LED3亮→LED1+LED2+LED3+LED4亮→LED1+ LED2+LED3+LED4+LED5亮→LED1 +LED2 +LED3 +LED4 +LED5 +LED6亮→LED1 +LED2 + LED3 +LED4 +LED5 +LED6+LED7亮→LED1+LED2+LED3+LED4+LED5+LED6+LED7+ LED8亮。
(1)由按钮控制流水灯硬件电路(见图36)。
图36 由按钮控制流水灯接线原理图
(2)由按钮控制流水灯硬件电路元器件(见表14)。
表14 由按钮控制流水灯硬件电路元器件表
(3)由按钮控制流水灯程序流程图(见图37)。
图37 由按钮控制流水灯程序流程图 (a)主程序;(b)显示子程序
(4)由按钮控制流水灯程序。
相关问答
51 单片机 ,按键控制 流水灯 程序,懂的进!八个LED灯与 单片机 P1口...[最佳回答]假如,你的程序在执行key_scan();是触发了两次中断导致num>20,你的显示函数将永远被跳过,你应该写成if(num>20)��{���num=0;���display();�.....
单片机流水灯 闪烁几次停止?单片机8个流水灯闪10次后停止。单片机流水灯是指一串LED灯,通过单片机控制,按照一定的顺序,不断循环地轮流点亮,闪烁10次后停止。单片机8个流水灯闪10次后停...
单片机流水灯 烧录程序怎么写-ZOL问答流水灯试验不用那么麻烦的吧,直接用移位操作就行了因该是硬件问题或者12864的时序不对3条回答:【推荐答案】直接用一个I/O口就行了书上有现成的例子网上也肯定...
单片机 , 流水灯 从中间向两边闪烁,再从两边从中间闪烁,修改一下我的程序?如果你的点灯是低电平那么编码如下:0x7e,0xbd,0xdb,0xe7;这四个编码实现从两边向中间流0xdb,0xbd,0x7e;由上面的四个编码加上下面的四个编码就达到了从中间...
单片机 汇编语言 流水灯 程序延时0.5秒,一共四个灯循环?4只LED为共阳极连接,即单片机输出端为低电平时即可点亮LED。;用最直接的方式实现流水灯ORG0000HSTART:MOVP1,#01111111B;最下面的LED点亮LCALLDE.....
C51 单片机流水灯 怎么改变频率?C51单片机流水灯的频率可以通过改变延时时间来实现。延时时间决定了每个灯亮起和熄灭的时间间隔,从而影响了流水灯的频率。具体操作步骤如下:1.首先,在程序中...
51 单片机 ,用定时器中断,在P1口实现1S移动一次的 流水灯 ,用汇编语言编写的程序?CNTEQU30HORG0000HSJMPSTAORG000BHLJMPT0ISRORG0050HSTA:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0...
51 单片机流水灯 怎么改变流速?要改变51单片机流水灯的流速,可以通过调整延时函数的参数来实现。延时函数控制每个灯亮起和熄灭的时间间隔,从而改变流水灯的流速。增加延时时间可以使流水灯...
如何设计一个 单片机 可控的循环 流水灯 ?首先在硬件方面,我们使用了最经典的选型用AT89S51单片机作为主控芯片,LED电路选用共阳极接法:8路红色LED灯正极接5V电源、各路串联一个限流电阻,保护发光二...
52 单片机 独立按键控制LED 流水灯 ?泻药不加译码器或者锁存器的话,可以用12个引脚+4个三极管(当然还有必要的电阻)实现,如果你的单片机有大电流io口的话,4个三极管也可以省了,12个引脚可以...