51单片机流水灯设计(51单片机流水灯设计串联还是并联)

http://www.itjxue.com  2023-03-06 13:20  来源:未知  点击次数: 

51单片机 流水灯的设计,10后流水灯关闭

void T0_time() interrupt 1

{

TH0=(65536-45872)/256; //50ms中断一次

TL0=(65536-45872)%256;

pp++;

}

51单片机12展流水灯的程序怎么设计?

我就写个顺时针亮的程序(详细解释,其它的你就自己写),全手打的哦,用的是汇编,我水平也不怎么高,但是你的问题也是入门级的,还有我假设是高电位亮,一共12灯从P0.0开始到P1.4(P1.4和P0.0相接)。ORG 4000HSTART:CLR P0CLR P1 /P0 P1清零MOV P0,#80H/1灯亮LCALL DEL/调用延时程序MOV P0,#0C0HLCALL DELMOV P0,#0E0HLCALL DELMOV P0,#0F0HLCALL DELMOV P0,#0F8HLCALL DELMOV P0,#0FCHLCALL DELMOV P0,#0FEHLCALL DELMOV P0,#0FFHLCALL DELSTEB P0/P0口值位,前8灯全亮MOV P1,#080HLCALL DELMOV P1,#0C0HLCALL DELMOV P1,#0E0HLCALL DELMOV P1,#0F0HLCALL DELMOV P1,#0F8HLCALL DELLJMP START/程序跳到开始,进行循环DEL:MOV R7,#200MOV R5,#20DEL1:MOV R6,#123 NOPDEL2:DJNZ R6,DEL2DJNZ R7,DEL1DJNZ R5,DEL1RET/延时程序 共约1SSJMP $起始位4000H 可能不对 要自己找。

51单片机流水灯用C语言编写的设计程序是什么?

#includereg51.h

#includeintrins.h

#define uchar unsigned char

void delay(void)

{

uchar i,j;

for(i=0;i150;i++)

for(j=0;j240;j++);

}

main()

{

uchar led,i,j;

while(1)

{

for(i=0;i8;i++)

{

led=0xfei;

for(j=0;j8-i;j++)

{

P0=led;

led=_crol_(led,1);

delay();

}

}

}

}

c51单片机中如何用汇编语言编写流水灯

51单片机用汇编语言编写流水灯程序,就是控制多个LED

,使其在特定时间间隔内,只有一个LED

发光,其他熄灭,用这种方式顺序移动点亮LED的位置,就形成了流水灯的效果。以下是程序:

;假设晶振12MHZ,P1控制8个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

;汇编程序结束

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

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

ORG 0000H;复位启动

AJMP START;

ORG 001BH;T1中断

AJMP T1INT;

;定义变量========================

YSJSEQU 30H;延时计数器

LEDEQU 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;汇编程序结束

扩展资料:

实现流水灯的三个方法:

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

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

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

(责任编辑:IT教学网)

更多