51单片机控制LED灯程序的设计说明.docx

上传人:b****6 文档编号:4610903 上传时间:2022-12-07 格式:DOCX 页数:6 大小:15.26KB
下载 相关 举报
51单片机控制LED灯程序的设计说明.docx_第1页
第1页 / 共6页
51单片机控制LED灯程序的设计说明.docx_第2页
第2页 / 共6页
51单片机控制LED灯程序的设计说明.docx_第3页
第3页 / 共6页
51单片机控制LED灯程序的设计说明.docx_第4页
第4页 / 共6页
51单片机控制LED灯程序的设计说明.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

51单片机控制LED灯程序的设计说明.docx

《51单片机控制LED灯程序的设计说明.docx》由会员分享,可在线阅读,更多相关《51单片机控制LED灯程序的设计说明.docx(6页珍藏版)》请在冰豆网上搜索。

51单片机控制LED灯程序的设计说明.docx

51单片机控制LED灯程序的设计说明

51单片机:

LED灯亮灯灭程序设计

1.功能说明:

控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。

程序:

01:

MOVA,#11111110B;存入欲显示灯的位置数据

02:

MOVP1,A;点亮第一只灯

03:

JMP$;保持当前的输出状态

04:

END;程序结束

2.功能说明:

单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。

程序:

01:

START:

MOVA,#00010010B;存入欲显示灯的位置数据

02:

MOVP1,A;点亮灯

03:

JMPSTART;重新设定显示值

04:

END;程序结束

3.功能说明:

单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重复循环。

程序:

01:

START:

MOVR0,#8;设左移8次

02:

MOVA,#11111110B;存入开始点亮灯位置

03:

LOOP:

MOVP1,A;传送到P1并输出

04:

RLA;左移一位

05:

DJNZR0,LOOP;判断移动次数

06:

JMPSTART;重新设定显示值

07:

END;程序结束

4.功能说明:

单片机P1端口接8只LED,每次点亮一只,向右移动点亮,重复循环。

程序:

01:

START:

MOVR0,#8;设右移8次

02:

MOVA,#01111111B;存入开始点亮灯位置

03:

LOOP:

MOVP1,A;传送到P1并输出

04:

ACALLDELAY;调延时子程序

05:

RRA;右移一位

06:

DJNZR0,LOOP;判断移动次数

07:

JMPSTART;重新设定显示值

08:

DELAY:

MOVR5,#50;

09:

DLY1:

MOVR6,#100;

10:

DLY2:

MOVR7,#100;

11:

DJNZR7,$;

12:

DJNZR6,DLY2;

13:

DJNZR5,DLY1;

14:

RET;子程序返回

15:

END;程序结束

5.功能说明:

单片机P1端口接8只LED,每次点亮一只,先把右边的第一只点亮,0.5秒后点亮右数的第二只灯,第一只熄灭,再过0.5秒点亮右数的第三只灯,第二只熄灭,…亮灯按此顺序由右向左移动。

当亮灯移到左侧后,开始与上述反方向移动,即亮灯由左向右移动,重复循环。

程序:

01:

START:

MOVR0,#8;设左移8次

02:

MOVA,#0FEH;存入开始亮灯位置

03:

LOOP:

MOVP1,A;传送到P1并输出

04:

ACALLDELAY;调延时子程序

05:

RLA;左移一位

06:

DJNZR0,LOOP;判断移动次数

07:

MOVR1,#8;设右移8次

08;LOOP1:

RRA;右移一位

09:

MOVP1,A;传送到P1并输出

10:

ACALLDELAY;调延时子程序

11:

DJNZR1,LOOP1;判断移动次数

12:

JMPSTART;重新设定显示值

13:

DELAY:

MOVR5,#25;延时0.5秒子程序

14:

DLY1:

MOVR6,#100;

15:

DLY2:

MOVR7,#100;

16:

DJNZR7,$;

17:

DJNZR6,DLY2;

18:

DJNY1;

19:

RET;子程序返回

20:

END;

6.功能说明:

单片机P1端口接8只LED,每次点亮两只,先从右边向左边移动点亮;再从左边向右边移动点亮,然后闪烁两次,重复循环。

程序:

01:

START:

MOVR0,#7;设左移7次

02:

MOVA,#0FCH;存入开始亮灯位置

03:

LOOP:

MOVP1,A;传送到P1并输出

04:

ACALLDELAY;调延时子程序

05:

RLA;左移一位

06:

DJNZR0,LOOP;判断移动次数

07:

MOVR1,#7;设右移7次

08:

LOOP1:

RRA;右移一位

09:

MOVP1,A;传送到P1并输出

10:

ACALLDELAY;调延时子程序

11:

DJNZR1,LOOP1;判断移动次数

12:

MOVR2,#3;设置闪烁次数

13:

MOVA,#00H;设初始值

14:

LOOP2:

MOVP1,A;P1端口灯亮

15:

ACALLDELAY;调用延时子程序

16:

CPLA;A取反值

17:

DJNZR2,LOOP2;判断闪烁次数

18:

JMPSTART;重新设定显示值

19:

DELAY:

MOVR5,#25

20:

DLY1:

MOVR6,#100

21:

DLY2:

MOVR7,#100

22:

DJNZR7,$

23:

DJNZR6,DLY2

24:

DJNZR5,DLY1

25:

RET;子程序返回

26:

END;程序结束

7.功能说明

单片机端口接八只LED,编程时利用取表的方法,使端口P1做单一灯的变化:

先向左移2次,然后向右移2次,再闪烁4次,不断循环。

程序:

01:

START:

MOVDPTR,#TABLE;存表

02:

LOOP:

CLRA;A清零

03:

MOVCA,@A+DPTR;取表代码

04:

CJNEA,#01H,LOOP1;不是01H,循环

05:

JMPSTART;重新设定

06:

LOOP1:

MOVP1,A;送P1输出

07:

ACALLDELAY;调延时程序

08:

INCDPTR;数据指针加1

09:

JMPLOOP;转移到LOOP处

10:

DELAY:

MOVR5,#25;延时0.5秒

11:

DLY1:

MOVR6,#100;

12:

DLY2:

MOVR7,#100;

13:

DJNZR7,$;

14:

DJNZR6,DLY2;

15:

DJNZR5,DLY1;

16:

RET;

17:

TABLE:

DB0FEH,0FDH,0FBH,0F7H;

18:

DB0EFH,0DFH,0BFH,7FH;左移

19:

DB0FEH,0FDH,0FBH,0F7H;

20:

DB0EFH,0DFH,0BFH,7FH;左移

21:

DB7FH,0BFH,0DFH,0EFH;

22:

DB0F7H,0FBH,0FDH,0FEH;右移

23:

DB7FH,0BFH,0DFH,0EFH;

24:

DB0F7H,0FBH,0FDH,0FEH;右移

25:

DB00H,0FFH,00H,0FFH;

26:

DB00H,0FFH,00H,0FFH;闪烁

27:

DB01H;结束码

28:

END;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1