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

51单片机流水灯

发布时间:2022-01-25 14:12:08

‘壹’ 很简的51单片机C语言流水灯程序

1、51单片机C语言实现循环8个流水灯左移三次,后右移三次。
例程:
#include<reg51.h> //51单片机头文件
#include <intrins.h> //包含有左右循环移位子函数的库
#define uint unsigned int //宏定义
#define uchar unsigned char //宏定义
sbit beep=P2^3;
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.
{ //delay(500);大约延时500ms.
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main() //主函数
{
uchar a,i,j;
while(1) //大循环
{
a=0xfe; //赋初值
for(j=0;j<3;j++) for(i=0;i<8;i++) //左移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_crol_(a,1); //将a变量循环左移一位
}
a=0x7f;
for(j=0;j<3;j++) for(i=0;i<8;i++) //右移三次
{
P1=a; //点亮小灯
beep=0; //开启蜂鸣器
delay(50); //延时50毫秒
beep=1; //关闭蜂鸣器
delay(50); //再延时50毫秒
a=_cror_(a,1); //将a变量循环右移一位
}
}
}
2、51单片机是对所有兼容Intel
8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash
rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。

‘贰’ 51单片机流水灯应用

嗯A T 89451单片机的流水东应用的话这个的话就是根据你嗯,单片机设计的程序来设计流水灯。

‘叁’ 51单片机里面的,如何使流水灯流的越来越快

改变流转时间不难

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

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

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

‘肆’ 51单片机流水灯

就是一个流水灯的程序,至于写得这么复杂吗。
#include <reg51.h>
#include <intrins.h>
void delay()
{
unsigned int i;
for(i=30000;i>0;i--);
}
main()
{
unsigned char j,light;
while(1)
{
light=0xfe;
for(j=0;j<5;j++)
{
P1=light&0x1f;
delay();
light=_crol_(light,1);
}
}
}

‘伍’ 51单片机流水灯程序

程序如下:

#include <reg52.h>

sbit led1 = P2^0;

sbit led2 = P2^1;

sbit led3 = P2^2;

sbit led4 = P2^3;

sbit led5 = P2^4;

sbit led6 = P2^5;

sbit led7 = P2^6;

sbit led8 = P2^7;


void main()

{

int i,j;

//点亮第一个灯

led1 = 1;

led2 = 0;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//延时1秒

for(i = 0;i < 110; ++i)

{

for(j = 0; j < 1000; ++j)

{

;//什么也不做

}

}

//点亮第二个灯

led1 = 0;

led2 = 1;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//点亮剩余的灯

//省略……

while(1);

}

(5)51单片机流水灯扩展阅读:

流水灯几点说明:

void:因为该延时函数不需要返回值,所以写为void

delay1s:该函数的函数名,命名需要符合C语言的标识符命名规则。

(): 不需要传入参数,所以括号中为空

至此我们可以把流水灯程序写为以下形式:

‘陆’ 51单片机16路流水灯怎么用C语言写,并求每个步骤的讲解

我给你个简单的例子:

#include<AT89X51.H>//预处理文件里面定义了特殊寄存器的名称如P1口定义为P1

voidmain(void)

{

//定义花样数据

constunsignedchardesign[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,

0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,

0xE7,0xDB,0xBD,0x7E,0xFF};

unsignedinta;//定义循环用的变量

unsignedcharb;//在C51编程中因内存有限尽可能注意变量类型的使用

//尽可能使用少字节的类型,在大型的程序中很

受用

do{

for(b=0;b<32;b++)

{

for(a=0;a<30000;a++);//延时一段时间

P1=design[b];//读已定义的花样数据并写花样数据到P1口

}

}while(1);

}

程序中的花样数据可以自以去定义,因这里我们的LED要AT89C51的P1引脚为低电平才

会点亮,所以我们要向P1口的各引脚写数据O对应连接的LED才会被点亮,P1口的八个引

