MCS-51单片机控制LED交替闪烁:硬件电路图和程序代码
使用MCS-51的P0口控制八个发光二极管LED,相邻四个二极管为一组,使两组每隔1s交替发光一次,周而复始。
硬件电路图

程序代码
ORG 0H
MAIN:
MOV P0, #0F0H ; P0口初始值为0F0H,只有P0.7~P0.4为高电平,控制第一组LED的亮灭
ACALL DELAY ; 延时1s
MOV P0, #0FH ; P0口初始值为0FH,只有P0.3~P0.0为高电平,控制第二组LED的亮灭
ACALL DELAY ; 延时1s
SJMP MAIN ; 无限循环
DELAY:
MOV R0, #250 ; R0寄存器初值为250
DELAY_LOOP:
DJNZ R0, DELAY_LOOP ; R0寄存器自减,直到为0时退出
RET
END
程序说明:
- 程序首先将P0口设置为0F0H,使P0.7~P0.4为高电平,从而点亮第一组LED。
- 然后调用DELAY子程序,实现1秒延时。
- 接着将P0口设置为0FH,使P0.3~P0.0为高电平,点亮第二组LED。
- 再次调用DELAY子程序,实现1秒延时。
- 最后使用SJMP指令实现无限循环,使两组LED交替闪烁。
DELAY子程序:
- 将R0寄存器设置为250。
- 使用DJNZ指令将R0寄存器自减,直到为0时退出。
- 由于MCS-51单片机的时钟频率为12MHz,所以该延时子程序实现的延时时间约为1秒。
原文地址: https://www.cveoy.top/t/topic/omZb 著作权归作者所有。请勿转载和采集!