发布网友 发布时间:2022-09-16 15:37
共1个回答
热心网友 时间:2023-10-13 15:04
ORG 0000H 表示程序从0000H开始 START:MOV R2,#8 将立即数8(10进制,二进制是1000B)放入R2 MOV A,#0FEH 将立即数FEH(16进制,二进制是11111110B)放入A,以上是初始化 S0 :MOV P0,A 将A里面的数输出到P0端口 CALL DELAY 执行Delay延迟段代码,不延迟的话就不是流水灯了而是全亮。。。 RL A 左移A寄存器内容(移动后变成11111100B) DJNZ R2,S0 (R2-1)为0?不是则跳转到S0句 SJMP MAIN 跳转到main句 DELAY:MOV R4,#20 D2:MOV R5,#20 D1:MOV R6,#248 D0:NOP DJNZ R6,D0 DJNZ R5,D1 DJNZ R4,D2 RET MAIN:MOV P0,#0DBH 将DBH输出到P0端口(DB二进制为11011011B) ACALL WA 调用WA延时程序 MOV P0,#06DH 将6DH输出到P0端口(6D二进制为01101101B) ACALL WA 调用WA延时程序 MOV P0,#0B6H 将B6H输出到P0端口(B6二进制为10110110B) ACALL wa 调用WA延时程序 MOV P0,#0BEH 将BEH输出到P0端口(BE二进制为10111110B) ACALL WA 调用WA延时程序 MOV P0,#07EH 将7eH输出到P0端口(7e二进制为01111110B) ACALL WA WA 调用WA延时程序 SJMP START 跳转到START WA: MOV R7,#250 S1: MOV R3,#250 S2: DJNZ R3,S2 DJNZ R7,S1 RET END 如果你的单片机是低电平亮灯的话效果就是看输出到P0的二进制为0的亮为1的灭