首页 > 编程知识 正文

52单片机流水灯程序c语言,51单片机流水灯编程汇编语言

时间:2023-05-04 10:38:12 阅读:145640 作者:3491

; 该小程序相对简单易懂,通过清零一组并行端口输出高电平,控制LED

ORG 0000H

STAR:CLR P1.0; P1.0端口输出低电平(使用共阴级LED,共阴级LED可使用“SETB P1.0”指令)指示灯点亮

呼叫时间; 调用延迟子程序

SETB P1.0; P1.0端口输出高电平(使用共阴级LED,共阴级LED可使用“CLR P1.0”指令)指示灯熄灭

CLR P1.1

LCALL TIME

SETB P1.1

CLR P1.2

LCALL TIME

SETB P1.2

CLR P1.3

LCALL TIME

SETB P1.3

CLR P1.4

LCALL TIME

SETB P1.4

CLR P1.5

LCALL TIME

SETB P1.5

CLR P1.6

LCALL TIME

SETB P1.6

CLR P1.7

LCALL TIME

SETB P1.7

SJMP STAR; 返回主例程执行循环

TIME:MOV R0,#255; 延迟子程序

D1:MOV R1,#255

DJNZ R1,$

DJNZ R0,D1

RET

结束

$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $。

; 第二小程序使用前面的数字11111110,然后循环向右移动(向左移动)以实现流水灯

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV A,#0FEH; 发送数据初始值

MOV P1,a; 数据发送P1端口点亮发光二极管

A呼叫时间; 延迟时间

MOV R3,#07H; 向左移动7次

LOOP: RL A; 向左挪一个

MOV P1,a; 数据发送P1端口点亮发光二极管

A呼叫延迟; 延迟时间

DJNZ R3,LOOP; R3是否为0,如果不是0,则转动LOOP继续执行

AJMP MAIN; 返回主周期执行

TIME:MOV R0,#255; 延迟子程序

D1:MOV R1,#255

DJNZ R1,$

DJNZ R0,D1

RET

结束

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。