脚刚好对应P1口特殊寄存器的八个二进位,如向P1口定数据0xFE,转成二进制就是

11111110,最低位D0为0这里P1.0引脚输出低电平,LED1被点亮。如此类推,大家不难算

出自己想要做的效果了。

留个邮箱给你发个入门文档

‘柒’ 51单片机中如何用汇编语言编写流水灯

流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:

ORG 0000H ;复位启动
AJMP START ;
ORG 001BH ;T1中断
AJMP T1INT ;

;定义变量========================
YSJS EQU 30H;延时计数器
LED EQU 31H;LED控制缓冲器

;主程序==========================
START: MOV LED,#0FEH ;初始化数据
MOV YSJS,#0 ;
MOV TMOD,#10H ;定时器1工作于方式1,16位定时器
MOV TL1,#0B0H ;设置定时初值
MOV TH1,#3CH ;定时时间=50mS
SETB ET1 ;使能定时器1中断
SETB TR1 ;启动定时器1
SETB EA ;开总中断

MOV P1,LED ;初始化流水灯
LOOP: JMP LOOP ;循环等待中断
T1INT: PUSH PSW ;定时器1中断程序
PUSH ACC ;保护现场
MOV TH1,#3CH ;定时时间=50mS
MOV TL1,#0B0H ;
INC YSJS ;

PUSH ACC ;保护ACC
MOV A,YSJI ;
CJNE A,#2,QT1 ;50mS*2=100mS
MOV P1,LED ;
MOV A,LED ;
RL A ;累加器A的值循环左移1位
MOV LED,A ;
MOV YSJS,#0 ;
QT1: POP ACC ;恢复现场
POP PSW ;
RETI ;返回主程序
END ;汇编程序结束

(7)51单片机流水灯扩展阅读:

实现流水灯的三个方法:

第一种,总线方法实现流水灯。这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加上延时函数,即可控制每个LED灯的亮灭。

第二种,移位方法实现流水灯采用循环程序结构编程。首先在程序开始给P1.0口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这样就实现“流水”的效果了。

第三种,库函数实现流水灯。利用左移函数进行。

‘捌’ 51单片机设计流水灯

;电路图在附件内,经仿真通过,不知能不能达到你的要求。
;想要您的分真难啊
;呵呵!
org 0000h
ajmp start
org 0030h
start:
mov a,#0ffh ;
clr c ;
mov r2,#08h ;循环八次。
loop: rlc a ;带进位左移。
mov p1,a ;输出到P1口。
call delay ;延时一段时间
djnz r2,loop ;反复循环
mov r2,#07h ;再往回循环。
loop1: rrc a ;带进位右移
mov p1,a ;输出到P1口。
call delay ;延时一段时间
djnz r2,loop1 ;反复循环
jmp start ;重新开始

delay: mov r3,#20 ;延时子程序
d1: mov r4,#20
d2: mov r5,#248
djnz r5,$
djnz r4,d2
djnz r3,d1
ret
end

阅读全文

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

热点内容
php判断变量为空 浏览:740
你演我猜安卓版本怎么用 浏览:905
已够app哪里看 浏览:1001
程序员怎么学会开车的技巧 浏览:781
网易邮箱如何删除服务器邮件 浏览:150
java多个泛型 浏览:270
安卓折扣号怎么充值 浏览:602
行政决定行政命令 浏览:893
linux下的软连接 浏览:604
fib在python是什么意思 浏览:534
c调用命令行 浏览:942
阿里云服务器中没有apt 浏览:611
发送信息需要用户加密吗 浏览:638
六年级分数乘分数有几种算法 浏览:300
到哪里查自己的app账号 浏览:124
光大app点击哪里可以查年费 浏览:879
加密狗软件先安装还是先先后顺序 浏览:356
柱头加密区箍筋间距一般多少 浏览:685
美团商家版本服务中心在app哪里 浏览:992
androidgps调试 浏览:823